僕は TeX Live を如何に使っているか

僕が普段どのように TeX Live を使っているか……というか、TeX / LaTeX の周辺環境をどのように使っているのか、という話を少し書いておくことにします。

書く

TeX Live とは関係のない話ですが、まず僕がどのように書いているのか、という話から始めましょう。

最初に書きましたけれど、僕は統合環境を使いません。この20数年程、書きものをするのは専ら GNU Emacs(開発用リポジトリを定期的に git で落として make したもの)で行っています。Emacs 上で LaTeX ファイルを書く、というと、YaTeX(野鳥)が有名ですが、僕は YaTeX も使いません。「何も使わないでよく書けるな」とか言われることが時々ありますけれど、定型文的なものに関しては、以前書いたファイルをテンプレートとして使うこともあります。

日本語のテキストファイルに関しては、以前は ISO-2022-JP (JIS) でしたが、最近は UTF-8 で書くことがほとんどです。時々ファイルの文字コード変換が必要になることが多いですが、これに関しては nkf でちょろちょろっと変換しています。まさに文具感覚ですね。

LuaLaTeX でダイレクトに PDF 出力

最近は LuaLaTeX + LuaTeX-ja で書くことが多くなってきました。ルビを振りたいときに問題があったわけですが、これも2015年5月1日付で luatexja-ruby.sty が正式にパッケージに入ったことで解消したと言って良いでしょう。このスタイルファイル、一時期見当らなくなったりして密かに心配していたのですが、まずはほっとしております。

縦書きに関しても、ltjtarticle.cls, ltjtreport.cls, ltjtbook.cls が収録されており、通常の縦書きに関しても問題はありません。

pLaTeX で処理 → PDF 出力

platex による処理は……特に書くことは何もないでしょうね。数十ページを超えるような長い文章を書くときには、章毎に書いた断片を \include でひとつの .tex ファイルに取り込むようにしたり、とか、目次や索引、参考文献関連の処理を何度か繰り返す必要のある場合には Makefile を書いて make 一発で処理できるようにしたり、はします。

pLaTeX を使う場合は dvipdfmx を併用します。最終的な出力を得る場合は、

$ dvipdfmx -f hiraginoEmbed.map foo.dvi
のように、ヒラギノフォントを埋め込む指定をして出力することが多いです。実際には、フォントマップは何種類か用意してあって、IPA フォントを中心としたフリーフォントを埋め込めるようにもしてあるので、配布する必要のあるファイルはそうやって生成することもありますし、特に埋め込む必要のない場合は「埋め込まない」というオプションを選択することもあります。

奥村氏のTeX フォーラムなどを覗いていると、今でも dvips / dvipsk や dviout を使っている人が結構いるのに驚かされます。僕自身は、もうかなり前から PDF ベースに環境を統一しています。どうしても PS ファイルを生成しなければならない場合は、フォントを埋め込んだ PDF を作成してから pdf2ps で PS に変換しています(そういうことはまずありませんが)。このご時世、どうしても PS でなければならない理由というのは何かあるのでしょうか? 僕にはちょっと思いつきません。図の貼り込みも、EPS を使わなくても ps2pdf 等で PDF に変換すればいいだけの話ですから。

【追記】"誰かが「信じられない」みたいなことを書いていたけれど"っていうのは僕のこと……というのは考え過ぎでしょうかね。うーん。実は僕も、PDF で不具合を生じることがないわけでもないのです。それは、Mac OS X 上で、OTF パッケージを使った縦書きの文書を印刷しようとすると、フォントを埋め込まないととんでもないことになり、埋め込んでいてもルビ等がずれまくる、というものなのですが、このときだけは pdf2ps で PS に変換して、Acrobat でなくプレビューで印刷を行っています。

PDF ファイルの内容確認は、書いている過程では zathura、仕上げから印刷の段階では Adobe Reader を使うことが多いです。ヒラギノフォントを埋め込みたい場合には、.tex ファイルを Mac OS X 上に送って、OS X 上で platex → dvipdfmx で処理します。Mac OS X 上には GNU Emacs と ghostscript.app が入っているので、ほとんどの場合はリモートの Linux 端末上からブラウズも含めた処理ができます。

そんな面倒なことをしなくても、Linux にヒラギノを……とできるならしたいところですが、一応そういう行為はフォントの著作権を侵害しているので、しないようにしています。僕の Linux 端末は Windows 10 とデュアルブートなので、そちらのパーティションに入っている Microsoft 由来のフォントも使おうと思えば(物理的には)可能なのですが、これも著作権的に面倒なことになるのと、Microsoft のフォントを使う必要性を感じないということもあって、pLaTeX を使う場合はしていません。

なぜ OTF パッケージや babel を

なぜ僕が OTF パッケージや babel を使うのか、という話を少しだけ。

もともとは使う頻度は高くなかった

