第 12 回(2005.07.11) -- 文書作成(LaTeX 入門 3)

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

LaTeX の文法 3

[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. 画像を扱うための「graphicx パッケージ」と呼ばれる特別なファイルを LaTeX に読み込む (一回だけで良い).
  2. 画像を取り込む.

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

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

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

■ PS 画像ファイルを表示するためのコマンド ■
コマンド 説明
\resizebox{表示横幅}{表示縦幅}{\includegraphics{画像ファイル名}} 表示(横|縦)幅は 10cm とか 105mm など,必ず「長さ単位」をつけた形で指定すること.
ただし,表示幅の横か縦を指定して,もう一つを " ! " という一文字を書いて指定することもできる. これは,「図の比率を保つように幅を決める」という意味になる.
基本的に,EPS 画像形式のファイルでないと扱えないので,他の形式の画像ファイルを読ませようとしないこと.
TeX コマンド例 解説
\resizebox{90mm}{!}{\includegraphics{graph.eps}} こうすると graph.eps という EPS ファイルの画像がその場所に出力される. 大きさは,横 90mm, 縦は 「図の比率を保つように」決められる.

実習 gnuplot で適当な eps ファイルを作成し,TeX で利用してみよ.

注意
阪大教育用計算機システムでは,eps ファイルを取り込んだ dvi ファイルを特別に意識することなしに表示,印刷ができる.
しかし通常は, eps 画像ファイルを取り込んだ dvi ファイルは 「Postscript ファイル or pdf ファイルへ変換」 しないと表示,印刷できないことがあるので,このことを覚えておこう.

[LaTeX文法] 図表

きちんとした文章では,図や表には必ず番号とキャプション(説明文)をつける必要がある. TeX にはもちろんそうした機能があるので,これをきちんと使えるようになろう.
上で用いた「画像の張り付け」などは図として処理しておくのがよい. また,作成した表に関してはもちろん表とするのがよいだろう.

TeX コマンドとしては,文の一部を図として処理するには \begin{figure}, \end{figure} という環境コマンドを用いればよい. 同様に,表として処理するには \begin{table}, \end{table} という環境コマンドを使えばよい.

これらのコマンドにはオプション引数が一つあり,それを使えばその図表が 「どこに表示されるかの希望を」指定することができる. 指定の仕方は, 「h … ここ」 「t … ページの最初」 「b … ページの最後」 「p … 別ページ」 である. ただし,指定はあくまで「希望」であり,TeX が計算した結果その希望が通らない場合がママある. そこで,そうした場合に備えて,この指定を複数組み合わせて指定できる. その場合は書いた順序がそのまま優先順序となるので,先に書いた希望がかなう確率が高くなる.

また,図表環境の中では \caption コマンドが使える. これは図表の解説文を示すためのものである. きちんとした文書の図表にはかならずキャプションが必要とされるので, 今から図表にキャプションをつける癖をつけておこう.

■ 図コマンド ■
TeX コマンド例 実際にはこう出力される
\begin{figure}[htbp]
   \centering
   図の中身
   \caption{例として作った図}
   \end{figure}
tex figure example 1
■ 表コマンド ■
TeX コマンド例 実際にはこう出力される
\begin{table}[htbp]
   \centering
   \begin{tabular}{ccc}
   a & b & c \\
   1 & 3 & 8
   \end{tabular}
   \caption{これも例}
  \end{table}
tex table example 1

実習 これまでに作成した「表」「図」を 図表として処理しなおしてみよ.

[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 1994, \LaTeX : A Document Preparation System, 2nd edition},
     Addison--Wiley, MA, USA.
  \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文法] 自分でコマンドを作る

LaTeX がもつ便利な機能の筆頭に,自分で自由にコマンドを作ることができるというものがあげられる. これにより,複雑な機能も簡単に記述できるようになるとともに, 使い込めば使い込むほど記述が容易になるのである.
この機能は非常に重要であるので,TeX を使いながら常に 「これはコマンド化した方が後々楽にならないかな…」と考えておくとよい.

コマンドを自分で作成する為のコマンドは数種類あるが,ここでは簡単で副作用も少ない2種類について述べておこう.

