单元格之间的垂直线

单元格之间的垂直线

有人能帮助我通过完成单元格之间的垂直线来解决这个问题吗?

问候

在此处输入图片描述

\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]根据您的口味进行调整。如果有效请告诉我。

相关内容