Loading AI tools
マークアップ言語によるコンピュータ組版処理システムのひとつ ウィキペディアから
TeX(テフまたはテック[2]、読みについては#名称についてで詳述する)は、ドナルド・クヌース (Donald E. Knuth) が開発[3]し、広く有志による拡張などが続けられている組版処理システムである。
現在、削除の方針に従って、この項目の一部の版または全体を削除することが審議されています。 削除についての議論は、削除依頼の依頼サブページで行われています。削除の議論中はこのお知らせを除去しないでください。 依頼サブページはまだ作成されていません。雛型を利用して作成できます。 インクルード文 {{Wikipedia:削除依頼/TeX}} の 貼り付け先は Wikipedia:削除依頼/ログ/2024年9月19日 です。 内枠の中にあるメッセージはサブページが作成されると自動消去されます。消去されない場合は してください。 この項目の執筆者の方々へ: まだ削除が行われていない場合は、議論に参加し、削除の方針に該当するかどうか検討してください。また、本項目を既に編集されていた方は、自身の編集した記述内容を念のために控えておいてください。 |
この項目は著作権侵害が指摘され、現在審議中です。 審議の結果、該当する投稿以降の全ての版またはこのページ全体(すべての版)が削除される可能性があります。問題箇所の適切な差し戻しが行われていれば、削除の範囲は問題版から差し戻し直前の版までとなる可能性もあります。適切な差し戻しが行われていないと考えられる場合は、この版の編集や引用はしないで下さい。著作権上問題のない自分の投稿内容が削除される可能性のある方は、早めに控えを取っておいて下さい(詳しくはこちらの解説をお読み下さい)。 該当する投稿をされた方へ: ウィキペディアでは、著作権上問題のない投稿のみを受け付けることになっています。他人の著作物を使うときをお読み頂いた上で、審議にご協力をお願いします。自分の著作物を投稿されていた場合は削除依頼を出されたらをご覧下さい。 審議が終わるまで、このお知らせを除去しないでください。 (以下、著作権侵害の可能性がある箇所を取り除いた内容を暫定的に表示します。) |
作者 | Donald E. Knuth |
---|---|
初版 | 1978年 |
最新版 |
3.141592653
/ 2021年2月5日[1] |
リポジトリ | |
プログラミング 言語 | WEB |
対応OS | クロスプラットフォーム |
サポート状況 | 開発中 |
種別 | 組版処理 |
ライセンス | パーミッシブ・ライセンス |
公式サイト | The TeX Users Group (TUG) |
TeXは以下のようなメリットがある[4]:
スタンフォード大学のドナルド・クヌース教授(現在は退職)が、1976年に自身の著書 The Art of Computer Programming の改訂版の準備中に、鉛版により組版された (en:Hot metal typesetting) 旧版の職人仕事による美しさが、改訂版の当時の写植では再現できていないことに憤慨し、自分自身が心ゆくまで組版を制御するために開発を決意した。
クヌースはまず、伝統的な組版およびその関連技術に対する広範囲にわたる調査を行い、その調査結果を取り入れることで、商業品質の組版ができる、柔軟で強力な組版システムを開発した。それは技術と同時に芸術をも意味するギリシア語の言葉である、τέχνη(テクネ)から採られ“TeX”と名付けられた[5]。
当初の開発は本業である研究や教育の合間での作業であったが、クヌースには1978年に1年間のサバティカルがあったことから、その期間に集中して完成させる見込みであった。しかし実際には、同年に初版をリリースした後も改訂を続けることとなった。最終的に、「完成版」とされた系列であるバージョン3の最初のリリースは、実に1989年のことである。
TeXを他人が改造したり拡張したりした場合について、それを直接配布することをクヌースは許しておらず、change file というメカニズムを利用して差分を添付する、という形で行わなければならない(これは当時まだ diff と patch が一般的に広く使われていなかったことから、これもクヌースが開発したものである)。この制限はいわゆる「バザールモデル」であるとは多少言い難い所があるが、「オープンソースの定義」では(そのような制限との妥協の産物である)第4項により、差分等を添付した再配布を許しているならば、派生物の配布にそのような制限があってもよい、ということになっているため「オープンソースの定義」には合致している。
前述した開発期間の長さの理由の一つに、クヌースが徹底的にバグを探して潰していたから、ということも挙げられる。どのようなバグを修正したか、ということも記録しており、ある時期までのものについて解説と一覧が『文芸的プログラミング』の第10章と第11章に収録されている。そのため、残っているバグは少ないだろうとして、ジョーク好きのクヌースが、バグ発見者に対しては前回のバグ発見者の2倍の懸賞金を掛けている。この賞金は小切手(クヌース賞金小切手)で払われるが、貰っても記念に取っておくばかりなので、結局クヌースの出費はほとんどないという(とはいえやはりジョークかもしれないが、やめておけば良かった、というように取れることも書いている)。
クヌースは TeX のバージョン 3 を開発した際に、これ以上の機能拡張はしないことを宣言した。その後は不具合の修正のみがなされ、バージョン番号は 3.14, 3.141, 3.1415, … というように付けられている。これは更新の度に値が円周率に近づいていくようになっていて、クヌースの死の時点をもってバージョン π として、バージョンアップを打ち切るとのことである[注 1]。
クヌースは TeX の開発と同時に、TeX で利用するフォントを作成するためのシステムである METAFONT も開発した。こちらのバージョン番号は 2.71, 2.718, 2.7182, … というように、更新の度に値がネイピア数に近づいていくようになっている[注 2]。さらにクヌースは METAFONT を使って、欧文フォント Computer Modern も設計(デザイン)した。Computer Modern(cmと略されることもある)にはクヌース自身の欧文フォントに対する美的感覚が反映され、全くのプレーンな TeX ではデフォルトのフォントであるが、現在の多くの利用者は Times など伝統的な定番フォントを使うよう設定していることも多い。
TeX および METAFONT はまた、同様にクヌース自身が提唱する文芸的プログラミング (Literate Programming) の「ドキュメンテーションを主とし、コードはそれに付随する」スタイルによる大規模なプロジェクトの一例でもある。やはりクヌースによる文芸的プログラミングのためのシステム WEB の tangle により、そのようにして書かれている文芸的な「プログラム」の中から Pascal で書かれているコード部分が取り出され、コンパイルできるように編集し直されて何らかの Pascal の実装により処理される(大規模なコードのため、多くの Pascal 実装において1個以上のバグを見つけている、ともいわれる)。同様にして WEB の weave を通して得られるドキュメントを書籍にしたものが TeXbook と METAFONTbook である。Pascal が使われているのは開発にとりかかったのが古く、C言語が広く一般的になるより前だったこともあるが、近年ではC言語をターゲットとした WEB である WEB2C が使われることも多い。
(注)LaTeXとの違いはLaTeX参照。LaTeXにはTeXより便利な機能が多いため、TeXを使用しているといってもLaTeXを利用している、という場合がある。ちなみに、wikipedia上の数式は、Wikipediaサーバ上のLaTeXでSVG画像にしているものである。
製作者のドナルド・クヌースにより以下のように要請されている。
は ギリシア語: τέχνη「技術、芸術」に由来し、ギリシア文字の Τ(タウ)- Ε(イプシロン)- Χ(カイ)である。E を少し下げて、字間を詰めて書く。プレーンテキストなどそれができない場合には “TeX” と表記する(“TEX”や“Tex”と表記するのは誤り)。
前述のようにTeXの語はギリシャ文字に由来するため、X(χ)はギリシア語風に無声軟口蓋摩擦音 [x](日本語には無いが、ハやフの子音に近い)と発音するのが本来である[6]。TeXbook(TeXブック) でクヌースは、「コンピュータに向かって、息を吐きかけるように正しく発音すれば、端末は少しばかり曇るかもしれない。」[7]と、はく息の伴う発音であることを面白く書き表している。TeXのこの本来の読みをカタカナで表そうとすれば、テフやテッハのようになる。
英語においては、[ˈtɛk](テクまたはテック)と読まれる。これは、(多くの方言で)音素 /x/も音声[x]も存在せず、代わりに [k] が使われ、τέχνη に由来する英語: technical が [ˈtɛk.nɪk.əl] と読むためである。 TeXbookの邦訳出版など日本における TeX の普及に大きく関与したアスキー編集者鈴木嘉平によれば、クヌース自身も、英語による講演の中でテックと発音していたとされる[8]。(もちろんこのことは、本来の発音についてのクヌースによる記述と矛盾するわけではない。)
日本語では、テフまたはテックと読まれる。テフは本来のギリシア語読みから、テックは英語読みからそれぞれ来ている。TeXのXの読みについては、元々特殊な表記であることや、クヌースの発音が[k]に聞こえること、アスキー編集者鈴木嘉平がそれを元にブログ記事「TeXはテック」[9]を書いたことなどから、混乱があった[10][11]。鈴木は当該記事において、当時「実際の発音はテックである。テフではない。Knuthは明瞭にテックと発音している。」とテフの読みを否定までもする編集部注を付けたとしながら、「これが正しかったのかどうか、今でも疑問を感じる。どうすればよかったのだろう?」と振り返っている。
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、数学的文書用の AmS-TeX などがある。一般の使用者は、TeX を直接使うよりも、TeX に何らかのマクロパッケージを読み込ませたものを使うことの方が多い。
TeX の用途を拡張したマクロパッケージとして、他に次のようなものがある。
TeX とそれに関連するプログラム、および TeX のマクロパッケージなどは CTAN(Comprehensive TeX Archive Network、包括 TeX アーカイブネットワーク)[19]からダウンロードできる。
たとえば
-b\pm \sqrt{b^2 -4ac} \over 2a
は以下のように表示される。
また、
f(a,b)=\int_a^b \frac{1+x}{a+x^2 +x^3} \, dx
は以下のように表示される。
日本語組版処理のできる日本語版の TeX および LaTeX には、アスキーによる pTeX および pLaTeX と、NTT の斉藤康己による NTT JTeX[注 3]および磯崎秀樹による NTT JLaTeX などがある。
TeX の日本語対応において技術的に最も大きな課題は、マルチバイト文字への対応である。pTeX(および前身の日本語 TeX)は、JIS X 0208 を文字集合とした文字コード(ISO-2022-JP、EUC-JP、および Shift_JIS)を直接扱う。DVI フォーマットは元々16ビット以上の文字コードを格納できる仕様が含まれていた。しかしオリジナルの英語版では使われていなかったため、既存プログラムの多くは pTeX が出力する DVI ファイルを処理できない。またフォントに関係するファイルフォーマットが拡張されている。これに対して NTT JTeX は、複数の1バイト文字セットに分割することで対応している。たとえば、ひらがなとカタカナは内部的には別々の1バイト文字セットとして扱われる。このためにオリジナルの英語版からの変更が小さく、移植も比較的容易である。ファイルフォーマットが同じなので英語版のプログラムで DVI ファイル等を処理することもできる。しかし後述するフォントのマッピングの問題があるため、実際には多くの使用者が NTT JTeX 用に拡張されたプログラムを使っている。
使用する日本語用フォントについては pTeX が写研フォントの使用を、NTT JTeX が大日本印刷フォントの使用を前提としており、それぞれフォントメトリック情報(フォントの文字寸法の情報)をバンドルして配布している。しかし有償であるこれらのフォントのグリフ情報を持っていなくても、画面表示や印刷の際に使用者が利用できる他の日本語用フォントで代用することができる。つまり写研フォントや大日本印刷フォントのフォントメトリック情報を用いて文字の位置を固定し、画面表示や個人ユースの安価なプリンタによるプレビュー印刷には他の日本語用フォントを用い、業者などによる最終的な出力では商用フォントを使用して目的の仕上がりを得る、といったことも可能である。このため日本語化された TeX 関係プログラムのほとんどは、画面表示や印刷で実際に使うフォントを選択できるように、フォントのマッピング(対応付け)を定義する機能を持っている。
歴史的には、アスキーが日本語 TeX の PC-9800 シリーズ対応版を販売したために個人の使用者を中心に普及した。一方、NTT JTeX は元の英語版プログラムからの変更が比較的小さいという利点を受けて、Unix系OSを使う大学や研究機関の関係者を中心に普及した。
しかし現在では次に挙げる理由から、日本語対応 TeX として pTeX が使われていることが多い。
TeX による組版の作業工程は、通常次のようになる。
tex FileName.tex
” などと入力して TeX を起動し、DVI ファイルを生成させる。
この間、作業工程が変わるたびにそれぞれのプログラムを切り替えたり、扱う文書が大きいと章ごとにソースファイルを分割して管理したりと、比較的煩雑な作業を伴う。そのため、この工程に係わる各種のプログラムやソースファイルの管理を一元的に行う TeX 用の統合環境(TeXworks や TeXShop など)がいくつか作成されている。
GUI は PC の普及に一役買ったが、それとともに TeX などのコマンドラインインタプリタに不慣れな PC 利用者が増加した。そのために、GUI に特化した TeX 用統合環境が LyX[26]などいくつか作成されている。
この節の加筆が望まれています。 |
有名な TeX コミュニティの一つは TeX Users Group (TUG) であり、TUGboat[44]や The PracTeX Journal[45](TPJ) を出版している。Deutschsprachige Anwendervereinigung TeX[46]はドイツの大きなユーザーグループである。tex.stackexchange.com[47]は TeX ユーザーのための質問・回答サイトである。
TeX ユーザの集いは、日本で2009年以降毎年開かれている TeX の研究集会であり、TeX や組版・出版など関する知見の共有や、TeX ユーザーの相互交流を目的としている[48][49]。ただし2013年は、TUG 2013 が東京で開催され、TeX ユーザの集いは開催されなかった[50]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.