我正在尝试沿小数点对齐不同行中的数值数据。我一直在尝试使用 的列类型S
。siunitx
我搜索并尝试了不同的方法,但尚未成功。这是我尝试过的 MWE:
\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell}
% Commands to add space before and after a horizonal line
\newcommand\Tstrut{\rule{0pt}{2.6ex}} % = 'top' strut
\newcommand\Bstrut{\rule[-0.9ex]{0pt}{0pt}} % = 'bottom' strut
\begin{document}
\begin{table}[!t]
\caption{My Table Example.}
\label{example}
\centering
% I use column type S for columns 2 and 3. Columns 1 and 4 use c.
\begin{tabular}{cS[table-format=2.2]S[table-format=2.2]c}
\Xhline{0.8pt}
This is & {This is} & {This is} & Here is \\
Column 1 & {Column 2} & {Column 3} & Column 4\\
\Xhline{0.8pt}
{$A_1$} & {1.02} & {$10.54$} & {$0.45$} \Tstrut\Bstrut\\
\hline
{$A_2$} & {43.23} & {$-3.62$} & {$-0.32$} \Tstrut\Bstrut\\
\hline
{$A_3$} & {1.30} & {$7.68$} & {$-5.85$} \Tstrut\Bstrut\\
\Xhline{0.8pt}
\end{tabular}
\end{table}
\end{document}
编译成功。但是,S
使用类型的第 2 列和第 3 列中的数据仍然未在小数点附近对齐。输出如下:
我将非常感谢任何提示和建议。
问候
A。
答案1
您需要摆脱不必要的、事实上具有破坏性的用S
花括号括住列中数字的方式。同时,也请摆脱-type 列$
中的符号S
。
\documentclass{article}
\usepackage{siunitx} % for 'S' column type
\usepackage{booktabs} % for well-spaced horizontal rules
% Commands to add space before and after an \hline
\newcommand\Tstrut{\rule{0pt}{2.6ex}} %'top' strut
\newcommand\Bstrut{\rule[-0.9ex]{0pt}{0pt}} %'bottom' strut
\newcommand\TBstrut{\Tstrut\Bstrut} % top and bottom strut
\begin{document}
\begin{table}[!t]
\caption{My Table Example.}
\label{example}
\centering
\begin{tabular}{@{} c S[table-format= 2.2]
S[table-format= 2.2]
S[table-format=-1.2] @{}}
\toprule
This is & {This is} & {This is} & {This is} \\
Column 1 & {Column 2} & {Column 3} & {Column 4}\\
\midrule
$A_1$ & 1.02 & 10.54 & 0.45 \Bstrut \\
\hline
$A_2$ & 43.23 & -3.62 & -0.32 \TBstrut \\
\hline
$A_3$ & 1.30 & 7.68 & -5.85 \Tstrut \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
我会使用\thead
列标题,而不是两行。您的S
列未在小数点上对齐,因为您的数字被括号包围,这意味着它们是普通数据,必须居中。我添加了caption
包以使标题和表格之间的间距更合理。
booktabs
如果您使用 中的规则(包括一些上下填充),则不需要支撑命令。无论如何,bigstrut
附带的包中已经有这样的支撑命令multirow
,并且单个命令可以添加一些高度和一些深度。
\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell, caption, booktabs}
\renewcommand{\theadfont}{\normalsize}
\begin{document}
\begin{table}[!t]
\caption{My Table Example.}
\label{example}
\centering
\begin{tabular}{cS[table-format=2.2]S[table-format=-1.2]c}
\toprule
\thead{This is \\ Column 1}& {\thead{This is \\Column 2}} & {\thead{This is \\ Column 3}} & \thead{Here is \\Column 4} \\
\midrule[0.8pt]
{$A_1$} & 1.02 & 10.54 & {$0.45$} \\
\midrule
{$A_2$} & 43.23 & -3.62 & {$-0.32$} \\
\midrule
{$A_3$} & 1.30 & 7.68 & {$-5.85$} \\
\bottomrule
\end{tabular}
\end{table}
\end{document}