TeXの記憶(55) — 長い数式をページ幅に収めたい

LaTeXで長い数式をページ幅に収めるために\vboxを使った例です。

途中に演算子があればそこで改行するのですが、以下のような例だとちょっと困ってしまいます。

0926a

行列の真ん中で改行するのは見た目が悪いし、行数も多くなってしまうので避けたい。手っ取り早いのは文字サイズを小さくすることですが、単純に\smallを入れたりすると数式の番号も小さくなるので嫌だなという人もいると思います。それにこの例では\smallでも少しはみ出しています。

0926b

出版社は文字全体を小さくするよりも文字の幅を狭くするほうを好むので(「長体をかける」と言ったりします)、\scaleboxを使って以下の手順で長体がかかったように組んでみました。

  • \vboxの中に$\displaystyle の中で数式を組む$
  • \scaleboxの中で\box0を展開する
  • 下の行に数式番号を出力する

できるだけ数式をページサイズいっぱいにとるために数式番号だけ改行しています。ちょっとインチキくさいですが、なんとか目的は達しました。ほんとは数式番号の前で改ページしないようにペナルティを入れたほうがいいですね。

0926c

\setbox0=\vbox{\parindent=0pt$\displaystyle
\begin{bmatrix}
...数式の本体...
\end{bmatrix}$}

\noindent\scalebox{.9}[1]{\box0}
\begin{equation}
% 数式番号を出力するためだけに使っている
\end{equation}

 

TeXの記憶(56) --- 長い数式をページ幅に収めたい(その2)
前回は数式全体を\vboxの中に入れてから\scaleboxを使って縮小してしまいましたが、\vboxを使わずに数式の行の中で式を いくつかの方法で詰めてみたいと思います。 (1) \mathrelを使う 演算子の両側...

コメント