这个问题是Overleaf 上的 Siunitx V3。
我正在尝试在 Overleaf (TeX Live 2020) 上使用 siunitx 软件包的版本 3。按照上一个问题中的建议添加 siunitx.sty 后,我收到与以下命令相关的编译错误,例如
\NewDocumentCommand \DeclareBinaryPrefix { +m m m }
在 siunitx 中。生成的 PDF 还在页面顶部显示以下几行:
我创建了一个新的 Overleaf 项目,添加了 siunitx.sty 文件,main.tex 文件很简单
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\begin{document}
This is a test : \qty{5}{\percent}
\end{document}
删除版本 3 文件并将 \qty 更改为 \SI 以适应 TeX Live 2020 中包含的版本 2 时,一切都按预期运行。
答案1
更新
导致 v3.0.22 无法与 Overleaf 上旧版 TeX Live 2020 顺利编译的具体问题已在 v3.0.23 (2021-07-26) 中得到解决siunitx
。
如果代码尚未进入内核,则siunitx
加载对某些人来说有点太晚了。参见xparse
\NewDocumentCommand
https://github.com/josephwright/siunitx/issues/518。
因此,从 CTAN 获取 v3.0.23 或更高版本就没问题了。
旧答案
这绝对不能保证一定有效,但主要问题似乎是\NewDocumentCommand
未定义。该命令最近从xparse
包中移至 LaTeX 内核。在较旧的系统中,您可能需要加载\usepackage{xparse}
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xparse}
\usepackage{siunitx}
\begin{document}
This is a test: \qty{5}{\percent}
\end{document}
对我来说是可以编译的。至少对于CTANsiunitx.sty
提供的.tds.zip
(http://mirrors.ctan.org/install/macros/latex/contrib/siunitx.tds.zip)(2021-07-22 起更新 v3.0.22)。