もともと、僕は日本語で何か書くために TeX / LaTeX を使う頻度はそう高くありませんでした。仕事で TeX / LaTeX を使うことも勿論あるわけですが、その場合は英語で書くわけで、日本語で何か書く場合は、ほとんどの場合某 Microsoft のワー某、とかで文書作成することを強制されるわけです。まあ、それは苦痛なので、出来上がり寸前までテキストエディタ上で書くのですが、ワー某に流し込んで、フォントをいじって図を入れて、あれープレビューで入ってるのにどうして印刷するとずれちゃうのー、とか、不毛な時間を費されることが多いわけです。

そんな僕なわけですが、2010年の春に、ある本をガッツリ読むことにしました。ケン・スミスの "Ken's Guide to the Bible" という本をあの山形浩生氏が翻訳した『誰も教えてくれない聖書の読み方』(ケン・スミス 著、 山形浩生 訳、 晶文社、 2001年)という本なのですが、この本は聖書に書かれている「おいおいこんなこと書いてあるの?」みたいな箇所をあれこれ紹介しています。山形氏は、おそらく著作権の絡みの問題だと思いますが、日本語訳で口語訳聖書を参照しているのですが、現在のクリスチャンの世界では『新共同訳』と呼ばれる聖書がスタンダードとされているので、改めてこの本の記述を、新共同訳聖書(と、web で公開されている新共同訳聖書の全文検索データベース)できっちり追いかけてみよう、と思ったわけです。

最初から、この作業をするにあたっては、自分の読んだ部分を記録しておこう、と思っていて、この抜き書きとデータ化の作業は XHTML で行った(http://www.fugenji.org/~thomas/Ken_s_guide/ 参照)わけですが、せっかくタグでマークアップしたハイパーテキストで記録を作成したのだから、これを LaTeX 文書化しない手はない、と思ったわけです。

しかし、この作業を2010年の春にしていなかったら、そもそも TeX / LaTeX に関するこんな文書を書くことにはなっていなかったでしょう。この時期はまさに微妙な時期で、まだ TeX Live には pTeX / pLaTeX が組み込まれていませんでしたから、ptetex3 で環境を構築して、「『誰も教えてくれない聖書の読み方』新共同訳ガイド」を作成したわけです。

babel と OTF パッケージのジレンマ

それからちょっとの間、TeX / LaTeX を使わない時期があったのですが、しばしのインターバルを終えて環境整備をしようと思ってリサーチした結果、もう世間のメインストリームは ptexlive に移っていました。

「『誰も教えてくれない聖書の読み方』新共同訳ガイド」PDF 版の保守の目的もあって、OTF パッケージ(フォントメトリックと疑問符・感嘆符の空白処理だけでも使う価値があります)や babel(聖書に関する説明でギリシャ語を使いたかったので……ギリシャ語をちょろっと使うだけなら babel は大袈裟かもしれませんけれど)を使える状態にしておきたかったのですが、そのうち ptexlive で babel が使えない、という状態に陥りました。では TeX Live 2010 に移行しようか……と恐る恐る試してみると、今度は OTF パッケージの導入がうまくいきません。面倒だったこともあって、棚上げしていた時期もあったのですけれど、いつまでもそのままにしておく訳にもいきませんでした。

OTF パッケージを作られた齋藤氏は、最新の ovp2ovf では VF 作成がうまくいかないことを、「Open Type Font用VF」中でちゃんと書かれています。どうも 2010 年の7月末から8月頭にかけて、最新の ovp2ovf への対応を試みられたようですが、これが上手くいかなかったために元に戻された旨、「変更履歴」に記されています。

ptexlive では babel が使えず、TeX Live 2010 では OTF パッケージの導入がうまくいかない……このジレンマで少し悩みました。「ptexlive に収録されている OTF パッケージのファイル群を tar し、TeX Live に移植する」という(極めて ad hoc な)手法でこれを克服したのですが、もう少しスマートな方法はないものか、と悩み続けました。その後、「ptexlive に収録されている ovp2ovf のバイナリを保存しておき、OTF パッケージでの VF ファイル作成のときだけそれを使う」という、もう少しましな方法があることに気付き(気付けよ!)ました。いずれは、tetex のソースを拾ってきて omega の部分だけ make して……ということをする時期が来るのかな、と思っていたのですが、それ以前に OTF パッケージが TeX Live 2011 からマージされたので、この問題に煩わされることはもうないでしょう。

今後に関して

luatex-ja が TeX Live にマージされて、もう何年かが経過したわけです。縦書きもルビも使えるようになっています。実行速度に関しても luajittex の登場によって以前より改善されています。platex を使うこともまだまだ少なくありませんが、諸々の問題が解消され、完全に LuaTeX ベースになる日が来るのも、もう遠くないかもしれません。


Go back to the top
Go back to the index

Copyright(C) 2016 Tamotsu Thomas UEDA