■ コマンド作成コマンド ■
コマンド 説明
\newcommand{新コマンド名}{実際の出力} 「新コマンド名」をタイプしておくと,「実際の出力」が出力される.
ただし,既に存在するコマンド名を新コマンド名とすることはできない(エラーになる).
様々な理由から, プリアンブル中で使うのが望ましい.
\newcommand[引数の数]{新コマンド名}{実際の出力} 「新コマンド名」をタイプしておくと,「実際の出力」が出力される. ただし,「実際の出力」の中で引数が #引数番号 として利用できる. 具体例をみれば意味はつかめるだろう.
ちなみに,引数の数は9つまでである.
様々な理由から, プリアンブル中で使うのが望ましい.
\renewcommand 文法的には \newcommand と使い方は一緒である(引数についても同様)が,
既に存在するコマンド名をコマンド名とすることもできる(コマンドの再定義).
既にあるコマンドを置き換えてしまうため, 良く考えてから使わないとひどい目にあうことがある ので要注意である.
様々な理由から, プリアンブル中で使うのが望ましい.


■ コマンド作成の例 ■
TeX コマンド例 実際にはこう出力される
\newcommand{\half}{\frac{1}{2}}
とプリアンブルで書いておけば,本文中で $\half$ とすると…
tex newcommand example 1
\newcommand{\pdrv}[2]{\frac{\partial #1}{\partial #2}}
とプリアンブルで書いておけば,本文中で $\pdrv{f}{x}$ とすると…
tex newcommand example 2
\newcommand{\vmatrix}[2]{\left(\begin{array}{#1}#2\end{array}\right)}
とプリアンブルで書いておけば,本文中で
$\vmatrix{ccc}{a & b & c \\ 1 & 2 & 0 \\ x & 0.1 & g}$
とすると…
tex newcommand example 3
\renewcommand{\theequation}{\roman{equation}}
とプリアンブルで書いておけば,式番号付きの数式を使ってみると,式番号が小文字のローマン数字で出る. 例えば,
\begin{equation}
   \tan(x)=y
  \end{equation}
とすると…
tex renewcommand example 1

実習 (余裕があれば) 上で示した自分でのコマンドの作成を試してみよ.

[LaTeX文法] おまけ 〜 Rn

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

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



レポート課題(単位認定要件)

以下に示す課題について 能う限り賢明な調査と考察を行い,

InformationLiteracy-03

という題名をつけて e-mail にて教官宛にレポートとして提出せよ(教官のメールアドレスは授業中に口頭で伝える).
なお,レポートを e-mail の代わりに TeX で作成した書面にて提出してもよい.

なお,本レポートは単位認定のための必須要件の一つであるので,きちんと提出すること.
注意 こちらの要求に沿っていないレポート,出来の悪いレポート,は未提出扱いにするので, ろくなレポートができなかった場合は単位が得られないものと提出時に覚悟しておくこと.

  1. 自己紹介のための文章をきちんと TeX で書いてみよ.

  2. ここ数週間の「解析学」ででてきた定理や概念をきちんと TeX で書いてみよ. 適当な図および参考文献リストも加えよ(図と参考文献は必須).

  3. ここ数週間の「線形代数学」ででてきた定理や概念をきちんと TeX で書いてみよ. 適当な図および参考文献リストも加えよ(図と参考文献は必須).

  4. 上の課題 1,2,3 の結果を,自分の web でみられるようにせよ.
    具体的には,作成した dvi ファイルを Postscript ファイルに変換し, さらに png ファイルに変換する「 Postscript ファイルから他形式への変換 」を用いて,png ファイルを web に掲載せよ.

    なお,TeX 文書が複数ページにわたる場合は,上記途中の Postscript ファイルを 1ページ毎に分割するなどして対応すると良い. 具体的な方法は, Postscript ファイルの分割(おまけ) を参照せよ.

  5. 以上ができたら,教官宛のメールにて それぞれの課題についてどのように作業を行ったか「詳しく」報告せよ. 詳しくない場合は未提出扱いである.
    ただし,メールが文字化けしている場合は未提出と見なすので注意すること.
    また,メール本文内に「自分の名前,所属,学籍番号, ログイン名」 の全ての項目が並記してきちんと明記されていないものは提出者不明扱いであるので注意すること.




最終更新日 … $Date: 2005-07-07 21:06:08+09 $
Valid CSS! Valid XHTML 1.1!