在带有 的表格集中siunitx
,我可以在命令\sisetup{}
或环境选项中提供格式化选项\begin{tabular}
。为什么会这样?我想提供全局设置,但仍然能够修改单个列。
\documentclass{article}
\usepackage[
per-mode=symbol-or-fraction,
locale=DE,
sticky-per
]{siunitx}
\usepackage{subcaption}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}
\caption{Comparing global and local settings}
\sffamily
\begin{subfigure}[t]{.48\linewidth}
\caption{Global}
\sffamily
\sisetup{detect-family, table-number-alignment = right}
\rowcolors{2}{white}{gray!20}
\centering
\begin{tabular}{S[table-format=6.0] S[table-format=2.0] S[table-format=4.0]}\hline
\multicolumn{1}{c|}{Foo} & \multicolumn{1}{c|}{$F$ in \si{\hertz}} & \multicolumn{1}{c}{$\sigma$ in \si{\newton\per\meter\squared}}\\ \hline
123456 & 12 & 1234 \\
12345 & 1 & 123 \\
1234 & 0 & 12 \\ \hline
\end{tabular}
\end{subfigure}%
\hfill
\begin{subfigure}[t]{.48\linewidth}
\rowcolors{2}{white}{gray!20}
\centering
\caption{Local}
\sffamily
\sisetup{detect-family}
\begin{tabular}{S[table-format=6.0, table-number-alignment = right] S[table-format=2.0, table-number-alignment = right] S[table-format=4.0, table-number-alignment = right]}\hline
\multicolumn{1}{c|}{Foo} & \multicolumn{1}{c|}{$F$ in \si{\hertz}} & \multicolumn{1}{c}{$\sigma$ in \si{\newton\per\meter\squared}}\\ \hline
123456 & 12 & 1234 \\
12345 & 1 & 123 \\
1234 & 0 & 12 \\ \hline
\end{tabular}
\end{subfigure}
\end{table}
\end{document}
编辑
如果我只是设置一个{S S S}
表格,输出将正确对齐,但有时我只想更改单个列的一个选项。我认为这不直观。
答案1
设置table-format
会自动设置table-number-alignment = center
,如软件包文档中所述。因此,如果您设置table-format
并想要不同的对齐方式,您也需要设置它。
原因是“开箱即用”的设置包括table-number-alignment = center-decimal-marker
(因为这是“安全”位置)。因此,如果没有这种自动设置行为,您将看不到任何变化,table-format
仅通过设置,这会非常令人困惑。