なぜ TeX Live なのか

先程から、TeX Live ということばが何回も出てきますが、そもそもどうして TeX Live なのよ? とお思いの方もおられるでしょう。これにはちょっとした経緯の説明が必要かもしれません。

TeX / LaTeX の配布形態

TeX / LaTeX は、単一のアプリケーションではありません。膨大な数の実行形式ファイル、マクロ、フォントファイル、周辺ユーティリティの集合体です。TeX / LaTeX には多数のバリエーションが存在していますが、個々のバリエーションを周辺ファイルと一揃えにしたものを、個々の開発者がばらばらに公開するのは非合理的です。1980年から存在する TUG (TeX Users Group) 内でも、TeX / LaTeX 関連のアーカイブを包括的に公開するサイトの必要性が問われるようになり、1992年に CTAN (Comprehensive TeX Archive Network) の公開がスタートしました。CTAN は、全世界に94のミラーサイトがあり、TeX / LaTeX 関連のアーカイブを効率良く入手するために、なくてはならない存在になっています。

TeX / LaTeX ディストリビューション

CTAN で公開されているのは、個々のユーティリティだけではありません。それらを組み合わせて、システムの構築・運用を円滑に行なえるように配慮されたディストリビューションも公開されています。

2006年まで、TeX / LaTeX のディストリビューションとしては teTeX と呼ばれるものがメジャーでした。 teTeX はコンパクトで、フリーでないプログラムを含まず、徹底的なデバッグがなされていたために、広く用いられていたのですが、2006年5月に、 teTeX のメンテナであった Thomas Esser はメンテナンスを終了することと、以後は TeX Live の使用を推奨する旨のアナウンスを出しました。

TeX Live は、1996年にスタートしたディストリビューションで、CTAN 同様、包括的な TeX 環境の提供を目論んで発展してきました。そのために、TeX Live は巨大なアーカイブを有しており、その大きさに抵抗を示す人達の中には、2006年以降も teTeX を継続して使用する向きもありました。しかし、Debian GNU/LinuxFedora Linux のような大手 Linux ディストリビューションが TeX Live を default として採用するようになり、世間の標準も TeX Live に移行したわけです。

日本では……

では、日本ではどうだったのでしょうか。そもそも、日本語を TeX / LaTeX で扱うというのは、1980年代に発表された NTT jTeX と、アスキー日本語 TeX(後の Publishing TeX = pTeX)にまで遡ります。MS-DOS 上で日本語 TeX / LaTeX が使えるようになったのは1980年代末のことだったと記憶していますが、その当時から現在に至るまで、日本語を扱う TeX / LaTeX では、専ら後者の pTeX を起源とするシステムが事実上の標準の位置を占めています。

TeX / LaTeX においても、babel に代表されるような多言語化の試みは盛んに行われています。当然、もう四半世紀程もノウハウを蓄積している日本語の TeX / LaTeX システムも、それらにインクルードされるべきもののはずなのですが、実は、 pTeX / pLaTeX が TeX / LaTeX の本流に加えられたのは、つい最近のことなのです。

近年の UNIX 系環境における日本語 TeX / LaTeX の変遷

起源から説明すると、いくら書いてもきりがないので、ここでは2004年以降の話をします。

まず、2004年のことですが、土村展之氏が ptetex の公開を開始します。これは当時標準的に用いられていた teTeX-3.0 のソースに対するパッチで、これによって UNIX 系環境上に簡単に日本語 TeX / LaTeX 環境が導入できるようになった、と言っていいでしょう。

やがて、前述の通り、2006年に teTeX は obsolete となったわけですが、それ以降も ptetex3 は使われ続けます。土村氏はこの間に、TeX Live に対する日本語パッチである ptexlive の開発を進め、2007年から公開を開始したのですが、それにも関わらず、ptetex3 は使用され続けたのです。

この理由は、おそらく babel にあると思われます。babel は、TeX / LaTeX 上で多言語処理を実現する強力な環境ですが、当初、ptexlive はこの babel に対応していない状態でした。おそらくこれが、日本語 TeX / LaTeX 環境構築における TeX Live への移行を遅らせた一因でしょう。

