マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

美文書付録Iについて思うことをグダグダ書き連ねるシリーズ (6)

3 節、第 1 小節
(367ページ)
……これを $TEXMF 以下に展開(解凍)します。

「$TEXMF」については是非とも B.3 節を参照してほしい。

ロシア語のハイフネーションファイルは ruhyphen.tex です。……

TeX Live 2012 *1や最近の W32TeX では分綴パターンファイルが hyph-utf8(そのページの下の参考項目で紹介されている)によるものに置き換わっている。TeX Live 2012 の language.dat の中で、ギリシャ語・ロシア語に関する記述を抜粋すると以下のようになっている。(これを見て判るように、ギリシャ語は複式アクセントのものが有効になっている。ちなみに、ロシア語のパターンは T2A 用である。W32TeX も同じである。)

% DO NOT EDIT THIS FILE (language.dat)! It is generated by tlmgr.
ancientgreek loadhyph-grc.tex
ibycus ibyhyph.tex
monogreek loadhyph-el-monoton.tex
greek loadhyph-el-polyton.tex
=polygreek
russian loadhyph-ru.tex

原理的には、この中のパターンファイル指定を旧来の 8 ビットのもの(例えば ruhyphen.tex)に置き換えてよく、その場合旧来のパターンファイルがフォーマット作成時に読み込まれる。ただし、TeX Live の場合はいくつか問題がある。

  • TeX Live の language.dat は全ての*2エンジンで使われるので、8 ビットのパターンファイルを使うと、XeTeX での処理で失敗する。恐らく実際に tlmgr でフォーマット更新の処理が入った時に影響が出ると思う。
  • 実は TeX Live の language.dat は生成ファイルであり書き換えてはいけない。(上掲の通り、思い切り「DO NOT EDIT」と言われている。*3TeX Live の「作法」を守る必要がある。*4

従って、残念ながら、現状の「付録」の記述では、TeX Live(本家)でのパターン読込設定を行うための知識は得られない。

W32TeX では話が別で、注釈 *30 にあるように、pTeX 系列用に別の設定ファイル language.ptx が用意されている。だから、例えば、「ロシア語のパターンを OT2 用にする」方法*5を知っている人は、この language.ptx の russian の項目を次のように書き換えればよい。

russian ruhyphen.ot2 % OT2用のパターンファイルの名前
以下の表記例では、使用する言語の下に =greek と……

勘のいい人は、これを見て、「これだと、現代ギリシャ語を含む文書と古典ギリシャ語を含む文書の両方があった場合に、一々フォーマットファイル生成をやり直さないといけないのではないか? そもそも同時に現れる場合はどうするの?」という疑問を感じただろう。実際にその通りであって、これは Babel の欠陥と言わざるを得ない。ただ、この問題を回避する手段として「パターンの名前を付け替える」という層さをする hyphsubst パッケージというのが存在し、以前に少し紹介したことがある。「分綴パターンの選択」についての多くの問題の解決に役立つと思うので、後で詳しく解説……できたらいいな。

*1:多分、2011 の途中から?

*2:LuaTeX はもしかしたら違うかも……。

*3:W32TeX の language.dat は TeX Live のものを流用しているので同じ注意が書かれているが、W32TeX の場合は、従来通り language.dat/.ptx を置換編集するのが正しい方法である。

*4:TeX Live においては、language.dat の他にも updmap.cfg や kanji.map の設定についても独特の「作法」があり、これを守らずに tlmgr による自動更新をすると突然破綻する危険性がある。ところで、第 5 版出版の辞典では TeX Live は既にかなり一般的になっていた気がするが、この「作法」についての記述が全くないのは何故なんだろう。

*5:第 4 版では安田氏による調整済のパターンファイルの公開物への参照がああっただ、第 5 版にはない。何故?