第 11 回 (2002.07.02) -- LaTeX 入門 3

最終更新日 … $Date: 2002-07-07 06:52:58+09 $

今回は前々回,前回に引き続き,TeX について学ぶ. TeX の基本的な使い方,基本的な文法については前回までで把握できている. よって,今回は TeX の文法について残りのやや複雑なものを学ぶものとする.

[LaTeX文法] 表

表を LaTeX で書くにはおおざっぱに言って二つの方法がある. 一つは通常の文中用の表環境コマンド \begin{tabular}, \end{tabular} であり, もう一つは数式環境の中で使う表環境コマンド \begin{array}, \end{array} である.
使える場所が異なるが,どちらも使い方はほぼ同じである.
# tabular コマンドは数式中でも使えるのでこう分けるのは正確ではないが,まあいいだろう.

これらのコマンドには引数が一つあり,それを使って項目(カラム)の位置を指定する.
指定の仕方は,各々の項目ごとに, 「c … 中央揃え」 「l … 左揃え」 「r … 右揃え」 という 1文字を使う.

環境中で表を構成する内容を表すには, 表の各「行」の項目を & で区切って書き,最後に改行(\\) することで行の終りを示すというのが基本である. 最後の行は終りは指定しなくても分かるので,改行(\\)は不要である.

表中で,項目や行をはっきりさせるために「縦線」や「横線」を書きたいという時は,

\hline … 横線を入れる.入れたい場所でこのコマンドを書く.
| … 縦線を入れる.項目の位置指定を行う引数の中に書く.

を使う.詳しくは例をみてみよ.

■ 文中 表コマンド ■
TeX コマンド例 実際にはこう出力される
\begin{tabular}{clc|r||}
  gif        & 可逆圧縮       & web 発信   & .gif \\
  \hline
  jpeg       & 不可逆圧縮     & 写真データ & .jpg, .jpeg \\
  Postscript & ページ記述言語 & DTP        & .ps, .eps
  \end{tabular} 
tex tabular example 1

■ 数式中 表コマンド ■
TeX コマンド例 実際にはこう出力される
\begin{array}{|clcr}
  a+b+c   & ab          & 2002      & \sin(x) \\
  \log(y) & z           & \mbox{ab} & 1/2 \\
  \hline
  0       & \int f(x)dx & \cdots    & \ddots
  \end{array} 
tex array example 1

[LaTeX文法] 複数行にわたる数式(環境)

複数行にわたる数式を表すには,特別な数式環境コマンドである

\begin{eqnarray*}, \end{eqnarray*} ← 各行に番号がつかない

か,もしくは

\begin{eqnarray}, \end{eqnarray} ← 各行に番号がつく

を用いる( $ $ や \[ \] と同じく,数式モードを作り出す「環境」コマンドであるので, 数式の中では使えないことに注意. ).

これは項目が 3つある array 環境と似ている. 行の項目が 3つあるという前提がなされていて, 項目は & で区切られ,行の終りは \\(改行) で示される.
なお,eqnarray 環境の中で「この行には行番号をつけたくない」という場合は, その行の中で \nonumber コマンドを書いておけば良い.

■ 複数行の数式 ■
TeX コマンド例 実際にはこう出力される
\begin{eqnarray}
  x + y & = & 1.0 \\
  x - 0.5y & = & 3.5 \\
  \mbox{ただし } x & > & 0 \nonumber
  \end{eqnarray} 
tex eqnarray example 1

[LaTeX文法] 画像取り込み

LaTeX では Postscript 画像ファイルを取り込んで画像を表示することができる. ただし,Postscript ファイルの中には画像表示がうまくいかないものがあるので, できれば Encapsulated Postscript ファイル(EPS 形式) を用いるのが良い.
# Postscript は本来はコンピュータ言語であるので,PS ファイルの中に は「表示に適さない」ものも存在する. そこで,そうしたことのないよう,限定されたコマンドだけを使って書かれた Postscript ファイルを特別に Encapsulated PS ファイルと呼び,区別している.

# 他の画像形式を利用できる場合もあるが,なるべくならば 一般的に TeX で使える Postscript 形式を用いるのが良い.

