在尝试在表格中显示一些数据时,我使用tabu
和siunitx
。我希望内容以点为中心。但是,最后一列、第一行的单元格没有居中。
\documentclass{article}
\usepackage{siunitx}
\usepackage{tabu}
\newcolumntype Y{S[%
group-four-digits=false,
round-mode=places,
round-precision=3,
round-integer-to-decimal=false,
per-mode=symbol,
detect-all,
]}
\tabucolumn Y
\usepackage{booktabs}
\makeatletter
\def\NN{\tabularnewline}
\def\FL{\toprule}
\def\ML{\NN\midrule}
\def\LL{\NN\bottomrule}
\makeatother
\begin{document}
\begin{tabu}{|c|Y|Y|Y|Y|}
\FL
$K$ & {2} & {5} & {10} & {100}
\ML
$\gamma_3$ & 0.13731 & 0.14011 & 0.11446 & 0.040306
\NN
$\gamma_4$ & -0.22974 & -0.069162 & -0.17112 & 0.11587
\LL
\end{tabu}
\end{document}
答案1
问题出现的原因在于您在另一个宏中“隐藏”了行尾。正确拾取行中的最后一个单元格很棘手,这导致需要在包内进行各种检测。但是,如果\\
(或\tabularnewline
) 在另一个命令中,则该方法会失败。因此,处理此问题的最佳方法是在此处替换\ML
为\\ \midrule
。