この時期に、日本語 TeX / LaTeX 環境に二つの進展がありました。ひとつは e-TeX を pTeX / pLaTeX に移植した e-pTeX、もうひとつは upTeX / upLaTeX です。

e-TeX というのは、TeX の持っていたレジスタ 256 個という制限を、32768 個のレジスタが使えるように行われた拡張です。欧米で広く使われている pdfTeX(直接 PDF ファイルを出力する TeX / LaTeX 環境)がこの e-TeX を導入していたために、欧米では比較的容易に普及したのですが、日本では pTeX / pLaTeX への e-TeX 取り込みが行われていませんでした。この問題を解決したのが北川弘典氏で、この成果は sourceforge.jp 上で公開されています。

upTeX / upLaTeX は、pTeX / pLaTeX の内部処理における文字コードを Unicode 化する、というものです。詳細は、開発者である ttk 氏のページをご覧いただきたいのですが、前述の土村氏がある程度着手していた Unicode 化をコンプリートするかたちで、upTeX / upLaTeX は公開されました。

従来、日本語はその文字コードが複数種存在し、しかも統一がされていませんでした。

の4種のコードが混在する状況だったわけです。最初の頃は、そもそも多言語を統一的に扱う枠組みというものが確立していない状態でしたから、まあ仕方なかったかもしれません。しかし Unicode、特に文字コードとしての UTF-8 と、Microsoft Windows 2000 以降の UTF-16 を用いた OS の国際化の流れが出てきてからも尚、日本語の TeX / LaTeX 環境は、この問題から脱却できずにいました。この問題が、upTeX / upLaTeX の登場によって、はじめて根本的に解決されたわけです。

……さて、経緯を整理しましょうか。既存の日本語 TeX / LaTeX 環境には、

……という4つの問題とソリューションがあったわけです。実にややこしい状態だったわけですね。TeX Live は「包括的な」パッケージを標榜しているわけですから、日本語拡張も仕様が固まればインクルードしてもらえたはずなのですが、このような過渡的な問題のために、2009年時点でも TeX Live には pTeX / pLaTeX はインクルードされていない状態だったのです。

TeX Live 2010 の登場

このように、ガラパゴス化とでもいうような状態になりかかっていた日本語 TeX / LaTeX の状況ですが、先に登場した人々の尽力によって、TeX Live にはついに pTeX / pLaTeX が収録されました。この TeX Live 2010 に収録された pTeX / pLaTeX は、e-TeX のレジスタ拡張、ptexenc による複数種日本語文字コードへの対応(ただし、upTeX / upLaTeX や OTF パッケージは 2010 の時点では取り込まれていませんでした)……と、近年の日本語 TeX / LaTeX 環境における進展がちゃんと反映されています。もちろん babel も使えます。

そんな状態だったら、ガラパゴス化なんてもう問題じゃないじゃん! という話になりそうですね……まあ、結構、そういう方は多いのかもしれませんが、ひとつだけ問題があったのです。

OTF パッケージの問題

齋藤修三郎氏が公開している Open Type Font用VF(OTF パッケージ)は、LaTeX で Adobe-Japan1-6 の全ての字(グリフで 23,000 個以上)を使用することができるパッケージです。たとえば、「内田百間」の「間」(門がまえに月)や、吉野家の「吉」の字(「土」の下に「口」……下の棒の方が長い)などの文字も、OTF パッケージをロードしておいてコードで指定すれば、実に呆気なく使うことができます。

非常に強力な日本語表現を可能にするこの OTF パッケージですが、TeX Live には付属していませんでした。使いたい場合は、個々のユーザが後から入れなければならなかったわけですが、このパッケージの VF を作成するためには、ovp2ovf の古いバージョンのものが必要になります。2010 年以降の TeX Live に付属する ovp2ovf は version 2.1 で、正しい変換ができないのです。

