这是 numprint 包中的错误吗?还是缺少某个功能?我无法在表格环境中对齐加号/减号,无法用空格填充数字。
\documentclass{article}
\usepackage{booktabs}
\usepackage{numprint}
\begin{document}
\begin{center}
\nplpadding[\ ]{4}
\begin{tabular}{*{2}{N{4}{2}}}
\toprule
-940 & +1000 \\
+952.38 & -1000 \\ \midrule
+12.38 & 0 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
欢迎任何提示。
答案1
我不知道“纯 TeX” 方式,但您可以使用右对齐的附加列(因为+
和–
具有相同的水平宽度,所以对齐并不重要)。
基础
\begin{tabular}{*{2}{r@{}N{4}{2}}}
\toprule
$-$ & 940 & + & 1000 \\
+ & 952.38 & $-$ & 1000 \\ \midrule
+ & 12.38 & & 0 \\
\bottomrule
\end{tabular}
填充仍由我们完成,numprint
但@{}
我们强制这样做+
,并且–
在排版时没有任何进一步的空间。
由于可能需要多次执行此操作,因此使用array
包中我们定义了另一个列规范:
\newcolumntype{M}[2]{r@{}N{#1}{#2}}
例如,它可以用作M{4}{2}
。
输入所有这些“与”符号有点繁琐,所以我们使+
和-
处于活动状态,以便它们自行插入“与”符号,但我们不希望这影响整个文档,只有我们的特殊才tabular
应该有这种效果,因此我定义了一个新的环境,它基本上只是一个具有活动和的环境ntabular
的包装器。tabular
+
-
(我没有引入另一个“自动”扩展为的字符&
,因为......您可以直接使用&
,不是吗?不幸的是,如果数字前面没有符号,仍然需要这样做。)
代码
\documentclass{article}
\usepackage{booktabs,numprint,array}
\begingroup
\catcode`-=\active
\catcode`+=\active
\gdef-{$\char`-$&}
\gdef+{\char`+&}
\endgroup
\newenvironment{ntabular}[1]{%
\catcode`-=\active
\catcode`+=\active
\tabular{#1}
}{%
\endtabular
}
\newcolumntype{M}[2]{r@{}N{#1}{#2}}
\begin{document}
Is it safe to use + and -?
\begin{table}[h]
\begin{ntabular}{M{3}{2}M{4}{2}}
\toprule
- 940 & + 1000 \\
+ 952.38 & - 1000 \\ \midrule
+ 12.38 & & 0 \\
\bottomrule
\end{ntabular}
\end{table}
Is it safe to use + and -?
\end{document}