Numprint 吞噬行终止命令

Numprint 吞噬行终止命令

我使用 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}

相关内容