siunitx 溢出的水平盒子依赖于表格格式

siunitx 溢出的水平盒子依赖于表格格式

有几个类似的问题(见这里这里) 关于表格过满的问题\hboxessiunitx但都没有解决/解释以下问题。考虑一下这个 MWE:

\documentclass{article}

\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}

\begin{table}[t!]%
\centering%
\sisetup{detect-none, mode=math, table-format=+1.1, table-auto-round}%
\begin{tabular}{ls[table-alignment=left]SSSS}%
\toprule%
A & \newton & 0.32 & 3.8 & -4.5 & -0.6 \\%
B & \newton & -0.12 & 1.1 & -1.6 & -1.0 \\%
C & \milli\metre & -2.45 & -7.0 & 2.3 & -4.3 \\%
\bottomrule%
\end{tabular}%
\end{table}%

\end{document}

当使用 pdfLaTeX 进行编译时,\hbox日志文件中会出现过多的语句(但是这些语句不会被拾取/标记TeXniCenter为警告)。

table-format选项改变时table-format=+2.1,警告仍然存在,但table-format=+3.1警告突然从日志文件中消失。

我有两个问题:

  1. 为什么table-format=+1.1或会在日志文件中+2.1产生过满\hbox消息,而 不会table-format=+3.1?我是否误解了siunitx 文档
  2. 为什么 pdfLaTeX 警告没有像 LaTeX 警告那样出现?这是 TeXnicCenter 特有的现象还是更普遍的行为?

答案1

table-format用于设置siunitx在表格列中为数字保留多少空间。因此,它应该为该列中的最大条目保留足够的空间。格式与数字相同,输入由相同的代码处理。因此,如果您需要为符号保留空间,则建议使用-而不是,因为标准设置在解析过程中会被“丢弃”。因此(可能)只会为小数点标记前一位和小数点标记后一位保留空间,而不会为符号保留空间。+++1.1

如果您留出足够的空间,即使是“错误类型”,您也会看到警告消失。因此,像 这样的内容-2.1将保留(在大多数情况下)与 相同的空间+3.1,因为输入的“数字”和符号的宽度相同。因此,过度指定数字可能会消除警告,但代价是失去对实际发生情况的适当控制。

溢出框警告将出现在日志中,来自 TeX,而不是 LaTeX。它们如何呈现取决于您使用的编辑器。

相关内容