我有一个包含大量 SI 值的 tabularx 表。为此,我想定义一个新的列类型 u,将列的内容放入 \SI{XXX}{cm} 表达式中。
\newcolumntype{u}{>{\SI\begingroup}{X}<{\endgroup{cm}}}
在 tabularx-table 中使用它会导致“非法前置标记 X”和“数字中的标记无效”异常。将 X 替换为 c 只会引发“标记无效”异常。我该怎么做才能让它正常工作?
答案1
实现您想要的操作的一种方法是使用包collcell
:
代码:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{collcell}
\newcommand{\MyCommand}[1]{\SI{#1}{cm}}
\newcolumntype{u}{>{\collectcell\MyCommand}{l}<{\endcollectcell}}
\begin{document}
\begin{tabular}{l u}
\toprule
1 inch & 2.54 \\
1 meter & 100 \\
\bottomrule
\end{tabular}
\end{document}