
私は表を作成しましたが、簡潔にするために次のように簡略化しました。
\begin{tabular}{ |l|l|c c c|l|l|l| }
\hline
Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{ |c| }{Solution to $C_k$} & Current & Pursue & Stored\\
& & $x_1$ & $x_2$ & $z$ & & & \\ \hline
\end{tabular}
次のような出力が生成される。
さて、2 つの質問があります。どちらも複数列に関連しています。まず、3 番目の列にのみ影響する部分を生成することは可能ですか\hline
(「C_k の解」ラベルと 3 つの変数を分離する)?
次に、$x_1$、$x_2$、$z$ が中心化されていないように見えます。これを修正するにはどうすればよいでしょうか?
答え1
c
列幅の非対称性は、\multicolumn{3}{c}{Solution to $C_k$}
スパンされた列の幅の合計よりも広いという事実から生じます。その結果、$z$ を含む列は、複数列セルの幅に合わせて拡張されます。
すべての列の幅を等しくするには、c
列タイプなどを使用して列の幅を指定する必要がありましたp{<width>}
。
\documentclass{article}
\usepackage{array}% needed for column redefinition
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begin{tabular}{ |l|l|*{3}{C{2em}}|l|l|l| }
\hline
Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{c|}{Solution to $C_k$}
& Current & Pursue & Stored \\
\cline{3-5}
& & $x_1$ & $x_2$ & $z$ & & & \\
\hline
\end{tabular}
\end{document}
ただし、私はむしろ次の方法でテーブルを設計したいと思います。
\documentclass{article}
\usepackage{array, booktabs}% needed for column redefinition and nicer looks
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begin{tabular}{ ll *{3}{C{2em}} lll}
\toprule
& & \multicolumn{3}{c}{Solution to $C_k$} & & & \\
\cmidrule(lr){3-5}
Problem $I_k$ & Solved $C_k$ & $x_1$ & $x_2$ & $z$ & Current & Pursue & Stored \\
\midrule
\end{tabular}
\end{document}
答え2
tabularx
ここでは、パッケージを使用して、列の幅を手動で指定せずに、テーブルをテキスト幅に合わせて自動的に拡張するバリエーションを示します。
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ |l|l|*3{>{\centering\arraybackslash}X}|l|l|l| }
\hline
Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{ c| }{Solution to $C_k$} & Current & Pursue & Stored\\\cline{3-5}
& & $x_1$ & $x_2$ & $z$ & & & \\ \hline
\end{tabularx}
\end{document}