最近我发现它\tablenum
在表格设计中非常有用...但是在这方面我面临的问题是如何使用从S
列中已知的选项:-(
请考虑以下示例:
\documentclass[margin=3mm, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{siunitx}
\begin{document}
\num{< 10}
\begin{table}
This works, but numbers aren't aligned:
\begin{tabular}{S[input-comparators,
table-space-text-pre=<,
table-format = 1.2]
c}
\hline
1.23 & \tablenum{ 1.23} \\
< 1.23 & \tablenum{< 1.23} \\
\hline
\end{tabular}
\bigskip
This gives error "invalid token '<' in numerical input":
\begin{tabular}{S[input-comparators,
table-space-text-pre=<,
table-format = 1.2]
c}
\hline
1.23 & \tablenum{ 1.23} \\
< 1.23 & \tablenum[input-comparators,
table-space-text-pre=<,
table-format = 1.2]{< 1.23} \\
\hline
\end{tabular}
\end{table}
\end{document}
如果我强制编译,我会得到以下结果:
我做错了什么?现在我还发现符号也有问题<
...
答案1
请记住,这\tablenum
或多或少是\num
对齐的:它不是列的宏版本S
。因此,参数必须是数字。有多种方法可以实现您想要的效果
\documentclass[margin=3mm, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{siunitx}
\begin{document}
\begin{table}
\sisetup{input-comparators = , table-format = 1.2}
\begin{tabular}{|c|}
\hline
\hphantom{<}\tablenum{1.23} \\
\tablenum[table-space-text-pre=<]{1.23} \\
<\tablenum{1.23} \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
\tablenum
有一个用于选项设置的可选参数。但是,input-comparators
似乎不起作用,但 importanttable-format
起作用。以下示例使用小于符号的解决方法:
\documentclass[margin=3mm, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{siunitx}
\newcommand*{\mytablenum}{}
\begin{document}
\renewcommand*{\mytablenum}{\tablenum[table-format=1.2]}
\begin{tabular}{S[input-comparators,
table-space-text-pre=<,
table-format = 1.2]
c}
\toprule
1.23 & \hphantom{<}\mytablenum{1.23} \\
< 1.23 & <\mytablenum{1.23} \\
\bottomrule
\end{tabular}
\end{document}