может ли кто-нибудь любезно помочь мне решить эту задачу, заполнив вертикальную линию между ячейками.
С уважением
\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]
можно настроить под свой вкус. Скажите, если это работает.