我使用包S
中的列siunitx
来对齐数字,效果很好。但是,现在我想让一些数字跨越多行,使用multirow
,结果却出错了。
\documentclass{article}
\usepackage{multirow}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{lcS}
\toprule
\textbf{Characteristic} & \textbf{Criterion} & \textbf{No. of components} \\
\midrule
Length [m] & $>0$ & 5343 \\
\multirow{3}{*}{Factor [-]} & $[0;1]$ & \multirow{3}{*}{12160} \\
& $[0;3]$ & \\
& $[0;4.5]$ & \\
\midrule
\textbf{Total} & & 32124 \\
\bottomrule
\end{tabular}
\caption{caption}
\label{label}
\end{table}
\end{document}
在最左边的列中,multirow
工作正常;但是在最右边的列(S
列)中,有些东西不起作用。
任何帮助都将非常感谢,谢谢!
答案1
请尝试以下操作:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs,multirow}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabular}{lcS}
\toprule
\textbf{Characteristic} & \textbf{Criterion} & {\textbf{No. of components}} \\ % <---
\midrule
Length [m] & $>0$ & 5343 \\
\multirow{3}{*}{Factor [-]}
& $[0;1]$ & {\multirow{3}{*}{12160}} \\ % <---
& $[0;3]$ & \\
& $[0;4.5]$ & \\
\midrule
\textbf{Total} & & 32124 \\
\bottomrule
\end{tabular}
\caption{caption}
\label{label}
\end{table}
\end{document}
要使上述 mwe 起作用,您需要将S
列中所有非数字内容括在花括号中。然而,在您的情况下,值得考虑省略multirow
并将其内容放置到跨度的中间行:
\begin{tabular}{lcS[table-format=5.0]}
\toprule
\textbf{Characteristic} & \textbf{Criterion} & {\textbf{No. of components}} \\ % <---
\midrule
Length [m] & $>0$ & 5343 \\
& $[0;1]$ & \\
Factor [-] & $[0;3]$ & 12160 \\
& $[0;4.5]$ & \\
\midrule
\textbf{Total} & & 32124 \\
\bottomrule
\end{tabular}
这使: