我有一张表格,其中的数字格式为siunitx
。在一列中,我的值显示一种方法相对于另一种方法有所改善(或恶化)。为了清楚地说明我在这里给出了一个增量,我想明确显示正值的 + 字符(仅限该列)。但是,当我在代码中写入它时,它不会被呈现。
最小工作示例:
\documentclass[ngerman]{scrbook}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{l *{3}{S[table-format=2.2]}}
\hline
{\textbf{Data}} &
{\textbf{Baseline}} &
{\textbf{Magic}} &
{\textbf{$\Delta$}} \\ \hline
Data A & 34.56 & 45.67 & +11.11 \\ % + character not rendered :(
Data B & 76.54 & 98.76 & +22,22 \\
Data C & 45.67 & 34.56 & -11,11 \\ \hline
\end{tabular}
\end{document}
给出:
相反,我希望在最后一栏中显示+11.11
和。如有任何提示,不胜感激。+22.22
答案1
你要retain-explicit-plus
。
\documentclass[ngerman]{scrbook}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{l *{3}{S[table-format=2.2,retain-explicit-plus]}}
\hline
{\textbf{Data}} &
{\textbf{Baseline}} &
{\textbf{Magic}} &
{\textbf{$\Delta$}} \\ \hline
Data A & 34.56 & 45.67 & +11.11 \\ % + character not rendered :(
Data B & 76.54 & 98.76 & +22,22 \\
Data C & 45.67 & 34.56 & -11,11 \\ \hline
\end{tabular}
\end{document}
答案2
托比约恩已经解释了如何修复该问题,但我会将表格排版如下:
\documentclass{scrbook}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{center}
\begin{tabular}{
l
*{2}{S[table-format = 2.2]}
S[table-format = -2.2, retain-explicit-plus]
}
\toprule
\multicolumn{1}{c}{{\textbf{Data}}} &
{\textbf{Baseline}} &
{\textbf{Magic}} &
{$\Delta$} \\
\midrule
Data~A & 34.56 & 45.67 & +11.11 \\
Data~B & 76.54 & 98.76 & +22.22 \\
Data~C & 45.67 & 34.56 & -11.11 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
请注意使用table-format = -2.2
(而不是table-format = 2.2
)来使最后一列正确居中。
另外,请注意使用booktabs
在表格中获得正确的水平线。
更新
如果您还想要一个粗体增量,您可以使用以下命令:
\documentclass{scrbook}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{center}
\begin{tabular}{
l
*{2}{S[table-format = 2.2]}
S[table-format = -2.2, retain-explicit-plus]
}
\toprule
\multicolumn{1}{c}{{\textbf{Data}}} &
{\textbf{Baseline}} &
{\textbf{Magic}} &
{$\mathbf{\Delta}$} \\
\midrule
Data~A & 34.56 & 45.67 & +11.11 \\
Data~B & 76.54 & 98.76 & +22.22 \\
Data~C & 45.67 & 34.56 & -11.11 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}