\
という文字が¥(円マーク)と表示されることがある。
またどういうわけか両者が混在することもある。
区別はないので同じものだと思って読んでください。
TeX (てふ、てっく)は、Donald E. Knuth が作成した 組版システムである。 もっとわかりやすい表現で言えばDTP(DeskTop Publishing)のためのシステムである。 LaTeX は、構造的に文章を記述できるようにするためのTeX の マクロパッケージであり、もともとはLeslie Lamportによって作成された。 pLaTeX2e はLaTeXの新しいバージョンである。
ワープロでは、画面上で実際に印刷イメージを直接編集する 方式が一般的である。 一方、TeXでは、原稿となる文書に、 文書の構造やレイアウトを指定する命令を マークアップ方式で埋め込んだソースファイルを作成し、 それをTeXシステムで処理することで初めてレイアウトが行なわれる。
この手順は、ワープロに比べると面倒であるが、
特に品質の差は歴然としており、 TeXベースの編集支援システムは出版社 (例:共立出版) において利用されているのに対し、 ワープロの出力がそのまま出版の現場で使われることはまずない。 また、数式記述能力が高いことから科学技術論文の記述に広く用いられる。 (例:電子情報通信学会 投稿論文スタイル。 ワープロファイルでも学会に投稿できるのだが、 そのままでは品質が低いため、改めてレイアウト処理を行うための費用が請求される。 ) 卒業論文や学術論文を作成する場合にも、利用する機会があろう。
LaTeX を用いた文書作成の一連の流れを図1に示す。
ソースファイルをTeX の処理系で処理すると、 dviファイル (device independent file) が作成される。 このファイルは、出力デバイスに依存しない形式のレイアウト情報が記述されている。 この dviファイルから、それぞれの出力デバイス(画面、プリンタ、出版用 写植機など)に変換することで、最終的な出力イメージが生成される。
このように非常に複雑なシステムであるが、
情報工学科の端末室で使用するコマンドは、
実のところ platex
と xdvi
だけである。
実際に簡単な例で実行してみよう。まずエディタを使って次の内容 のファイル renshu1.tex を作成する。
\documentclass[a4j]{jarticle} \begin{document} ソースファイル中の改行は 空白文字 として処理されるので、 編集しやすいようにどんどん改行してよい。 この上のところのように空行をあけると、 そこが段落の区切りになる。ちなみに % パーセントがあると、行末までコメント扱いになる。ひゃっほう! \end{document} パーセントの後ろは改行まで無視される。メモに使える。
このファイルをTeX で処理するにはplatex
コマンドを使う。
プログラミング言語の処理系と似ているので、
この作業を「コンパイルする」などと表現することもある。
% platex renshu1.texエラーがなければrenshu1.dvi というファイルができる。 X window上でレイアウトを確認するには
xdvi
コマンドを用いる。
% xdvi renshu1.dvi
最終的にプリンタに出力するためには、xdvi のprint機能を使えばよい。
TeX のコマンドのすべてはとても紹介し切れないので、 詳細は pLaTeX2e の書籍を参照して欲しい。 ここでは 主なものと、注意点のみを説明する。
基本的にTeX のコマンドは\
(バックスラッシュ)で始まる。
pLaTeX2eのソースファイルに必ず含まれていなければならない 最低限の構造は次のようになる。
\documentclass[a4j]{jarticle} \begin{document} \end{document}
\documentclass
は、作成している文書のスタイルを指定しており、
ここではjarticle
を指定している。他には
tarticle
(縦書き),jreport
(報告書)などが標準で用意されている。
a4j
の部分はスタイルに応じたオプション引数である。\begin{document}
と
\end{document}
の間に原稿の文章を書く。
\end{document}
以降は、文書にはまったく反映されない。\documentclass
と
\begin{document}
の間をプリアンブルと言う。
サンプルのところでも見たように、 TeXではソース中の空白と改行は保存されない。 連続した空白は空白一つと同じだと解釈され、 改行も(空行を構成する時以外は)空白と同じに解釈される。
これ以外にも、 コマンド名の開始やコメントの開始など、 ソース中に書かれた通りには処理されない文字がたくさん ある。
以下の1行目の文字を表示したい時には、2行目のように書かなければならない。
\^{}
と\~{}
の{}
は重要である。
# $ % ^ & _ { } ~ \# \$ \% \^{} \& \_ \{ \} \~{}
\
の表示は、
\\
とすると改行コマンドになってしまうので、
一筋縄ではいかない。
\verb=\=
や$\backslash$
などとする必要がある。
また引用符の使い方にも注意が必要である。
TeX では、ダブルクォート(")を書く時に、開く方と閉じる方を
区別して出力するために、
``このよう''
にシングルクォートなどを使って書く。
< >
は、馴染みがないがフランス語の引用符として
解釈されるので、思いもかけない表示になる。
これは、$>$
とするか
\verb=>=
とする。バックスラッシュを付けた
\>
は数式用の位置合わせコマンドになってしまう。
先ほどから時々出てきているが、小量の文字列を
そのまま出力したい時には\verb
コマンドが利用できる。
これは次の例のように\verb
コマンドの直後の文字で表示したい文字列を挟んで使う。
\verb|\ $ { }| \verb=\ $ { }=
なお、あるまとまった分量をそのまま出力して欲しい場合には、
\begin{verbatim}
と
\end{verbatim}
で囲む方法がある。
このように、
\begin{なんちゃら}
と\end{なんちゃら}
で構成される部分を 「なんちゃら環境」と呼ぶことが多い。
\begin{verbatim} ここに 書かれたものは、 書かれたとおりに100%出 力される(と よくいわれる。) \end{verbatim}
\section{大見出し}
\subsection{中見出し}
\subsubsection{小見出し}
\paragraph{段落見出し}
\begin{enumerate} \item 箇条書き1 \item 箇条書き2 \item 箇条書き3 \end{enumerate}連番なしの箇条書
\begin{itemize} \item 箇条書き1 \item 箇条書き2 \item 箇条書き3 \end{itemize}見出し+説明形式の箇条書
\begin{description} \item [見出し1:] 文章1 \item [見出し2:] 文章2 \item [見出し3:] 文章3 \end{description}
数式の記述は、TeXが最も得意とするものであるが、 レイアウト結果を見ないとそのありがたみが わからない。 ここはきちんと書かれた書籍を見たほうがよい。 以下では一例を示すにとどめる。
独立した行に $$y=\sum_{i=1}^{n}\sin(i/\pi)$$ のように書くものと、文中に $y=\sum_{i=1}^{n}\sin(i/\pi)$ のように書くものとがある。
上記で使われているのは、
$$
や$
による数式モード、
^{}
による上つき文字、
_{}
による下つき文字、
\sum
、\sin
、\pi
といった数学記号
である。
表はtabular環境で作成するが、 実際に利用するときには、 次のように さらにtable環境に はめ込む。 出版では、表(や図)は本文の流れとは 独立にページ上に配置される(この性質をフロートという)ことが多い。 table環境は、そのための処理を行い、表番号、表題などが付けられる。 table環境にすると、フロートとして扱われ、 ソース中の記述箇所ではない位置に配置されるようになる。
\begin{table}[htbp] \begin{center} \caption{- の使い方} \label{table:sample} \begin{tabular}{|l||c|p{5cm}|} \hline 名前 & TeX のソース & 使用例 \\ \hline\hline hyphen & \verb=-= & X-rated \\ \hline en-dash & \verb=--= & pages 8--13 \\ \hline em-dash & \verb=---= & Yes---or No? \\ \hline \end{tabular} \end{center} \end{table}
LaTeX 中の相互参照は、\label{ラベル名}
でラベルを付け、
それを\ref{ラベル名}
で参照することによって行なう。
例えば先ほどの表でも\label{table:sample}
というラベルをつけている。
これを文章中で参照するには、
-の数によって出力がどのように変化するのかを \pageref{table:sample}ページの表\ref{table:sample}に示す。のように使用する。
\label
を付けると、その場所の環境に応じて通し番号が振られ、
\ref
のところにはその番号が埋めこまれる。
\pageref
とするとページ番号が入る。
\ref
の場所には
「??
」と出力される。
なお、参考文献の参照にはまったく別のコマンド(bibliography環境、bibitem, cite)を用いる。頭の片隅に入れておこう。
図表の図は figure環境を用いる。
figure 環境のなかに置くイメージの作り方は、 TeXのようにコマンドを並べて書く方法、 他のツールで作成したイメージを取り込む方法などさまざまである。グラフィックスは出力デバイスに強く依存するので、 pLaTeX2e ではグラフィクス機能をパッケージとして分離している。
latexでは、出力デバイスに応じた最高の解像度で出力したいので、 図形も解像度に依存しないvector形式が好まれる。 ここでは、EPS(Encapsulated PostScript)形式の グラフィックイメージをpLaTeX2e で取り込む方法を説明する。 なお、EPS形式のグラフィックイメージは、 端末室では tgifコマンドや GnuPlotなどを使って作成できる。
まず dvips 対応のグラフィクスパッケージを読み込むように、LaTeX
のソースのプリアンブルに、
\usepackage
コマンドを書く。
\documentclass[a4j]{jarticle} \usepackage[dvips]{graphics} %←ここ \begin{document} ...
図を取り込む部分は次のように書く。
\begin{figure}[htbp] \begin{center} \includegraphics{systemoverview.eps} \caption{システムの概略} \label{fig:overview} \end{center} \end{figure}
イメージの大きさを調整したいときには\resizebox
などを
使って調節する。以下の例では、
横4cm (縦は比例縮尺)になるように調整している。
\resizebox{4cm}{!}{\includegraphics{systemoverview.eps}}
なお、 dvi ファイルには グラフィックイメージをどのように配置するのか、という情報だけが含まれており、 グラフィックスのイメージ自身は含まれていない。 デバイスへの出力時に、 dviファイルとグラフィックスのファイルをそれぞれ参照して、 実際の出力が行われる。
\documentclass{jarticle} \usepackage{moreverb} \begin{document} ソースリストを以下にしめす。 デフォルトではTABはスペース8個ごとに設定される。 \begin{verbatimtab} #include <stdio.h> main() { printf("guhehe\n"); } \end{verbatimtab} TABをスペース4個ごとに設定する場合。 \begin{verbatimtab}[4] #include <stdio.h> main() { printf("guhehe\n"); } \end{verbatimtab} \end{document}
\documentclass{jarticle} \usepackage{moreverb} \begin{document} ソースリストのファイルを指定して取り込む。 \verbatimtabinput{main.c} TABをスペース4つ毎にする場合。 \verbatimtabinput[4]{main.c} \end{document}
\documentclass{jarticle} \usepackage{moreverb} \begin{document} 引数は、最初の行の行番号。 \listinginput{1}{main.c} \end{document}
x [enter]
とするとコマンドプロンプトに戻ることが
多い。まれに[enter]
だけで処理を先に進めることができるこ
ともある。
\end [enter]
と何度か入力するとコマンドプロンプトに戻ること
が多い。
TeX は、膨大な量のメッセージを画面に出力しながら処理を行なう。 エラーで停止した時には数行上に「!」で始まる行があるはずなので、 その行のメッセージをヒントに間違いを見付ける。
参考までに、よく はまる間違いとして次のようなものがある。
\\
を忘
れてしまう(次の行でエラーになる)。
実行状況の詳細なログは、「.log」で終わるファイルに保存されて いる。「Overfull」と「Underfull」のメッセージは、「収まり切 らずにはみ出してしまった/窮屈である」と「ちょうど収まるもの がなくスカスカになった」というメッセージである。Overfull が 出た時にはレイアウト結果をよく確認しよう。
\documentclass{jarticle} \begin{document} \newcommand{\a}{ああああ!} \newcommand{\sad}{\texttt{\LARGE (T.T)}} \a がーん。\sad\sad\sad\sad \end{document}引数が必要な場合にはこのようになる。
\documentclass{jarticle} \begin{document} \newcommand{\attack}[2]{#1が#2で攻撃した。} \attack{ゴブリン}{棍棒} \attack{おじさん}{糸こんにゃく} \end{document}