利用者:CmplstofB/下書き/TeX

出典: フリー教科書『ウィキブックス(Wikibooks)』

TeX上に実装されたマクロ言語LaTeXについての解説はTeX/LaTeX入門を参照して下さい

TeXは,Donald E. Knuth(米数学・計算機科学者)によって開発された組版処理システムです。

TeXシステムの利用[編集]

ソフトウェアとしてのTeXのバイナリ(具体的には「tex」という名前の起動可能ファイル)はPascalで記述されたファイルをコンパイルすることで得られます[註 1]。しかしTeXを組版処理システムとして利用するには,他にも様々なソフトウェアやファイルが必要です。それらを手動で入手・コンパイルし,管理や更新を続けていくのは非常に面倒で手間と時間が掛かってしまいます。そこでTeXの実行に必要な諸々を収録し,簡単に管理を行なえるようにしたディストリビューションが幾つか存在します[註 2]TeXシステムで組版処理するにあたっては,TeXディストリビューションを用いるのが,殆どの人にとっての最適な方針でしょう。

入手[編集]

2019年現在,TeXシステムをオフラインで使用するならば,TeX Liveを導入するのが最も確実でしょう。TeX Liveは種々のプラットフォームに広く対応[1]しており,また非常に活発な更新[2]が行なわれている,世界最大級のTeXディストリビューションです。TeX Liveのインストール方法などについての説明は,公式文書[1][2][3]等を参照して下さい。

以後,ことわらない限り,TeXシステムとしてTeX Liveの2019年時点での最新安定板(TeX Live 2018)を用いているものとします。

オンラインでTeXシステムが利用できるWebサービスがいくつか存在します[4][5][6](その殆どがLaTeXに特化しています)。

執筆環境[編集]

TeXシステムを利用して組版を行なう際,基本的にはTeX言語やマクロでマークアップされたテキストファイル(原稿)をTeXソフトウェアを用いてコンパイルし,得られたファイルを組版成果物として扱います。これらの作業は全てCLIで行なうことが可能ですが,一連の動作をボタン一つで実行でき,組版の結果を視覚的に分かりやすくしてくれる[註 3]ソフトウェアも多く存在します[7][8]

しかしながら,説明の都合上,本記事においてはCLIでの説明を主体とします。また,コマンドラインの操作自体については,解説しません。

TeXシステムを使った組版作業[編集]

始めの一歩[編集]

お使いの電算機にTeXシステムを導入できたことを確認したら,早速TeXによる組版を始めてみましょう。

ソフトウェアとしてのTeXは,「tex」という名前の実行可能ファイルです。コマンドライン上でTeXシステムを起動するには,単に「tex」と入力してください。(TeXシステムは,(既定では)現在の作業ディレクトリに少々のファイルを生成します。気になる方は汚れてもよいディレクトリで操作を行なうといいでしょう)

$ tex
This is TeX, Version 3.14159265 (TeX Live 2018) (preloaded format=tex)
**

出力の1行目はバナーと呼ばれ,どのような種類のTeXをどのような状態で使用しているかを述べています。上であれば「TeX Live 2018で提供される第3.14159265版のTeXが,plainフォーマットを読み込んで起動している」などという意味になります。出力の最終行は,二つの星印が連続して表示されており,編集子(多くのシステムでは端末エミュレータ上のカーソル)はその右端にある筈です。これはTeXが入力促進状態であることを示しています。但し,TeXの入力促進記号は尋常では星印一つであり,星印二つの入力促進記号は特殊な挙動をします; TeXは入力された文字列の先頭に「\input 」を付与してから,その行を読み込み実行します[註 4]。 今回は何もファイルを読み込まないつもりですので,「\relax」と入力[註 5]して下さい(当然ながら,打鍵としては,最後に改行記号を含んだ\relax⏎Enter)し,TeXのファイルを読み込むための特別な入力促進状態を終了させてください。尋常の入力促進記号が表示されます。入力した文字列「\relax」の意味は,今の段階では〝TeXの特殊な状態を解除する〟と言った意味に捉えておいて下さい。

