tabularx 中的 siunitx

tabularx 中的 siunitx

我有一个包含大量 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}

相关内容