TeXの「こんなときどうする?」


トピック別にまとめてみます。随時更新していく予定。

数式関係

式番号を表示したい、したくない

式をそろえたい

数式中に文章を入れたい

図表

図を入れたい

表を入れたい



式番号を表示したい、したくない

数式の式番号を表示するには、equationという環境(\beginと\endで囲まれたもののこと)を使います。

ソース上の表記 出力結果
\begin{equation}
a=3
\end{equation}


複数行につけたい場合はeqnarrayを使う。

ソース上の表記 出力結果
\begin{eqnarray}
f(x)&=&-\frac{\displaystyle\frac{a}{x}}
{\displaystyle\frac{x^2}{x-1}}\\
&=&-\frac{a(x-1)}{x^3}
\end{eqnarray}


ある特定行だけ行番号を表示したくないときは\nonumberを使う。

ソース上の表記 出力結果
\begin{eqnarray}
f(x)&=&-\frac{\displaystyle\frac{a}{x}}
{\displaystyle\frac{x^2}{x-1}}\nonumber\\
&=&-\frac{a(x-1)}{x^3}
\end{eqnarray}


行番号表示を全部についてしたくない場合は*をつける。

ソース上の表記 出力結果
\begin{eqnarray*}
f(x)&=&-\frac{\displaystyle\frac{a}{x}}
{\displaystyle\frac{x^2}{x-1}}\\
&=&-\frac{a(x-1)}{x^3}
\end{eqnarray*}


式の=をそろえる必要がないならgather環境でもよいでしょう。使う際はプリアンブルで\usepackage{amsmath}とします。

ソース上の表記 出力結果
\begin{gather}
a+b=\dfrac{1}{2}\\[5mm]
2a-3b=\dfrac{2}{3}
\end{gather}


同じく*で式番号が消せます。


式をそろえたい

arrayおよびeqnarrayという環境でそろえるのがよいでしょう。

ソース上の表記 出力結果
$
\begin{array}{rcll}
a+b&=&\dfrac{1}{2}\hspace{5mm}&\cdots(1)\\
2a-3b&=&\dfrac{2}{3}\hspace{5mm}&\cdots(2)
\end{array}
$


array環境では一行を&によっていくつかのブロックに分けます。\begin{array}のあとにはそれぞれのブロックの中で文章がどの位置に来るか(r-右寄せ、c-中央、l-左寄せ)を指定します。array環境自体は数式環境でないので、$ではさんでやります。
\dfracとは「\displaystyle\frac{}{}」と同じで、分数を見やすい大きさに調整します。これを使用するには\usepackage{amsmath}とプリアンブルに記述してください。

左側を括弧でくくりたい場合は\left,\rightコマンドを使います。

