JIS78を使ってVistaのJIS2004文字とXPの文字を共存させる

準備とdvips+Distiller

TeXは文字の字形には関与しません.したがって,例えば「葛」などはXPでは「ヒ」のタイプ,Vistaでは「人」のタイプになります.ところが,JIS2004文字には古い78年のJISに字形を戻しているものが結構あります(どれくらいあるかは個数まではまだチェックしてません).そこで,JIS78を意図的に使うことでVista/XP字形をTeXで共存させることを考えます.本当は本物のJIS0213:2004で処理したいのですが仕方がありません*1追記あります.

トリックは

  • PSもしくはPDFを利用すること
  • CMapの一つである78-Hを利用すること

に尽きます.この方法の利点はフォントなのでpTeXの規則にしたがって処理されること,普通に入力すればよいことです.その代わりにフォントを準備しないといけません.もちろんPostScriptを直接叩き込んで処理すればフォントの準備をせずに同様の処理ができますが,それはいろいろしんどいです.手順は以下の通り.

  • jis.tfmをjis78.tfmと名前を変えてコピー
  • vfを作る.コマンドラインで以下のようにする
makejvf jis78.tfm rml78
  • 以下の内容のdvips用のmapファイルを作る(とりあえず,jis78.mapとする).
rml78 Ryumin-Light-78-H

こうすると,jis78.map/jis78.tfm/jis78.vf/rml78.tfmができあがります.jis78.tfmを使えば,JIS78で文字を出すことができます.サンプルは以下の通りです

%%sample1.tex
\font\oldjis=jis78 at 10pt
辻葛迂掴

これを以下に処理します

ptex sample1.tex
dvips -Ppdf sample1.dvi -u+./jis78.map

出来上がったPSをPSプリンタに投げるか,DistillerでPDFに変換すればJIS78で組みあがっています.

tfm/vf/mapなどは適切なところにコピーしてください.

LaTeX2eで使うなら,以下のようなマクロを作ればよいでしょう.ついでにもっとたくさんのサンプルをあげておきます.

\documentclass[a4j]{jarticle}
\pagestyle{empty}
\DeclareFontFamily{JY1}{mc78}{}
\DeclareFontFamily{JY1}{gt78}{}
\DeclareFontShape{JY1}{mc78}{m}{n}{<-> jis78}{}
\DeclareFontShape{JY1}{mc78}{bx}{n}{<-> ssub*gt78/m/n}{}
\DeclareFontShape{JY1}{gt78}{m}{n}{<-> jisg78}{}
\DeclareFontShape{JY1}{gt78}{bx}{n}{<-> ssub*gt78/m/n}{}

\DeclareRobustCommand\jisSE{\kanjifamily{mc78}\selectfont}
\DeclareTextFontCommand{\textjisSE}{\jisSE}


\begin{document}\parindent0pt\parskip\baselineskip
\Large
唖逢芦飴溢鰯迂欝厩噂餌焔襖鴎迦晦葛鞄噛澗翰翫徽祇侠卿僅躯喰櫛屑祁繋倦捲鹸諺巷麹鵠甑采榊柵薩鯖錆珊屡杓灼繍酋曙薯藷哨廠蒋醤鞘蝕逗摺蝉撰煎煽詮噌遡掻痩遜騨腿黛啄蛸巽辿鱈樽箪註瀦凋捗槌鎚掴辻鄭擢溺填顛堵屠菟賭塘祷涜瀞噸遁頓謎灘楢禰嚢牌這秤剥箸溌醗挽樋柊稗逼媛謬廟瀕蔽瞥娩庖蓬頬鱒迄麺儲餅籾鑓愈猷耀莱漣煉蓮榔蝋

{\jisSE
唖逢芦飴溢鰯迂欝厩噂餌焔襖鴎迦晦葛鞄噛澗翰翫徽祇侠卿僅躯喰櫛屑祁繋倦捲鹸諺巷麹鵠甑采榊柵薩鯖錆珊屡杓灼繍酋曙薯藷哨廠蒋醤鞘蝕逗摺蝉撰煎煽詮噌遡掻痩遜騨腿黛啄蛸巽辿鱈樽箪註瀦凋捗槌鎚掴辻鄭擢溺填顛堵屠菟賭塘祷涜瀞噸遁頓謎灘楢禰嚢牌這秤剥箸溌醗挽樋柊稗逼媛謬廟瀕蔽瞥娩庖蓬頬鱒迄麺儲餅籾鑓愈猷耀莱漣煉蓮榔蝋}

{\bfseries
唖逢芦飴溢鰯迂欝厩噂餌焔襖鴎迦晦葛鞄噛澗翰翫徽祇侠卿僅躯喰櫛屑祁繋倦捲鹸諺巷麹鵠甑采榊柵薩鯖錆珊屡杓灼繍酋曙薯藷哨廠蒋醤鞘蝕逗摺蝉撰煎煽詮噌遡掻痩遜騨腿黛啄蛸巽辿鱈樽箪註瀦凋捗槌鎚掴辻鄭擢溺填顛堵屠菟賭塘祷涜瀞噸遁頓謎灘楢禰嚢牌這秤剥箸溌醗挽樋柊稗逼媛謬廟瀕蔽瞥娩庖蓬頬鱒迄麺儲餅籾鑓愈猷耀莱漣煉蓮榔蝋

{\jisSE
唖逢芦飴溢鰯迂欝厩噂餌焔襖鴎迦晦葛鞄噛澗翰翫徽祇侠卿僅躯喰櫛屑祁繋倦捲鹸諺巷麹鵠甑采榊柵薩鯖錆珊屡杓灼繍酋曙薯藷哨廠蒋醤鞘蝕逗摺蝉撰煎煽詮噌遡掻痩遜騨腿黛啄蛸巽辿鱈樽箪註瀦凋捗槌鎚掴辻鄭擢溺填顛堵屠菟賭塘祷涜瀞噸遁頓謎灘楢禰嚢牌這秤剥箸溌醗挽樋柊稗逼媛謬廟瀕蔽瞥娩庖蓬頬鱒迄麺儲餅籾鑓愈猷耀莱漣煉蓮榔蝋}
}
\end{document}

dvipdfmx対応

dvipdfmxに対応させるには

rml78 78-H Ryumin-Light
gbm78 78-H GothcBBB-Medium

というmapファイルを書いて,dvipdfmxの-fオプションで指定すればよいです.もちろん,こっちを先に作っておいてupdmapとかでdvipsのmapを自動生成させるとかでも構いません.

*1:奥村先生も指摘されてますが,UniJISX02132004-UTF32-Hは存在しますが,単純なUniJISX02132004-Hが見当たりません