我有一张包含实际值和文本的表格。我想将值与点对齐,但我不知道该怎么做。
我尝试使用该siunitx
选项{S[table-format=3.2]}
,但是它不起作用。
这是我的代码:
\begin{table}[!h]
\begin{center}
\begin{tabular}{c c c c}
\toprule
& apple & banana okay & peach \\
& tree & green garden & beach \\
\hline
aaa & \textbf{--36.68} & --20.10 & --17.35 \\
bbb & \textbf{--51.18} & --12.15 & --28.33 \\
ccc & --8.33 & --6.40 & \textbf{--14.47} \\
ddd & \textbf{--53.01} & --18.09 & --16.78 \\
eee & \textbf{--74.02} & --12.26 & --58.64 \\
fff & \textbf{--57.15} & --19.58 & --23.81 \\
ggg & \textbf{--47.56} & --17.90 & --15.26 \\
\bottomrule
\end{tabular}
\captionsetup{width=0.85\linewidth}
\caption{Caption text }
\label{tab:TAB-TAB}
\end{center}
\end{table}
我怎样才能使点之间的值对齐?
答案1
你可以适应我的这个答案
\documentclass{article}
\usepackage{siunitx,booktabs,etoolbox}
\begin{document}
\begin{table}[!htp]
\centering
%% local redefinitions
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\renewrobustcmd{\boldmath}{}
\begin{tabular}{
@{}
l
*{3}{S[table-format=-2.2,detect-weight,mode=text]}
@{}
}
\toprule
& {apple} & {banana okay} & {peach} \\
& {tree} & {green garden} & {beach} \\
\midrule
aaa & \bfseries -36.68 & -20.10 & -17.35 \\
bbb & \bfseries -51.18 & -12.15 & -28.33 \\
ccc & -8.33 & -6.40 & \bfseries -14.47 \\
ddd & \bfseries -53.01 & -18.09 & -16.78 \\
eee & \bfseries -74.02 & -12.26 & -58.64 \\
fff & \bfseries -57.15 & -19.58 & -23.81 \\
ggg & \bfseries -47.56 & -17.90 & -15.26 \\
\bottomrule
\end{tabular}
\caption{Caption text }
\label{tab:TAB-TAB}
\end{table}
\end{document}
答案2
主要问题是不同字体(粗体和非粗体)的混淆。以下示例通过使用三列作为数字列,以繁琐的方式解决了该问题:
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\begin{tabular}{
c
r@{}c<{.}@{}l
S[table-format=-2.2]
r@{}c<{.}@{}l
}
\toprule
& \multicolumn{3}{c}{apple} & {banana okay} & \multicolumn{3}{c}{peach} \\
& \multicolumn{3}{c}{tree} & {green garden} & \multicolumn{3}{c}{beach} \\
\midrule
aaa & \boldmath$-36$&&\boldmath$68$ & -20.10 & $-17$&&$35$ \\
bbb & \boldmath$-51$&&\boldmath$18$ & -12.15 & $-28$&&$33$ \\
ccc & $-8$&&$33$ & -6.40 & \boldmath$-14$&\bfseries&\boldmath$47$ \\
ddd & \boldmath$-53$&&\boldmath$01$ & -18.09 & $-16$&&$78$ \\
eee & \boldmath$-74$&&\boldmath$02$ & -12.26 & $-58$&&$64$ \\
fff & \boldmath$-57$&&\boldmath$15$ & -19.58 & $-23$&&$81$ \\
ggg & \boldmath$-47$&&\boldmath$56$ & -17.90 & $-15$&&$26$ \\
\bottomrule
\end{tabular}
\captionsetup{width=0.85\linewidth}
\caption{Caption text }
\label{tab:TAB-TAB}
\end{table}
\end{document}
答案3
以下是如何使用 来实现siunitx
。借助makecell
包,我将前两行分组,以获得更紧凑的代码。此外,我替换了\hline
以\midrule
添加一些填充。注意标题传统上放置在多于表格:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\usepackage{booktabs, caption}
\usepackage{makecell}
\begin{document}
\begin{table}[!htb]
\centering
\captionsetup{width=0.85\linewidth, skip=8pt}
\sisetup{table-format=-2.2, detect-weight}
\caption{Caption text }
\label{tab:TAB-TAB}
\begin{tabular}{c *{3}{S}}
\toprule
& {\makecell{apple \\tree}} & {\makecell{banana okay\\green garden}} & {\makecell{peach\\beach}} \\
\midrule
aaa & \boldmath $ -36.68$ & -20.10 & -17.35 \\
bbb & \boldmath$- 51.18 $ & -12.15 & -28.33 \\
ccc & -8.33 & -6.40 & \boldmath$ -14.47 $ \\
ddd & \boldmath $ -53.01 $ & -18.09 & -16.78 \\
eee & \boldmath $ -74.02 $ & -12.26 & -58.64 \\
fff & \boldmath $ -57.15 $ & -19.58 & -23.81 \\
ggg & \boldmath $ -47.56 $ & -17.90 & -15.26 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}