\toprule и p{} в табличном виде

\toprule и p{} в табличном виде

В моем случае 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(раз уж вы его все равно используете):

Вы не ошибетесь, если всегда будете помнить два простых правила:

  1. Никогда, никогда не используйте вертикальные линейки.
  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 добавляет вертикальный отступ вокруг своих горизонтальных линий. По той же причине возникают проблемы при попытке использовать цвета в ячейках таблиц с 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} 

введите описание изображения здесь

Связанный контент