我遇到的情况是,我必须提供许多不同信号的指标。但是,有些指标有单位,有些没有单位,有些是百分比值。在示例中,使用的值\SI{99.99}{\percent}
未对齐,而其他未对齐的\SI{99.99}{\percent}
值则对齐。是否可以将小数点处的数字对齐?我不想要额外的单位列。
我发现了一个类似问题,但无法适应我的需要。
\documentclass[a4paper,7pt]{scrreprt}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}[htpb]
\centering
\sisetup{
table-align-text-post=false, %
}
\begin{tabular}{
l
S[table-format=1.6]
S[table-format=3.3]
S[table-format=3.3]
}
\toprule
Measure &
\multicolumn{1}{c}{Signal1} &
\multicolumn{1}{c}{Signal2} &
\multicolumn{1}{c}{Signal3} \\
\midrule
MAE & \SI{0.250}{\volt} & \SI{235.25}{\ampere} & \SI{235.25}{\ohm} \\
MAPE & \SI{1.012}{\percent} & \SI{10.25}{\percent} & \SI{10.285}{\percent} \\
RMSE & \SI{0.25}{\volt} & \SI{235.25}{\ampere} & \SI{235.2}{\ohm} \\
Metric 1 & 0.000498 & 0.498 & 232.34 \\
Metric 2 & 0.0498 & 14.498 & 0.34 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
对于S
列:您需要单独写入单位,例如使用\si{...}
\documentclass[a4paper,7pt]{scrreprt}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}[htpb]
\centering
\sisetup{
table-align-text-post=false,
table-space-text-post={\,\%}%
}
\begin{tabular}{
l
S[table-format=1.6]
S[table-format=3.3]
S[table-format=3.3]
}
\toprule
Measure & {Signal1} & {Signal2} & {Signal3} \\
\midrule
MAE & 0.250 \,\si{\volt} & 235.25 \,\si{\ampere} & 235.25 \,\si{\ohm} \\
MAPE & 1.012 \,\si{\percent} & 10.25 \,\si{\percent} & 10.285 \,\si{\percent} \\
RMSE & 0.25 \,\si{\volt} & 235.25 \,\si{\ampere} & 235.2 \,\si{\ohm} \\
Metric 1 & 0.000498 & 0.498 & 232.34 \\
Metric 2 & 0.0498 & 14.498 & 0.34 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
说实话,如果单位完全不相容,我不会费心将给定列中的数字按小数点对齐。事实上,将这些数字按小数点对齐可能会误导读者相信这些数字具有一些共同的单位。
相反,我会将单元格内容左对齐,从而向读者发出一个刻意的——希望是明确无误的——信号,即该列中的数字是无法通约的。
\documentclass[a4paper,7pt]{scrreprt}
\usepackage{booktabs,siunitx}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{@{} l lll @{} }
\toprule
Measure & Signal1 & Signal2 & Signal3 \\
\midrule
MAE & \SI{0.250}{\volt} & \SI{235.25}{\ampere} & \SI{235.25}{\ohm} \\
MAPE & \SI{1.012}{\percent} & \SI{10.25}{\percent} & \SI{10.285}{\percent} \\
RMSE & \SI{0.25}{\volt} & \SI{235.25}{\ampere} & \SI{235.2}{\ohm} \\
\addlinespace
Metric 1 & 0.000498 & 0.498 & 232.34 \\
Metric 2 & 0.0498 & 14.498 & 0.34 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案3
我非常同意Mico的观点,彼此之间没有关系的数字不应该在小数点处对齐。
伏特和安培或欧姆的测量值之间没有关系,并且它们在印刷中的表示之间不应该存在视觉关系。
但是,我更喜欢右对齐,而不是左对齐,\num
最后两列的图也是如此。另外,列之间留出更多空间似乎更合适。
\documentclass[a4paper]{scrreprt}
\usepackage{booktabs,siunitx,array}
\begin{document}
\begin{table}[htbp]
\centering
\addtolength{\tabcolsep}{0.5em}
\begin{tabular}{@{} l *{3}{r} @{} }
\toprule
Measure &
\multicolumn{1}{c}{Signal1} &
\multicolumn{1}{c}{Signal2} &
\multicolumn{1}{c@{}}{Signal3} \\
\midrule
MAE & \SI{0.250}{\volt} & \SI{235.25}{\ampere} & \SI{235.25}{\ohm} \\
MAPE & \SI{1.012}{\percent} & \SI{10.25}{\percent} & \SI{10.285}{\percent} \\
RMSE & \SI{0.25}{\volt} & \SI{235.25}{\ampere} & \SI{235.2}{\ohm} \\
\addlinespace
Metric 1 & \num{0.000498} & \num{0.498} & \num{232.34} \\
Metric 2 & \num{0.0498} & \num{14.498} & \num{0.34} \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案4
我根本不会考虑这样做,而是重新考虑表格设计。如果不理解指标是什么,并且忍住不改掉所有小数,也许可以改成类似这样的:
\documentclass{article}
\usepackage{booktabs,siunitx}
\begin{document}
\begin{tabular}{@{}cSSSS[table-format=6.9]S@{}}\toprule
% & & & {Measures} & & \\\cmidrule{2-6}
Signal & {MAE} & {RMSE} & {MAPE (\%)} & {Metric 1} & {Metric 2} \\
\cmidrule(rl){2-4}\cmidrule(rl){5-5}\cmidrule(rl){6-6}
1 (V) & 0.25 & 0.25 & 1.012 & 0.000498 & 0.0498 \\
2 (A) & 235.25 & 235.25 & 10.250 & 0.498 & 14.498 \\
3 (Ω) & 235.25 & 235.20 & 10.285 & 232.34 & 0.34 \\\bottomrule
\end{tabular}
\end{document}