\pgfutil@empty 和 \ifx 环境中的 \empty 有什么区别

\pgfutil@empty 和 \ifx 环境中的 \empty 有什么区别

我发现有时(大多数在 TikZ 代码中)人们会使用它\pgfutil@empty来测试宏。

\pgfutil@empty使用宏有什么好处吗\empty

另外,对于优先使用其中一种,是否有任何用法或良好做法?您能详细说明在哪些情况下您更喜欢其中一种吗?或者即使其中一种已经过时,您也应该始终使用另一种?

答案1

TikZ/PGF 的设计目标是可与 LaTeX、ConTeXt 和 Plain TeX 一起使用,因此不能依赖某些可能被 LaTeX 专用软件包视为“标准”的现有内容。因此,PGF(重新)定义了它知道将从 LaTeX 核心中使用的大量内容,以便可以将其与 ConTeXt 和 Plain TeX 一起使用。这些往往是带有前缀的宏pgfutil@。因此我们有\pgfutil@empty\pgfutil@firstofone等等。

如果您正在编写依赖于 TikZ/PGF 的通用内容,那么使用这些版本而不是 LaTeX 版本是一种很好的做法,因为这样您编写的任何内容都更有可能在不同的引擎中运行 - 或者即使您不关心它,那么其他人也可以更轻松地对其进行改编。但是,在您自己的私有 LaTeX 代码中,这并不重要。

相关内容