如果加载了 siunitx,则启用了检查声明的 expl3 将无法编译

如果加载了 siunitx,则启用了检查声明的 expl3 将无法编译

在我使用的过程中,LaTeX3我喜欢打开它,check-declararations因为它可以识别我忘记声明的变量。但是,siunitx它发出抱怨声,这会导致问题,我不能没有它siunitx

\documentclass{minimal}
\usepackage[check-declarations]{expl3}
\usepackage{siunitx}
\begin{document}
Either I am using package expl3 inappropriately, or it's Hi Joseph!
\end{document}

答案1

好吧,要么再次禁用检查,要么手动添加两个缺失的变量:

\documentclass{article}
\usepackage[check-declarations]{expl3}
\ExplSyntaxOn
\bool_new:N \l__siunitx_per_two_parts_bool
\bool_new:N \l__siunitx_product_repeat_bool
\ExplSyntaxOff
\usepackage{siunitx}
\begin{document}
Either I am using package expl3 inappropriately, or it's Hi Joseph!
\end{document}

该检查实际上仅用于测试目的。

答案2

是“嗨,约瑟夫!”

第一个错误是由于 中的拼写错误siunitx.sty。在第 4584 行(2016/03/01 版本 2.6q)中,该软件包包含

\bool_new:N \l__siunitx_two_parts_bool

代替

\bool_new:N \l__siunitx_per_two_parts_bool

该变量\l__siunitx_product_repeat_bool确实未声明。

相关内容