
私のではtable
、各セルのテキストを中央に配置するために、
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
そして単純な の代わりにp{1.5cm}
、私は
>{\centering\arraybackslash}p{1.5cm}
\toprule
、\midrule
、 も と\bottomrule
一緒に使用しています\usepackage{booktabs}
。
私のコードは次のとおりです:
\documentclass[12pt]{article}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{| >{\centering\arraybackslash}p{1.5cm} | >{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm} |>{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm} | >{\centering\arraybackslash}p{1.2cm}|}
\toprule
\multirow{2}{*}{} & \multicolumn{4}{c|}{Payoffs} & \multicolumn{4}{c}{ROR} \\
\cline{2-9}
& $\theta =1$ & $\theta =2$ & $E(P)$ & $\sigma(P)$ & $\theta =1$ & $\theta =2$ & $E(r)$ & $\sigma(r)$ \\
\midrule
Asset 1 & 110 & 95 & & & & & & \\
Asset 2 & 105 & 90 & & & & & & \\
Asset 3 & 120 & 90 & & & & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
そして、私の結果は次のように非常に奇妙に見えます:
まず、右端の縦線が短く、最初の行が右側で閉じられていません。
次に、すべての垂直線をカットします。
何かご意見は?
答え1
右側の縦線は短いのではなく、欠けているのです。
\multicolumn{4}{c}{ROR}
の代わりに
\multicolumn{4}{c|}{ROR}
ただし、垂直方向のルールを追加する代わりに、ガイドラインによって提案されましたbooktabs
(いずれにしても使用するので):
次の 2 つの簡単なガイドラインを常に覚えておけば、間違いを犯すことはありません。
- 垂直方向の罫線は絶対に使用しないでください。
- 二重ルールは絶対に使用しないでください。
\documentclass{article}
\usepackage{booktabs,array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begin{tabular}{ P{15mm} *{8}{P{12mm}} }
\toprule
& \multicolumn{4}{c}{Payoffs} & \multicolumn{4}{c}{ROR} \\
\cmidrule(lr){2-5}\cmidrule(lr){6-9}
& $\theta = 1$ & $\theta = 2$ & $E(P)$ & $\sigma(P)$ & $\theta = 1$ & $\theta = 2$ & $E(r)$ & $\sigma(r)$ \\
\midrule
Asset 1 & 110 & 95 & & & & & & \\
Asset 2 & 105 & 90 & & & & & & \\
Asset 3 & 120 & 90 & & & & & & \\
\bottomrule
\end{tabular}
\end{document}
列状の値の積み重ねは視覚的な整列を促進し、垂直方向のルールの使用をやや廃止。
答え2
ブックタブは水平方向の罫線の周囲に垂直方向の余白を追加するため、垂直方向の罫線を持つ罫線は使用できません booktabs
。同じ理由で、ブックタブを含む表のセルに色を使用しようとすると問題が発生します。
booktabs
を に置き換えるboldlines
と、表内の可変幅の罫線が許可され、ブックタブのさまざまな種類の罫線をエミュレートできます。ただし、多くの人の意見では、水平罫線のみを使用した方が表の見栄えが良くなります。
\multirow
次のコードでは、両方のソリューションの例を示します。空のセルにはを使用する必要がないことに注意してください。
\documentclass[12pt]{article}
\usepackage{array, boldline}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{booktabs}
\begin{document}
\begin{table}[!h]
\centering\renewcommand\arraystretch{1.25}
\begin{tabular}{|P{1.5cm} | *{8}{P{1.2cm} |}}
\hlineB{2}
& \multicolumn{4}{c|}{Payoffs} & \multicolumn{4}{c|}{ROR} \\
\cline{2-9}
& $\theta =1$ & $\theta =2$ & $E(P)$ & $\sigma(P)$ & $\theta =1$ & $\theta =2$ & $E(r)$ & $\sigma(r)$ \\
\hlineB{2}
Asset 1 & 110 & 95 & & & & & & \\
Asset 2 & 105 & 90 & & & & & & \\
Asset 3 & 120 & 90 & & & & & & \\
\hlineB{2}
\end{tabular}
\end{table}
\vskip1cm
\begin{table}[!h]
\centering\renewcommand\arraystretch{1.25}
\begin{tabular}{P{1.5cm}*{8}{P{1.2cm}}}
& \multicolumn{4}{c}{Payoffs} & \multicolumn{4}{c}{ROR} \\
\cmidrule[0.6pt](lr){2-5}\cmidrule[0.6pt](lr){6-9}
& $\theta =1$ & $\theta =2$ & $E(P)$ & $\sigma(P)$ & $\theta =1$ & $\theta =2$ & $E(r)$ & $\sigma(r)$ \\
\midrule[\heavyrulewidth]
Asset 1 & 110 & 95 & & & & & & \\
Asset 2 & 105 & 90 & & & & & & \\
Asset 3 & 120 & 90 & & & & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}