$ tex
This is TeX, Version 3.14159265 (TeX Live 2018) (preloaded format=tex)
**\relax

*

入力する文字列は(ASCII可視文字の範囲内なら)何でも構わないのですが,始めてのTeXということで,「Hello, \TeX!」と入力しましょう。

$ tex
This is TeX, Version 3.14159265 (TeX Live 2018) (preloaded format=tex)
**\relax

*Hello, \TeX!

*

入力に(TeXにとっての)問題がなければ,再び入力促進記号が表われます。こうして次々と文字列を入力していくことができます。今回は,この時点でTeXの処理を終了することにします。処理を終了するには「\bye」と入力します。

$ tex
This is TeX, Version 3.14159265 (TeX Live 2018) (preloaded format=tex)
**\relax

*Hello, \TeX

*\bye
[1]
Output written on texput.dvi (1 page, 236 bytes).
Transcript written on texput.log.
$

シェルが入力促進状態に戻りました。「[1]」というのは,組版結果のファイルの頁が1枚であることを示しています。出力の頁が複数枚になる場合は,角括弧で囲まれた枚数が後ろに続きます(「[1][2]…[n]」といった具合)。残りの行で組版成果のファイルが「texput.dvi」であることと,一連の対話がファイルtexput.logに記録されていることを述べています。

今,作業ディレクトリにはtexput.dvitexput.logの二ファイルが新たに生成されています。TeXも述べている通り,ファイルtexput.dviが組版成果,texput.logが対話の詳細記録です。

今回のような操作をした場合,組版成果はDVIファイルとして出力されます。当然ですが,組版成果のファイルは印刷機に送られ,処理され,用紙の上に印刷された状態で閲覧されることを想定しています。しかしながら,電算機の性能が向上し,印刷された用紙と変わらない品質の画面を苦もなく描画できるようになると,組版成果を一時的に確認するために時間を掛けて印刷機を動作させ,さらに物質的な用紙や塗料を消費するのは勿体無いという風潮が生まれました。こういった理由で,DVIファイルが用紙に印刷された状況を画面上に再現するDVI閲覧ソフトが作られました。

日本語に対応したTeXPDF出力[編集]

紙面[編集]

\hoffsetなど)

フォント[編集]

など)

システムの管理[編集]

TeX Liveの管理・TDS

プログラミング言語としてのTeX[編集]

脚注[編集]

[編集]

  1. ^ 詳しく言うと,WEBという,ソースコードについての説明文とソースコードが混在したような形式で記述されていて,ここからtangleというソフトウェアでPascalのソースコードを抜き出す必要があります。また,Pascalコンパイラはすぐ後に述べるC言語に比べるとそれほど多くのプラットフォームで利用できませんので,WEB2CというソフトウェアでC言語に変換してからコンパイルしています。
  2. ^ Linuxを知っている方は,Linuxディストリビューションの類推ができるでしょう。Linuxをオペレーティングシステムとして利用するにはLinuxカーネルだけでなく,多くのソフトウェアやファイルが必要となります。LFS等ごく少数の例外を除き,大抵の人はLinuxディストリビューションを用いてそれらの入手・管理をしています。
  3. ^ 例えばGUIウィンドウを二分割して一方に原稿,他方に成果ファイルを表示するといったものです。
  4. ^ 実際はもう少し複雑で,文字列の先頭が逆斜線である場合は尋常の入力促進状態と同じ振舞をします(つまり先頭に「\input 」を付与しません)。
  5. ^ null」と入力するという手もあります。これはTeXにファイルnull.texを読み込ませることになります(TeX拡張子が省略されたと見做すと拡張子.texを自動的に補います)。null.texファイルはTeX LiveなどのTeXディストリビューションに附属している空ファイルです。従ってTeXは(ファイルnull.texを読み込む以外)実質なにも行うことなく尋常の入力促進状態へ以降します。

出典[編集]