今日、LuaLaTeX を使おうとして、ltj-rmlgbm.lua に起因するエラーにみまわれていたのだった。困ったなあ……結構重要な文書を LuaLaTeX を使うように書き始めていたところだったのだ。
エラーメッセージを見ると、フォントデータベースのエントリに起因するトラブルのようにも見えるのだが、そうだとするとこれは厄介だ。というのも、このシステムにはモリサワの巨大なフォントセットを入れているので、フォントに起因するトラブルだと、原因の切り分けをするだけでも一苦労しそうな感じだったのだ……で、拝むような気持ちで sourceforge の LuaTeX-ja のソースコードを見てみると、rev. 5732f2c で北川氏が公開しているコミットがどうやら対策らしいことに気付き、patch をあててみると、やはりこれだったらしく、仕事を再開できたのだった。
こういうことがあるので、仕事に関わる文書のタイプセットを LuaTeX-ja を使用して行う場合は、TeX Live 任せにはしておけない。この種のコミットが TeX Live 2013 のに反映されるまでに何日かかるか、ということを考えると、結局 ~/texmf 辺りに git で最新のツリーを取得しておいて、それでも間に合わないときは今回のように手動で patch をあてる必要だって生じるわけだ。やはり LuaTeX-ja は未だに unstable というか、未だに開発途上にある、と認識すべきなのだろう。
しかし、あと1、2年もしたら、ひょっとしたら pTeX / pLaTeX が主流でなくなる日だって来るかもしれない。EWB が LuaTeX ベースになったり、とかいうことだってあるかもしれない。そう思うと、やはり LuaTeX-ja を使わないわけにはいかないのである。僕はこれから先も、論文や教材を Microsoft Word で書いたりする気にはなれないし、Knuth 氏がこの世を去るときが来たとしても、おそらく TeX を使い続けるだろうから。
実は、この何十日かの間、Adobe Reader が使えない状態だった。Linux、特に Debian GNU/Linux (sid) を使っているとしばしばあることなのだけど、今回は libgtk-2.0-0 に関わる不整合があって、長らく Adobe Reader を入れられない状態だった。
しかし今日、午前中にちょっと用事があって外出し、帰ってきてから apt-get の更新をかけたら、GTK 関連のライブラリの更新がかかっていて、問題の libgtk-2.0-0 も更新対象になっていた。これはひょっとすると……と、"apt-get install acroread" とすると、おー、ちゃんとインストールされたよ。何か久々だよなあ。
正直、今回の不整合の問題は長かったし、Adobe が Linux 版の Adobe Reader の更新に熱心でないことなどもあって、『TeX Live を使おう──Linux ユーザと Mac OS X ユーザのために──』の Adobe Reader に関わる記述を削除した方がいいのだろうか、と考えたりもしていたのだったが、もう少しの間はあのままでも問題ない、ということか。しかしなあ。Adobe もどうかと思うよな。Windows 版なんかもう ver.11 だってのに。
TeX の環境を Windows 上で構築する際、シンボリックリンクで苦労することが多い。Windows には MKLINK というコマンドがあって、このコマンドでシンボリックリンクを作成することができるのだが、このコマンドはワイルドカードが使えない。これでは、大量に存在するフォントファイルのリンクを作成する際などに不自由なことこの上ないわけだ。
で、ふとネットを彷徨っていたところ、こんなものを発見:
Link Shell Extension
まだ検証していないのだが、一応メモ代わりに書いておくことにする。
で、早速使ってみた。エクスプローラ上で簡単にシンボリックリンクやハードリンクが作れる、というものだったのだけど、これが困ったことに、C:\Windows\Fonts に関しては使えないんだな……これじゃあ TeX のセットアップでの旨味はないに等しい。結局バッチファイルを書いて MKLINK でリンクを張ったのだった。
何日かぶりに TUG のページを見て、ついに pretest が完全終了して TeX Live 2013 が正式リリースになったことを知った。いやー、これでとりあえずは手元も安定するなあ。
2013 には、いくつか便利(とされている)なラッパーが入っているわけだけど、その中でも最近使っている人が多いらしいのが ptex2pdf である。これを僕のコンテンツで紹介するかどうか、ちょっと考えたのだけど、やめた。このラッパーの存在意義をあまり感じないからだ。
ラッパー wrapper というのは、この場合は、煩雑な複数のプログラムの組み合わせをひとつに「包んで」提供するユーティリティを指す。ptex2pdf の場合、それ自体は texlua で書かれたスクリプトで、ptex / uptex, platex / uplatex と dvipdfmx を一度の入力で適切に動かして、最終的な PDF 文書を出力するようになっている。こう書くと、さぞ便利そうに聞こえるわけだけど、果たして本当にそうだろうか。
いや、インストールしたままで、あるいは、tlptexlive の流儀に従って全てが整えられていれば、そういう恩恵を受けられるのかもしれない。しかし、僕の場合は、フォントの埋め込みをするかしないか、によって、複数のフォントマップを常に使い分けている。また、これも場合によって A4 と A5 と B4 という複数種の紙のサイズを使うし、縦横も変えることがある。こうなってくると、「デフォルトの設定をこれにしておけば後はオッケー」というような使い方は、小回りがきかない分苦痛を生むだけなのだ。
しかも、横書きでルビを使わない文書に関しては、パッケージの対応に関する問題がない限りは LuaTeX で扱うことが多くなってきた。そうなると、もはやこんなラッパーははなっから必要ないのである。
僕は何も「だからこんなものは消えるべきだ」などと暴論を展開する気はない。おそらくこのラッパーは TeXworks での利便性を確保するために書かれたのだろうから、そういう向きの方々は便利に使っておられるだろう。しかし、僕は教育的見地から統合環境を他人に積極的には薦めないし、自分でも使う気はない(vi や Emacs 以外で書く気にはなれない)。だから、おそらくこれからも ptex2pdf を使うことはないだろう。
ひとつ厭なのは、それを使う必要がないのに、たとえば TeX Wiki におけるコマンドの例を片っ端から ptex2pdf を使うように書き換えている輩がいることだ。そんな必要ははなっからないし、それは各プロセスでのトラブルの切り分けを意識させなくしてしまう。あれを見る度に「馬鹿の一つ覚え」という言葉が頭をよぎるわけだが、そういうわけで、『TeX Live を使おう──Linux ユーザと Mac OS X ユーザのために──』では ptex2pdf に関して特に言及する気はない。そのことだけここに明記しておくことにしよう。