TeX

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
TeX
The TeX logo
作者 Donald E. Knuth
初版 1978年(38年前) (1978
最新版 3.14159265 / 2014年1月(2年前) (2014-01
プログラミング言語 WEB
対応OS クロスプラットフォーム
種別 組版処理
ライセンス Permissive英語版
公式サイト tug.org
テンプレートを表示

TeX(読み方は後述)は数学者計算機科学者であるドナルド・クヌース (Donald E. Knuth) により開発されている組版処理システムである。

名称について[編集]

製作者であるクヌースによって以下のように要請されている。

表記[編集]

正しくは “TeX” (\TeX) と表記する。それができない場合には “TeX” と表記する(“TEX” と表記するのは誤り)。

読み方[編集]

TeXギリシア文字の Τ-Ε-Χ(タウイプシロンカイ)であり、ギリシア語: τέχνη「技術、美術」に由来するため、英語によるアルファベット X の読み方である「エックス」(/ˈɛks/) のように読むのではなく、ギリシア語風に無声軟口蓋摩擦音 /x/(ドイツ語の ach-lautch)で /tex/ と発音するのが本来である[1]TeXbook では、そのように正しく発音するとコンピュータの端末(のCRTディスプレイ)が、呼気でちょっと曇る、と冗談が書かれている。なお、実際のところ発音者の母語にもよるが、そのような「正しい」発音は難しいので、古代ギリシャ語風に[tekh](hは有気音)と読んでも構わないなどとも言っている[誰?]。英語においては、多くの方言で音素 /x/ が存在せず代わりに /k/ が使われること、τέχνη に由来する英語: technical/ˈtɛk.nɪk.əl/ と読むことから /ˈtɛk/ と読まれる。ドイツ語では /ɛ/前舌母音であることから ich-laut の発音になり、/ˈtɛç/ である。日本ではどれもカタカナで表現するのが難しいため「テック」ないし「テフ」と書かれる。ドイツ語の ch をハ行で表現することもあるので間違いとは言い切れないものの、あえてローマ字で書くなら hu であり、日本語の「ファ行のフ」である無声両唇摩擦音/ɸ/(ローマ字で fu)ではない[2]

機能[編集]

TeXマークアップ言語のスタイルをとっている。すなわち、文章そのもの(テキスト)と文章の構造を指定する命令(コントロールシーケンス)が記述されたテキストファイルを読み込み、そこに書かれた命令により文章を組版し、組版結果を DVI 形式のファイルに書き出す。DVI 形式とは、装置に依存しない (device-independent) 中間形式のことである。処理系は多機能で、チューリング完全である。

DVIファイルには紙面のどの位置にどの文字を配置するかといった情報が書き込まれている。実際に紙に印刷したりディスプレイ上に表示したりするためには、DVI ファイルを解釈する別のソフトウェアが用いられる。DVI ファイルを扱うソフトウェアとして、各種のビューワや PostScript など他のページ記述言語へのトランスレータ、プリンタドライバなどが利用されている。

組版処理については、行分割およびページ分割位置の判別、ハイフネーションリガチャ、およびカーニングなどを自動で処理でき、その自動処理の内容も種々のパラメータを変更することによりカスタマイズできる。数式組版についても、多くの機能が盛り込まれている。TeX が文字などを配置する精度は 25.4 / (72.27 × 216) mm(約 5.363 nm、4,736,286.72 dpi)である。

TeX の扱う命令文の中には、組版に直接係わる命令文の他に、新しい命令文を定義するための命令文もある。こうした命令文はマクロと呼ばれ、TeXユーザー独自の改良により、種々のマクロパッケージが配布されている。

比較的よく知られている TeX 上のマクロパッケージには、クヌース自身による plain TeX、一般的な文書記述に優れた LaTeX (LaTeX)、数学的文書用の AmS-TeX などがある。一般の使用者は、TeX を直接使うよりも、TeX に何らかのマクロパッケージを読み込ませたものを使うことの方が多い。そのため、これらのマクロパッケージのことも “TeX” と呼ぶ場合があるが、本来は誤用である。

TeX の用途を拡張したマクロパッケージとして、他に次のようなものがある。

TeX とそれに関連するプログラム、および TeX のマクロパッケージなどは CTANComprehensive TeX Archive Network、包括 TeX アーカイブネットワーク)[10]からダウンロードできる。

数式の表示例[編集]

たとえば

-b\pm \sqrt{b^2 -4ac} \over 2a

は以下のように表示される。

-b\pm \sqrt{b^2 -4ac} \over 2a

また、

f(a,b)=\int_a^b \frac{1+x}{a+x^2 +x^3} dx

は以下のように表示される。

f(a,b)=\int_a^b\frac{1+x}{a+ x^2 + x^3}dx

生い立ち[編集]

TeX は、クヌースが自身の著書 The Art of Computer Programming の改訂版の準備中(1976年)に、旧版の鉛版による組版 (en:Hot metal typesetting) の職人仕事による美しさが、当時の写植では再現できていない、と憤慨し、自分自身で心ゆくまで組版を制御するために開発を決意した。まず、伝統的な組版およびその関連技術に対する広範囲にわたる調査を行い、その調査結果を取り入れることで、TeX は商業品質の組版ができる柔軟で強力な組版システムになった。当初は1978年のサバーティカル休暇中に全て完了させる予定だったが、実際には同年に最初の版をリリースしたもののその後も改訂を続け、後述する「完成版」であるバージョン3が最初にリリースされたのは実に1989年のことであった。

TeXフリーソフトウェアであり、ソースコードも公開されていて、誰でも改良を加えることができる。その改良版の配布も、TeX と区別できるような別名を付けさえすれば許される。また、TeX は非常にバグが少ないソフトウェアとしても有名で、ジョーク好きのクヌースが、バグ発見者に対しては前回のバグ発見者の2倍の懸賞金を掛けるほどである。この賞金は小切手で払われるのだが、貰った人は記念に取っておく人ばかりなので、結局クヌースの出費はほとんど無いという。

クヌースは TeX のバージョン 3 を開発した際に、これ以上の機能拡張はしないことを宣言した。その後は不具合の修正のみがなされ、バージョン番号は 3.14, 3.141, 3.1415, … というように付けられている。これは更新の度に数字が円周率に近づいていくようになっていて、クヌースの死の時点をもってバージョン π として、バージョンアップを打ち切るとのことである[11]

クヌースは TeX の開発と同時に、TeX で利用するフォントを作成するためのシステムである METAFONT も開発した。こちらのバージョン番号は 2.71、2.718、2.7182、... というように、更新のたびに数字がネイピア数に近づいていくようになっている[12]。さらにクヌースは METAFONT を使って、TeX の初期設定欧文フォントである Computer Modern のデザインも行った。

TeX および METAFONT はまた、同様にクヌース自身が提唱する文芸的プログラミング (Literate Programming) の「ドキュメンテーションを主とし、コードはそれに付随する」スタイルによる大規模なプロジェクトの一例でもある。やはりクヌースによる文芸的プログラミングのためのシステム WEB の tangle により、そのようにして書かれている文芸的な「プログラム」の中から Pascal で書かれているコード部分が取り出され、コンパイルできるように編集し直されて何らかの Pascal の実装により処理される(大規模なコードのため、多くの Pascal 実装において1個以上のバグを見つけている、ともいわれる)。同様にして WEB の weave を通して得られるドキュメントを書籍にしたものが TeXbook と METAFONTbook である。Pascal が使われているのは開発にとりかかったのが古く、C言語が広く一般的になるより前だったこともあるが、近年ではC言語をターゲットとした WEB である WEB2C が使われることも多い。

TeX の日本語化[編集]

日本語組版処理のできる日本語版の TeX および LaTeX には、アスキー・メディアワークスによる pTeX (pTeX) および pLaTeX (pLaTeX) と、NTT の斉藤康己による NTT JTeX (NTT JTeX)[13]および NTT JLaTeX (NTT JLaTeX) などがある。

TeX の日本語対応において技術的に最も大きな課題は、複数バイト文字コードへの対応である。pTeX(および前身の日本語 TeX)は、JIS X 0208文字集合とした文字コード(ISO-2022-JPEUC-JP、および Shift_JIS)を直接扱う。DVI フォーマットは元々16ビット以上の文字コードを格納できる仕様が含まれていた。しかしオリジナルの英語版では使われていなかったため、既存プログラムの多くは pTeX が出力する DVI ファイルを処理できない。またフォントに関係するファイルフォーマットが拡張されている。これに対して NTT JTeX は、複数の1バイト文字セットに分割することで対応している。たとえば、ひらがなとカタカナは内部的には別々の1バイト文字セットとして扱われる。このためにオリジナルの英語版からの変更が小さく、移植も比較的容易である。ファイルフォーマットが同じなので英語版のプログラムで DVI ファイル等を処理することもできる。しかし後述するフォントのマッピングの問題があるため、実際には多くの使用者が NTT JTeX 用に拡張されたプログラムを使っている。

使用する日本語用フォントについては pTeX写研フォントの使用を、NTT JTeX大日本印刷フォントの使用を前提としており、それぞれフォントメトリック情報(フォントの文字寸法の情報)をバンドルして配布している。しかし有償であるこれらのフォントのグリフ情報を持っていなくても、画面表示や印刷の際に使用者が利用できる他の日本語用フォントで代用することができる。つまり写研フォントや大日本印刷フォントのフォントメトリック情報を用いて文字の位置を固定し、画面表示や印刷には他の日本語用フォントを用いていることが可能である。このため日本語化された TeX 関係プログラムのほとんどは、画面表示や印刷で実際に使うフォントを選択できるように、フォントのマッピング(対応付け)を定義する機能を持っている。

歴史的には、アスキーが日本語 TeXPC-9800 シリーズ対応版を販売したために個人の使用者を中心に普及した。一方、NTT JTeX は元の英語版プログラムからの変更が比較的小さいという利点を受けて、Unix系OS を使う大学や研究機関の関係者を中心に普及した。

しかし現在では次に挙げる理由から、日本語対応 TeX として pTeX が使われていることが多い。

  • Unix系OS 用の主な日本語対応 TeX 配布形態である ptexlive[14]や ptetex3[15][16]pTeX のみを採用している。
  • Microsoft Windows 用の主な日本語対応 TeX 配布形態である W32TeX[17]pTeX を扱える(NTT JTeX も扱える)。
  • pTeX の扱い方を解説する文献の方が、NTT JTeX のものに比べて、出版物と Web 上文書の両方で多い。
  • pTeX縦組みにも対応しているが、NTT JTeX は対応していない。

TeX による組版の作業工程[編集]

TeX を利用して組版を行うには、通常次のような作業工程を取る。

  1. テキストエディタなどを用いて、文章に組版用命令文を織り込んだソースファイルを作成する。
  2. OSコマンドラインから “tex FileName.tex” などと入力して TeX を起動し、DVI ファイルを生成させる。
    • ソースファイルにエラーがあれば、修正して再度TeXを起動する。
  3. DVI ウェアとよばれる DVI 命令文を解するソフトウェアを用いて組版結果を表示し、確認する。

この間、作業工程が変わるたびにそれぞれのプログラムを切り替えたり、扱う文書が大きいと章ごとにソースファイルを分割して管理したりと、比較的煩雑な作業を伴う。そのため、この工程に係わる各種のプログラムやソースファイルの管理を一元的に行う TeX 用の統合環境がいくつか作成されている。

GUI 環境と TeX[編集]

GUIPC の普及に一役買ったが、同時に GUI しか触ったことのないPC利用者が増加した。そのような利用者が、コマンドラインでの操作を余儀なくされる TeX を非常に扱いづらく感じてしまうのは否めないことである。このため、GUI に特化した TeX統合環境もいくつか作成されている[21]

関連ソフトウェア[編集]

参考文献[編集]

脚注[編集]

[ヘルプ]
  1. ^ Donald E. Knuth, The TeXbook, Ch. 1: The Name of the Game, p. 1.
  2. ^ なお、TeXbook の翻訳版出版元であるアスキーの編集者だった鈴木嘉平によれば、アスキー社内では「テック」と読んでいたが、先輩編集者によれば(fuで発音する)「テフ」ではないとはっきり書いておかなかったのが原因で、日本には「テフ」が広まってしまった、という (http://www.kahei.org/2014/04/tex.html )。
  3. ^ The TeX Catalogue OnLine, Entry for slides, Ctan EditionRing Server によるミラーリング
  4. ^ AMS-LaTeX — American Mathematical Society
  5. ^ The TeX Catalogue OnLine, Entry for amslatex, Ctan EditionRing Server によるミラーリング
  6. ^ XyMTeX 化学構造式描画システム
  7. ^ The TeX Catalogue OnLine, Entry for XyMTeX, Ctan EditionRing Server によるミラーリング
  8. ^ Werner Icking Music Archive: MusiXTeX Files
  9. ^ The TeX Catalogue OnLine, Entry for MusiXTeX, Ctan EditionRing Server によるミラーリング
  10. ^ the Comprehensive TeX Archive Network
  11. ^ 2014年1月26日現在のバージョンは 3.14159265。
  12. ^ 2014年1月26日現在のバージョンは 2.7182818。
  13. ^ NTT JTeX千葉大学の櫻井貴文によって UNIX システムに移植され、メンテナンスされている。現在、「Software by Takafumi Sakurai」で公開されている。
  14. ^ ptexlive Wiki
  15. ^ ptetex—teTeX 用日本語パッチ集
  16. ^ ptetex Wiki
  17. ^ W32TeX (Japanese page)
  18. ^ dviout/dviprt 開発室 — Oshima Laboratory
  19. ^ The TeX Catalogue OnLine, Entry for dviout, Ctan EditionRing Server によるミラーリング
  20. ^ 各 DVI ウェアの間には DVI ファイルの解釈・表示について互換性がない場合がある。特に、ある DVI ウェアに依存したパッケージをソースファイルに用いるなどして、その DVI ウェア用の専用命令文 (special) を埋め込んで作成した DVI ファイルは、当然ながらその専用命令文を解釈可能な DVI ウェアでなければ画面表示・印刷などが正しくできない。
  21. ^ 代表的なアプリケーションにLyXなどがある
  22. ^ The TeX Catalogue OnLine, Entry for MakeIndex, Ctan EditionRing Server によるミラーリング
  23. ^ The TeX Catalogue OnLine, Entry for etex, Ctan EditionRing Server によるミラーリング
  24. ^ The TeX Catalogue OnLine, Entry for Omega, Ctan EditionRing Server によるミラーリング
  25. ^ The TeX Catalogue OnLine, Entry for aleph, Ctan EditionRing Server によるミラーリング
  26. ^ TeXShop — Richard Koch
  27. ^ The TeX Catalogue OnLine, Entry for TeXShop, Ctan EditionRing Server によるミラーリング
  28. ^ TeX 入門 #EasyTeX — 中川 仁
  29. ^ Welcome to GNU TeXmacs (FSF GNU project)
  30. ^ The TeX Catalogue OnLine, Entry for TeXmacs, Ctan EditionRing Server によるミラーリング
  31. ^ TeX Live — TeX Users Group
  32. ^ The TeX Catalogue OnLine, Entry for texlive, Ctan EditionRing Server によるミラーリング
  33. ^ The teTeX Homepage
  34. ^ The TeX Catalogue OnLine, Entry for teTeX, Ctan EditionRing Server によるミラーリング
  35. ^ mimeTeX quickstart
  36. ^ The TeX Catalogue OnLine, Entry for mimeTeX, Ctan EditionRing Server によるミラーリング
  37. ^ Textext — Pauli Virtanen
  38. ^ Inkscape de LaTeX

関連項目[編集]

外部リンク[編集]