TeX



















































TeX

The TeX logo
作者
Donald E. Knuth
初版
1978年(41年前) (1978
最新版
3.14159265 / 2014年1月7日(5年前) (2014-01-07[1]
リポジトリ
www.tug.org/svn/texlive/
プログラミング言語
WEB
対応OS
クロスプラットフォーム
サポート状況
開発中
種別
組版処理
ライセンス
Permissive(英語版)
公式サイト
TeX Users Group (TUG) home page
テンプレートを表示

TeX(TeX; テック、テフ)はアメリカ合衆国の数学者・計算機科学者であるドナルド・クヌース (Donald E. Knuth) により開発されている組版処理システムである。




目次






  • 1 概要


  • 2 名称について


    • 2.1 表記


    • 2.2 読み方




  • 3 機能


  • 4 数式の表示例


  • 5 TeX の日本語化


  • 6 TeX による組版の作業工程


    • 6.1 GUI 環境と TeX




  • 7 関連ソフトウェア


  • 8 コミュニティ


  • 9 脚注


    • 9.1 補足


    • 9.2 出典




  • 10 参考文献


  • 11 関連項目


  • 12 外部リンク





概要


アメリカ合衆国の数学者ドナルド・クヌースが1976年、自身の著書 The Art of Computer Programming の改訂版の準備中に、旧版の鉛版による組版 (en:Hot metal typesetting) の職人仕事による美しさが当時の写植では再現できていないことに憤慨し、自分自身が心ゆくまで組版を制御するために開発を決意した。


クヌースはまず、伝統的な組版およびその関連技術に対する広範囲にわたる調査を行い、その調査結果を取り入れることで、商業品質の組版ができる、柔軟で強力な組版システムを開発した。それは技術と同時に芸術をも意味する言葉である、ギリシア語: τέχνη(テクネ)から採られ“TeX”と名付けられた[2]


当初は1978年のサバティカル中に完了させる予定であり、実際に同年に初版をリリースしたもののその後も改訂を続け、後述する「完成版」であるバージョン3が最初にリリースされたのは実に1989年のことであった。




クヌースの賞金小切手(一部ボカシ入)


TeXのライセンスはオープンソースの定義に合致しており[要出典](正確には逆で、TeXを「オープンソース」に含めるために、Debianフリーソフトウェアガイドライン及びOSDの第4項が示している例外規定「差分による修正を許しているならば、ソースコードの改変を禁じていてもよい」が追加された[要出典]のであって、もしTeXが無かったらそのような例外規定が存在していたかどうかは甚だ怪しい[誰?])、誰でも改良を加えることができる。その改良版の配布も、TeX と明らかに区別できる名称にさえすれば許される。また、TeX は非常にバグが少ないソフトウェアとしても有名で、ジョーク好きのクヌースが、バグ発見者に対しては前回のバグ発見者の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 が使われることも多い。



名称について


製作者のドナルド・クヌースにより以下のように要請されている。



表記


TeX は ギリシア語: τέχνη「技術、芸術」に由来し、ギリシア文字の Τ(タウ)- Ε(イプシロン)- Χ(カイ)である。E を少し下げて、字間を詰めて書く。プレーンテキストなどそれができない場合には “TeX” と表記する(“TEX”や“Tex”と表記するのは誤り)。



読み方


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



機能


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 の用途を拡張したマクロパッケージとして、他に次のようなものがある。




  • BibTeX - 参考文献リストの作成に用いる。


  • SLiTeX - プレゼンテーション用スライドの作成に用いる[4]


  • AmS-LaTeX - 数学的な文書の記述に強い AmS-TeX の機能と LaTeX の機能を併せ持つ[5][6]


  • XϒMTeX - 化学構造式の描画に用いる[7][8]


  • MusiXTeX - 楽譜の記述に用いる[9][10]


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



数式の表示例


たとえば


-bpm sqrt{b^2 -4ac} over 2a

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


b2−4ac2a{displaystyle -bpm {sqrt {b^{2}-4ac}} over 2a}{-bpm {sqrt {b^{2}-4ac}} over 2a}

また、


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

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


f(a,b)=∫ab1+xa+x2+x3dx{displaystyle f(a,b)=int _{a}^{b}{frac {1+x}{a+x^{2}+x^{3}}},dx}{displaystyle f(a,b)=int _{a}^{b}{frac {1+x}{a+x^{2}+x^{3}}},dx}


TeX の日本語化


日本語組版処理のできる日本語版の TeX および LaTeX には、アスキー・メディアワークスによる pTeX および pLaTeX と、NTT の斉藤康己による NTT JTeX[注 4]および 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 が使われていることが多い。




  • Unix系OS用の主な日本語対応 TeX 配布形態である ptexlive[12]や ptetex3[13][14]pTeX のみを採用している。


  • Microsoft Windows 用の主な日本語対応 TeX 配布形態である W32TeX[15]pTeX を扱える(NTT JTeX も扱える)。


  • pTeX の扱い方を解説する文献の方が、NTT JTeX のものに比べて、出版物と Web 上文書の両方で多い。


  • pTeX は縦組みにも対応しているが、NTT JTeX は対応していない。



TeX による組版の作業工程


TeX による組版の作業工程は、通常次のようになる。



  1. 文章に組版用命令文を織り込んだテキストファイルである、tex ファイルを作成する(テキストエディタなどで)。


  2. OS のコマンドラインから “tex FileName.tex” などと入力して TeX を起動し、DVI ファイルを生成させる。
    • ソースファイルにエラーがあれば、修正して再度 TeX を起動する。


  3. DVI 命令文を解するソフトウェア(DVI ウェア)を用いて組版結果を表示し、確認する。

    • DVI ウェアには xdvi / xdvik や dviout[16][17]などの DVI ヴューア、Dvips(k) や dvipdfm / DVIPDFMx などのファイル形式変換ソフトウェアなどがある[注 5]

    • DVI ファイルを DVI ビューアで画面表示または印刷する、あるいは PDF や PostScript に変換して画面表示または印刷することで、組版結果を確認する。

    • 修正の必要があれば、ソースファイルを修正して再度DVIファイルを作成、確認する。




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



GUI 環境と TeX


GUI は PC の普及に一役買ったが、それとともに TeX などのコマンドラインインタプリタに不慣れな PC 利用者が増加した。そのために、GUI に特化した TeX 用統合環境が LyX[18] などいくつか作成されている。



関連ソフトウェア



  • DVI ウェア

    • xdvi/xdvik, dviout for Windows, Dvips(k), dvipdfm / DVIPDFMx など。


  • TeX 文書の文献管理のための BibTeX や索引作成のための MakeIndex[19]

  • 機能拡張版 TeX

    • pdfTeX, ConTeXt, ε-TeX[20], XǝTeX など。



  • Unicode をベースとした多言語拡張版 TeX
    • Omega[21](lambda), Aleph[22] (lamed) など。



  • Kile, TeXShop[23][24], EasyTeX[25], WinShell などの統合環境や、TeXmacs[26][27], LyX などの GUI フロントエンド。


  • TeX Live[28][29]や teTeX[30][31]などの TeX 配布形態や、mimeTeX[32][33]などの TeX サブセット。


  • Textext[34]、InkLaTeX[35]などの Inkscape への TeX プラグイン。


  • KETpic - Maxima 上、Scilab 上、Mathematica 上、および Maple 上で TeX 描画コードである tpic specials を生成するマクロパッケージ


  • MathType version 6.5 以降では、Microsoft Word 上に書かれた TeX の命令文を直接数式に変換できるようになった。現時点では PowerPoint 上での TeX の命令文による直接的な数式編集はできない。



コミュニティ








TeX Users Group のロゴ


有名な TeX コミュニティの一つは TeX Users Group (TUG) であり、TUGboat(英語版)[36]The PracTeX Journal(英語版)[37] (TPJ) を出版している。Deutschsprachige Anwendervereinigung TeX(英語版)[38] はドイツの大きなユーザーグループである。tex.stackexchange.com[39] は TeX ユーザーのための質問・回答サイトである。


TeX ユーザの集いは、日本で2009年以降毎年開かれている TeX の研究集会であり、TeX や組版・出版など関する知見の共有や、TeX ユーザーの相互交流を目的としている[40][41]。ただし2013年は、TUG 2013 が東京で開催され、TeX ユーザの集いは開催されなかった[42]



脚注


[ヘルプ]


補足





  1. ^ 2016年10月1日現在のバージョンは 3.14159265 である。


  2. ^ 2016年10月1日現在のバージョンは 2.7182818 である。


  3. ^ なお、TeXbook の翻訳版出版元であるアスキーの編集者だった鈴木嘉平によれば、アスキー社内では「テック」と読んでいたが、先輩編集者によれば(fuで発音する)「テフ」ではないとはっきり書いておかなかったのが原因で、日本には「テフ」が広まってしまった、という (http://www.kahei.org/2014/04/tex.html )。


  4. ^ NTT JTeX は千葉大学の櫻井貴文によって UNIX システムに移植され、メンテナンスされている。現在、「Software by Takafumi SAKURAI」で公開されている。


  5. ^ 各 DVI ウェアの間には DVI ファイルの解釈・表示について互換性がない場合がある。特に、ある DVI ウェアに依存したパッケージをソースファイルに用いるなどして、その DVI ウェア用の専用命令文 (special) を埋め込んで作成した DVI ファイルは、当然ながらその専用命令文を解釈可能な DVI ウェアでなければ画面表示・印刷などが正しくできない。




出典





  1. ^ “CTAN: Package TeX”. CTAN. 2017年5月6日閲覧。


  2. ^ Knuth 1984.


  3. ^ Knuth 1984, p. 1, Ch. 1: The Name of the Game.


  4. ^ The TeX Catalogue OnLine, Entry for slides, Ctan Edition(Ring Server によるミラーリング)


  5. ^ AMS-LaTeX — American Mathematical Society


  6. ^ The TeX Catalogue OnLine, Entry for amslatex, Ctan Edition(Ring Server によるミラーリング)


  7. ^ XyMTeX 化学構造式描画システム


  8. ^ The TeX Catalogue OnLine, Entry for XyMTeX, Ctan Edition(Ring Server によるミラーリング)


  9. ^ Werner Icking Music Archive: MusiXTeX Files


  10. ^ The TeX Catalogue OnLine, Entry for MusiXTeX, Ctan Edition(Ring Server によるミラーリング)


  11. ^ the Comprehensive TeX Archive Network


  12. ^ ptexlive Wiki


  13. ^ ptetex—teTeX 用日本語パッチ集


  14. ^ ptetex Wiki


  15. ^ W32TeX(日本語)


  16. ^ dviout/dviprt 開発室 — Oshima Laboratory


  17. ^ The TeX Catalogue OnLine, Entry for dviout, Ctan Edition(Ring Server によるミラーリング)


  18. ^ LyX


  19. ^ The TeX Catalogue OnLine, Entry for MakeIndex, Ctan Edition(Ring Server によるミラーリング)


  20. ^ The TeX Catalogue OnLine, Entry for etex, Ctan Edition(Ring Server によるミラーリング)


  21. ^ The TeX Catalogue OnLine, Entry for Omega, Ctan Edition(Ring Server によるミラーリング)


  22. ^ The TeX Catalogue OnLine, Entry for aleph, Ctan Edition(Ring Server によるミラーリング)


  23. ^ TeXShop — Richard Koch


  24. ^ The TeX Catalogue OnLine, Entry for TeXShop, Ctan Edition(Ring Server によるミラーリング)


  25. ^ TeX 入門 #EasyTeX — 中川 仁


  26. ^ Welcome to GNU TeXmacs (FSF GNU project)


  27. ^ The TeX Catalogue OnLine, Entry for TeXmacs, Ctan Edition(Ring Server によるミラーリング)


  28. ^ TeX Live — TeX Users Group


  29. ^ The TeX Catalogue OnLine, Entry for texlive, Ctan Edition(Ring Server によるミラーリング)


  30. ^ The teTeX Homepage


  31. ^ The TeX Catalogue OnLine, Entry for teTeX, Ctan Edition(Ring Server によるミラーリング)


  32. ^ mimeTeX quickstart


  33. ^ The TeX Catalogue OnLine, Entry for mimeTeX, Ctan Edition(Ring Server によるミラーリング)


  34. ^ Textext — Pauli Virtanen


  35. ^ Inkscape de LaTeX


  36. ^ TUGboat - Communications of the TeX Users Group


  37. ^ The PracTeX Journal home page


  38. ^ Dante e.V.


  39. ^ tex.stackexchange.com


  40. ^ TeX ユーザの集い2009


  41. ^ TeX ユーザの集い2015


  42. ^ TUG 2013 - TeX Users Group




参考文献



  • 奥村晴彦 『LaTeX2ε 美文書作成入門』 技術評論社、2010年、改訂第5版。ISBN 978-4-7741-4319-4。

  • 『TeX 入門』 大野義夫 編、共立出版、1989年。ISBN 978-4320024885。


  • Knuth, Donald Ervin (1984), The TeXbook, Computers and Typesetting, A, Reading, MA: Addison-Wesley, ISBN 0-201-13448-9 



関連項目
















  • Publishing TeX (pTeX)

  • LaTeX

  • pdfTeX

  • LuaTeX

  • XǝTeX

  • ConTeXt

  • MathJax

  • DVI (ファイルフォーマット)


  • ドナルド・クヌース (Donald Ervin Knuth)



外部リンク







  • Don Knuth's Home Page

  • TeX Users Group (TUG) home page


  • the Comprehensive TeX Archive Network (CTAN)


  • TeX Wiki - TeX に関する日本語ウィキサイト








Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

Npm cannot find a required file even through it is in the searched directory