我使用 ctable 来制作表格,并且我也想使用 numprint 的自动格式化列类型。不幸的是,如果表格的最后一列是 numprint 列,则会破坏 ctable 的方便宏规则。问题似乎是 numprint 列必须采取一些诡计来检测列的结尾。
这很好用:
\documentclass{article}
\usepackage{numprint}
\newcommand\foo{\\}
\begin{document}
\begin{tabular}{N{3}{0}}
42 \\
1
\end{tabular}
\end{document}
但这无法编译,出现错误“!放错位置的 \cr。”并且随附的代码片段是:\reserved@c ->\ifnum 0=`{}\fi \cr
\documentclass{article}
\usepackage{numprint}
\newcommand\foo{\\}
\begin{document}
\begin{tabular}{N{3}{0}}
42 \foo
1
\end{tabular}
\end{document}
我尝试查看 numprint 代码,但我不够聪明,不知道如何解决这个问题。我能做些什么吗,或者只是无法让 numprint 与其他行终止符一起使用\\
?
答案1
使用\relax\foo
(或一些其他不可扩展的宏):
\documentclass{article}
\usepackage{numprint}
\newcommand\foo{\\}
\begin{document}
\begin{tabular}{N{3}{0}}
42 \relax\foo
1
\end{tabular}
\end{document}