我正在尝试创建一个表格,表格中间有一个填充列。但是,我的最后一列(S 类型)右侧没有填充,原因我不明白。
这里是 MWE
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{textcase}
\usepackage{tabularx}
\begin{document}
\newcommand*{\tableheadline}[1]{\multicolumn{1}{c}{\textsc{\MakeTextLowercase{#1}}}}
\begin{table}
\begin{tabularx}{\textwidth}{lS[round-mode=places,round-precision=2]XlS[round-mode=places,round-precision=2]} \toprule
\tableheadline{\MakeTextLowercase{Variable}} & \tableheadline{Value in }\si{eV} & & \tableheadline{Variable} & \tableheadline{Value in }\si{eV}\\ \midrule
$E_A$ & 0. & & $E_C$ & 0.\\
$J$ & 0. & & $\xi$ & 0.0\\
$t_1$ & 0. & & $t_2$ & -0.0\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
答案1
siunitx
问题与或无关tabularx
:问题在于您对 的使用\tableheadline
。您已将其定义为包含\multicolumn
以及案例更改,然后添加额外的标题材料后它(\si{eV}
)。然后该文本“悬空”并且无法通过对齐正确处理。如果您想保留\tableheadline
当前定义,请使用要\NoCaseChange
保护的部分免受大小写函数的影响:
\tableheadline{Value in \NoCaseChange{\si{eV}}}
或者,您可以分离出\mulicolumn
字体/文本更改部分。