\toprule e p{} em tabela

\toprule e p{} em tabela

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, \midrulee \bottomrulejunto 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:

insira a descrição da imagem aqui

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:

  1. Nunca, jamais use regras verticais.
  2. Nunca use regras duplas.

insira a descrição da imagem aqui

\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 booktabsregras 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 booktabspor 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 \multirowcé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} 

insira a descrição da imagem aqui

informação relacionada