next up previous
: 7.7 罫線と支柱 : 7. LATEXのカスタマイズ : 7.5 もっともっと長さについて

7.6 ボックス

LATEXは,ボックスを配置しまくることでページを作成します. それぞれの文字は小さなボックスであり,単語を形成するために 別の文字とつなぎ合わされます. これらの単語は,また別の単語とつなぎ合わされます. この際,単語間には伸びたり縮んだりして ページを同じ長さの行で正確に埋め尽くすことができる ゴムのような特別な糊が使用されます.

これがTEXで,実際に行われていることの最も簡単な説明です. 要するに,TEXは糊とボックスを操っている ということになります. 文字だけがボックスを形成しているわけではありません. 別のボックスを含んだボックスの中に仮想的にあらゆる要素を 置くことができ,LATEXはそれぞれのボックスを あたかも一つの文字として扱います.

これまでの章で既にいくつかのボックスを扱っているのですが, 今まで説明してきませんでした. 例えば,tabular環境や \includegraphicsコマンドは 共に一つのボックスを作ります. このことは,二つの表や図を横に並べることが 簡単にできることを意味します. ただし,並べられた際の幅が \textwidthを 越えないことを確認することは必要でしょう.

また次の二つの方法で,任意の段落を一つのボックスに 収めることもできます. 一つは


\begin{command}
\texttt{\symbol{'134}parbox}\verb*\vert[\vert\emph{pos}\verb*\vert]{\vert\emph{width}\verb*\vert}{\vert\emph{text}\verb*\vert}\vert
\end{command}

コマンドで,もう一つは


\begin{command}
\verb*\vert\begin{\vert\texttt{minipage}\verb*\vert}[\vert\emph{...
...\vert text
\verb*\vert\end{\vert\texttt{minipage}\verb*\vert}\vert
\end{command}

環境です. オプション引数の posパラメータは, 前後の文章のベースラインに対するボックスの上下位置を 設定するためのもので,ctbの いずれかを指定します. widthはボックスの幅を決める引数で,長さを指定します. minipage環境と \parboxコマンドの大きな違いは, \parboxコマンドの中ではあらゆるコマンドと環境が 使用できないのに対して,minipage環境内では そのほとんどが使用できることにあります.

改行を含んだ段落全体を詰め込む \parboxとは別に, 水平方向にだけ文章などを並べる一連のボックスコマンドもあります. 一つは,既に知っているコマンドです. \mboxコマンドがそれに当たります. このコマンドは,ひと続きのボックスを別のボックスに 詰め込んだり,LATEXが二つの単語に分断しないように するために使用されます. ボックスを別のボックスの中に置くことができるように, これらの水平ボックスも非常に柔軟に扱うことができます.


\begin{command}
\texttt{\symbol{'134}makebox}\verb*\vert[\vert\emph{width}\verb*\vert][\vert\emph{pos}\verb*\vert]{\vert\emph{text}\verb*\vert}\vert
\end{command}

引数 widthは出力されるときのボックスの幅を 指定します7.6. この引数には,長さを表すパラメータのほかに,\width\height\depth\totalheightといったコマンドも 使用できます. これらのコマンドには,textで指定された文字列を 組版したときに得られるボックスの数値がセットされます. posパラメータは,次に示す一文字を取ることができます. すなわち,c(中央:center), l(左詰め:left), r(右詰め:rright), ボックス幅一杯に文字列を広げるsの4つです.

\frameboxコマンドは, 文字列を枠で囲む以外は \makeboxコマンドと 全く同じように使用することができます.

以下に,\makebox\frameboxコマンドを 使用した例を示します.


\begin{example}
\makebox[\textwidth]{%%
c e n t r a l}\par\makebox[\textwidth][...
...ide}\par\framebox[1cm][l]{never
mind, so am I}Can you read this?
\end{example}

水平方向の制御を理解したところで, 次は垂直方向の説明に移りましょう7.7. LATEXでは,何でもないことです.


\begin{command}
\texttt{\symbol{'134}raisebox}\verb*\vert{\vert\emph{lift}\verb*...
...][\vert\emph{height}\verb*\vert]{\vert\emph{text}\verb*\vert}\vert
\end{command}

上記のコマンドで,ボックスを上下方向へ 移動させることができます. 最初の三つのパラメータ内には, text引数で与えられた文字列を組版したときの ボックスの大きさに基づいて設定される \width\height\depth\totalheightコマンドが使用できます.


\begin{example}
\raisebox{0pt}[0pt][0pt]{\Large\textbf{Aaaa\raisebox{-0.3ex}{a}%...
...t
one in line noticed that something
terrible had happened to her.
\end{example}


next up previous
: 7.7 罫線と支柱 : 7. LATEXのカスタマイズ : 7.5 もっともっと長さについて
Hiroyuki Ohsaki (oosaki@ics.es.osaka-u.ac.jp)