
No meu table
, para ter os textos centralizados em cada célula, estou usando
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
e em vez de um simples p{1.5cm}
, estou usando
>{\centering\arraybackslash}p{1.5cm}
Também estou usando \toprule
, \midrule
e \bottomrule
junto com \usepackage{booktabs}
.
Meu código é o seguinte:
\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}
E meu resultado parece muito estranho assim:
Primeiro, a linha vertical da extrema direita é curta; a primeira linha não está fechada à direita.
Segundo, todas as linhas verticais são cortadas.
Alguma ideia?
Responder1
A régua vertical da direita não é curta, está faltando, porque você usou
\multicolumn{4}{c}{ROR}
em vez de
\multicolumn{4}{c|}{ROR}
No entanto, em vez de adicionar as regras verticais, siga odiretrizessugerido porbooktabs
(já que você está usando de qualquer maneira):
Você não errará muito se lembrar sempre de duas diretrizes simples:
- Nunca, jamais use regras verticais.
- Nunca use regras duplas.
\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}
O empilhamento colunar de valores promove o alinhamento visual tornando o uso de regras verticais um tantoobsoleto.
Responder2
Você não pode usar booktabs
regras com regras verticais, porque booktabs adiciona algum preenchimento vertical em torno de suas regras horizontais. Pela mesma razão, há problemas ao tentar usar cores em células de tabelas com booktabs.
Você pode substituir booktabs
por boldlines
, que permite regras de largura variável em tabelas, para emular os diferentes tipos de regras de booktabs. Porém, na opinião de muitos, sua mesa ficará mais bonita se você usar apenas réguas horizontais.
Dou no código a seguir um exemplo de ambas as soluções. Observe que você não precisa usar \multirow
células vazias.
\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}