dcolumn 使用较长的数字创建不需要的空白区域

dcolumn 使用较长的数字创建不需要的空白区域

我的问题:我有几个表格,每个表格跨越多页(长表),大约有 100-150 行。我希望表格中的数字格式化,以便它们在小数点处对齐,每个单元格有 2 个 2 个数字,中间有一条垂直线 (|)。此外,一些数字是粗体。| 应该在每个表格中的所有行上对齐。

到目前为止,我设法做到了这一点。但是,问题是,如果数字变大(例如,> 100),则数字后会添加额外的空格,从而导致 MWE 中显示的不良格式。我希望每行中的两个数字都紧密围绕 | ,以便第一个数字右对齐,第二个数字左对齐。

我也尝试了 siunitx 包,因为我读到它更灵活,但我无法让它处理粗体数字。

梅威瑟:

\documentclass{article}
\usepackage{newtxtext}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\\\arraybackslash\hspace{0pt}}m{#1}}
\usepackage{longtable}
\usepackage{dcolumn}
\usepackage{makecell}
\usepackage{calc}
\usepackage{multirow}
\newcommand{\mr}{\multirow}
\newcommand{\mc}{\multicolumn}

\begin{document}

\newcolumntype{.}{D{.}{.}{-1}}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\begin{longtable}{L{3.6cm}|>{\centering}m{2.2cm}|.c.|.c.}
\hline\hline
&  X & \mc{6}{c}{Some header text}\\
Y & Z & \mc{3}{C{2.75cm}}{A} & \mc{3}{C{2.75cm}}{B}\\
\hline
\endfirsthead
\mc{4}{c}%
{\tablename\thetable\ -- \textit{Continued from previous page}} \\
\hline\hline
&  X & \mc{6}{c}{Some header text}\\
Y & Z & \mc{3}{C{2.75cm}}{A} & \mc{3}{C{2.75cm}}{B}\\
\hline
\endhead
\hline \mc{8}{r}{\textit{Continued on next page}}
\endfoot
\hline
\endlastfoot
\mr{2}{*}{A1} & \mr{2}{*}{N1} & \mc{1}{B{.}{.}{-1}}{-2.8} & | & 3.1 & 2.4 & | &  0.8 \\
 &   &  0.9 & |  &  2.4 &   0.8 & |  &  3.7 \\
\mr{2}{*}{A2} & \mr{2}{*}{N2} & -200.8 & | & 3.1 & \mc{1}{B{.}{.}{-1}}{-5.4} & | &  0.8 \\
 &   &  0.9 & |  &  2.4 &   0.8 & |  &  3.7 \\
\hline
\end{longtable}
\end{document}

生成结果: 在此处输入图片描述

答案1

您使用的D..{-1}总是将 放在.列的中心。为每列选择更好的格式,因此

D..{4.1} D..{1.1} D..{2.1} D..{1.1}

为了

最宽的条目

-200.8 & 3.1 & -5.4 & 3.7

相关内容