ソース上の表記 出力結果
\[
\left\{
\begin{array}{lcll}
a+b&=&\dfrac{1}{2}\hspace{5mm}&\cdots(1)\\[5mm]
2a-3b&=&\dfrac{2}{3}\hspace{5mm}&\cdots(2)
\end{array}
\right.
\]


array環境全体を一文字としてみなし、その左側の幅にあわせて{を書く、というのが「\left\{」という意味です。{は単体では引数をとる括弧としてみなされてしまうので、{という文字を出力したいときは前に\をつけます。arrayの右側は特になにもつけないので、右側はなしという意味で「\right.」と書きます。省略できません。

\[〜\]は数式をセンタリングするコマンドで$$〜$$と大差ありません。
arrayの中の\\のあとの[5mm]は、arrayの中の行間を5mm大きくしろというコマンドです。前の出力では分数同士がぶつかっていたので、このように行間を広く取ってやればきれいに見えます。


この場合式番号は手作業でつけています。式番号をつけたいだけならeqnarray環境で十分です。

ソース上の表記 出力結果
\begin{eqnarray}
a+b&=&\dfrac{1}{2}\\
2a-3b&=&\dfrac{2}{3}
\end{eqnarray}


eqnarrayは数式環境なので、$で囲む必要はありません。また、&で分けるブロックは3つに固定されています。行間は自動で調整してくれます。


数式に文章を入れたい

ただ単に数式に文章を入れたければ数式中で\text{}として括弧内に文章を入れればOKです。

複数行の特別な環境下で 行間に文章を挿入する方法のひとつとして\lefteqnがあります。
ソース上の表記 出力結果
\begin{eqnarray}
a+b&=&\frac{1}{2}\\
\lefteqn{\hspace{-50mm}また
境界条件から}\nonumber\\
2a-3b&=&\frac{2}{3}
\end{eqnarray}


\lefteqnは幅0の文章ブロックをarrayの一番左のブロックに右寄せで配置します。中央に文章があるのが変なので、適当に50mm左にずらしています。このように力ずくでそろえることもあります。

上でも用いたように、=がそろう必要がないなら、gather環境で\intertextというコマンドを使うこともできます。

ソース上の表記 出力結果
\begin{gather}
a+b=\frac{1}{2}\\
\intertext{また境界条件から}
2a-3b=\frac{2}{3}
\end{gather}


\usepackage{amsmath}を忘れずに。

図を入れたい

まずプリアンブルで\usepackage{graphicx}とします。画像はtexファイルと同じディレクトリに置きます。

<EPS画像の場合>

\includegraphics{hoge.eps}
とすればOKです。dvioutでカラーのEPSがモノクロになっている場合はdvioutのoption→Setup Paramater→Graphicの「GIF:」のところでBMP(256COLORS)などを選べばよいみたいです(自分でも試行錯誤してなので)。要するにdviout側の表示の問題です。


<EPS以外の画像の場合>

EPS画像には画像の大きさについてのデータが含まれているそうです(Encapsulated PostScript)。なのでそれ以外のデータを貼り付ける場合は画像の大きさを明示してやる必要があります。といっても問題なく貼り付けられるのはビットマップとpsファイルだけかも。JPGもSusie Plug-inというものを使えば貼り付けられるはずなのですが、なぜか失敗しました。方法は検討中です。
貼り付ける方法としてひとつには
\includegraphics[width=**cm or pt,height=**cm or pt]{hoge.ps}
とするもの。[ ]内には大きさ以外にもトリミングなどいろいろなパラメータを設定できます。
原稿中にいちいち大きさを指定するのが面倒な場合は.bbファイルというものを画像ファイルと同じディレクトリに置きます。この.bbファイルは

%%BoundingBox: 0 0 320 240
%% hoge.ps


という2行からなっています。メモ帳などテキストエディタを開き、320,240のところをその画像の大きさに変え、hoge.psのところを画像ファイル名にし、画像ファイル名.bbとして保存します。
また、テキストエディタを使わなくてもdvioutのフォルダにcreateBBというプログラムがあるのでそれを使ってもよいし、コマンドラインで「bmc -b hoge.**」と入力してもbbファイルを自動生成してくれます。ただしbmcコマンドはないって言われるかも。dvioutのフォルダまで移動すれば使えますが、pathの問題ですかね。よくわかりません。

とにかく図の挿入についてはよくわからないエラーが出るのでimagemagicでpsないしepsに変換してしまうのが無難かと。


表を入れたい

簡単なのはarray環境で作ってしまうものです。
縦線の位置は\begin{array}のあとに記述し、横線はそのつど\hlineとして挿入します。

ソース上の表記 出力結果
\[
\begin{array}{|c||c|}
\hline
x&\dfrac{f(x)}{x}\\
\hline
\hline
0.1&0.4\\
\hline
0.2&0.3\\
\hline
0.3&0.25\\
\hline
0.4&0.35\\
\hline
0.5&0.5\\
\hline
\end{array}
\]


分数が表の上下にぶつかってしまっているのがいやな場合は、上下に空白をいれます。ひとつの方法はphantomコマンドを使うことです。
このコマンドは、{}で囲われた内部を、透明な文字として出力します。以下ではdisplaystyleでの分数の分数を透明にすることで上下幅を大きくとっています。かなり力技。

ソース上の表記 出力結果
\[
\begin{array}{|c||c|}
\hline
x&\phantom{\dfrac{\dfrac{1}{2}}{\dfrac{1}{2}}}
\dfrac{f(x)}{x}\phantom{\dfrac{\dfrac{1}{2}}{\dfrac{1}{2}}}\\
\hline
\hline
0.1&0.4\\
\hline
0.2&0.3\\
\hline
0.3&0.25\\
\hline
0.4&0.35\\
\hline
0.5&0.5\\
\hline
\end{array}
\]


f'(1)+\underbrace{\fc{1}{6}f'''(1)h^2+\fc{1}{120}f^{(5)}(1)h^4+O(h^6)}_{O(h^2)}

prev:「ちょいとつかってみる」へ
目次へ