JIS X 0213:2004 ふたたび・文字画像生成コマンド

今日,自宅の Windows XP に JIS X 0213:2004(所謂 JIS 2004)対応のMS明朝,MSゴシックのフォント,さらにメイリオ・フォントを導入した。ずいぶん前に,JIS X 0213 について書いたとき,なによりもこの規格でなされた 168 字の字体変更をこき下ろした。けれども,Utf82TeX CJK 統合漢字拡張 B 対応を行ったこともあり,「標準」に追随して行かざるをえないなあという気持ちが強くなったのである。たとえ愚かな君主の決めた愚かな法律・標準であっても,発効すれば文句を言いながらも従うしかありません。「標準」とはそのようなものである。

IE 7 で葛原妙子の「葛」は,もと 葛 だったのが 葛正字体 になった。これはこれで正しい。(でも奈良県葛城市が JIS のおかげで振り回されている...:2010.3 付記)

しかし,考えれば考えるほど,この JIS 2004 の字体変更の理屈が理解できない。この変更は,国語審議会の答申『表外漢字字体表』に示されている「印刷標準字体」に合わせたものである。それはそれで立派な理由かも知れないが,いまさら国語審議会の尻馬に乗ってどうする,という疑問も否めないのである。この表外漢字字体で「印刷標準字体」として認定された文字は新聞等の出現度数調査に基づいているとのことである。でも,文字の構成要素を度外視した原理・原則(一貫性)がいまひとつよくわからないのである。でもって JIS 2004 字体変更の「必然性」がどうも納得できないのだ。

「疼」は 疼疼正字体 に変えたのに,「冬」はなぜ 冬 のままで 冬正字体 にしないのか。「辻」について,辻 さんは結構いるのに 辻正字体 が標準というのは常識的に解せない。「辻」,「逢」を二点しんにょうにするなら,「道」,「遠」なども正字体にしたらどうかね。などなど。

「冬」,「道」,「遠」はこれが「印刷標準字体」ということなので変更しないわけである。でも,上例のとおり一貫性に欠ける。確かに,「標準」に一貫性が必要であるというわけではない。だとしても,いままでの文字形を否定する(「変更」は過去の否定なのである)ほどの必然性があるとはとても思われない。

通常,ものごとの取り決めというものは,いったん決定されると,それ自体に不良(目的とする仕様に適合しない事象)が見いだされない限り,なかなか「変更」されないものである。新しい要請に対しては,「追加・拡張」がなされるのが通例だろう。JIS もこれらの変更後の字体を「追加」すればよかったのではないだろうか。なぜなら,「変更」は過去の規範に則っていた者が自らの資産も「変更」を強いられる一方,「追加・拡張」ならば己の事情によってそれを無視できるからである。

この JIS の愚かな自己否定のおかげで企業・官公庁・自治体のシステムは,本当は別のサービス向上の機能追加をしなければならないのに,文字の取り扱いについて「本当に」余計な改修を強いられているのである。この不況のなか全国津々浦々で進行中のこういう「塵も積もれば山となる」調達は,誰からも税金のムダ遣いと言われないのが面白い。しかも,このシステム改造は,JIS 2004 の恩恵を活かすというのではなく,JIS 2004 文字(文字コードなんかになんの頓着もないユーザは Windows Vista の新 IME で知らず知らず入力してしまうのである)がシステムに入って来ないようにブロックするものが大半である。笑ってしまう。JIS が足を引っ張っているのは明らかなのだ。『どうする? 企業情報システムの『JIS X 0213:2004』対応:ITpro』などを参照のこと。

JIS の字体変更は JIS 2004 にはじまったわけではなく,JIS 83 においてすでに前例がある。どうも JIS は自己否定が好きなようである。これを見ていると,戦後間もないころの国語・国字改革の自己否定(現代仮名遣い,漢字制限)を連想させ,ほんと,日本国の標準策定というものの懲りない性格に呆れてしまうのである(私は現代仮名遣いを否定しているわけではありません)。そのうち,4 年くらいしたら,JIS はまた面白い改訂をしてくれるだろう。こんなことをしていたら,Unicode コンソーシアムが独自に CJK 漢字標準を整備し,日本国の JIS 標準が置いて行かれる — これがいちばん起こりそうなことだと思う。

自己否定 — これは,地震ですべてが崩壊し,すべてを一から作り直そうとしてしまう,地震国のお国柄なのだろうか。