画像を取り込むには二段階の手順が必要だ. また,画像を取り込んだ場合は印刷までにさらに余計な手順が必要となる.
まず,画像を取り込む手順を示そう. それは,

  1. 画像を扱うための「graphix パッケージ」と呼ばれる特別なファイルを LaTeX に読み込む (一回だけで良い).
  2. 画像を取り込む.

という手順である.
そこでまずパッケージを読み込むコマンドについて示そう.

■ グラフィックを扱うためのパッケージ読み込み ■
コマンド 説明
\usepackage{graphicx} 本文ではなく, プリアンブル中でこのコマンドを使うこと.
TeX ソースファイル中で一回だけやっておけば良い.

次に,Postscript ファイルを読み込むコマンドを示そう.

■ PS 画像ファイルを表示するためのコマンド ■
コマンド 説明
\resizebox{ 表示横幅 }{ 表示縦幅 }{\includegraphics{ 画像ファイル名 }} 表示(横|縦)幅は 10cm とか 105mm など,必ず「長さ単位」をつけた形で指定すること.
ただし,表示幅の横か縦を指定して,もう一つを " ! " という一文字を書いて指定することもできる. これは,「図の比率を保つように幅を決める」という意味になる.

これで画像を TeX 文書に取り込むことができる.

次に,画像を取り込んだ TeX 文書を印刷するまでの手順を示しておこう. ただし,阪大教育用計算機システムでは,この手順を踏まなくても印刷できるようになっている…はずだ.
しかし,この手順を理解しておかないと,他のシステムを触ったときに何が何だかわからないということになりかねない. 面倒でもまずはこの手順を実際に試してみて,理解しておくことが必要だ.

  1. dvi ファイルから Postscript ファイルを作成する.
    具体的な方法は,Postscript ファイルへの変換 を参照せよ.

  2. (印刷前に確認として) Postscript ファイルを画面上で閲覧する.
    具体的な方法は,画面への出力(Postscript 編) を参照せよ.

  3. Postscript ファイルを印刷する.
    具体的な方法は,Postscript ファイルの印刷 を参照せよ.

[LaTeX文法] 相互参照

TeX で文章を書いていると,章や節,リスト,数式の番号といった数字は TeX が自動的に割り振ってくれる. 作業が楽だというだけでなく, 様々な編集による変更で矛盾が生じないという意味でもこれは非常に論理的な設計であり, これは TeX の大きな利点の一つである.

この「番号を自動的に割り振る」機能をさらに生かすべく,TeX には 「この番号を参照するためのコマンド」が存在する.

例で示すと,文章の中で「これこれは 第○章を参照せよ」と書いたとする. しかし,このとき " 3 " などの具体的な数字を書いてしまうのはマズイ. もし,後で 3 章の前に章が一つ増えたら,その章は第 4 章になってしまい, 表記がずれるからである.

こうしたとき,TeX ではその章に「ラベル」を割り当てておいて,文章では 「これこれは 第" そのラベルの番号コマンド " 章」と書いておくのである.
すると,TeX が dvi ファイルを作るときにそのラベルを調べて, その番号に表示を書き換えてくれるのである. この仕組みによって,番号づけがいつも正しいことになる.

この機能を TeX では相互参照と呼ぶ. 数式を多用するような文章ではこの相互参照も多用されるので, 使いこなせるようになっておくべし.

注) 相互参照機能を使っているときは,ラベルの番号を調べる,表示する番号を書き込む, という段階をふむため,コンパイル(platex)を複数回しないといけない.
このことを忘れていても,コンパイルしたときにその旨(英語で)警告されるので, よくみていれば気づくだろう.

■ 相互参照コマンド ■
コマンド 説明
\label{ ラベル名 } その場所にラベルをつけるコマンド. { } の中にラベルの「名前」を書く.
\ref{ ラベル名 } \label でラベルをつけた場所の「番号」を表示する.
ラベルの場所によって,ラベルの番号の意味が違う. 数式中のラベルには数式の番号がつくし,普通の文中ならば章の番号がつくだろう.
\pageref{ ラベル名 } \label でラベルをつけた場所の「ページ番号」を表示する.

■ 相互参照の例 ■
TeX コマンド例 実際にはこう出力される
式(\ref{eq:completion}) によれば…
\begin{equation}
  x + y = 1.0
  \end{equation}
