For faster navigation, this Iframe is preloading the Wikiwand page for TeX.

TeX

TeX
The TeX logo
作者 Donald E. Knuth
初版 1978年 (46年前) (1978)
最新版
3.141592653 / 2021年2月5日 (3年前) (2021-02-05)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
WEB
対応OS クロスプラットフォーム
サポート状況 開発中
種別 組版処理
ライセンス パーミッシブ・ライセンス
公式サイト The TeX Users Group (TUG)
テンプレートを表示

TeXテックまたはテフ[2]、読みについては#名称についてで詳述する)は、ドナルド・クヌース (Donald E. Knuth) が開発[3]し、広く有志による拡張などが続けられている組版処理システムである。

概要

[編集]

TeXの特徴

[編集]

TeXは以下のようなメリットがある[4]

TeXの成立

[編集]

スタンフォード大学のドナルド・クヌース教授(現在は退職)が、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画像にしているものである。

名称について

[編集]

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

表記

[編集]

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

読み方

[編集]

英語のアルファベット X(エックス、/ˈɛks/)として読むのではなく、ギリシア語風に無声軟口蓋摩擦音 /x/(ドイツ語の ach-lautch)で /tex/ と発音するのが本来である[6]TeXbook では、そのように正しく発音するとコンピュータの端末(のCRTディスプレイ)が、呼気でちょっと曇る、と冗談が書かれている(CRTディスプレイが曇るという冗談はともかく、その発音が呼気を伴うものであるのは確か)。

英語においては、多くの方言で音素 /x/ が存在せず代わりに /k/ が使われること、τέχνη に由来する英語: technical/ˈtɛk.nɪk.əl/ と読むことから /ˈtɛk/ と読まれる。

ドイツ語では /ɛ/前舌母音であることから ich-laut の発音になり、/ˈtɛç/ である。

日本ではどれもカタカナで表現するのが難しいため「テック」ないし「テフ」と書かれる。ドイツ語の ch をハ行で表現することもあるので間違いとは言い切れないものの、あえてローマ字で書くなら hu であり、日本語の「ファ行のフ」である無声両唇摩擦音 /ɸ/(ローマ字で fu)ではない。

TeXbookの邦訳出版など日本における TeX の普及に大きく関与した、アスキーの編集者だった)鈴木嘉平の曰く「アスキー社内では『テック』と読んでいたが、先輩編集者によれば(fuで発音する)『テフ』ではないとはっきり書いておかなかったのが原因で、日本には『テフ』が広まってしまった」という[7]

機能

[編集]

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 のマクロパッケージなどは CTANComprehensive TeX Archive Network、包括 TeX アーカイブネットワーク)[15]からダウンロードできる。

数式の表示例

[編集]

たとえば

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

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

また、

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

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

TeX の日本語化

[編集]
この記事は更新が必要とされています。この記事には古い情報が掲載されています。編集の際に新しい情報を記事に反映させてください。反映後、このタグは除去してください。(2023年6月)

日本語組版処理のできる日本語版の TeX および LaTeX には、アスキーによる pTeX および pLaTeX と、NTT の斉藤康己による NTT JTeX[注 3]および磯崎秀樹による 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 関係プログラムのほとんどは、画面表示や印刷で実際に使うフォントを選択できるように、フォントのマッピング(対応付け)を定義する機能を持っている。

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

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

  • Unix系OS用の主な日本語対応 TeX 配布形態である ptexlive[16]や ptetex3[17][18]pTeX のみを採用している。
  • Microsoft Windows 用の主な日本語対応 TeX 配布形態である W32TeX[19]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 / xdvikdviout[20][21]などの DVI ヴューア、Dvips(k)dvipdfm / DVIPDFMx などのファイル形式変換ソフトウェアなどがある[注 4]
    • DVI ファイルを DVI ビューアで画面表示または印刷する、あるいは PDFPostScript に変換して画面表示または印刷することで、組版結果を確認する。
    • 修正の必要があれば、ソースファイルを修正して再度DVIファイルを作成、確認する。

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

GUI 環境と TeX

[編集]

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

関連ソフトウェア

[編集]

コミュニティ

[編集]
この節の加筆が望まれています。 主に: 2016年10月
TeX Users Group のロゴ

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

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

脚注

[編集]

補足

[編集]
  1. ^ 2021年2月現在のバージョンは 3.141592653 である。
  2. ^ 2021年2月現在のバージョンは 2.71828182 である。
  3. ^ NTT JTeX は千葉大学の櫻井貴文によって UNIX システムに移植され、メンテナンスされている。現在、「Software by Takafumi SAKURAI」で公開されている。
  4. ^ 各 DVI ウェアの間には DVI ファイルの解釈・表示について互換性がない場合がある。特に、ある DVI ウェアに依存したパッケージをソースファイルに用いるなどして、その DVI ウェア用の専用命令文 (special) を埋め込んで作成した DVI ファイルは、当然ながらその専用命令文を解釈可能な DVI ウェアでなければ画面表示・印刷などが正しくできない。

出典

[編集]
  1. ^ CTAN: Package TeX”. CTAN. 2021年2月21日閲覧。
  2. ^ LaTeX入門”. TeX Wiki. 2024年8月4日閲覧。
  3. ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、155頁。ISBN 4-320-02526-1 
  4. ^ 『LaTeX2ε美文書作成入門』技術評論社、2020年11月27日、1頁。 
  5. ^ Knuth 1984.
  6. ^ Knuth 1984, p. 1, Ch. 1: The Name of the Game.
  7. ^ Talpa memorandum: TeXはテック
  8. ^ CTAN: Package slides
  9. ^ AMS-LaTeX — American Mathematical Society
  10. ^ CTAN: Package amslatex
  11. ^ XyMTeX 化学構造式描画システム
  12. ^ CTAN: Package xymtex
  13. ^ Werner Icking Music Archive: MusiXTeX Files
  14. ^ CTAN: Package MusiXTeX
  15. ^ the Comprehensive TeX Archive Network
  16. ^ ptexlive Wiki
  17. ^ ptetex—teTeX 用日本語パッチ集
  18. ^ ptetex Wiki
  19. ^ W32TeX(日本語)
  20. ^ Versions of dviout for Windows 大島利雄研究室
  21. ^ CTAN: Package dviout
  22. ^ LyX
  23. ^ CTAN: Package makeindex
  24. ^ CTAN: Package e-TeX
  25. ^ CTAN: Package omega
  26. ^ CTAN: Package aleph
  27. ^ TeXShop — Richard Koch
  28. ^ CTAN: Package texshop
  29. ^ TeX 入門 #EasyTeX — 中川 仁
  30. ^ Welcome to GNU TeXmacs (FSF GNU project)
  31. ^ CTAN: Package TeXmacs
  32. ^ TeX Live — TeX Users Group
  33. ^ CTAN: Package texlive
  34. ^ The teTeX Homepage
  35. ^ CTAN: Package tetex
  36. ^ mimeTeX quickstart
  37. ^ CTAN: Package mimetex
  38. ^ Textext — Pauli Virtanen
  39. ^ Inkscape de LaTeX
  40. ^ TUGboat - Communications of the TeX Users Group
  41. ^ The PracTeX Journal home page
  42. ^ Dante e.V.
  43. ^ tex.stackexchange.com
  44. ^ TeX ユーザの集い2009
  45. ^ TeX ユーザの集い2015
  46. ^ TUG 2013 - TeX Users Group

参考文献

[編集]

関連項目

[編集]

外部リンク

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
TeX
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?