вертикальная линия между ячейками

вертикальная линия между ячейками

может ли кто-нибудь любезно помочь мне решить эту задачу, заполнив вертикальную линию между ячейками.

С уважением

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

\begin{table}[htbp]
%\setlength\extrarowheight{3pt}
\renewcommand{\arraystretch}{1.2}
  \centering
  \caption{\textsc{Discrete Probability Distribution of Wind and Solar Resources, and Load}}
    \begin{tabular}{cc | cc | cc}
 \hlinewd{1.5pt}
\rowcolor[gray]{.9} \multicolumn{2}{c | }{\textbf{Solar}} & \multicolumn{2}{| c | }{\textbf{Wind }} & \multicolumn{2}{c}{\textbf{Load}} \\
 \hlinewd{1.5pt}
    \% of deviation      & Probability  & \% of deviation          & Probability     & \% of deviation           & Probability \\
        $e_{PV}$ & $\rho_{PV}$  &  $e_{W}$ &   $\rho_{W}$    &  $e_{L}$     & $\rho_{L}$ \\
 \hlinewd{1.5pt}
    -2.5 & 0.2 & -5    & 0.05 & -5    & 0.05 \\
         0 & 0.6 & -2.5 & 0.1   & -2.5 & 0.15 \\
      2.5 & 0.2 & 0      & 0.7   & 0      & 0.6 \\
         - & -    & 2.5    & 0.1   & 2.5  & 0.15 \\
          - & -    & 5      & 0.05 & 5     & 0.05 \\
 \hlinewd{1.5pt}
    \end{tabular}%
  \label{tab4.1}%
\end{table}%

решение1

Вот попытка следовать рекомендациямbooktabsдля профессиональных столов иsiunitxдля выравнивания числовых данных.

Обратите внимание, что фигурные скобки ( {...}) используются для экранирования содержимого ячеек, не содержащих выравниваемые числа. \multicolumnтакже служит для этой цели для этих ячеек.

Предоставление места для знака минуса в выравнивании — дело личного вкуса. Я не оставил для него места ( table-format=1.2означает число с одной цифрой до и двумя цифрами после десятичного разделителя), но вы можете оставить для него место с помощью table-format=-1.1.

Я также использовал, *{<num-repeat>}{<col-spec>}чтобы избежать повторений, повторяя <col-spec> <num-repeat>время в tabularпреамбуле.

\documentclass{article}
\usepackage{booktabs,siunitx}

\begin{document}
\begin{tabular}{
  *{2}{S[table-format=1.1]} 
  *{2}{S[table-format=1.1]S[table-format=1.2]}
}
  \toprule
  \multicolumn{2}{c}{Solar} & \multicolumn{2}{c}{Wind} & \multicolumn{2}{c}{Load} \\
  \cmidrule(lr){1-2}          \cmidrule(lr){3-4}         \cmidrule(lr){5-6}
  {\% of deviation} & {Probability} & 
    {\% of deviation} & {Probability} & 
    {\% of deviation} & {Probability} \\
  {$e_{PV}$} & {$\rho_{PV}$} & 
    {$e_{W}$} & {$\rho_{W}$} & 
    {$e_{L}$} & {$\rho_{L}$} \\
  \midrule
   -2.5 &   0.2 & -5.0 & 0.05 & -5.0 & 0.05 \\
    0.0 &   0.6 & -2.5 & 0.10 & -2.5 & 0.15 \\
    2.5 &   0.2 &  0.0 & 0.70 &  0.0 & 0.60 \\
  {---} & {---} &  2.5 & 0.10 &  2.5 & 0.15 \\
  {---} & {---} &  5.0 & 0.05 &  5.0 & 0.05 \\
  \bottomrule
\end{tabular}
\end{document}

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

Таблица слишком широкая для стандартного articleкласса, но я понятия не имею, какой класс или настройки полей вы используете. Я могу помочь вам больше, если вы предоставите эту информацию.

решение2

Если вы действительно хотите использовать вертикальные правила, совместимые с вашими горизонтальными правилами, вам следует попробовать {NiceTabular}( nicematrixв этой среде вертикальные правила также совместимы с правилами booktabs---, хотя это совсем не соответствует духу booktabsиспользования вертикальных правил).

 \documentclass{article}
 \usepackage{xcolor}
 \usepackage{nicematrix}
 \usepackage{geometry}

 \makeatletter
 \def\hlinewd#1{%
 \noalign{\ifnum0=`}\fi\hrule \@height #1 %
 \futurelet\reserved@a\@xhline} 
 \makeatother

 \begin{document}

 \begin{table}[htbp]
 \renewcommand{\arraystretch}{1.2}
 \centering
 \caption{\textsc{Discrete Probability Distribution of Wind and Solar Resources, and Load}}
 \begin{NiceTabular}{cc | cc | cc}[colortbl-like]
 \hlinewd{1.5pt}
 \RowStyle{\bfseries}
 \rowcolor[gray]{.9} \Block{1-2}{Solar} && \Block{1-2}{Wind} && \Block{1-2}{Load} \\
 \hlinewd{1.5pt}
 \% of deviation & Probability & \% of deviation & Probability & \% of deviation & Probability \\
 $e_{PV}$ & $\rho_{PV}$  &  $e_{W}$ &   $\rho_{W}$    &  $e_{L}$     & $\rho_{L}$ \\
 \hlinewd{1.5pt}
 -2.5  & 0.2  & -5   & 0.05 & -5   & 0.05 \\
     0 & 0.6  & -2.5 & 0.1  & -2.5 & 0.15 \\
   2.5 & 0.2  & 0    & 0.7  & 0    & 0.6 \\
     - & -    & 2.5  & 0.1  & 2.5  & 0.15 \\
     - & -    & 5    & 0.05 & 5    & 0.05 \\
 \hlinewd{1.5pt}
 \end{NiceTabular}
 \label{tab4.1}
 \end{table}
     
 \end{document}

Вам нужно несколько компиляций (т.к. nicematrixвнутри используются узлы PGF/Tikz).

Вывод кода выше

решение3

Подумайте о добавлении фиктивной строки перед первой строкой:

\begin{tabular}{cc|cc|cc}
\hlinewd{1.5pt}
\rowcolor[gray]{.9} & & & & & \\[-10pt]
\rowcolor[gray]{.9}\multicolumn{2}{c|}{\textbf{Solar}} & \multicolumn{2}{|c|}
{\textbf{Wind}} & \multicolumn{2}{c}{\textbf{Load}} \\
\hlinewd{1.5pt}

где [-10pt]можно настроить под свой вкус. Скажите, если это работает.

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