Closed lynzrand closed 2 years ago
看样子是 nicematrix 中用到了临时变量 \l_tmpa_tl
来储存某种颜色,但该变量同时也被 ctex 使用(被设定为 仟
),导致冲突。(我对 LaTeX3 也并不是很了解,希望有大佬来详细解释一下)
具体的 debug 方式是,首先在 nicematrix 中 \RowStyle
命令的定义中看到使用了 \l_tmpa_tl
,于是在报错时输入 I
,插入 \ExplSyntaxOn\show\l_tmpa_tl
,得到
> \l_tmpa_tl=macro:
->仟.
在 ctex 代码里搜了一下对于这个临时变量的使用情况,只发现了一个文件里用到了:
同一个文件中提到 仟
字的地方:
希望对解决问题有帮助。个人感觉可能是两个库的局部变量名称冲突了?
应该是 nicematrix
的问题,大概是没有将 \l_tmpa_tl
“初始化”,跟 ctex-kit
无关。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\ExplSyntaxOn
\tl_set:Nn \l_tmpa_tl {foo}
\ExplSyntaxOff
\begin{table}
\begin{NiceTabular}{l}[]
\RowStyle{} Foo \\
\end{NiceTabular}
\end{table}
\end{document}
这样会报错
./main.tex:13: Package xcolor Error: Undefined color `foo'.
See the xcolor package documentation for explanation.
Type H <return> for immediate help.
...
l.13 \RowStyle{}
Foo \\
./main.tex:13: ==> Fatal error occurred, no output PDF file produced!
感谢!我去联系一下 nicematrix 的作者
nicematrix
的作者已经修复了这个问题
复现步骤
可复现的环境
未能成功复现的环境
备注
我对 LaTeX 的了解仅限于使用的程度,所以 Debug 还是得靠专业用户来……