この項目では、組版処理システムについて説明しています。その他のTEX、texについては「TEX 」をご覧ください。
ウィキメディアプロジェクトにおける Te X を利用した組版については、「ヘルプ:数式の書き方 」の項目をご覧ください。
Te X (TeX) は、ドナルド・クヌース (Donald E. Knuth) が開発[2] し、広く有志による拡張などが続けられている組版 処理システムである。
概要
TeXの特徴
TeXは以下のようなメリットがある[3] 。
TeXの成立
スタンフォード大学のドナルド・クヌース 教授(現在は退職)が、1976年に自身の著書 The Art of Computer Programming の改訂版の準備中に、鉛版 により組版 された (en:Hot metal typesetting ) 旧版の職人仕事による美しさが、改訂版の当時の写植 では再現できていないことに憤慨し、自分自身が心ゆくまで組版を制御するために開発を決意した。
クヌースはまず、伝統的な組版およびその関連技術に対する広範囲にわたる調査を行い、その調査結果を取り入れることで、商業品質の組版ができる、柔軟で強力な組版システムを開発した。それは技術と同時に芸術をも意味するギリシア語の言葉である、τέχνη(テクネ)から採られ“Te X”と名付けられた。
当初の開発は本業である研究や教育の合間での作業であったが、クヌースには1978年に1年間のサバティカル があったことから、その期間に集中して完成させる見込みであった。しかし実際には、同年に初版をリリースした後も改訂を続けることとなった。最終的に、「完成版」とされた系列であるバージョン3の最初のリリースは、実に1989年のことである。
クヌースの賞金小切手(一部ボカシ 入)
Te Xを他人が改造したり拡張したりした場合について、それを直接配布することをクヌースは許しておらず、change file というメカニズムを利用して差分を添付する、という形で行わなければならない(これは当時まだ diff と patch が一般的に広く使われていなかったことから、これもクヌースが開発したものである)。この制限はいわゆる「バザールモデル 」であるとは多少言い難い所があるが、「オープンソースの定義 」では(そのような制限との妥協の産物である)第4項により、差分等を添付した再配布を許しているならば、派生物の配布にそのような制限があってもよい、ということになっているため「オープンソースの定義」には合致している。
前述した開発期間の長さの理由の一つに、クヌースが徹底的にバグを探して潰していたから、ということも挙げられる。どのようなバグを修正したか、ということも記録しており、ある時期までのものについて解説と一覧が『文芸的プログラミング』の第10章と第11章に収録されている。そのため、残っているバグは少ないだろうとして、ジョーク好きのクヌースが、バグ発見者に対しては前回のバグ発見者の2倍の懸賞金を掛けている。この賞金は小切手 (クヌース賞金小切手 )で払われるが、貰っても記念に取っておくばかりなので、結局クヌースの出費はほとんどないという(とはいえやはりジョークかもしれないが、やめておけば良かった、というように取れることも書いている)。
クヌースは Te X のバージョン 3 を開発した際に、これ以上の機能拡張はしないことを宣言した。その後は不具合の修正のみがなされ、バージョン番号は 3.14, 3.141, 3.1415, … というように付けられている。これは更新の度に値が円周率 に近づいていくようになっていて、クヌースの死の時点をもってバージョン π として、バージョンアップを打ち切るとのことである[注 1] 。
クヌースは Te X の開発と同時に、Te X で利用するフォント を作成するためのシステムである METAFONT も開発した。こちらのバージョン番号は 2.71, 2.718, 2.7182, … というように、更新の度に値がネイピア数 に近づいていくようになっている[注 2] 。さらにクヌースは METAFONT を使って、欧文フォント Computer Modern も設計(デザイン)した。Computer Modern(cmと略されることもある)にはクヌース自身の欧文フォントに対する美的感覚が反映され、全くのプレーンな Te X ではデフォルトのフォントであるが、現在の多くの利用者は Times など伝統的な定番フォントを使うよう設定していることも多い。
Te X および METAFONT はまた、同様にクヌース自身が提唱する文芸的プログラミング (Literate Programming) の「ドキュメンテーションを主とし、コードはそれに付随する」スタイルによる大規模なプロジェクトの一例でもある。やはりクヌースによる文芸的プログラミングのためのシステム WEB の tangle により、そのようにして書かれている文芸的な「プログラム」の中から Pascal で書かれているコード部分が取り出され、コンパイル できるように編集し直されて何らかの Pascal の実装により処理される(大規模なコードのため、多くの Pascal 実装において1個以上のバグを見つけている、ともいわれる)。同様にして WEB の weave を通して得られるドキュメントを書籍にしたものが Te Xbook と METAFONTbook である。Pascal が使われているのは開発にとりかかったのが古く、C言語 が広く一般的になるより前だったこともあるが、近年ではC言語をターゲットとした WEB である WEB2C が使われることも多い。
(注) LaTeXとの違いはLaTeX 参照。LaTeXにはTeXより便利な機能が多いため、TeXを使用しているといってもLaTeXを利用している、という場合がある。ちなみに、wikipedia上の数式 は、Wikipediaサーバ上のLaTeXでSVG 画像にしているものである。
名称について
製作者のドナルド・クヌース により以下のように要請されている。
表記
は ギリシア語 : τέχνη 「技術、芸術」に由来し、ギリシア文字 の Τ (タウ)- Ε (イプシロン)- Χ (カイ)である。E を少し下げて、字間を詰めて書く。プレーンテキスト などそれができない場合には “TeX ” と表記する(“TEX”や“Tex”と表記するのは誤り)。
読み方
英語のアルファベット ⟨ X⟩ (エックス、/ˈɛks/ )として読むのではなく、ギリシア語 風に無声軟口蓋摩擦音 /x/ (ドイツ語の ach-laut の ⟨ ch⟩ )で /tex/ と発音するのが本来である。Te Xbook では、そのように正しく発音するとコンピュータの端末(のCRTディスプレイ)が、呼気でちょっと曇る、と冗談が書かれている(CRTディスプレイが曇るという冗談はともかく、その発音が呼気を伴うものであるのは確か)。英語においては、多くの方言で音素 /x/ が存在せず代わりに /k/ が使われること、τέχνη に由来する英語 : technical が /ˈtɛk.nɪk.əl/ と読むことから /ˈtɛk/ と読まれる。ドイツ語では /ɛ/ が前舌母音 であることから ich-laut の発音になり、/ˈtɛç/ である。日本ではどれもカタカナで表現するのが難しいため「テック」ないし「テフ」と書かれる。ドイツ語の ⟨ ch⟩ をハ行で表現することもあるので間違いとは言い切れないものの、あえてローマ字で書くなら ⟨ hu⟩ であり、日本語の「ファ行のフ」である無声両唇摩擦音 /ɸ/ (ローマ字で ⟨ fu⟩ )ではない。Te Xbook の邦訳出版など、日本での普及に大きく関与したアスキーで、編集者だった鈴木嘉平によれば、アスキー社内では「テック」と読んでいたが、先輩編集者によれば(fuで発音する)「テフ」ではないとはっきり書いておかなかったのが原因で、日本には「テフ」が広まってしまった、という[6] 。
機能
Te X はマークアップ言語 のスタイルをとっている。すなわち、文章そのもの(テキスト)と文章の構造を指定する命令(コントロールシーケンス)が記述されたテキストファイル を読み込み、そこに書かれた命令により文章を組版 し、組版結果を DVI 形式のファイルに書き出す。DVI 形式とは、装置に依存しない (d ev ice-i ndependent) 中間形式のことである。処理系は多機能で、チューリング完全 である。
DVIファイルには紙面のどの位置にどの文字を配置するかといった情報が書き込まれている。実際に紙に印刷したりディスプレイ上に表示したりするためには、DVI ファイルを解釈する別のソフトウェアが用いられる。DVI ファイルを扱うソフトウェアとして、各種のビューワや PostScript など他のページ記述言語へのトランスレータ、プリンタドライバ などが利用されている。
組版処理については、行分割およびページ分割位置の判別、ハイフネーション 、リガチャ 、およびカーニング などを自動で処理でき、その自動処理の内容も種々のパラメータを変更することによりカスタマイズできる。数式組版についても、多くの機能が盛り込まれている。Te X が文字などを配置する分解能は 25.4/(72.27 × 216 ) mm (約 5.363 nm 、4,736,286.72 dpi )である。
Te X の扱う命令文の中には、組版に直接係わる命令文の他に、新しい命令文を定義するための命令文もある。こうした命令文はマクロ と呼ばれ、Te X ユーザー独自の改良により、種々のマクロパッケージが配布されている。
比較的よく知られている Te X 上のマクロパッケージには、クヌース自身による plain Te X、一般的な文書記述に優れた La Te X 、数学的文書用の Am S -Te X などがある。一般の使用者は、Te X を直接使うよりも、Te X に何らかのマクロパッケージを読み込ませたものを使うことの方が多い。
Te X の用途を拡張したマクロパッケージとして、他に次のようなものがある。
Te X とそれに関連するプログラム、および Te X のマクロパッケージなどは CTAN (C omprehensive T eX A rchive N etwork、包括 Te X アーカイブネットワーク)[14] からダウンロードできる。
数式の表示例
たとえば
-b\pm \sqrt { b^ 2 -4ac} \over 2a
は以下のように表示される。
− − -->
b
± ± -->
b
2
− − -->
4
a
c
2
a
{\displaystyle -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
)
=
∫ ∫ -->
a
b
1
+
x
a
+
x
2
+
x
3
d
x
{\displaystyle f(a,b)=\int _{a}^{b}{\frac {1+x}{a+x^{2}+x^{3}}}\,dx}
Te X の日本語化
この記事は更新が必要とされています。 この記事には古い情報が掲載されています。編集の際に新しい情報を記事に
反映 させてください。反映後、このタグは除去してください。
(2023年6月 )
日本語 組版処理のできる日本語版の Te X および La Te X には、アスキー による p Te X および pLa Te X と、NTT の斉藤康己による NTT J Te X [注 3] および磯崎秀樹による NTT J La Te X などがある。
Te X の日本語対応において技術的に最も大きな課題は、マルチバイト文字 への対応である。p Te X(および前身の日本語 Te X)は、JIS X 0208 を文字集合 とした文字コード (ISO-2022-JP 、EUC-JP 、および Shift_JIS )を直接扱う。DVI フォーマットは元々16ビット 以上の文字コードを格納できる仕様が含まれていた。しかしオリジナルの英語版では使われていなかったため、既存プログラムの多くは p Te X が出力する DVI ファイルを処理できない。またフォント に関係するファイルフォーマットが拡張されている。これに対して NTT J Te X は、複数の1バイト 文字セットに分割することで対応している。たとえば、ひらがなとカタカナは内部的には別々の1バイト文字セットとして扱われる。このためにオリジナルの英語版からの変更が小さく、移植も比較的容易である。ファイルフォーマットが同じなので英語版のプログラムで DVI ファイル等を処理することもできる。しかし後述するフォントのマッピングの問題があるため、実際には多くの使用者が NTT J Te X 用に拡張されたプログラムを使っている。
使用する日本語 用フォントについては p Te X が写研 フォントの使用を、NTT J Te X が大日本印刷 フォントの使用を前提としており、それぞれフォントメトリック情報(フォントの文字寸法の情報)をバンドル して配布している。しかし有償であるこれらのフォントのグリフ情報を持っていなくても、画面表示や印刷の際に使用者が利用できる他の日本語用フォントで代用することができる。つまり写研フォントや大日本印刷フォントのフォントメトリック情報を用いて文字の位置を固定し、画面表示や個人ユースの安価なプリンタによるプレビュー印刷には他の日本語用フォントを用い、業者などによる最終的な出力では商用フォントを使用して目的の仕上がりを得る、といったことも可能である。このため日本語化された TeX 関係プログラムのほとんどは、画面表示や印刷で実際に使うフォントを選択できるように、フォントのマッピング(対応付け)を定義する機能を持っている。
歴史的には、アスキー が日本語 Te X の PC-9800 シリーズ 対応版を販売したために個人の使用者を中心に普及した。一方、NTT J Te X は元の英語版プログラムからの変更が比較的小さいという利点を受けて、Unix系 OSを使う大学や研究機関の関係者を中心に普及した。
しかし現在では次に挙げる理由から、日本語対応 Te X として p Te X が使われていることが多い。
Te X による組版の作業工程
Te X による組版の作業工程は、通常次のようになる。
文章に組版用命令文を織り込んだテキストファイル である、tex ファイルを作成する(テキストエディタ などで)。
OS のコマンドライン から “tex FileName .tex
” などと入力して Te X を起動し、DVI ファイルを生成させる。
ソースファイルにエラーがあれば、修正して再度 Te X を起動する。
DVI 命令文を解するソフトウェア(DVI ウェア)を用いて組版結果を表示し、確認する。
この間、作業工程が変わるたびにそれぞれのプログラムを切り替えたり、扱う文書が大きいと章ごとにソースファイルを分割して管理したりと、比較的煩雑な作業を伴う。そのため、この工程に係わる各種のプログラムやソースファイルの管理を一元的に行う Te X 用の統合環境 (TeXworks や TeXShop など)がいくつか作成されている。
GUI 環境と Te X
GUI は PC の普及に一役買ったが、それとともに Te X などのコマンドラインインタプリタ に不慣れな PC 利用者が増加した。そのために、GUI に特化した Te X 用統合環境 が LyX [21] などいくつか作成されている。
関連ソフトウェア
コミュニティ
この節の
加筆 が望まれています。
主に: 2016年10月
Te X Users Group のロゴ
有名な Te X コミュニティの一つは Te X Users Group (TUG) であり、TUGboat (英語版 ) [39] や The PracTeX Journal (英語版 ) [40] (TPJ) を出版している。Deutschsprachige Anwendervereinigung TeX (英語版 ) [41] はドイツの大きなユーザーグループである。tex.stackexchange.com[42] は Te X ユーザーのための質問・回答サイトである。
Te X ユーザの集いは、日本で2009年以降毎年開かれている Te X の研究集会であり、Te X や組版・出版など関する知見の共有や、Te X ユーザーの相互交流を目的としている[43] [44] 。ただし2013年は、TUG 2013 が東京で開催され、Te X ユーザの集いは開催されなかった[45] 。
脚注
補足
^ 2021年2月現在のバージョンは 3.141592653 である。
^ 2021年2月現在のバージョンは 2.71828182 である。
^ NTT J Te X は千葉大学 の櫻井貴文によって UNIX システムに移植され、メンテナンスされている。現在、「Software by Takafumi SAKURAI 」で公開されている。
^ 各 DVI ウェアの間には DVI ファイルの解釈・表示について互換性 がない場合がある。特に、ある DVI ウェアに依存したパッケージをソースファイルに用いるなどして、その DVI ウェア用の専用命令文 (special) を埋め込んで作成した DVI ファイルは、当然ながらその専用命令文を解釈可能な DVI ウェアでなければ画面表示・印刷などが正しくできない。
出典
参考文献
関連項目
ウィキブックスに
Te X 関連の解説書・教科書があります。
MediaWiki.orgの
WikiTeX に、この項目に関する情報があります。
外部リンク
ウィキメディア・コモンズには、
Te X に関連するカテゴリがあります。
処理系 マクロパッケージ
ディストリビューション エディタ ユーティリティ Te X 関連 コミュニティ 人物
OS書体 他の書体
ソフトウェア ライセンス 組織 / 人物