第 4 章 表組み 37
4.3 表組みの Tips
\begin{tabular}[t]
{|c|>{\rule{0ex}{3ex}}m{3cm}
<{\rule[-1.5ex]{0ex}{3ex}}|}
\hline
記号&意味\\\hline\hline
\texttt{l}& 左寄せ\\\hline
\texttt{|}& 縦の罫線を入れる \\\hline
\texttt{p}& 指定した幅の段落を入れる\\\hline
\texttt{*}& フォーマットの繰り返し\\\hline
\end{tabular}
記号 意味
l 左寄せ
| 縦の罫線を入れる p 指定した幅の段落を
入れる
* フォーマットの繰り 返し
ここでは2番目の項目の前に>を用いて幅が0exで高さが3exの、後に<を用いて幅が0exで高 さが3exのものを-1.5ex上げて(1.5ex下げて)配置しています。したがって、解説文の一番上で は上に空く空間が、最後では下に空く空間がそれぞれ確保されることになります。
\ruleは次の形をとります。
\rule[上への移動距離]{幅}{高さ}
行の間隔が狭くなったときに調整する一般的な方法です。
4.3 表組みの Tips
表組みに関する細かい注意は[8]の解説を見てください。この文献には他書にない、表組みのデ リケートな部分の解説があります。
ここでは表組みに関するいくつかの基礎について解説します。
4.3.1 部分的に横線を入れる
部分的に横線を入れるためには\hlineの代わりに\clineを用います。次の例を見て下さい。2 行目のところに部分的な横線が入っています。
\begin{tabular}{|c|c|c|c|c|}
\hline
初めの項&2番目の項 &3番目の項 &4番目の項 & 5番目の項
\\\cline{2-2}\cline{4-5}
注意1& 次の話題& 機能の解説& 戻る& \\ \hline
\end{tabular}
初めの項 2番目の項 3番目の項 4番目の項 5番目の項 注意1 次の話題 機能の解説 戻る
42 第4章 表組み
4.3.2 行方向にいくつかの項をまとめる
行方向にいくつかの項をまとめるためには\multicolumnを用います。なお、対応する項目の次 の項目の直前までの部分がこの\multicolumnで設定した内容に置き換えられています。
\begin{tabular}{|c|c|c|c|c|}
\hline
初めの項&2番目の項 &3番目の項 &\multicolumn{2}{c|}{4番目と5番目の項}
\\\cline{2-2}\cline{4-5}
注意1& 次の話題& 機能の解説& 戻る& 注文\\ \hline
\end{tabular}
初めの項 2番目の項 3番目の項 4番目と5番目の項 注意1 次の話題 機能の解説 戻る 注文
次の例では単価のところに毎回「円」を書くために@{円}を入れています。しかし、項目名のと ころにも「円」が入ってしまいます。
\begin{tabular}[t]{|c|r@{円}|}
\hline
品物&単価\\\hline\hline CPU & 20000\\ \hline メモリー&5000 \\ \hline
ケース& 8000\\ \hline DVDドライブ& 9200\\ \hline マウス& 2000\\ \hline キーボード& 1100\\ \hline
\end{tabular}
品物 単価円
CPU 20000円
メモリー 5000円 ケース 8000円 DVDドライブ 9200円 マウス 2000円 キーボード 1100円
表の項目名のところの表示を変えるために1コラムの\multicolumnを用いることができます。表 題の部分を中央ぞろえに変更するために利用しています。
\begin{tabular}[t]{|c|r@{円}|}
\hline
品物&\multicolumn{1}{c|}{単価}\\
\hline\hline
CPU & 20000\\ \hline メモリー&5000 \\ \hline
ケース& 8000\\ \hline DVDドライブ& 9200\\ \hline マウス& 2000\\ \hline キーボード& 1100\\ \hline
\end{tabular}
品物 単価
CPU 20000円
メモリー 5000円 ケース 8000円 DVDドライブ 9200円 マウス 2000円 キーボード 1100円
4.3. 表組みのTips 43
4.3.3 列方向にいくつかまとめる
1つのセルを縦方向にいくつかまとめるのにはtabular環境に直接指定する方法がないので工 夫が必要です。次の例では与えられた文字列1の高さと幅を0cmにしてそれを全体として1.5ex分 だけ上げてあたかも中央にあるように見せています。
\begin{tabular}[t]{|c|c|c|c|c|}
\hline
&\multicolumn{2}{c|}{5月10日} &
\multicolumn{2}{c|}{5月11日}\\
\cline{2-5}
\raisebox{1.5ex}[0cm][0cm]{氏名}
&午前 &午後 &午前 &午後 \\\hline
平野&$\bigcirc$& $\times$ &$\times$ & $\triangle$\\ \hline
\end{tabular}
5月10日 5月11日 氏名 午前 午後 午前 午後 平野 ⃝ × × △
ここで\raiseboxは次の形をとります。
\raisebox{ボックスを上げる量}[ボックスの深さ] [ボックスの高さ]{出力内容}
LATEXのコマンドでは[ ]ではさまれた引数はオプションです。したがって必要がなければ指定す る必要はありません(ここではオプションの引数が二つあるので二つ目だけ与えるということはで きません)。ここでは表示するボックスの高さや深さを0cmにすることであたかもボックスがない ようにすることで余計な高さがほかのところに出ないようにしています。上げる量を負にすれば当 然のことながら下に下がります。
なお、上げる量の単位がexとなっていますが、これは現在使われているフォントにおけるxの 文字の高さを基準とした単位です。このような相対的な単位を用いている利点は文書のオプション を12ptに変えたときでもこの部分は変更しないで使えるという点にあります。文字の幅について はem(文字Mの幅)を使います。なお、この例では\bigcirc などの記号を表記するために数式 モードを利用しています。このモードの使い方については第6章を見てください。
やってみよう 4.1 次のことを確かめてみましょう。
1. [ ]の部分を省略した場合に表示がどうなるか確認しましょう。
2. 文書のオプションを12ptに変えて体裁が変わるかどうか確認しましょう。
このほかにmultirowパッケージで定義されている\multirow環境を利用することも可能です。
4.3.4 表の罫線の幅を変える
上記の例では表の罫線はすべての場所で同一です。部分的に変えるには次の例を見てください。
1正確には文字列を含むボックスです。
44 第4章 表組み
\begin{tabular}[t]{%
@{\vrule width 1pt}c!{\vrule width 1pt}r%
!{円\vrule width 1pt}}
\noalign{\hrule height 1pt}
品物&\multicolumn{1}{c@{\vrule width 1pt}}{単価}\\
\noalign{\hrule height 1pt}
CPU & 20000\\ \hline メモリー&5000 \\ \hline
ケース& 8000\\ \hline DVDドライブ& 9200\\ \hline マウス& 2000\\ \hline キーボード& 1100\\
\hline\noalign{\hrule height 1pt}
\end{tabular}
品物 単価
CPU 20000 円
メモリー 5000 円 ケース 8000 円
DVDドライブ 9200 円
マウス 2000 円 キーボード 1100 円
横線の幅を変えるために\\の直後に次のマクロを入れています。
\noalign{\hrule height 1pt}
これにより1pt(1/72.27インチ=0.351mm)の幅の水平線が入ります。
垂直の線の幅を変えるためにtabular環境の列の形式の中に@で次のものを挿入しています。
\vrule width 1pt
array環境で定義されている!を挿入するとデフォルトで入る列間の空白が取り除かれるま
せん。
これらの線の変更は複数の場所に現れるので体裁の統一や、読みやすさを考慮すると後で述 べるマクロを用いたほうがよいでしょう。たとえば
\newcommand{\WVrule}{\vrule width 1pt}
をtable環境の前に書いておけば上記のコマンドの代わりに\WVruleと書くだけですみま
す。罫線の幅を変えたくなったらここの1ptの値を変えるだけですみます。
マクロについては第7章を参照してください。
やってみよう 4.2 上記の例で!を@に変えたらどのように変化するか調べなさい。
やってみよう 4.3 九九の表を見やすく書き直しなさい。