図を欲張る!

前回の図を貼りたいで一応、図を貼りつけることはできるようになったわけですが、今回は文章に比べて図の量が多いテクストを書く場合の体裁について見てみましょう。

TeXのマークアップという思想はWYSIWYG(What You See Is What You Get;ウィジウィグ、画面で見えるとおりに出力する)の対極にあります。つまり、TeX自体が「なるべく美しく見える様に」自動的にレイアウトを決定してくれる、という機能を持っています(※1)。

その反面、レイアウトを筆者の思い通りに自由自在に変える・・・というわけに はいきません。「なぁんでココに図が来ないで後ろに行っちゃうのぉ」ということがよくあります。特に、文章にくらべて図の量が多いテクストの場合には、図がテクストの後ろに集中してしまう傾向にあります。これはTeXの癖なのである程度は仕方ないのでしょうが、私は普段、次のようなコマンド(TeXでは正確には制御綴りと言います)を書くようにしています。


プリアンブル /
\renewcommand{\topfraction}{0.8}
\renewcommand{\bottomfraction}{0.8}
\renewcommand{\dbltopfraction}{0.8}
\renewcommand{\textfraction}{0.1}
\renewcommand{\floatpagefraction}{0.8}
\renewcommand{\dblfloatpagefraction}{0.8}
\setcounter{topnumber}{3}
\setcounter{bottomnumber}{3}
\setcounter{totalnumber}{3}


以上を\begin{document}の前に書いてください。

これらの意味を簡単に説明します。
\topfractionは、図や表(まとめて浮動体、フロートと言います)がページ上部に占める部分の割合の上限を表します。上の例では0.8としてますので、ページの上から測って80%までの部分が図だけで埋まっても良いという意味です。逆に、「2枚の図を貼ったら82%になっちゃう」ような場合には、2枚目の図は次のページに追い出されてしまいます。

\textfractionというパラメータは、逆に、文章が占有できるページの割合の下限を表します。上の例では、図がいっぱいあって「文章がページの8%しか入らないよ〜」という場合には、「もういいっ。このページには文章を書かないっ」となります。ここを大きな数字にすると、図のみのページができてしまい、「・・・スペース余ってるじゃん。もっと詰めなよぉ」って事態がよく起きます。

topnumberは、ページの上部に出力できるフロートの個数の上限を表すカウンタです。上の例では、いくら小さな図であっても、1ページに4つ以上は図が入らないことになります(ただしページの下部にはもっと入る可能性はあります)。
その他のパラメータやカウンタの意味も同じようなものなので、気になる方は適 当な解説書をご覧になってください。
参考までに、これらのデフォルトの値を次にあげておきます。


デフォルトの値 /
\topfraction : 0.7
\bottomfraction : 0.3
\dbltopfraction : 0.7
\textfraction : 0.2
\floatpagefraction : 0.5
\dblfloatpagefraction : 0.5
topnumber : 2
bottomnumber : 2
totalnumber : 3


比べてご覧になれば分かると思いますが、デフォルトの設定では、1ページの図 の量が少なめになっています。

最後に、老婆心ながら一言ご注意を。フロートのパラメータの設定の変更は、出力を見易くするための最小限にとどめるべきだと思います。くれぐれも、「やり過ぎない」で下さい。「どうしても4ページに収めたい! あと3行なのに!」みたいなときに、\renewcommand{\textfraction}{0.0}なんて泣く子も黙る極悪非道な設定をすれば4ページに収まることがあります。ええ、ありますとも(笑)。でもね。見にくいんよ。それって。




(※1) このために、筆者は文章の内容だけに神経を集中させれば良い、というのがTeXの 根底にある思想です(いや、マクロだスタイルファイルだ体裁だ、と言ってる時 点で内容に集中してねぇよ)。このあたりの考え方はHTML言語に似ていますね。 もっともHTMLには<pre> </pre>というWYSIWYGなタグがあります。 TeXのverbatim環境もかなりWYSIWYGに近いですが、 文字の書体がタイプライタ体になりますので、もともとTeX文書やプログラムの ソースを出力するための環境だと思います。

(2001.8.5)

Back