next up previous
: 5. 数式の組版 : 4. テキストの組版 : 4.11 環境

4.12 浮動体

現在,ほとんどの出版物にはたくさんの図や表が 掲載されています. これらはページをまたがって出力されないように, 特別な扱いが必要になります. 一つの方法として,図や表がそのページの余白に収まらない ときには常に新しいページを始めてしまうという方法があります. しかし,この方法では見栄えの非常に悪い空白の目立つページを 作ってしまうことになります.

この問題を解決するために,図や表がそのページに収まらない 場合,その残りのページは文章で埋め,図や表を`浮動体'として 次ページ以降に配置するという方法を採ります. LATEXには,浮動体として表(table)と 図(figure)の二つの環境があります. これら二つの環境を十分に活用するには, LATEXが内部でどのように浮動体を扱っているのかを 大まかにでも理解しておくことが重要になってきます. さもなければ,LATEXが浮動体を望んだ場所に 全く配置してくれないために,欲求不満にもなるでしょう.


では,まず浮動体を扱うLATEXのコマンドを見てみましょう.

figure環境やtable環境内の内容は, 浮動体として扱われます. どちらの環境も配置場所を指定する オプションパラメータplacement specifierを 使用することができます.


\begin{command}
\verb*\vert\begin{figure}[\vert\emph{placement specifier}\verb*...
...vert\begin{table}[\vert\emph{placement specifier}\verb*\vert]\vert
\end{command}
この引数(placement specifier)は, 浮動体を配置する場所をLATEXに伝えるために 使用されるオプションパラメータで, 浮動体の配置場所を示す文字の組合せを 指定します(表4.2参照).



表 4.2: 浮動体の配置場所
 記号 浮動体を配置する場所...  
 h この環境が書かれた文書中の まさにhere(この場所)に配置します. 主に小さな浮動体で使用します.  
 t ページtop(上部)に配置します.  
 b ページbottom(下部)に配置します.  
 p 浮動体だけが独立した特別なpage(ページ) に配置します.  
 ! 浮動体の配置を制約する内部パラメータ 1の 多くを無視して配置を行います.  
1 1ページに出力可能な浮動体の最大値など.

表は,例えば次のようなコマンドで始められます.

\begin{table}[!hbp]
配置場所を示した[!hbp]は, この表を文書中でこのコマンドが書かれた場所(h), ページ下部(b), 浮動体だけが独立したページ(p), もしくは見栄えが多少悪くなっても指定された条件を満たす場所に なんとか配置する(!)ことをLATEXに伝えます. もし,placement specifierが指定されなければ, 標準のクラスファイルでは[tbp]が指定されたものとして 扱われます.

LATEXは,浮動体をその配置場所の指定に従って 配置しようとします. 浮動体がそのページに配置できない場合には,,それぞれの待ち行列に保留されます4.17. 新しいページが始まると,まず最初にLATEXは待ち行列に 存在している浮動体で「浮動体だけが独立した」特別なページを 作成できるかどうかを調べます. 不可能だとわかると,待ち行列中の最初の浮動体はまさに今, 文章中に現れたかのように扱われます. つまり,LATEXはその浮動体の配置場所に指定された文字 (もはや配置不可能である`h'の指定は除く)に従って 浮動体の再配置を試みます. 文章中に現れる新しい浮動体はどれも, 適切な待ち行列に加えられていきます. LATEXは浮動体の種類ごとに,本文中に現れたその順番を 厳密に守ります. そのため,配置不能の図が出てくると,それ以降の全ての図を 文書の最後に配置してしまうことになるのです. つまり,

もし浮動体が望んだ場所に出力されないのであれば, 二つある浮動体の待ち行列のうちの一つで配置困難になっている たった一つの浮動体があるのです.


少し難しい説明をしてきたので,table環境と figure環境に関する別のコマンドについて説明しておきます.


\begin{command}
\texttt{\symbol{'134}caption}\verb*\vert{\vert\emph{caption text}\verb*\vert}\vert
\end{command}
このコマンドは,浮動体に説明文をつけるものです. 通し番号と``図'',``表''といった文字は自動で付けられます.

以下の二つのコマンドは,それぞれ図の目次,表の目次を出力す るもので,\tablefocontentsコマンドと同じように動作し ます.


\begin{command}
\texttt{\symbol{'134}listoffigures},\texttt{\symbol{'134}listoftables}
\end{command}
これらの目次には,それぞれ図,表の全ての説明文が 出力されます. 説明文に長い文章を使うような場合には, 目次には短い文を出力した方がよいでしょう. これは,\captionコマンドのオプション引数に 短い説明文を指定するだけで行うことができます.

\caption[Short]{LLLLLoooooonnnnnggggg}

\labelコマンドや\refコマンドを使用すれば, 文書中で浮動体の番号を参照することもできます.

次の例は,文書中に四角の枠を描き, 文書に余白を空けたものです. 最終的に図などを貼り付けるための余白を 文書中に作り出したければ,以下のコードを試して下さい.

 Figure~\ref{white} is an example of Pop-Art.
 \begin{figure}[!hbp]
  \makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
  \caption{Five by Five in Centimetres.} \label{white}
 \end{figure}

上の例では,LATEXは非常に熱心に!) 図をこの場所h)に置こうとします4.18. それが無理な場合,ページの下部b)に 配置しようとします. そのページにこの図を置くことができないとなると, この図と,表の待ち行列があればそこから取り出した表を含んだ 浮動体だけのページを作ることができるかどうかを決定します. 浮動体だけのページを作るには図表が足りない場合, LATEXは新しいページを起こし,初めて図表が現れたとみなして もう一度図の配置を行います.

ときには,次のコマンドを使う必要もあるでしょう.


\begin{command}
\texttt{\symbol{'134}clearpage} もしくは \texttt{\symbol{'134}cleardoublepage}
\end{command}
これらは,待ち行列に残っている全ての浮動体を 即座に配置し,新しいページを開始することを LATEXに命令するコマンドです. \cleardoublepageコマンドは, 新しいページが奇数ページから始まるようにするコマンドです.

この冊子の後半で,LATEX2e文書内に PostScriptで描かれた図を挿入する方法を説明します.


next up previous
: 5. 数式の組版 : 4. テキストの組版 : 4.11 環境
Hiroyuki Ohsaki (oosaki@ics.es.osaka-u.ac.jp)