この問題さえなければ、おそらくほとんどの人がスムースに TeX Live に移行していたことでしょうが、OTF パッケージが非常に有用なものであるが故に、その導入に関わる問題は日本での TeX Live の普及における障害になっていた……と言っても、過言ではないでしょう。

upTeX / upLaTeX の問題

ttk 氏が開発されている upTeX / upLaTeX は、pTeX / pLaTeX の内部処理を Unicode 化したものです。内部処理を完全に Unicode 化することは、多言語処理のみならず、日本語の処理においても極めて大きな利益をもたらすものであることは、今更言うまでもないことでしょう。ですから、この upTeX / upLaTeX は、tetex3 や ptexlive などにもインクルードされていました。しかし、 TeX Live の本家のディストリビューションの中には収録されていない状態でした。

あたらしい日本語処理系の動き

上述のような諸問題から、TeX Live 2010、あるいは TeX Live 2011 への移行を躊躇う人々は少なくなかったようですが、2011年10月下旬、具体的には『TeX ユーザの集い 2011』以降の時期ですが、この頃から TeX Live の日本語処理系に新しい動きが出てきました。

まず、日本語フォントとして IPA フォントがマージされました。従来 TeX Live に収録されていた日本語フォントは和田研フォント(フリーの日本語フォントとしては古典的なものですが、現在の水準では実用に供することは困難でしょう)でしたから、これは革命的と言っていい進展です。しかも、IPA フォントのパッケージには、dvipdfmx で IPA フォントを用いるためのフォントマップも添付されています。

次に、babeljapanese パッケージがマージされました。これは babel を使わない人にはあまり重要性を感じないかもしれませんが、これがマージされたことは、日本語の処理で babel を使いたい人にとっては大きな進展です。

そして……2011年11月、ついに OTF パッケージがマージされました。これによって、TeX Live を「選ばない」理由は、ほぼなくなってしまったと言ってもいいでしょう。uptex / uplatex ユーザに対しても、2012年2月2日、japanese-otf-uptex が TeX Live にマージされました。xdvimetapostの日本語対応に関しても、tlptexlive の登場により、ほぼ全て解決したと言っていいでしょう。

驚いたのは、2012年5月に、luatex-ja がマージされたことです。luatex-ja は未だ開発途上にあるパッケージですが、これによって、縦書き以外の文書処理環境を LuaTeX ベースにすることすら、現在の TeX Live では可能になったのです。

2012年7月7日、ついに TeX Live 2012 が正式にリリースされました。TeX Live 2012 には、tlptexlive の成果物の大部分がマージされています。日本語対応の pxdvi と pmetapost だけが未だ収録されていませんが、tlptexlive ではこの2つだけ配布を継続しています。

2013年6月、TeX Live 2013 が正式リリースされました。2012 との日本語を扱う上での最大の相違は、実はフォント関連を便利に使うためのラッパーが充実したことかもしれません。僕はあまりこの手のラッパーを使わないのですが、一応このコンテンツにおいても記述を追加してあります。

結局、なぜ TeX Live なのか

現行の TeX Live は、もう特にパッチを適用せずとも日本語を問題なく扱うことができます。前述した babel の問題、レジスタの問題、そして文字コードも問題は解決済みです。OTF パッケージの問題も解決してしまいました。もはや、TeX Live という世界標準の TeX / LaTeX システムで日本語を扱うことができる状態なのです。しかも、TeX Live は tlmgr というユーティリティで、マイナーバージョンアップの行われたユーティリティのオンラインアップデートが可能ですから、常にその時点でのデバッグが行き届いたシステムを使うことが可能です。

……というわけで、僕は現在、TeX Live 2014 pretest で日本語の書きものをしています。勿論、babel も使えます(使っています)し、OTF パッケージも使えます。内部処理が Unicode 化された upTeX / upLaTeX も使えるようになりました。皆さんも、使ってみませんか?


Go back to the top
Go back to the index

Copyright(C) 2014 Tamotsu Thomas UEDA