在 siunitx 包中使用下划线时可能存在错误

在 siunitx 包中使用下划线时可能存在错误

我使用 TeXstudio 2.12.22。编译此 MWE

\documentclass{scrreprt}
\usepackage{siunitx}
\begin{document}
    Some text $test_\SI{4}{\km}$.
\end{document}

将会引发错误:

line 5: Missing { inserted. Some text $test_\SI
line 5: Missing } inserted. Some text $test_\SI{4}{\km}$

我已经使用文档类别等对此进行了scrbook测试scrartcl

当将代码与包\text中的命令结合起来时amsmath,一切都正常:

\documentclass{scrreprt}
\usepackage{siunitx}
\usepackage{amsmath}
\begin{document}
    Some text $test_\text{\SI{4}{\km}}$.
\end{document}

后者 MWE 的输出

我是否发现了错误,约瑟夫赖特?

答案1

数学模式_ 看起来就像它在构造中将“东西”作为参数一样

$a_\text{b}$

或类似情况,但事实并非如此。相反,在某些情况下省略括号的能力是由于\text和类似扩展的方式。即一般而言并非如此,官方的 LaTeX 语法是要求在所有情况下都在此处加括号。

在 的情况下siunitx,文档命令的扩展行为从未打算“欺骗”_它。您应该添加(标准)括号

\documentclass{scrreprt}
\usepackage{siunitx}
\usepackage{amsmath}
\begin{document}
    Some text $test_{\SI{4}{\km}}}$.
\end{document}

相关内容