我使用 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}
我是否发现了错误,约瑟夫赖特?
答案1
数学模式_
看起来就像它在构造中将“东西”作为参数一样
$a_\text{b}$
或类似情况,但事实并非如此。相反,在某些情况下省略括号的能力是由于\text
和类似扩展的方式。即一般而言并非如此,官方的 LaTeX 语法是要求在所有情况下都在此处加括号。
在 的情况下siunitx
,文档命令的扩展行为从未打算“欺骗”_
它。您应该添加(标准)括号
\documentclass{scrreprt}
\usepackage{siunitx}
\usepackage{amsmath}
\begin{document}
Some text $test_{\SI{4}{\km}}}$.
\end{document}