\begin{equation}
  x - 0.5y = 3.5 \label{eq:completion}
  \end{equation} 
tex label and ref example 1

[LaTeX文法] 参考文献

正確なレポートや文章を書くには,様々な文献を参照する必要がある. そのとき,参照した文献を文末にリストアップし, 読者にも参照できるようにするのは常識である.
LaTeX では参考文献は特別なリストとして扱われ,その文献を文中で参照する方法には相互参照によく似た方法を用いる.

つまり,参考文献は「特別なリスト」+「特別な相互参照」という機能で処理されると思えば良い.

それぞれの機能のためのコマンドを示そう.

\begin{thebibliography}{ 文献ラベル最長表示より長い文字列 }, \end{thebibliography},
文献リストを作るためのコマンド. 第 2引数がめんどくさいが(^-^). 使い方は以下のように \bibitem{ 文献ラベル名 } を用いる.
TeX コマンド例 実際はこう出力される
\begin{thebibliography}{aaa}
\bibitem{lamport}
  Leslie Lamport.
  {\em 1999, LaTeX : A Document Preparation System, 2/e}
\bibitem{nakano}
  中野 賢.
  {\em 1996, 日本語 LaTeX2$\epsilon$ブック}
\end{thebibliography}
tex reference example 1


\cite{ 文献ラベル名 }
上のように文献リストを作成しておいてから,その文献番号を参照するために使う.
TeX コマンド例 実際はこう出力される
      日本語 \TeX に特有の事情に関しては,\cite{nakano} を参照されたい.
tex cite example 1

[LaTeX文法] 長さ関連

TeX は印刷を最終目的とするシステムであるから,何かの「長さ」を指定する場面があちこちに存在する. その全てを網羅することはほぼ不可能であるので,よく使う長さ指定に関してだけ, ここで記しておこう.

■ よく変更したくなる長さ ■
長さ変数 意味 変更方法例
\textwidth 文面の「幅」. デフォルトの幅は意外に狭いので,これは変えたくなるだろう. プリアンブルの中で
\setlength{\textwidth}{170mm}
などと書き込む.
\textheight 文面の「高さ」. プリアンブルの中で
\setlength{\textheight}{220mm}
などと書き込む.
\baselineskip 行間の長さ. 変えたくなった場所で
\setlength{\baselineskip}{10mm}
などと書き込む.
\baselinestretch 行間の長さを「通常の何倍にするか」を決める数. よって,単位はない. また,変更の仕方も他と違うので注意. 基本的には プリアンブルの中で
\renewcommand{\baselinestretch}{2}
などと書き込む. (正確には,\baselinestretch が適用される前に,ということであるが…)

[LaTeX文法] おまけ 〜 Rn

数学科の学生が TeX を使おうとすると最初にてこずるのが体を表す記号などだろう. おまけとして二つほど方法を示しておくので,好きな方を使うと良い.

使い方 実際にはこう出力される
プリアンブルの中で \usepackage{amsfonts} と一回宣言しておいてから,
本文の使いたい場所で $\mathbb{R}^n$ とすると…
R field type 1
本文の使いたい場所で $\mbox{\bf R}^n$ とすると…
(プリアンブルで特に何か宣言する必要はない)
R field type 2


実習

  1. ログイン, Mozilla の起動, このページの閲覧

  2. この web を見ながら,出てきている全ての TeX コマンドを試してみる.

  3. ここ数週間の「解析学(数学 I-1)」ででてきた定理や概念をきちんと TeX で書いてみよ. 図も加え,参考文献リストなども加えよ.

  4. (課題) 上の内容ができたら,前回の課題で示したように,自分の web でその結果が見られるようにせよ. その方法は Postscript ファイルから他形式への変換 を参照せよ.
    この時,TeX 文書が複数ページにわたる場合,先頭ページしか web で見られないことがある. こうしたときは,Postscript ファイルを 1ページ毎に分割するなどして対応すると良い. 具体的な方法は, Postscript ファイルの分割(おまけ) を参照せよ.

    できあがったら,その旨をメールで報告せよ. -- kadai11 という題名でメールすること --