このLATEX2ε(ラテックトゥーイー)は本・論文などを印刷・電子化するためのフリーソフトTEX(テックまたはテフと読む)の仲間です。LATEX(ラテックまたはラテフと読む)、その最新版LATEX2ε、その日本語版pLATEX2ε(ピーラテックトゥーイー)なども全て仲間に属します。数式を含む論文を書くためのソフトとしてTEXは世界中で事実上の標準として長年に渡って使われています。日本でも特に理系の本はかなりのものがTEXで作られるようになりました。理系に限らずTEXはSGMLやXMLベースの大量の文書の自動組版など通常のDTPの流れに載せにくい複雑な一括処理に向いています。TEXはWindows、Macintosh、UNIXなどおよそどんなPCでも使えます。使い慣れたPCで手軽に美しい文書を作りたい著者、自分で本をレイアウトしたいがDTPオペレーターの領分には入りたくない著者にもTEXをお勧めします。 |
最低限のルール | ドキュメントクラス | プリアンブル | 文書の構造 |
打ち込んだ通りに出力する方法 | 改行の扱い | 注釈 | 空白の扱い |
地の文と命令 | 区切りのいらない命令 | 書体を変える命令 | 文字の大きさを変える命令 |
環境 | 長さの単位 | 空白を出力する命令 | 脚注と欄外への書き込み |
美しい組版のために | 図・表の挿入 | 表組み |
TEXは組版ソフトです。組版という言葉ははあまり一般的ではないかもしれませんが、印刷関係で活字を組んで版を作ることを意味します。TEXは印刷でいう組版に相当することをPCで行うためのソフトです。「印刷ソフト」というほうがわかりやすかもしれませんが紙に出すだけでなくPostScriptやPDFといった形式で出力するためにも使います。以下にTEXの特徴をあげます。
@TEXはフリーソフトですので無料で入手できます(但し付加価値を付けて商品として売っているものもあります)。
ATEXはMS−DOS、Windows、OS/2、Macintosh、UNIX(LinuxやFreeBSDなどを含む)などほとんどどんなPCでも使えます。
BPC用のプリンタからPostScriptプリンタ、イメージセッタ、電算写植機までほとんどの出力装置に出力することができます。
C高精度で1/65536ポイント(約0.000005mm)単位で文字位置が決められます。
D標準化が行き届いておりどのPCのTEXで処理しても寸分の違いもなく出力できます。
ETEXの文書はテキストファイルなので普通のテキストエディタで読み書きでき再利用やデータベース化が容易です。
F特に数式の組版については定評があり数式をテキスト形式で表す事実上の標準となっています。
G多くの学会や学術出版社がTEXによる投稿を受け付けています。
TEXには多くの種類があります。特によく使われているのはLATEX、plainTEX、Texinfoです。LATEXはさらに旧LATEX(LATEX2.09)と新LATEX(LATEX2ε)に分かれます。また(株)アスキーがTEXを日本語化したものはpTEX、pLATEX、pLATEX2εのように頭にp(publishingの意)が付きます。TEXで使えるフォントはTEXに標準添付されているComputerModern欧文フォント族のほか欧文・和文ともに豊富なPostScriptフォントやTrueTypeフォントが使えます。Acrobat(AdobeSystem社の商品)またはGhostscript(フリーソフト)と組み合わせて使えばATM(AdobeTypeManager)を使わなくてもTimesやHelveticaなどのPostScriptフォントが使えます。TEXは入力も出力もPCの機種や基本ソフト(OS)に依存しませんので共同で本や論文を書くときもトラブルが生じません。
最も狭い意味でのTEXはLATEXなどで使われている機構のことを指します。これは非常に基本的な機能しか持っていません。高レベルの機能は低レベルの機能を組み合わせて作りTEXに追加登録することができます。このようにして追加登録した機能のことをマクロといいます。次のように示すとわかりやすいと思います。TEX+plainTEXマクロパッケージ=plainTEX、plainTEX+LATEXマクロパッケージ=LATEX、plainTEX+Texinfoマクロパッケージ=Texinfoといった具合です。
LATEXは現Compaqのコンピュータ科学者Leslie Lamportによって機能強化されたTEXです。LATEXの特徴は文書の論理的な構造と視覚的なレイアウトとを分けて考えることができることです。これは便利な機能でこの便利さにより1980年代半ばにLATEX利用者が飛躍的に増えTEXを使っているといっても実際にはLATEXであることが多くなりました。1993年にはLATEX2εという新しいLATEXもできました。LATEXは独立したソフトではなくTEXに組み込んで使うものです。
TEXを作ったのはスタンフォード大学のDonald E.Knuth教授です。彼は数学者・コンピュータ科学者で主著The Art of Computer Programmingシリーズはコンピュータ科学の聖典とでもいうべきものです。この主著の出版にあたり活版印刷に劣らない美しい組版のできるソフトと思いこれがTEXを作るきっかけとなりました。そしてTEX第3.1版の時点で次のような終結宣言を発表しました。
@もうこれ以上TEXは拡張しない。
Aもし著しい不具合があれば修正して第3.14版、第3.141版、第3.1415版…と番号を進めていき自分の死と同時に第π版とする。それ以降はどんな不具合があっても誰も手をつけてはならない。
BTEXに関することは全て文書化したのでこのノウハウを生かして新たにソフトを作ることは自由である。
もともとのTEXでは日本語が使えませんでした。TEXを日本語化する試みはいくつかありましたが今日広く使われているのはアスキーのpTEXとNTT JTEXです。両者は微妙に異なります。日本語についてもいくつかの規則的な処理が必要です(例えば句読点が行頭にこないようにする)。それらの条件を満たすためには字の間隔を微調整しなくてはなりません。しかし調整しすぎると字の間隔が揃わずかえって見苦しくなります。そこでpTEXはどの文字が行頭にくると何点減点、行末にくると何点減点という具合に点数を計算し減点の合計が最小になるように組みます。点数の配分は自由に調整できます。
TEXではキーを打つたびに画面上の印刷結果のイメージを更新する方式ではなく最後に一括して全体を処理するバッチ処理を採用しています。TEXでは原稿は自分の使い慣れたソフト(テキストエディタ、ワープロソフト)で書いてテキストファイルとして保存しておきます。これを後でTEXで一括処理します。テキストファイルを使うことの利点は多くあります。出力についてもいろいろな種類のPCの画面やプリンタ、写植機がありTEX自体が個々の出力装置に対応することは不可能です。そこでTEX本体は最終的な印刷の直前までの仕事を行いその状態を中間ファイルに書き出します。この中間ファイルのことをdviファイルといいます。つまり文書入力ソフト(エディタ)と組版ソフト(TEX)と印刷・画面表示ソフト(dviドライバ)が分かれていることになります。
具体的には次のようなステップで作業します。@エディタでソースファイルを作成します。TEXのソースファイルは文章とそれを成形するためのコマンドを含んだテキストファイルです。コマンドやマクロは半角の「¥で始まる英字」で表現されTEXでは特殊な意味を持ちます。大文字、小文字も区別して下さい。このように特定の文字に特殊な意味を持たせ記述する方法を「マークアップ」といいます。最低限必要なコマンドは¥documentclass{jarticle} ¥begin{document} …(本文)… ¥end{document}です。その他にも多くのコマンドがありますが参考文献も出版されていますので研究してみてください。但し行中に%が存在した場合はその行において%以降は全てコメント扱い、空白行は「字下げあり改行」¥¥は「字下げ無し改行」、連続する半角空白は1個の半角空白扱い、半角カタカナ使用禁止などの基本事項があります。ソースファイルの名前はname.texというように拡張子に.texがつくようにします。エディタはフリーで様々なものが配布されていますが、L'ecrivain(れくりばん)がお勧めです。このエディタはカスタマイズのできるマクロ、強調表示、実行機能を持ったTEX 専用エディタです。ATEXのソースファイルをコンパイルするとname.dviという名前のDVIファイルが作成されます。正常に終了したなら文書ファイルname.texが入っているフォルダにname.aux、name.log、name.dviという3つのファイルが出来ています。「auxファイル」は補助ファイルと呼ばれるものです。テキストファイルですからエディタで読むことができます。LATEXの相互参照という機能を使わない場合は何の意味もありません。すぐ消しても構いません。「logファイル」は実行の途中で画面に表示されるメッセージや実行状態についての情報がここに書き込まれます。テキストファイルですからエディタで読むことができます。エラーが生じたときにその原因を調べるために使いますがここでは消してしまって構いません。「dviファイル」は肝心の組版結果のファイルです。このファイルにどの文字をどの頁のどの位置に置くかという情報が書き込まれています。バイナリファイルなのでエディタでは読めません。そして印刷イメージを表示し、それで良ければ印刷を実行します。コンパイラはplatex.exeという実行ファイルです。もともとコンパイルとはプログラマがコンパイラというソフトを使ってコンピュータのソースコード(テキストファイル)をオブジェクトコード(バイナリファイル)に変換する作業を指す言葉ですがこれをTEXの処理にあてはめてテキストファイルをdviファイル(バイナリファイル)に変換する作業を「コンパイル」するというのです。印刷イメージを表示したり印刷を実行するDVIwareはdviout for Windowsが標準です。
文書の最初に¥documentclass{jarticle}という名前の書式(ドキュメントクラス)を書きます。用紙がA4判でないときは¥documentclass[a5paper]{jarticle}のようにa5paper、b4paper、b5paperのいずれかを[ ]に囲んで入れて下さい。
¥begin{document}は「これから文書が始まる」という意味のコマンドです。¥end{document}は「これで文書が終わる」という意味のコマンドです。
段落の区切りには空の行を挿入して下さい。つまりEnterキーを2度続けて打つことになります。段落の頭にスペースを入れる必要はありません。
半角カナは使用せず全角カナを使って下さい。以下の半角文字はそのままでは出力できません。#$%&_{}<>¥^|~
コマンド | 出力文字 |
¥♯ | ♯ |
¥$ | $ |
¥% | % |
¥& | & |
¥_ | _ |
¥{ | { |
¥} | } |
$<$ | < |
$>$ | > |
¥¥tt¥symbol{94} | ^ |
$|$ | | |
¥¥tt¥symbol{126} | ~ |
¥documentclass{ }はドキュメント(文書)のクラス(種類)を指定するものです。{ }の中は次のいずれかから選んで下さい。articleの類は論文などのいくつかの節からなる文書です。bookやreportの類はいくつかの章からなる文書です。
−用途− | 欧文(標準) | 和文(旧・横) | 和文(新・横) | 和文(縦) |
論文 | article | jarticle | jsarticle | tarticle |
長い報告書 | report | jreport | treport | |
本 | book | jbook | jsbook | tbook |
¥documentclass[ ]{ }の[ ]の中はオプションと呼ばれ必要に応じて指定をします。@本文の文字サイズをポイントで指定します。無指定では10ポイントです。11pt、12ptが選択可能です。A用紙サイズをa4paper(A4判)、a5paper(A5判)、b4paper(B4判)、b5paper(B5判)の中から指定します。無指定ではA4判になります。B二段組みにする場合はtwocolumnと指定します。尚、複数のオプションの指定をするときは[a5paper,12pt]や[12pt,a5paper]のように半角の,で区切ります。
TEXの文書ファイルは通常¥documentclass{jarticle}¥begin{document}(本文)¥end{document}のように書きますが¥documentclass{jarticle}と¥begin{document}の間にさらに細かく印刷の指定を書くことがあります。この部分のことをプリアンブル(前口上)といいます。例えば頁番号を振りたくないときは¥pagestyle{empty}、Times系のフォントを使う場合は¥usepackage{times}のように書きます。
コマンド名 | 役割 |
¥textwidth | テキストの幅(1頁あたり) |
¥textheight | テキストの長さ(1頁あたり) |
¥oddsidemargin | 奇数頁の左余白 |
¥evensidemargin | 偶数頁の左余白 |
¥topmargin | 上余白 |
¥columnsep | 中央余白幅 |
¥renewcommand{¥baselinestretch}{} | 行間指定{}の中に倍率が入ってもよい |
コマンド名 | 役割 |
¥pagestyle{plain} | 頁下部中央に頁番号を出力する |
¥pagestyle{empty} | 頁番号も柱も出力されない |
¥pagestyle{page}{n} | 頁番号をnから出力する |
¥pagestyle{headings} | 頁番号と柱を頁上部に出力する |
¥pagestyle{myheadings} | 柱に入るものを自由に変更して出力する |
文書はタイトル、著者名、章の見出し、節の見出し、段落、…のような構造をもっています。TEXで文書ファイルに書き込むのはこのような文書の構造です。例¥section{…}:節の見出し、¥subsection{…}:小説の見出し、¥begin{quotation}:引用の始め、¥end{quotation}:引用の終わり。タイトルを出力するためには次の4つのコマンドを使います。¥title{…}:文書名の指定、¥author{…}:著者名の指定、¥date{…}:日付の指定、¥maketitle:実際にタイトルを出力します。¥date{…}指定を省略すれば文書ファイルをTEXで処理した日付を出力します。¥title、¥author、¥dateは¥maketitleの前ならどこにあってもかまいません。
コマンド名 | 見出し名 |
¥part{タイトル名} | 部 |
¥chapter{タイトル名} | 章(jarticleスタイルでは使用不可) |
¥chapter*{タイトル名} | 章(番号なし、jarticleスタイルでは使用不可) |
¥section{タイトル名} | 節 |
¥section*{タイトル名} | 節(番号なし) | ¥subsection{タイトル名} | 小節 |
¥subsection*{タイトル名} | 小節(番号なし) |
¥subsubsection{タイトル名} | 小々節 |
¥subsubsection*{タイトル名} | 小々説(番号なし) |
¥paragraph{タイトル名} | 段落(番号なし) |
¥paragraph*{タイトル名} | 段落(番号なし) |
¥subparagraph{タイトル名} | 小段落(番号なし) |
¥subparagraph*{タイトル名} | 小段落(番号なし) |
入力画面の通りに出力する方法は¥begin{verbatim}、¥end{verbatim}で囲みます。この2つで囲まれた行が入力画面の通りに出力されます。これは行単位でしたが数文字なら¥verb|…|という書き方をします。例えば(^_^)と出力したいなら¥verb|(^_^)|と書きます。区切りは縦棒|に限らず両側が同じなら¥verb/(^_^)/でも¥verb”(^_^)”などでも構いません。出力したい部分に含まれない文字で挟みます。
ここでいう改行はEnterキーを打つことです。本文は普通に書いていけばよいのですが紙の上でどこで改行するかはコンピュータが考えてくれますので入力ファイルには改行をいくら入れても構いません。通常は入力画面の右端に近づいたらEnterキーを打ちます。但し、空の行があるとTEXはそこを段落の区切りと解釈します。つまりEnterキーを1度だけ打ってもTEXはそれを無視しますが2度続けてEnterEnterと打てば空行が出来るのでそこで段落が改まり通常の設定では次の行の頭に1文字文の空白(インデント)が入ります(このインデントを止めるときには空の行の次に¥noindentと入力します)。もう少し詳しくいうと行の最後の文字が和文の文字であればその直後に打ったEnterキーは無視されます。ところが行の最後の文字が半角文字であればその直後に打ったEnterキーは半角空白と同じ意味になります。尚、欧文の場合でも空行があるとTEXはそこを段落の区切りと解釈します。
(空白行) | 字下げあり改行 |
¥¥ | 字下げなし改行 |
欧文では改行は空白になりますが場合によっては改行を単に無視して欲しいときもあります。このようなときは最後の文字の直後に%を書きます。この%はその行のそれ以降をTEXに無視させる特殊な命令です。この文字から後は改行文字Enterを含め全て無視されますのでコメント(注釈)を書くのに便利です。
空白には全角空白と半角空白とがあります。全角空白を並べれば単にその個数分の全角空白が出力されるだけです。半角空白は欧文の単語間のスペース(欧文フォントによって違いますが全角の1/4から1/3程度の空白)を出力しますが頁の右端をそろえるためにかなり伸び縮みします。また半角空白は何個並べても1個分の空白しか出力しません。半角空白をいくつも出力するためには¥で区切ります。途中で改行されると困るときは~を使います。~は半角空白と同じ幅の空白を出力する命令ですが~で空けた空白では改行が起こりません。尚、行頭・行末の半角空白は何個あっても無視されます。
TEXの入力ファイルには地の文と組版命令とが混ざっています。組版命令にはいろいろありますし自前の命令を作ることもできます。LATEXという組文字を出力する命令は¥LaTeXです。このような命令は一般に¥LaTeX のように直後に半角空白 を付けて使うのが安全です。この半角空白は命令と地の文の区切りの意味しか持ちません。空白が出力されるわけではありません。あるいは半角空白を入れる代わりに¥LaTeX{}のように直後に{}を付けるか{¥LaTeX}のように全体を{}で囲むという手もあります。
$はTEXでは数式モードの区切りという特別な意味を持っています。「29ドル」という意味で$29と書きたいときは¥を付けて¥$29と書きます。¥$も¥で始まるのでTEXの命令の一種ですが¥にアルファベットでない記号・数字が付いて出来た命令は¥LaTeXのような命令と少し違った性質を持ちます。
文字・英数字・記号は半角を使用すると印字がきれいで書体も多くなります。特に指定がなければ日本語は明朝体、英数字はローマン体を使います。欧文については次の7書体が一般的です。@¥textrm{Roman}…標準なのでこれを使う機会は滅多にありませんA¥textbf{Boldface}B¥textit{Italic}C¥textsl{Slanted}D¥textsf{Sans Serif}E¥texttt{Typewriter}F¥textsc{Small Caps}
コマンド | 書体 |
¥bf | 太字 |
¥rm | ローマン体 |
¥it | イタリック体 |
¥mc | 明朝体 |
¥gt | ゴシック体 |
文字の大きさを変えるには通常は次の10種類の命令を使います。小さい順に列挙…@¥tinyA¥scriptsizeB¥footnotesizeC¥smallDnormalsize…標準なので特に指定する必要はありませんE¥largeF¥LargeG¥LARGEH¥hugeI¥Huge
¥begin{…}…¥end{…}のような対になった命令を環境といいます。例えば¥begin{quote}…¥end{quote}ならquote環境といいます。環境の一種の特別環境で各種の設定が環境の外側と異なります。例えばquote環境なら左マージンが周囲より広くなります。環境の中では書体を変えても環境の外には影響が及びません。quote環境の他によく使う環境にはつぎのようなものがあります。flushleft環境:左寄せ、flushright環境:右寄せ、center環境:中央揃え。これらの環境の途中で改行するときは¥¥を使います。
コマンド | 役割 |
¥begin{quote}…¥end{quote} | 引用文 |
¥begin{flushleft}…¥end{flushleft} | 左寄せ |
¥begin{flushright}…¥end{flushright} | 右寄せ |
¥begin{center}…¥end{center} | 中央揃え |
¥begin{array}…¥end{array} | 文字、数式を並べて出力(配列) |
¥begin{tabular}…¥end{tabular} | 表作成 |
¥begin{itemize}…¥end{itemize} | 箇条書き |
¥begin{abstract}…¥end{abstract} | 要旨出力 |
¥begin{description}…¥end{description} | 箇条書き(印) |
¥begin{enumerate}…¥end{enumerate} | 箇条書き(番号) |
¥begin{eqnarray}…¥end{eqnarray} | 数式揃え(番号あり) |
¥begin{eqnarray*}…¥end{eqnarray*} | 数式揃え(番号なし) |
¥begin{figure}…¥end{figure} | 図出力 |
¥begin{figure*}…¥end{figure*} | 図出力 |
¥begin{list}…¥end{list} | レイアウトのリスト |
¥begin{minipage}…¥end{minipage} | 小さい頁作成 |
¥begin{picture}…¥end{picture} | 図形作成 |
¥begin{quotation}…¥end{quotation} | 引用文 |
¥begin{tabbing}…¥end{tabbing} | 大きな表の作成 |
¥begin{table}…¥end{table} | 表出力 |
¥begin{table*}…¥end{table*} | 表出力 |
¥begin{thebibliography}…¥end{thebibliography} | 参考文献リスト作成 |
¥begin{theindex}…¥end{theindex} | 索引作成 |
¥begin{titlepage}…¥end{titlepage} | タイトルデザイン |
¥begin{verbatim}…¥end{verbatim} | ソース出力 |
¥begin{verbatim*}…¥end{verbatim*} | ソース出力 |
¥begin{verse}…¥end{verse} | 引用文 |
TEXで使える長さの単位にはつぎのようなものがあります。cm(センチメートル)、mm(ミリメートル)、in(インチ:1in=2.54cm)、pt(ポイント:72.27pt=1in)、pc(パイカ:1pc=12pt)、bp(ビッグポイント:72bp=1in)、sp(スケールポイント:65536sp=1pt)、em(元来は現在の欧文フォントの”M”の幅)、ex(元来は現在の欧文フォントの”x”の高さ)、zw(現在の和文フォントのボディの幅)、zh(元来は現在の和文フォントの字面の縦方向の実寸)、Q(級:1Q=0.25mm)、H(歯:1H=0.25mm)。印刷関係ではポイントという単位をよく使います。ポイントの定義は国によって若干の違いがあり、JISでは0.3514mmを1ポイントとしています。TEXでは1ポイントを1/72.72インチと定めています。一般のDTPソフトでは1ポイントは1/72インチですが、TEXでは1/72インチのことをビッグポイントと呼びます。写研などの写植機で使う級数(歯数)は和製の単位で、1級(Q)=1歯(H)=0.25mmです。1mmの1/4(quarter)だからQというのです。文字の大きさには級を、送りの指定には歯を使う習慣になっています。欧米の書籍では10ポイントの文字を使うことが多く、LATEXでも10ポイントが標準となっています。この10ポイントというのは、活版印刷では活字の上下幅、つまり詰めものをしないで活字を詰めたときの行送り量です。コンピュータのフォントではどの長さが10ポイントかはっきりしないのですが、TEX標準添付のConputerModernRoman体の10ポイント(cmr10)では、かっこ()の上下幅がちょうど10ポイントになっています。また、たまたまcmr10の数字2文字分の幅も10ポイントです。
以下で長さと書いた部分には1zwや12.3mmなどTEXで使える単位を付けた数を書き込みます。
左右にスペースを入れるには次のどちらかの命令を使います。¥hspace{長さ}(行頭・行末では出力されません。)、¥hspace*{長さ}(行頭・行末でも出力されます。)
段落間などにスペースを入れるには次のどちらかの命令を使います。¥vspace{長さ}(ページ頭・ページ末では出力されません。段落間に余分の行を入れるときなどに使います。)、¥vspace*{長さ}(ページ頭・ページ末でも出力されます。図を貼り付けるスペースを空けるときなどに使います。)。
脚注を出力するには、¥footnote{…}という命令を使って、¥footnote{…} と記述します。¥footnote{…}の直後には半角空白を入れるか、あるいは¥footnote{…}¥のように行末に¥を入れます。行末の¥は半角空白と同じ意味になります。また、¥marginpar{…}と記述すると、その行の横の欄外に出力されます。欄外への書き込みが出力される位置は次の通りです。1)奇数ページ・偶数ページのデザインが同じjarticle、jsartcleなどのドキュメントクラスでは右欄外に出力されます。2)奇数ページ・偶数ページのデザインが異なるjbook、jsbookなどでは外側の欄外(右側ページでは右欄外、左側ページでは左欄外)に出力されます。3)二段組では近いほうの欄外(左段なら左欄外、右段なら右欄外)に出力されます。
欧文や数字の部分は、半角文字を使うほうがバランスのとれた出力が得られます。全角文字ではプロポーショナルスペーシングになりません。
入力ファイル中では、欧文(半角文字)と和文(全角文字)の間にスペースを入れないのが標準的な書き方です。スペースを入れなくても、出力には自動的に全角文字の約1/4の空きが入ります。
句読点・括弧類は、和文では和文フォント(全角文字)、欧文では欧文フォント(半角文字)を使うのが一般的です。欧文の句読点の後には半角空白 が必要です。
引用符は「」『』のほかに和文フォントの””または欧文フォントの””もあります。欧文フォントの””はシングルクォートを2個ずつ入れて出力します。
疑問符?や感嘆符!は、もともと日本語にないもので、その扱いにも揺れがありますが、和文フォントを用い、直後に全角の空きを入れるのが標準的な組み方のようです。?や!がたまたま行末にきたときは空きを入れません。
¥underline{…}と入力すれば下線が引けます。アンダーラインはタイプライター時代の遺物です。強調は欧文ならitalic体やboldface体、和文なら圏点やゴシック体で表すのがTEX流です。そのため、TEXのアンダーラインはごく基本的な機能しか持たず、アンダーラインの途中で改行することもできません。
他ソフトで作った図・表の類は、いったんファイルに保存し、LATEXに挿入します。図・表に限らず、数式や外字の挿入もできますので、LATEXの枠内ですべてを行わなくても、いろいろなソフトと併用して文書を作ることができます。LATEXで取り込むことのできるファイル形式は、出力ソフトによって違います。例えばdviout for WindowsはEPS、WMF、EMF、PBM、BMPなどが使えます(プラグインを併用すればJPEG、PNGなども使えます)。ただ、Windows以外でも安心して使えるファイル形式は、今のところEPだけです。EPSはLATEXに限らずDTPの分野で広く使われています。LATEXでのグラフィックスの取り組みにもいくつかの方法がありますが ここではgraphicsパッケージを使った方法を説明します。これを使うには、プリアンブルに¥usepackage[dvips]{graphicx}と書いておきます。実際にグラフィックスを取り込むには¥includegraphicsという命令を使います。例えば文書ファイルと同じフォルダにAAA.psというEPS形式のファイルがあったとします。これを取り込むには次のようにします。
¥begin{center}¥includegraphics[width=5cm,clip]{AAA.ps}¥end{center}
上の例の仕上がりをdvioutやxdviで表示・印刷するには、Ghostscriptがインストールされていなければなりません。この例では、図AAA.psを、幅が5cmになるように拡大・縮小して出力することを意味します。オプションclipは、描画領域の外側を描かないという意味です。同様に¥includegraphics{height=5cm,clip}{AAA.ps}のように高さを指定することもできます。あるいは、¥includegraphics[width=8cm,height=5cm,keepaspectratio,clip]{AAA.ps}のようにすると、縦横比を保ったまま 8cm×5cmの長方形に収まるように拡大・縮小します。
図を実際に配置するにはfigure環境を使うと便利です。例えば
図¥ref{fig:2ji}は2次関数$y=x^2$のグラフである。¥begin{figure}¥includegraphics[width=5cm,clip]{2ji.eps}¥end{center}¥caption{2次関数$y=x^2$のグラフ}¥label{fig:2ji}¥end{figure}%このグラフは下に凸である。
とすると、LATEXは¥begin{figure}…¥end{figure}%の部分をとりあえず無視して「図??は2次関数y=x^2のグラフである。このグラフは下に凸である。」と出力します。そして、そのページの上か下の余ったところに図を出力し、図のすぐ下に「図1:2次関数y=x^2のグラフ」のように見出しを出力します。もしそのページに収まらないなら、次ページ以降に回します。¥label{…}と¥ref{…}の中身は、単なる符丁ですので、何でもかまいませんが、両方に同じ文句を書いておきます。「図??は…」のように、本文中で図の番号が??になっていますが、これはLATEXをもう一度実行すると、「図1は2次関数y=x^2のグラフである。このグラフは下に凸である。」のように正しい番号に置き換わります。¥caption{…}は図の説明を出力する命令ですが、これを使って図目次を自動的に作成することもできます。図目次を出力したい位置に¥listoffiguresと書いておきます。¥caption[短い説明]{長い説明}のように2通りの説明を付けることができます。長い説明は図の下に、短い説明は図目次に出力されます。短い説明がないときは、長い説明が図目次にも使われます。
graphicx(あるいはgraphics)パッケージを使えば、図の挿入以外にいろいろなことができます。例えば、どうしても1行に収めたい数式などは、¥resizeboxという命令を使って指定の長さにできます。¥rotatebox{角度}{…}で文字を回転することもできます。さらに、文字を¥reflectbox{左右反転}したり、¥scalebox{0.5}{小さく}したり、¥scalebox{0.5}[2]{縦と横のスケールを変えたり}できます。¥scaleboxを使えば漢字を合成することもできます。colorパッケージと併用すれば、色を付けることもできます。
¥begin{tabular}…¥end{tabular}が表そのものを出力する命令です。この命令は¥begin{tabular}{列指定}表本体¥end{tabular}の形で使います。列指定はl左寄せ(left)、c中央(center)、r右寄せ(right)を列の数だけ並べます。例えば、¥begin{tabular}{lcr}の場合、3列の表組みで1列目は左寄せ、2列目は中央、3列目は右寄せとなります。表本体では、列の区切りは&、列の区切りは¥¥です。表の最下行の終わりには¥¥は付けません(¥hlineが付く場合は例外です)。表は1つの大きい文字として扱われます。例えば、¥begin{tabular}{列指定}表本体¥end{tabular}を¥begin{center}、¥end{center}などで囲まなかったら、表は別行仕立てにならず、本文の中に入り込んでしまいます。
一時的にいくつかの列をまとめて1列のように扱う命令は¥multicolumn{まとめる列数}{列指定}{中身}です。例えば、¥multicolumn{3}{c}{AAA}は、3列分をまとめて中央揃えで「AAA」と出力します。¥multicolumn{1}{c}{AAA}は単に「AAA」を中央揃えに直すだけです。
罫線付きの表を作成する場合は、縦罫線は{列指定}の中の該当個所に半角縦線|を入れます。横罫線は¥hlineです。表の最下行の下にも罫線を引くときは、最下行にも¥¥が必要です。例えば、4行3列の罫線付きの表を作成する場合は次のように記述します。¥begin{center} ¥begin{tabular}{|c|c|c|} ¥hline A & B & C ¥¥ ¥hline D & E & F ¥¥ ¥hline H & I & J ¥¥ ¥hline K & L & M ¥¥ ¥hline ¥end{tabular} ¥end{center}。¥hline¥hlineと続けて書くと2重の横罫線になります。また、列指定の中で||で書くと2重の縦罫線になります。全体の横幅の定まった表はtabularの代わりにtabularxパッケージを使います。使い方はプリアンブルに¥usepackage{tabularx}と書いておき、表を出力したいところに¥begin{tabularx}{幅}{列指定}…¥end{tabularx}と書きます。幅を自由に変えてよい列はxと指定します。xと指定された列は、中身がたくさんでも適当に改行してくれます。tabular環境は1つの大きな文字と同等に扱われますので、ページをまたぐことはできません。ページをまたぐ表を作るためのパッケージとしてはlongtableやsupertabularがあります。longtableパッケージで長い住所録を作るには次のようにします。¥begin{longtable}{|l|l|} ¥hline 氏名 &住所 ¥¥ ¥hline ¥endhead ¥hline ¥endfoot A & Aの住所 ¥¥ B & Bの住所 ¥¥ … & … ¥end{longtable}。¥endheadまでの部分は各ページの表の先頭に出力します。ここで横線(¥hline)、氏名、住所、横線を出力します。その次から¥endfootまでの部分は各ページの表の最後に出力するものです。ここでは横線だけにしています。それ以下は、通常のtabular環境と同様です。
数行の表なら手でtabular環境を書くこともできますが、大きい表になると手で書くのは大変です。大きな表はExcelのような表計算ソフトで作ってから変換するのが便利です。これらのソフトで作った表は、EPS形式で出力して取り込むことができます。
LATEXでは次の文字・記号を印字するには半角の¥に続けて名前を書きます。但し、この指定は$と$、または$$と$$の間で(数式モード)でのみ有効です。$がなければLATEXにかけたときエラーになります。LATEXのなかで大部分のTEXのコマンドが使えます。一覧にしてみましたが表示不可能な文字が多くて省略多々です。
ギリシャ子文字
α | ¥alpha | β | ¥beta | γ | ¥gamma | δ | ¥delta |
ε | ¥epsilon | ¥varepsilon | ¥zeta | η | ¥eta | ||
θ | ¥theta | ¥vartheta | ι | ¥iota | κ | ¥kappa | |
λ | ¥lambda | μ | ¥mu | ¥nu | ξ | ¥xi | |
o | o | π | ¥pi | ¥varpi | ρ | ¥rho | |
¥varrho | σ | ¥sigma | ¥varsigma | τ | ¥tau | υ | ¥upsilon | φ | ¥phi | ¥varphi | χ | ¥chi | ψ | ¥psi | ω | ¥omega |
ギリシャ大文字(この他はローマン体の大文字を使います)
Γ | ¥Gamma | Δ | ¥Delta | Θ | ¥Theta | Λ | ¥Lambda |
Ξ | ¥Xi | Π | ¥Pi | 煤@ | ¥Sigma | Υ | ¥Upsilon |
Φ | ¥Phi | Ψ | ¥Psi | Ω | ¥Omega |
イタリックギリシャ大文字:¥mitと宣言するか{¥mit}で囲みます
スクリプト大文字:¥calと宣言するか{¥cal}で囲みます
区切り記号(括弧は()[]の他に次のものが使えます)
{ | ¥{ | } | ¥} | < | ¥langle | > | ¥rangle |
「 | ¥lceil | ¥rceil | ¥lfloor | 」 | ¥rfloor | ||
[ | ¥![ | ] | ¥!] | (( | (¥!( | )) | )¥!) |
《 | ¥langle¥!¥langle | 》 | ¥rangle¥!¥rangle |
関数名(元の関数とほぼ同一表記なので元の関数は省略します)
¥arccos | ¥arcsin | ¥arctan | ¥arg | ¥cos | ¥cosh | ¥cot | ¥coth |
¥csc | ¥deg | ¥det | ¥dim | ¥exp | ¥gcd | ¥hom | ¥inf |
¥ker | ¥lg | ¥lim | ¥liminf | ¥limsup | ¥ln | ¥log | ¥max |
¥min | ¥Pr | ¥sec | ¥sin | ¥sinh | ¥sup | ¥tan | ¥tanh |
大型演算子(数式として独立させたとき、次の演算記号では添え字が上下に付きます)
¥sum | Π | ¥prod | ¥coprod | ∫ | ¥int | ||
¥oint | ∩ | ¥bigcap | ∪ | ¥bigcup | ¥bigsqcup | ||
V | ¥bigvee | Λ | ¥bigwedge | ¥bigodot | ¥bigotimes | ||
¥bigoplus | ¥biguplus | det | ¥det | gcd | ¥gcd | ||
inf | ¥inf | lim | ¥lim | liminf | ¥liminf | limsup | ¥limsup |
max | ¥max | min | ¥min | Pr | ¥Pr | sup | ¥sup |
演算記号(+−の他に次の記号が使えます)
± | ¥pm | ¥mp | × | ¥times | ÷ | ¥div | |
* | ¥ast | ¥star | ¥circ | ・ | ¥bullet | ||
・ | ¥cdot | ¥uplus | ∩ | ¥cap | ∪ | ¥cup | |
Π | ¥sqcap | ¥sqcup | V | ¥vee | Λ | ¥wedge | |
¥triangleleft | ¥triangleright | ◇ | ¥diamond | ¥amalg | |||
△ | ¥bigtriangleleup | ▽ | ¥bigtriangleledown | ¥setminus | ¥wr | ||
¥lhd | ¥rhd | ¥unlhd | ¥unrhd | ||||
¥oplus | ¥ominus | ¥otimes | ¥oslash | ||||
¥odot | ○ | ¥bigcirc | † | ¥dagger | ‡ | ¥ddagger |
関係記号:関係記号は\verb¥notコマンドと組み合わせることができます(<>=の他に次の記号が使えます)
≦ | ¥leq | ≧ | ¥geq | ¥prec | ¥succ | ||
¥preceq | ¥succeq | ≪ | ¥ll | ≫ | ¥gg | ||
⊂ | ¥subset | ⊃ | ¥supset | ⊆ | ¥subseteq | ⊇ | ¥supseteq |
¥sqsubset | ¥sqsupset | ¥sqsubseteq | ¥sqsupseteq | ||||
∈ | ¥in | ∋ | ¥ni | ├ | ¥vdash | ┤ | ¥dashv |
≡ | ¥eqiv | 〜 | ¥sim | ¥simeq | ¥asymp | ||
¥approx | ¥cong | ≠ | ¥neq | ≒ | ¥doteq | ||
¥propto | ¥models | ⊥ | ¥perp | | | ¥mid | ||
|| | ¥parallel | ¥bowtie | ¥join | ¥smile | |||
⌒ | ¥frown |
その他の記号
¥aleph | ¥hbar | ¥imath | ¥jmath | ||||
l | ¥ell | ¥wp | ¥Re | ¥Im | |||
¥mho | ∂ | ¥partial | ▽ | ¥nabla | ’ | ¥prime | |
∀ | ¥forall | ∃ | ¥exists | ¬ | ¥neg | φ | ¥emptyset |
\ | ¥backslash | ∞ | ¥infty | ¥surd | ‖ | ¥Vert | |
♭ | ¥flat | ¥natural | ♯ | ¥sharp | □ | ¥Box | |
◇ | ¥Diamond | △ | ¥triangle | ┬ | ¥top | ┴ | ¥bot |
∠ | ¥angle | ¥clubsuit | ◇ | ¥diamondsuit | ¥heartsuit | ||
¥spadesuit | … | ¥ldots | … | ¥cdots | ¥vdots | ||
¥ddots |
矢印
← | ¥leftarrow | ¥longleftarrow | ↑ | ¥uparrow | |
¥Leftarrow | ¥Lonleftarrow | ¥Uparrow | |||
→ | ¥rightarrow | ¥longrightarrow | ↓ | ¥downarrow | |
⇒ | Rightarrow | ¥Longrightarrow | ¥Downarrow | ||
¥leftrightarrow | ¥Longleftrightarrow | ¥updownarrow | |||
⇔ | ¥Leftrightarrow | ¥Longleftrightarrow | ¥Updownarrow | ||
¥mapsto | ¥longmapsto | ¥nearrow | |||
¥hookleftarrow | ¥hookrightarrow | ¥searrow | |||
¥leftharpoonup | ¥rightharpoonup | ¥swarrow | |||
¥leftharpoondown | ¥rightharpoondown | ¥nwarrow | |||
¥rightleftharpoons | ¥leadsto |
スペース(数式の中では次のスペース調整コマンドが使えます)
¥, ¥: ¥; ¥半角スペース…右側のコマンドほど間隔が広くなります
次の記号は数式モードでなくても使えます
† | ¥dag | ‡ | ¥ddag | § | ¥S |
¶ | ¥P | (C) | ¥copyright | £ | ¥pounds |
添え字
^ | 上添え字 |
_ | 下添え字 |
PSファイルの1形式として、EncapsulatedPostScriptファイル(EPSファイル)というものがあります。これは、「カプセル化されたPSファイル」という意味で、PS形式で単独の画像を表したファイルです。挿絵として他のソフトで作った文書に差し込んで使うのが主な用途です。一般のPSファイルからページの概念を除いた限定的なPSファイルと言えます。LATEXで使う挿絵も、簡単なものはpicture環境などで描けますが、最近では専用の描画ソフトで描いてEPS形式で保存し、LATEXに読み込ませて使うことが多くなっています。Windowsでは、PSプリンタドライバをインストールしておけば、どんなソフトからでも印刷することによってPS(EPS)ファイルが作れます。EPSファイル場合は、「スタート」→「設定」→「プリンタ」で該当のプリンタを右クリックし、「プロパティ」「PostScript」で出力形式としてEPS形式を選択します。これで例えばExcelのグラフをファイルに印刷すればEPSが得られます。