再び悩ましい状態に
次世代の TeX / LaTeX 環境をどうしようか、あれこれ document を読みながら考えているのだが、これが実は結構悩ましい。
次世代の TeX / LaTeX 環境としてぱっと頭に浮かぶのは、
- XeTeX / XeLaTeX
- LuaTeX / LuaLaTeX
- ConTeXt (w LuaTeX)
日本語環境ということで考えると、LuaTeX-ja プロジェクトが存在する以上、LuaTeX を選択するのが現実的なのは言うまでもない。しかし、LuaTeX と XeTeX を比較した場合、ひとつだけ僕が問題に感ずることがあって、それは polyglossia のことである。
polyglossia は、多言語を XeTeX 上で扱うためのパッケージである。従来の TeX / LaTeX 業界では、この目的にはもっぱら babel が用いられていたが、polyglossia はこの後継とでも言うべき存在である。有用なパッケージで、日本語に関しては九州大学の岩瀬則夫氏が、babel の japanese パッケージに相当する gloss-japanese.ldf と gloss-nihongo.ldf を『XeTeX を使ってみよう(事故で全部消してしまったのでサービス停止中)』で公開されている。
僕は polyglossia の存在を知った当初、これが LuaLaTeX でも使えるだろうと思い込んで喜んだ。しかし……残念ながら、少なくとも現状では polyglossia は XeLaTeX でしか使えないようなのだ。ググってみると、海外でも polyglossia を LuaLaTeX で使いたい、というニーズはあるようなのだが……
じゃあ素直に babel を使えばいいじゃないか、という話になるかもしれない。たしかに babel は LuaLaTeX 上で使えるのだが、japanese パッケージは LaTeX2ε での使用しか考慮されていない。どうやら、LuaLaTeX で多言語環境(日本語を含めて)を享受したいなら、polyglossia を LuaTeX でも動作するようにするか、japanese パッケージを LuaLaTeX + LuaTeX-ja の環境下で使えるように書き換えるかするしかない、ということのようだ。むう。まあ、自力で細々と始めてみましょうか……
まず、babel で japanese.ldf を使った場合に出るエラーをチェックすると、
……と出て止まる。これって……アレじゃないの? platex とかではプリミティブに日本語の文字を使っても OK だったけど、LuaTeX ではダメ……ってこと?(/usr/local/texlive/2011/texmf-dist/tex/platex/japanese/japanese.ldf
Package babel Warning: No hyphenation patterns were loaded for
(babel) the language `Japanese'
(babel) I will use the patterns loaded for \language=0 instead.
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
...
l.53 \newif\if西
暦 \西暦true%
?
ということで、japanese.ldf を見てみると……
……この辺りからの記述で、\newif\if西暦 \西暦true%
\def\西暦{\西暦true}%
\def\和暦{\西暦false}%
- \if西暦
- \西暦
- \和暦
- \if西暦 → \ifSeireki
- \西暦 → \Seireki
- \和暦 → \Wareki
まさかこれだけで……いや、これだけでいいのである。これを行った後、LuaLaTeX + babel で japanese が(japanesedash という名前に変わっているわけだが)使えるようになったことを確認している。ということで、当面はこれでしのぐことにしようと思う。
Re:再び悩ましい状態に
この投稿に刺激されて、babel-japanese の新版を作成いたしました。http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2102
TeX Live でも夕方には利用可能になるでしょう。