IPAmj 明朝フォント

つい先日の 6 月 18 日,IPA(独立行政法人情報処理推進機構)から IPAmj 明朝フォント Ver. 002.01 が公開された。このフォントは JIS X 0213,JIS X 0221-1,Unicode で定義されている漢字のほか,人名・地名で用いられる漢字合わせて 60,000 文字以上を擁する。これまで一般的に用いられた通常の日本語フォントの漢字が 10,000 文字程度である(ヒラギノなどの Adobe_Japan1.6 に対応した OpenType フォントでは約 20,000 文字)ことを踏まえると破格のスケールである。もちろん今昔文字鏡 90,000 文字というフォントがあるが,思うに,標準化,グリフの美しさという点で IPAmj 明朝フォントは頭ひとつ抜けている。今後ゴシック体も追加されることを期待したい。

戸籍で用いられる人名・地名において JIS 標準にない特殊な漢字は,これまで各自治体・企業が独自に外字を作成することにより対応して来た。一方で独自の外字の存在は行政組織・企業間のデータ交換,システム連携において大きな支障になっていた。そこで内閣官房情報通信技術担当室,経産省及び IPA は,こうした問題点を背景に,文字データの標準化を行うため,文字情報基盤整備事業として,IPAmj 明朝フォントを作成し,それとともにその活用の実証実験を行っているところである。IPAmj 明朝フォントは昨年 10 月に最初のバージョンがリリースされ,先の 6 月 18 日にバージョンアップ(Ver. 002.01)の運びとなった。実証実験のプロモーションサイト http://www.mojikiban.ipa.go.jp/ipapro/ を参照いただきたい。

文字情報基盤整備事業は,内閣官房,経産省がイニシアチブを取っている国家的事業であり,つい先頃 3 月に国会で法案提出された国民 ID 制度(税制改革の前提課題でもある)への基盤整備が喫緊の課題になっている。このプロジェクトでは,JIS X 0221-1 基本多言語 JIS 標準を取り込んだ上,住民情報,戸籍,介護保険事務,住民基本台帳,電子申請,後期高齢者医療広域連合等の自治体システム IT ノウハウが統合されている。つまり,MJ 文字基盤への準拠が官公庁システムの今後の調達要件のひとつになることはおそらく間違いない。

さて,IPAmj 明朝フォントは 60,000 字以上ある。JIS,Unicode 標準にない文字をどのようにして文書で使うか。Microsoft Word では,文字基盤実証実験サイトで出力した文字画像を文書に埋め込む形になると思う。ところが,ありがたいことに,LaTeX の世界では,かの有名な OTF パッケージを開発した齋藤修三郎さんが,やっぱり IPAmj フォント・パッケージ ipamjm を作ってくれました。IPAmj フォント埋込の — 画像ではない — 美しい PDF を生成することができるのである。次に ipamjm のメモをしるしておく。本当に久々の LaTeX ネタである。

IPAmj 明朝フォント Ver. 002.01 を IPA のダウンロードページから,齋藤さんの ipamjm LaTeX パッケージを「狂王の試練場」から取得及び解凍し,フォント(truetype,tfm,vf),マップ(ipamjm.map),スタイルファイル(ipamjm.sty)を TeX ツリーに格納する。mktexlsr でツリーのインデックスを更新しておく。

ipamjm の使い方は,プリアンブルに \usepackage{ipamjm} を指定し,IPAmj 明朝フォントで出力したい文字を \MJMZM{文字番号} でマークアップすればよい。ここで「文字番号」とは IPAmj 明朝フォントが準拠する MJ 文字番号から先頭の MJ0 を除いた 5 桁である。MJ 文字番号は IPA「文字情報基盤 文字情報一覧表 Ver.002.02」Web ページから閲覧できる。必要な文字を検索して番号を特定するには,「IPA MJ 文字情報検索システム(簡易版)」などが役に立つ。

以下に,私が組んでみたサンプル文書を示す。「龍」の部首に関係する文字を集めたものである。dvipdfmx で PDF にする際,ipamjm に付属する map/ipamjm.map をマップとして使うよう指定する。このファイルを TeX ツリーに格納し,dvipdfmx の -f オプションで指示すればよい。ipamjm パッケージのインストール手順及び使用法の詳しい解説は,パッケージ添付の README を参照いただきたい。

% -*- coding: utf-8; mode: latex; -*-
% IPAmj 明朝フォント試験
% Compiling this document
% % eplatex ipamjm-test.tex
% % dvipdfmx -f ipamjm.map ipamjm-test.dvi
\documentclass[a4j,12pt]{jsarticle}
\usepackage{ipamjm}% IPAmj明朝 by 齋藤さん
\pagestyle{empty}
\long\def\kan#1{%
  \parbox[c]{5zw}{\hfil{\tiny (MJ0#1)}\hfil\baselineskip=18pt\relax\par%
    \centering\bgroup\Huge\ifx#1\empty  \else\MJMZM{#1}\fi\egroup}%
}%
\begin{document}
  \def\arraystretch{2.5}%
  \begin{center}
    {\Large Japanese Kanji relevant to ``Dragon''.}\par
    {\large Typeset with the font IPAmj明朝 Ver.\,002.01}\par
    \textit{Coded in \LaTeX\ by Isao YASUDA.}\par
    \vspace{2zh}
    \begin{tabular}{ccccc}%
      \kan{06286}&\kan{19327}&\kan{30123}&\kan{30124}&\kan{30125}\\
      \kan{30126}&\kan{30127}&\kan{30131}&\kan{30132}&\kan{30135}\\
      \kan{30136}&\kan{30138}&\kan{30139}&\kan{30140}&\kan{30141}\\
      \kan{30142}&\kan{30143}&\kan{30144}&\kan{30145}&\kan{30146}\\
      \kan{30147}&\kan{30148}&\kan{30150}&\kan{30151}&\kan{56758}\\
      \kan{56760}&\kan{56761}&\kan{56762}&\kan{56763}&\kan{56764}\\
      \kan{56765}&\kan{56766}&\kan{56767}&\kan{56768}&\kan{56769}\\
      \kan{56770}&\kan{56771}&\kan{56772}&\kan{56773}&\kan{56774}\\
      \kan{56775}&\kan{56776}&\kan{59285}&\kan{59286}&\kan{60378}
    \end{tabular}
  \end{center}
\end{document}

これを ptexlive eplatexdvipdfmx で処理する。

% eplatex ipamjm-test.tex
% dvipdfmx -f ipamjm.map ipamjm-test.dvi

組版結果は以下のとおり。

20120720-ipamjm-test.png