siunitx S 列和 unicode-math 出现奇怪的溢出水平盒子

siunitx S 列和 unicode-math 出现奇怪的溢出水平盒子

在下面最小的例子中,前 5 行会抛出一个过满的 hbox 警告,但仅当unicode-math已加载时才会发生。

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}

\usepackage{siunitx}
\usepackage{booktabs}


\begin{document}

\begin{tabular}{S[table-format=2.2]}
\toprule
{$x$} \\
\midrule
  45.71 \\
  50.77 \\
  60.70 \\
  60.70 \\
  49.79 \\
  20.15 \\
  12.45 \\
\end{tabular}

\end{document}

知道为什么会发生这种情况以及如何解决吗?

答案1

由于我认为字体表/度量中存在错误,7拉丁现代数学的字符与它后面的任何内容(包括边界)都进行了字距调整,增加了 0.14235pt 的字距,请参阅https://tex.stackexchange.com/a/219198/4427

实际上,您只会在前五行数据中收到超额框消息,其中出现数字 7;除第二行外,所有五行的超额恰好为 0.14235pt,其中超额为 0.2847pt:

Overfull \hbox (0.14235pt too wide) detected at line 17
Overfull \hbox (0.2847pt too wide) detected at line 18
Overfull \hbox (0.14235pt too wide) detected at line 19
Overfull \hbox (0.14235pt too wide) detected at line 20
Overfull \hbox (0.14235pt too wide) detected at line 21

恐怕我们能做的不多,除了要求负责拉丁现代数学的人消除错误的字距调整之外。

相关内容