TeX のバージョン番号は現在 3.141592653 で、次の修正が入れば末尾に桁が一つ増えます。目指す先は円周率 π——けっして到達しない数です。このページは、クヌースが TeX を書き上げたあとに起きたこと、つまり 凍結、LaTeX の世代交代、そして LPPL というライセンスが実際に何を要求しているのかを追います。LaTeX は無料で、商用の仕事にも自由に使えます。ただ、その「自由」の形は GPL とも MIT とも少し違っていて、違っている理由がいちばん面白いところです。
なぜ TeX のバージョン番号は π に近づくのか
1990 年、クヌースが TUGboat 誌の論考「The Future of TeX and METAFONT」で TeX の開発をやめると宣言し、以後は報告されたバグを直すだけにすると決めたからです。そのとき同時に定めた作法が、修正のたびに番号の末尾へ桁を一つ足す、というもの。3.14 → 3.141 → 3.1415 と伸びていく番号は π に限りなく近づきながら、原理的に届きません。つまりバージョン番号そのものが「これは完成へ漸近するだけの製品である」という宣言になっています。桁が三十年あまりでわずかしか伸びていないことが、そのまま安定度を示す指標にもなっているわけです。
# measured on a TeX Live 2024 install
$ tex --version | head -1
TeX 3.141592653 (TeX Live 2024)
$ pdftex --version | head -1
pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2024)興味深いのは、後継エンジンがこの番号を捨てずに引き継いでいることです。上の pdfTeX 3.141592653-2.6-1.40.26 は「クヌースの凍結された TeX 3.141592653 に、pdfTeX 独自の 1.40.26 を重ねたもの」という意味の表記です。土台の番号を書き換えないことが、そのまま「中身の TeX は手つかずです」という宣誓になっています。クヌースは自らの死をもって番号を π に確定させ、そこで永久に凍結すると書き残しました——本人の言葉で「私の死後に行われる、絶対に最後の変更」です。その時点で残っていたバグは、修正されるのではなく 仕様(feature)に格上げ されます。姉妹品の METAFONT も同じ趣向で、こちらは自然対数の底 e に向かっています。
この安定志向がどれほど本気かは、クヌースが払ってきた「賞金」でわかります。TeX と METAFONT のコードにバグを見つけた人には報奨金が出るのですが、金額は 16 進法で 1 ドルにあたる 2.56 ドルから始まり、毎年倍になって 327.68 ドルで頭打ちという設計でした。バグを見つけるほど報酬が上がる仕組みを作ったうえで、それでも報告がほとんど尽きた——ここまでやって初めて、数十年前の原稿が今日そのまま組めるという状態が保たれています。TeX がコンピュータ組版史の「不動点」と呼ばれるゆえんです。
では、凍結される「TeX」とは具体的に何を指すのか。クヌースは 1984 年から 1986 年にかけて、五巻本 Computers & Typesetting を刊行しました。A 巻が使い方の解説書 The TeXbook、B 巻が TeX のソースコードそのものを組版した TeX: The Program、C 巻と D 巻が文字設計ソフト METAFONT の対応する二冊、そして E 巻が書体 Computer Modern の設計を収めた Computer Modern Typefaces です。プログラムのソースを書籍として出版する という発想がここにあり、だからこそ「凍結」は比喩ではありません。バグの見直しも数十年おきという間隔で予定されていて、2021 年の記念版に続く次回は 2028 年、その次は 2037 年、2047 年と続きます。
LaTeX はいま誰が保守しているのか
LaTeX プロジェクト(LaTeX Project) と呼ばれる少人数のチームです。LaTeX を書いたのは レスリー・ランポート ですが、1989 年に保守と開発の責任が フランク・ミッテルバッハ に引き継がれ、クリス・ロウリー、ライナー・シェップフと組んだチームが 1994 年に LaTeX 2ε を出しました。いま「LaTeX」と言えばこの 2ε のことで、それ以前の LaTeX 2.09 は歴史上の存在です。手元の TeX Live に入っている legal.txt には著作権者としてランポート、ミッテルバッハ、ロウリー、シェップフ、デイビッド・カーライルらの名前が並んでいて、系譜がそのままファイルに書き残されています。
かつて「次世代の別フォーマット」として語られた LaTeX3 は、独立した製品としては実現しませんでした。代わりに、その成果であるプログラミング層 expl3 が LaTeX 2ε の内側に取り込まれ、いまはカーネルが起動時に読み込みます。だから pdflatex を走らせるとログの冒頭に二行のバナーが出ます——本体の版と、L3 プログラミング層の版です。LaTeX 2ε 自体は現在 毎年 6 月 1 日と 11 月 1 日 に日付版としてリリースされ、版名がそのまま日付になっています。
% the two banner lines a TeX Live 2024 run prints
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>年二回も更新される、と聞くと「昔の原稿が通らなくなるのでは」と身構えるかもしれませんが、実際は逆向きの設計になっています。カーネルには latexrelease という巻き戻し機構が用意されていて、\RequirePackage[2020-02-02]{latexrelease} のように日付を指定すると、その時点のカーネルの挙動を再現します。査読で何年も往復する論文や、十年後に再コンパイルしたい学位論文のために、意図的に用意された逃げ道です。TeX 側は凍結、LaTeX 側は更新しつつ過去の版を再現できるようにする——役割分担がはっきりしています。
「TeX」を名乗るために必要なこと
クヌースのライセンスは「改変は自由、ただし改変したものを TeX と名乗ってはいけない」という一点に尽きます。ソースの tex.web 自身に、この処理系を変更したなら結果を TeX と呼ぶべきではない、と書き込まれています。「TeX」を名乗れるのは TRIP テスト という耐久試験に通った実装だけで、これは同じ入力に対して同じ出力を出すことを一文字単位で検証する意地の悪いテストです。つまり「TeX」という語は製品名ではなく 互換性の保証書 として運用されている、というのがこのライセンスの発明でした。
この規則が実際に効いている証拠は、日本語の TeX に残っています。アスキーが作った日本語対応エンジンは pTeX、その Unicode 版は upTeX で、どちらも「TeX」とは名乗っていません。TeX を書き換えた以上、名前を変える——規則がそのまま実装名になっているわけです。なお米国における「TeX」の商標は アメリカ数学会(AMS) が保有しており、1984 年に出願されています。第三者に押さえられるのを防ぐための保有なので、文書に「TeX は…の商標です」と断り書きを入れる必要はありません。
LPPL とは何を要求するライセンスなのか
LPPL(LaTeX Project Public License) が要求する核心は、改変版が 自分は改変版であると名乗ること です。よく「LPPL はファイル名を変えることを義務づける」と説明されますが、これは現行版では正確ではありません。手元の TeX Live に入っている texmf-dist/doc/latex/base/lppl.txt は LPPL 1.3c(2008-05-04) で、第 6 条 a 項が求めているのは、置き換え部品が対話的に使われたときに 自分は改変版であると明確かつ曖昧さなく名乗ること——ファイル名そのものについては何も言っていません。GPL のようにソース公開を強制する仕掛けでもありません。守っているのはユーザーの側の信頼、すなわち「article.cls と書いてあるものは本物の article.cls だ」という前提です。
では「ファイル名を変えろ」という話はどこから来たのか。古い版に本当に書いてあった からです。同じ doc/latex/base/ に併録されている lppl-1-2.txt の条件 3 は、改変したファイルを元のファイル名で配布してはならない、と明言しています。この条項は「自由なソフトウェアと言えるのか」という論争を招き、2003 年には Debian が LaTeX の扱いを検討する事態にまでなりました。LPPL 1.3 でこの縛りは緩められ、要求は「名前を変えろ」から「改変版だと名乗れ」へ移りました。ただし名前を変えるのは依然として推奨される手段で、CTAN に妙に捻った派生パッケージ名が多いのはこの文化の名残です。
| 条項 | 何を要求しているか | 実務での守り方 |
|---|---|---|
LPPL 1.3c 2 | 原本をそのまま配ることは無条件に自由 | 何もしなくてよい |
LPPL 1.3c 6a | 置き換え部品は改変版だと明確に名乗ること | \ProvidesClass の版表記に改変の旨と自分の版を書く |
LPPL 1.3c 6b | 何をどう変えたかを目立つ形で示すこと | 冒頭のコメントか CHANGES ファイルに変更履歴を置く |
LPPL 1.3c 6c | 元の作者が保守してくれると読者に思わせないこと | 連絡先とバグ報告先を自分のものに差し替える |
LPPL 1.3c 6d | 原本も一緒に配るか、入手方法を示すこと | CTAN の該当ページを README に書けば足りる |
LPPL 1.2 3 | 改変版を元のファイル名で配ってはならない(旧版) | 1.3 で撤廃。ただし改名は今も推奨 |
クラスファイルを配りたくなったときの手順
原稿を書くだけの人にとって、ライセンスの実務的な意味はほぼゼロです。LaTeX で PDF を作り、提出し、売り、公開すること自体に追加の許諾は要りません。ライセンスが顔を出すのは、研究室のテンプレートを直して後輩に配る、学会クラスに手を入れて共著者に渡す、といった .cls や .sty を再配布する瞬間 だけです。そのときにやることは三つ。名前を分ける、改変の事実を書く、原本の出どころを示す。この三つで LPPL 第 6 条はほぼ満たせます。
% labthesis.cls -- derived from thesis.cls, distributed under the LPPL
% Changes are logged in CHANGES; the original is on CTAN.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{labthesis}[2026/04/01 v1.2 local fork of thesis.cls]
\LoadClass[a4paper]{article}- 元ファイルは残したまま、
labthesis.clsのような固有名で配る。上書きしないことが事故防止の本体です。 \ProvidesClassの版表記に「派生である」と書いておくと、ログにその行が出て第 6 条 a 項を自然に満たせます。- 論文のソース一式を提出するときは、改変した
.styや.clsと一緒にライセンス文も同梱する。多くの投稿システムは同梱ファイルをそのまま保存します。 - 本文や図表の著作権は TeX のライセンスとは無関係で、投稿先・出版社・所属機関の規定で決まります。ここを混同しないこと。
日本語まわりの部品にも触れておくと、pLaTeX / upLaTeX のマクロ群は LPPL ではなく BSD ライセンス です。手元の plcore.ltx の冒頭には「Copyright (c) 2010 ASCII MEDIA WORKS」と「Copyright (c) 2016-2020 Japanese TeX Development Community」の二行が並んでいて、アスキーから 日本語 TeX 開発コミュニティ への引き継ぎがファイルの中に記録されています。jlreq.cls も同様に BSD 2 条項です。つまり日本語環境を触るときは LPPL と BSD の両方が混在している——著作権表示を残すことが最低条件になります。