TeXでJIS補助漢字を使う

TeXで「ろ」(王偏+路)という漢字を書く機会があったのですが, この漢字はJISX0218(JIS第一水準・第二水準漢字)に 含まれていないためそのままでは使えず,使用するための方法を いろいろ調べました.そのときに収集した情報をまとめておきます.


文字コード表 で,"ろ"はJIS X 0212(JIS補助漢字)に含まれている (UNICODE:0x7490,JISコード:0x4D52,区点コード:44-50)ことを確認. JISX0213(JIS2000)の第三水準,第四水準からは消されてしまっているようです.

希望として

表示ができれば何でもいいというわけでもなくて, できるだけ下のような条件を満たすような方法を探しました.


1 使いたい文字だけを外字として使う

ということで,調べ始めました. まずは「外字のパターンを作っておいてtexで取り込む」という方針で検索開始. どうやら,X-bitmapで用意した文字パターンを xbmkanji.styやepsfkanji.sty で取り込むという方法が一般的らしいです. X-bitmap 形式外字作成エディタ という文字パターンの作成ツールも見つけたので,「路」と適当な王偏の漢字 (といっても良く見ると王偏のパターンも字ごとにみんな違っててけっこう迷うのですが) を組み合わせて"ろ"のX-bitmapを作成しました. これを以下のスタイルファイルを使って表示させます.

xbmkanji.sty

使い方:

  1. xbmkanji.sty と,上で作成したX-bitmapファイル(*.xbm)をtexソースと同一ディレクトリに置く.
  2. xbmkanji.sty の日本語文字コードは最初JISになっているが,これがtexソースのものと 異なる場合は,qkc などでコードを合わせておく (私の環境では,これをしないと表示が変になった.日本語を使っているのは先頭の 注釈だけなので,これを消しておくのでもいいと思う.もちろんこの作業は, これ以外のスタイルファイルを使うときにもやっておくべき).
  3. ¥documentstyle に [xbmkanji] を追加し, 文字を書きたい場所に ¥xbmkanji{hogehoge.xbm} と書けばOK.

出力結果はこんな感じ (psを600dpiでpngに変換したもの). なぜか少し歪んでしまいます. ps(dvi2ps) や pdf(dvipdfm or Acrobat Distiller)はちゃんと作れました.

epsfkanji.sty

ホームページの説明では「epsfの外字を使う」とありますが, xbm->epsf の変換を tex のコンパイル時に勝手にやってくれるようになってるので, 実質 xbm も使えます. 上の xmbkanji.sty は,最初2の問題に気づいてなかったので, 表示がおかしくなる原因がわからず,しばらくこちらを使っていました.

使い方:

  1. xbmkanji.sty と,X-bitmapファイル(*.xbm)をtexソースと同一ディレクトリに置く.
  2. ¥documentstyle に [epsfkanji] を追加し, 文字を書きたい場所に ¥xbmtoeps{hogehoge.xbm}{hogehoge.eps} と書く.
  3. 一度 tex のコンパイルを実行すると,hogehoge.eps が自動的に生成されているので, 二度目以降は ¥xbmtoeps のところを ¥epsfkanji{hogehoge.eps} に変えても問題ないが, 特に理由がないのならそのままにしておけばよい.

出力結果. 上と同じ xbm を使っているのですが,かなり違う結果に.こちらのほうが良いですね. pdf の作成は ps にしてから Acrobat Distiller でやるとうまくいきましたが, dvipdfm だと"ろ"の所でエラーがでて,できた pdf はその部分だけ空白になってしまいました(追記:Windows版TeXを使っていて,GhostScriptにパスを通していなかったことが原因ぽい).


2 JIS補助漢字のフォントセットを利用

これまでの方法で目的はだいたい達成できたわけですが, この X-bitmap は(既存のフォントを利用したとはいえ)自分で作ったものなので 字体があまり美しくないのと, 一応JIS規格に存在する文字である以上,やはり文字コードを打ち込んで表示させる方法じゃないと 気持ちが悪いので,きちんと「JIS補助漢字として」表示させる方法を調べてみました. 調べてみると, 文字鏡フォント を使うものを始め,方法は意外にいろいろ見つかるのですが, 上の条件にある 「texのあるディレクトリに適切なファイルを置くだけで使えるようにする」 ことに成功したのは今のところ下の2つです.

bdfフォント+xbmkanji.sty

上でも使った xbmkanji.sty ですが,説明書きによると「bdfファイル+文字コード」 で指定した文字を表示できるということで,まずこれを試してみました. JIS補助漢字のbdfフォントには ここ から入手できるアーカイブ intlfonts-1.1.tar.gz の中の intlfonts-1.1/Japanese-BIG/jisksp40.bdf を利用します.

使い方:

  1. jisksp40.bdf と xbmkanji.sty をtexソースと同一ディレクトリに置く.
  2. ¥documentstyle に [xbmkanji] を追加し, 文字を表示させたい場所に ¥bdfkanji{jisksp40.bdf}{文字コード} と書く. 文字コードの指定には,区点コード,JISコード(10進or16進)のいずれか が使える."ろ"の場合なら, のどれかを指定すればよい.

出力結果. もともと X-Window で利用するためのフォントであるためか, texで使うと少し不自然. ただ,アーカイブには中国語とか韓国語などいろんなbdfフォントが入ってる ので,コードさえわかっていればこれらも簡単に表示させることができそうです.

JIS補助漢字用METAFONT+jisx0212.sty

xbmkanji と同じ方が公開されている, JIS補助漢字のMETAFONTとそれを取り込むスタイルファイルのセット を利用する方法です.最初から目をつけていた方法だったのですが, いろいろ理由があってうまく動いてくれなかったので後回しにしていました.

使い方:

  1. アーカイブの中身のうち *.mf と jisx0212.sty をtexソースと同じディレクトリ に置く(Makefile 等,残りのファイルは今回は必要ない).
  2. ¥documentstyle に [jisx0212] を追加し,文字を表示させたい場所で, ¥jisx0212{区点コード} を置く("ろ"なら ¥jisx0212{45-50}).
  3. コンパイルしてみて,文字の大きさや上下位置がおかしいときは, HeiseiMin-W3-Gbase.mf の font_size と jdownratio の値で調整できる. 調整後,コンパイルし直すときは "rm *.*{pk,tfm}" などとして, 生成されたフォントを一度削除しておくこと.

補足:

出力結果です. 今までの中では一番きれいなのではないでしょうか. 他の方法に比べるとやや手間はかかりますが, psもpdfも問題なく作れますし,少なくとも手軽にやる方法としてはこれが一番良いのでは.


おまけ


参考ページ


戻る