dcolumn 包中的符号问题

dcolumn 包中的符号问题

我想创建一个多列表格,其中数字在小数点处垂直对齐,因此我使用了 dcolumn 包。我的一些数字带有负号。对于每隔一列,我的代码可以完美运行,但对于其他列则不行。有人能找出我做错了什么吗?我是否将命令放在了D{.}{.}{-1}正确的位置?我的\textwidth命令看起来有点复杂,但我在此处发布的表格只是一个非常大的多列表的一小部分,我需要指定每列的宽度才能使其适合一页。

\documentclass[11pt,a4paper,twoside]{article}

\usepackage{dcolumn}
\usepackage{booktabs}

\begin{document}


\begin{table}[!htp]

\begin{tabularx}{\textwidth}
{p{0.3\textwidth}
p{0.05\textwidth}D{.}{.}{-1}
p{0.05\textwidth}D{.}{.}{-1}
p{0.05\textwidth}D{.}{.}{-1}
p{0.05\textwidth}D{.}{.}{-1}
p{0.05\textwidth}D{.}{.}{-1}
p{0.05\textwidth}D{.}{.}{-1}
}

\addlinespace \toprule[0.5pt] \addlinespace

\multicolumn{1}{l}{\textbf{Position}}  &  \multicolumn{6}{c}{\textbf{Model1}}\\
& \multicolumn{2}{l}{82m Mast} & \multicolumn{2}{l}{SODAR 1}& \multicolumn{2}{l}{SODAR 2}  \\
& m/s & \% &  m/s & \% & m/s & \%   \\


\addlinespace \midrule \addlinespace

 Mast 1   & 0.0  & 0.0  & -0.3 & -7.4  & -0.3 & -8.4    \\
SODAR 1     & 0.4  & 7.8  & 0.0  & 0.0   & 0.1  & 1.3     \\
SODAR 2     & 0.3  & 7.8  & 0.0  & 0.0   & 0.0  & 0.0     \\
 Mast 2  & -0.1 & -2.5 & -0.4 & -10.8 & -0.5 &  -12.5   \\

\addlinespace \bottomrule[0.5pt] \addlinespace
\end{tabularx}
\end{table}

\end{document}

答案1

我认为你没有很好地理解列D是……列说明符。照这样看,你的表有 13 列。我建议你删除这些\p{0.05\textwidth}列,并使用X第一列的类型。你还应该将\multicolumns 居中。以下是代码:

\documentclass[11pt,a4paper,twoside]{article}
\usepackage{amsmath}
\usepackage{dcolumn}
\usepackage{booktabs, tabularx}

\begin{document}

\begin{table}[!htp]

\label{tab:troistorrents_differences}
\begin{tabularx}{\textwidth}
{X
D{.}{.}{-1}
D{.}{.}{-1}
D{.}{.}{-1}
D{.}{.}{-1}
D{.}{.}{-1}
D{.}{.}{-1}
}
\toprule[0.5pt] 
\multicolumn{1}{l}{\textbf{Position}} & \multicolumn{6}{c}{\textbf{Model 1}}\\
\addlinespace
& \multicolumn{2}{c}{82m Mast} & \multicolumn{2}{c}{SODAR 1}& \multicolumn{2}{c}{SODAR 2} \\
& \multicolumn{1}{c}{m/s} & \multicolumn{1}{c}{\%} & \multicolumn{1}{c}{m/s} & \multicolumn{1}{c}{\%} & \multicolumn{1}{c}{m/s }& \multicolumn{1}{c}{\%} \\
\midrule
\addlinespace[0.75ex] 
 Mast 1 & 0.0 & 0.0 & -0.3 & -7.4 & -0.3 & -8.4 \\
SODAR 1 & 0.4 & 7.8 & 0.0 & 0.0 & 0.1 & 1.3 \\
SODAR 2 & 0.3 & 7.8 & 0.0 & 0.0 & 0.0 & 0.0 \\
 Mast 2 & -0.1 & -2.5 & -0.4 & -10.8 & -0.5 & -12.5 \\
\bottomrule[0.5pt] 
\end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

答案2

您可以使用siunitx它来更轻松地进行微调

\documentclass[11pt,a4paper,twoside]{article}

\usepackage{siunitx}
\usepackage{booktabs}

\begin{document}

\begin{table}[!htp]

\begin{tabular}{
 l
 S[table-format=-1.1]
 S[table-format=-1.1]
 S[table-format=-1.1]
 S[table-format=-2.1]
 S[table-format=-1.1]
 S[table-format=-2.1]
}
\toprule
\textbf{Position} & \multicolumn{6}{c}{\textbf{Model1}} \\
\cmidrule(lr){2-7}
& \multicolumn{2}{c}{\SI{82}{m} Mast}
& \multicolumn{2}{c}{SODAR 1}
& \multicolumn{2}{c}{SODAR 2}  \\
& {\si{m/s}} & {\%} & {\si{m/s}} & {\%} & {\si{m/s}} & {\%} \\
\midrule
Mast 1  &  0.0 &  0.0 & -0.3 &  -7.4 & -0.3 &  -8.4 \\
SODAR 1 &  0.4 &  7.8 &  0.0 &   0.0 &  0.1 &   1.3 \\
SODAR 2 &  0.3 &  7.8 &  0.0 &   0.0 &  0.0 &   0.0 \\
Mast 2  & -0.1 & -2.5 & -0.4 & -10.8 & -0.5 & -12.5 \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

在此处输入图片描述

相关内容