
2026/04/28 23:10
「ラテックスにおける共通語」
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
ドナルド・クライトは、1976 年に高価な手組版によって引き起こされた非効率性と、出社者アドディソン・ウェズリー社が 1974 年に電子方式へ転換したことによる専門知識の喪失を解決するため、TeX を開発しました。1977 年夏までにクライトはデジタルタイポグラフィプログラムTeXを開発し、これにより彼は 1978 年に『コンピュータプログラミングの芸術』の改訂版を 700 ページの厚さで完成させることができました。このシステムの本質的な特徴は、マークアップを使用してプレーンテキストドキュメントにおいて著者の意図を正確に捕捉することです。これにより、かつてプリンターとの間で誤りやすい校正が必要な形式的なコミュニケーションを実現しました。TeX エンジンは素コマンドを理解し、コアエンジンを変更せずにマクロファイルを通じて拡張でき、ユーザー定義の新コマンドが可能となります。この拡張可能性については、クライトの 1984 年の書物『The TeXbook』でさらに文書化されており、開発者がマクロを書くことを可能にしました。クライトの insistence に基づき、ソースコードは 40 年以上にわたり自由に利用でき、互いに不相容な改変されたバージョンが名「TeX」を使用することを禁止し、その名称を採用する前に通過しなければならない自動テストを設定しました。初期の支援はアメリカ数学学会(AMS)から提供され、これは 1980 年の TeX ユーザーズグループ(TUG)会議と標準配布TeX Liveの作成につながりました。クライトは 1982 年(TeX82)および 1989 年に TeX を改訂し、1992 年に引退しました。また、独自のフォント形式を発明し、コンピュターマーダンファミリを創出し、メタフォンプログラムを開発しました。レスリー・ランポートは、1980 年代初頭に
lplainマクロファイルを作成することにより、TeX を科学的ドキュメントへの使用を拡大させ、これがLaTeXプログラムにつながりました。現在、1991 年以来フランク・ミッテルバッハによって維持されており、LaTeX は 1990 年代初頭に LaTeX2e をリリースし、より長期的なLaTeX3プロジェクトが進行中です。近代の TeX エンジンは、TrueType/OpenType フォントをサポートするように改変され(XeTeX)、PDF/PostScript 出力を生成するように改変され(pdfTeX)、Unicode インプットを読み込むように改変され(LuaTeX, XeTeX)、および Lua スクリプト機能を持つように改変されています。現在、コーネル大学によって維持されるオープンなアーカイブは、物理学や化学などの分野から毎月 10,000 以上の LaTeX 原稿を受け取り、公開閲覧に使用されています。この進化により、TeX は物理学と化学における学術出版のための堅固な業界標準として確立され、オープンソースの自由というレガシーがユーザーがコアシステムを壊さずに新コマンドを定義することを可能にし、常に変化しているデジタル環境における関連性を保証しています。本文
1976 年、スタンフォード大学のコンピュータ科学教授ドナルド・クリュー(Donald Knuth)は、近年科学界を悩ませてきた問題に直面しました。それは、数式や記号を含む研究論文を印刷用に正確に整形する方法に関する課題です。手作業による組版も優れた結果を生むことができますが、費用が高額でした。もし著者が数式や他の技術的な表記を使用したい場合、著者と熟練の組版者が密接に連携する必要がありました。
クリュー自身は、1968 年版の著作『計算機プログラムのアート』のために、出版社のアディソン・ウェスレイ(Addison-Wesley)に数千ページ分の手書き原稿を提供し、同社が従来の金属製の組版装置を用いて出版した際、書籍にはコンピュータプログラムなどの例題も含まれており、クリューは組版者に対してそれらの表示形式について詳しく説明しました。最初の版の結果には満足していたのです。しかし、8 年後に拡大版となる第 2 巻の再版でアディソン・ウェスレイがより安価な電子組版方式へ移行した際、彼に送られた校訂頁(galley proofs)の品質は期待を下回るものでした。
クリューは、高精細なデジタル組版マシンなら正確な形状を表現可能であることを知っていたものの、専門家の組版技術は移行の中で失われていました。「もしコンピューティングソフトウェア自体がこの作業を行えるならどうだろうか?」と彼は考えました。その疑問に答えるため、1977 年の夏および有給休暇の一部を、まさにそのようなデジタル組版プログラムの開発に費やしました。学生らと協力し、クリューの著作の改訂版である 700 ページに及ぶ全巻目を 1978 年内に組版 capable なプログラムを開発しました。このプログラムは TeX と名付けられ、科学論文の整形および印刷方法を一変させました。また、現在も使用されている最も古いオープンソース(OSS)プロジェクトの一つでもあります。
TeX は、著者が原稿において自らの意図を正確に表現することを可能にしました。「この文章ブロックはコンピュータプログラムである」「その中でこの単語はキーワードである」といったように記述可能です。それ自体が TeX マークアップ言語と呼ばれる言語を用いており、通常プリンターとの往復する校訂頁を通じて何度も行われるような、遅くかつエラーの起こりやすいコミュニケーションを形式化しました。
TeX を使用するには、著者はフォーマットなしでプレーンテキストドキュメントを作成し、材料中に TeX のマークアップ言語コマンドを直接挿入します。例えば以下のような入力:
The quadratic formula is $$-b \pm \sqrt{b^2 - 4ac} \over {2a}$$
これにより次のような出力が得られます:
二次方程式の解は
$$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$
テキストの中にマークアップを記述するという発想自体はそれほど新しいものではありませんでした。1970 年代の runoff(UNIX ファミリのプリンター準備ユーティリティ群)から現在の HTML タグに至るまで広く利用されてきました。TEX の革新点は、リアルな組版に必要な重要な概念を捉え、それらを形式化したことにあります。
クリューは数百種類の組版コマンドを定義しました。これらのコマンドを理解する組版器そのものが TeX エンジンであり、著者の原稿を読み込み、プリンターに直接送信可能なファイルを生産します。
大まかな話として、TeX エンジンは非常に限られた数の基本組版コマンドのみを理解しています。クリューは、何のコマンドを認識させようとも、TeX は著者にとってのすべての可能ないろんな組版ニーズに応えることはできないことを知っていました。そこで彼はユーザーによる拡張性を備えた TeX を開発しました。TeX は既存のコマンドを用いて新たなコマンドを定義するマクロを受け取ることができ、つまり人々は TeX エンジンを変更することなく、マクロファイルを作成して TeX を拡張することが可能です。
クリューはまず自分の著作用に十分であるように設計しました。1984 年には『The TeXbook』を刊行し、TeX の全ての基本コマンドおよびプレーンマクロコマンドの意味やエンジンの内部動作を詳述しました。本書の意図は、開発者が独自のマクロを作成し、コードを変更することを可能にすることでした。
クリュー自身の強い要請により、TeX エンジンのソースコードは 40 年以上にわたりフリーで公開されており、誰でも改修可能です。しかし、著者の原稿が壊れないようにするため、クリューはエンジンの互換性のない変更版を「TeX」と呼ぶことを禁じました。そして、そのような改名を行うには、任意の変更版が必ず満たすべき自動テストスイートを発行しました。
TeX は大学を超えて広範囲にわたる長期的な協働プロジェクトへと発展し、他者の原稿の組版に対応させるために異なる計算機システム、言語、プリンターへの移植が必要となったためです。アメリカ数学会(AMS)はリhode アイランド州に本拠を置き、早期の採用者および推進者となりました。また、1980 年に定期会議が開催され、ユーザーからのフィードバックを集めつつ TeX の開発方向性を導きました。TeX ユーザーズ・グループ(TUG)は、TeX を実行するに必要なすべてのドキュメントとプログラムを標準配布パッケージ「TeX Live」にまとめることに大きく寄与しました。クリュー自身も TUG が刊行する『TUGboat』誌に頻繁に寄稿し、深遠な問い答やプログラムの将来についての自らの見解を共有してきました。
クリューは 1982 年(TeX82 として)、そして 1989 年に TeX を改訂しました。その後、1992 年に退任し、常に膨らみ続ける『計算機プログラムのアート』の完成に専念しました。ただし、仕事は継続されました。
シンプルなマクロ
ワープロを主な用途とする多くのユーザーは、数十個のコマンド程度で満足しています(セクション、サブセクション、太字、斜体など)。彼らはエンジン自体が可能な限り多くの組版決定を下すことを望みます。
TeX の基本コマンド群が比較的低レベルであるため、クリューのような詳細な組版制御を希望する著者に向いています。しかし、コンテンツと表現形式を分離した上位層で使いやすいマークアップ言語のアイデアは、1980 年にキャルネギーメロン大学のブライアン・リード氏が博士研究のために発明したプログラム「Scribe」の開発をもたらしました。Scribe は 1980 年代初期に技術的著者間に人気が高まりましたが、フリーソフトウェアではなかったため流通が制限されました。
Scribe のユーザーの一人に、SRI インターナショナルに在籍するレスリー・ラームポート(Leslie Lamport)がいました。ラームポートは既に分散システム分野で著名なコンピュータ科学者であり、同時に本を執筆していました。彼は TeX の初期ユーザーの一人でもあり、Scribe の使いやすさを TeX に持ち込みたいと考えていました。これに答える形で、彼により使いやすいコマンド群を持つ代替マクロファイル「lplain」(ラームポートを表す l)を作成しました。このマクロファイルをテキストとともに無償で配布し、その結果としてユーザーは「latex」というプログラムを実行できるようになりました。これはエンジンがラームポートのマクロを最初に読み込むように動作させます。ラームポートはまた、「LaTeX: a Document Preparation System」と題する書籍も執筆し、著者たちがこれらのコマンドを用いて原稿を作成する方法を教えました。より複雑なニーズに対しては、基本的な TeX コマンドの使用も依然として可能です。
これらの上位層コマンド、フリーの TeX エンジン、および LaTeX に関する書籍が揃ったことで、TeX の利用が爆発的に広がりました。以来マクロファイルは進化和名称変更を重ねていますが、著者は典型的に「latex」またはその派生プログラムを実行します。したがって、TeX 原稿を執筆する多くの人々はこのプログラムを「LaTeX」と呼び、使用するコマンドを「LaTeX コマンド」と呼んでいます。
LaTeX が科学技術出版分野にもたらした影響は深遠です。正確な組版、特に化学式や数式、アルゴリズムなどの構造物を用いて概念を伝える際には不可欠です。現代世界で生成される膨大な数の論文、雑誌、書籍および他の出版物の量は、手作業による組版での処理能力をはるかに超えています。TeX は自動化を実現しながらも精度を損なわずにその課題に応えます。
LaTeX のおかげで、著者自身で印刷-ready コピー(カメラ・レディコピー)を生成できるようになりました。多くの学術出版社および学術誌は LaTeX で書かれた論文原稿を受け入れています。さらにコルネル大学の管理下にあるオープンアーカイブがあり、物理学、化学などの分野の論文著者が直接的に LaTeX 原稿を提出し、誰でも閲覧可能な環境が整備されています。世界中から毎月 10,000 件以上の原稿がこのアーカイブに提出されています。
LaTeX の簡単な適応性は熱狂的な支持者を増やし続けています。「私は LaTeX を愛しています。なぜなら私はスタイルの微調整に時間を費やす代わりに、書くことに集中できるからです」と、英コルumbia 大学修士課程で LaTeX を使いながら修士論文を執筆し始めた災害研究者かつ地球物理学者マイカ・マッキノン氏(Mika McKinnon)は言います。「もし私の LaTeX ファイルの構成が適切であれば、最小限の手動修正であらゆる出版物やスタイルガイドに対応できるよう形式化および再利用できます」と付け加えました。
日本在住の TeX ユーザー兼ファンのノルベルト・プレイン(Norbert Preining)氏は、Facebook グループまで創設しました。「まだその有効性がどうなるかは確信していませんが、 mailing lists や印刷情報といった従来のチャネル以外の異なる経路を通じて情報をよりアクセスしやすくするものだと考えます」と述べています。
小きるけれど偉力
現代のデスクトップ・パブリッシングは数十年来にわたって TeX が導入した革新から大きく恩恵を受けた一方で、非技術分野の組版を主に支配してしまいました。実際、多くの人が TeX を知りません。ユーザーによって直接支えられているフリーなオープンソースソフトウェアであるため、TeX にはプロモーション推進がありません。誰も利益を得ていないため、普及させるための商業的インセンティブもありません。しかしそれだけが故事ではありません。
TeX 組版エンジンがデジタルフォント形式が標準化される前の開発だったため、クリューはフォントファイル独自の形式を考案せざるを得ませんでした。フォントファミリーである「Computer Modern」を一連として設計し、また独自のタイポグラフィデザインプログラム「Metafont」も考案しました。TeX とともにクリューはフォントも無償で配布したため、人が合法的に文書交換を行う際に専用フォント使用による訴訟を招かないようにしました。
一方の技術業界では、独自フォント形式を開発・進化・保護していました:Adobe Type 1 および Type 3(1985 年に最初の PostScript プリンターにより普及)、Apple の TrueType(1991)、Microsoft の TrueType Open(1994)、そして Microsoft と Adobe の共同開発による OpenType(1996)。TeX が成功裏にますます多くの原稿に組み込まれる一方で、業界は別の方向に進化を続けていました。新しいフォント形式に対応するために TeX は改修が必要となりました。
技術的または科学的著者との間に存在する非技術的著者との断絶も、TeX のメインストリームにおける不人気を理解する上で基本的です:非技術的な出版分野では組版は著者の意図を伝えるために本質的ではありません。組版は装飾的であり、通俗的な内容の著者は Word ドキュメントを出版社に送付し、専門家にお任せするという立場にあります。一方、技術的著者は記号、サイズ、配置を通じて意味を正確に伝える必要があり、TeX はそれを可能にしつつかつ広く理解される形式で文書交換を行うことができます。
コマンドラインツールであるため、TeX は自動化ワークフローへの統合が容易です。TeX に慣れたユーザーは材料を一度準備し、その後出版ガイドラインに応じて複数回の形式化を行うことができます。
多くのユーザーにとって、TeX による組版の実用的な課題は原稿の準備にあります。TeX が最初に開発された当時、技術的著者は WordStar、vi、または Emacs などプレーンテキストエディタを使い慣れていたため、コマンドでテキストをマークアップし、原稿を組版エンジンに送り込む作業は自然に感じられていました。
現代の組版者、特にデスクトップ・パブリシストは異なるメンタルモデルを持っています。他們は図形的な出力を目にするのを期待し、マウスとキーボードを使って視覚的に編集を行い、あらゆる WYSIWYG プログラムと同様の操作を行います。結果品質については厳しくない場合もありますが、曲線に沿ってテキストを配置するなどデザイン機能には価値を見出します。そのため現在多くの印刷製品は Microsoft Word などのツールで作られています。TeX の著者は同じ作業を同様に簡単に行えません。
一方、商業的組版・デザイン製品を提供するベンダーは、自社の製品ばかりを売り込んで、フリープログラムよりも宣伝することに動機があります。当初、これらの製品は TeX のいくつかのフリーアルゴリズムを取り入れていました:特にクリューの学生らによって追加された行分割と語分割処理です。Frank Liang(フランク・リアン)氏は段落内の単語分割に関する博士論文を書き、そのコードは TeX エンジンに含まれ freely 利用可能です。
TUG の積極的なメンバーであるデヴィッド・ウォルデン氏(Dave Walden)は、「TeX の世界は常に、1980 年代半ば頃から登場し現在出版および印刷業界で無数のシステムとして存在している商業的デスクトップ・パブリッシングシステムとやや不調和だ」と指摘しました。
彼はさらに付け加えました。「おそらくそれは、商用プロジェクトを販売するための会社設立と、最終的に主要なオープンソース開発プロジェクトを開始することの違いに似ているでしょう。ただし、クリューが現在のやり方で仕組みを設定した際、"open source"という短语は存在しませんでした」。
未来展望
1991 年、LaTeX プロジェクトは正式に Leslie Lamport から LaTeX 2.09 の保守および開発を引き継ぎました。Frank Mittelbach(フランク・ミッテルバッハ)がドイツで率いるチームは、核心となるラージな群であり、世界中の開発者によって継続的に追加される多くのパッケージで現在使われているコアインフラストラクチャである LaTeX カーネルを大幅に拡張し、実質的に書き直しました。LaTeX2e という新しいバージョンの LaTeX は 1990 年代初頭にもたらされ、今日「LaTeX」としてインストール・使用されているバージョンです。
一方、ユーザー要件への対応として、TeX および関連プログラムのボランティア開発者は TeX エンジンそのものを拡張し、変更を容易にしました。複数の独立した取り組みにより 3 つの改良型エンジンが生み出されました:直接 TrueType および OpenType フォントを読み取る(XeTeX)、PostScript および PDF 出力を生成する(以前は独立したプログラム「dvips」を使用し、現在は拡張機能「pdfTeX」を通じて)、Unicode 入力を読み取る(LuaTeX および XeTeX)。LuaTeX は開発者がプログラミング言語 Lua を使用して TeX エンジンへの強力な拡張機能を記述することを可能にします。90 年代よりも桁違いに高速化したデスクトップコンピュータがあるため、大規模な拡張も可能です。これら 3 つの微調整型エンジンは現在利用されています。より長期的なプロジェクトである「LaTeX3」は、Mittelbach は言います、進行中です。
「最も古くから存続しているオープンソースプロジェクトの一つに何があるのか?」
「LaTeX は長期間わたって私たちの側に残り続けるでしょう。それは主に背後にある TeX エンジンの品質のおかげで、40 年を越えても他のソフトウェアによって超越されていません」と Mittelbach は言います。「科学書における執筆においては、数世代の学生および研究者の間での通用語であり続けています」。