私は個人的には文書作成を LaTeX で行う。LaTeX では,JIS X 0208(所謂 JIS 第一・第二水準)で足りない文字を Adobe_Japan1 コードに準拠して出力する方式が,広く浸透している。JIS 2004 の字体変更も Adobe_Japan1 の CID コードのおかげで cmap をちょちょいと変えて対応できる。JIS などの多様な意見を取りまとめなければならないお役所仕事よりも,Adobe という企業が印刷現場の要請に基づき一貫したポリシー(商業印刷の現場でほしいと思う文字を「追加」して行くポリシーだと思う)で作り上げた「標準」のほうが,よっぽど有用だと思う次第である。

※ 以上のとおり,さんざんぱら,JIS 2004 を批判しているのだけど,そうはいっても JIS の活動全般に懐疑を示すものではもちろんない。JIS はわが国のインダストリアル・スタンダードを決める責任ある機関である。上記のような問題は,その功績に比べると誠に微々たる話である。JIS で活動している研究者,企業人はわが国の斯界の権威であり,真に尊敬に値する人達である。私の軽口を大目に見てください。

* * *

上記字体変更の例で使用した文字の画像は LaTeX で出力した文字を,dvips, Ghostscript で png に変換したものである。コマンドラインから文字画像を生成するシェルスクリプトを書いた。以下に掲載しておくので,同じような課題がある場合にお使いください。OTF パッケージが必要。

#!/bin/sh
# tex2image: convert LaTeX command to image file
# コマンドラインの LaTeX 命令を画像(png, eps)出力する。
#                         coded by isao yasuda, July 27 2009.
 
if [ $# -lt 3 ]; then
    echo "usage: `basename $0` -e|-p out-file-base 'LaTeX fragment'"
    exit 1
fi
  
case $1 in
    # アウトライン EPS
    -e) CONV="gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=epswrite \
              -r9600 -sOutputFile=$2.eps $2-wk.eps"
        echo "Outlined EPS file genetation to $2.eps"
        break;;
    # PNG 
    -p) CONV="gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha \
              -dEPSCrop -r72 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
              -sOutputFile=$2.png $2-wk.eps"
        echo "PNG file genetation to $2.png"
        break;;
    # それ以外はエラー
     *) echo "$1 unknown option."
        exit 1;;
esac
 
printf '%% 文字画像生成テンプレート
\\documentclass[12pt]{jsarticle}
\\usepackage[dvips]{graphicx}
\\usepackage[usenames]{color}
\\usepackage[multi,deluxe,expert]{otf}
\\usepackage[type1]{mojikyo}
\\pagestyle{empty}
\\begin{document}
\\parindent=0pt\\relax%%
%s%% こいつを LaTeX 処理
\end{document}' $3 > $2.tex
  
# pLaTeX UTF-8 処理
platex --kanji=utf8 $2.tex
if [ $? -ne 0 ]; then
    echo "LaTeX error $2.tex."
    exit 1
fi
 
# dvips でまず普通の EPS にする
dvips -E -D 9600 $2.dvi -o $2-wk.eps
if [ $? -ne 0 ]; then
    echo "dvips error $2.dvi."
    exit 1
fi
  
# 画像変換
$CONV
  
# 後始末
rm -f $2-wk.eps $2.dvi $2.log $2.aux $2.tex
echo "done."

これを例えば tex2image というファイル名で,パスの通ったことろに UTF-8 エンコードで格納し,実行属性を付与する(chmod +x tex2image)。

tex2image -p ファイルベース名 'LaTeXコマンド'

とすると,LaTeXコマンド を処理した文字列が ファイルベース名.png という名の png 画像で生成される。LaTeXコマンド に前後のアポストロフィを付加しないと,特殊文字,空白文字を記述できないので注意。

png 画像はアルファ・チャンネルをもつ透過画像なので,背景色に追従可能である。文字そのものを着色したければ,LaTeX コマンドに "\textcolor{色名}{文字}" を指定すればよい。オプションを -e とすると文字のアウトラインを取った EPS 画像で出力する。ベクトル画像なので,Illustrator などで拡大編集してもギザギザで汚れはしないはずである。独自に必要な LaTeX スタイルがあれば,テンプレートに \usepackage 命令などを追加してほしい。dvips,Ghostscript がアウトラインフォントを拾える環境でないと動作しない(要するに,PK ビットマップフォントが混入しているとエラーになる)ので注意。

「葛」の JIS 2004 字体の画像: 葛正字体 の出力は,次のとおりとした。

tex2image -p 1kuzu '\LARGE\CID{7652}'