expl3 与 tikz 冲突

expl3 与 tikz 冲突

当我使用时expl3tikz出现错误(pdflatex)。我的完整代码是

\documentclass{article}
\usepackage{tikz}
\ExplSyntaxOn
\begin{document}
\begin{tikzpicture}
\draw(0,0)--(3,3);
\end{tikzpicture}
\end{document}

就可以看到效果了这里。我注意到使用 xelatex 链接中的代码可以正确编译。尽管如此,有时它仍然运行不正常。

有什么方法可以让他们更好地合作?

答案1

\begin{document}在范围内做\ExplSyntaxOn是一个非常糟糕的主意,对不起。

几个软件包在开始文档时延迟加载配置文件,并且在这种情况下输入文件\ExplSyntaxOn至少是有风险的:空格和行尾会被忽略,如果文件

\mycountera=100
\ifnum\mycounterb=\mycountera 10\else 0\fi

(编造代码来显示可能出现的问题之一)您最终会\mycountera保留值 10010 或 1000,具体取决于 的当前值\mycounterb。给定的代码是有效的,\mycountera当不忽略空格时会设置为 100,然后打印 10 或 0。但是当忽略空格时,\ifnum在 TeX 确定传递给 的值之前会先扩展\mycountera

想象\ExplSyntaxOn一下把飞机带到机库安装新设备。你想在把飞机拉上跑道起飞之前就结束安装,对吧?

当你处于\ExplSyntaxOn统治之下时,永远不要排版。嗯,有时

\ExplSyntaxOn<expl3 code>\ExplSyntaxOff

可能很有吸引力document。避免这种情况,并在执行业务之前定义\begin{document}用户级命令:先安装设备,然后起飞。

David 的回答检查字符串的某项是否为空格是一个案例:他对\ExplSyntaxOninside的用法document仅仅是为了举例,而不是为了在真实文档中所做的。

相关内容