TeXのまとめ情報

TeX』の解説

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

概要

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

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

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

thumb

のライセンスはオープンソースの定義に合致しており(正確には逆で、を「オープンソース」に含めるために、Debianフリーソフトウェアガイドライン及びOSDの第4項が示している例外規定「差分による修正を許しているならば、ソースコードの改変を禁じていてもよい」が追加されたのであって、もしが無かったらそのような例外規定が存在していたかどうかは甚だ怪しい)、誰でも改良を加えることができる。その改良版の配布も、 と明らかに区別できる名称にさえすれば許される。また、 は非常にバグが少ないソフトウェアとしても有名で、ジョーク好きのクヌースが、バグ発見者に対しては前回のバグ発見者の2倍の懸賞金を掛けるほどである。この賞金は小切手クヌース賞金小切手)で払われるのだが、貰った人は記念に取っておく人ばかりなので、結局クヌースの出費はほとんどないという。

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

クヌースは の開発と同時に、 で利用するフォントを作成するためのシステムである METAFONT も開発した。こちらのバージョン番号は 2.71, 2.718, 2.7182, … というように、更新の度に値がネイピア数に近づいていくようになっている。さらにクヌースは METAFONT を使って、欧文フォント Computer Modern も設計(デザイン)した。Computer Modern(cmと略されることもある)にはクヌース自身の欧文フォントに対する美的感覚が反映され、全くのプレーンな ではデフォルトのフォントであるが、現在の多くの利用者は Times など伝統的な定番フォントを使うよう設定していることも多い。

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

名称について

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

表記

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

読み方

英語のアルファベット (エックス、)として読むのではなく、ギリシア語風に無声軟口蓋摩擦音 (ドイツ語の ach-laut の )で /tex/ と発音するのが本来である。book では、そのように正しく発音するとコンピュータの端末(のCRTディスプレイ)が、呼気でちょっと曇る、と冗談が書かれている。。英語においては、多くの方言で音素 が存在せず代わりに が使われること、τέχνη に由来する が と読むことから と読まれる。ドイツ語では が前舌母音であることから ich-laut の発音になり、 である。日本ではどれもカタカナで表現するのが難しいため「テック」ないし「テフ」と書かれる。ドイツ語の をハ行で表現することもあるので間違いとは言い切れないものの、あえてローマ字で書くなら であり、日本語の「ファ行のフ」である無声両唇摩擦音 (ローマ字で )ではない。

機能

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

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

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

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

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

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

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

数式の表示例

たとえば

-b\pm \sqrt \over 2a

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

-b\pm \sqrt \over 2a

また、

f(a,b)=\int_a^b \frac \, dx

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

f(a,b)=\int_a^b \frac \, dx

の日本語化

日本語組版処理のできる日本語版の および には、アスキー・メディアワークスによる Publishing TeX および と、NTT の斉藤康己による NTT および NTT などがある。

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

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

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

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

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

による組版の作業工程

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

  1. 文章に組版用命令文を織り込んだテキストファイルである、tex ファイルを作成する(テキストエディタなどで)。
  2. OSコマンドラインから “tex FileName.tex” などと入力して を起動し、DVI ファイルを生成させる。
    • ソースファイルにエラーがあれば、修正して再度 を起動する。
  3. DVI 命令文を解するソフトウェア(DVI ウェア)を用いて組版結果を表示し、確認する。
    • DVI ウェアには xdvi / xdvikdvioutなどの DVI ヴューア、Dvips(k)dvipdfm / DVIPDFMx などのファイル形式変換ソフトウェアなどがある。
    • DVI ファイルを DVI ビューアで画面表示または印刷する、あるいは PDFPostScript に変換して画面表示または印刷することで、組版結果を確認する。
    • 修正の必要があれば、ソースファイルを修正して再度DVIファイルを作成、確認する。

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

GUI 環境と

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

関連ソフトウェア

コミュニティ

thumb

有名な コミュニティの一つは Users Group (TUG) であり、 や '''' (TPJ) を出版している。 はドイツの大きなユーザーグループである。tex.stackexchange.com は ユーザーのための質問・回答サイトである。

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

TeX』の解説 by はてなキーワード

TEXと書くと怒る人がいるので注意。正式な表記は全て大文字とし、かつEを下げて書く→¥TeX¥TeXと表記することが不可能な場合はTeXと表記する。アメリカではテックと発音。ドイツではテッヒに近い発音。

スタンフォード大学クヌース先生が既存の組み版システムが気に入らないので自分で作ってしまったコンピュータ用組み版システム。個人レベルで極めて美しい出力が得られる。

2003年10月10日より、はてなでも日記およびキーワード文中にTeXを用いて数式を表示できるようになった。数式表示機能は、mimeTeX http://www.forkosh.com/htdocs/mimetex.html を利用している。(id:hatenadiary:20031010#1065776577

¥TeXを上手に使う人は「テフニシャン」又は 「テフスパート」「テフノマンサー」と呼ばれる。

TeX』by Google Search

This page is provided by Matome Project.
Contact information.