![\pgfutil@empty 和 \ifx 环境中的 \empty 有什么区别](https://linux22.com/image/245666/%5Cpgfutil%40empty%20%E5%92%8C%20%5Cifx%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%20%5Cempty%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB.png)
我发现有时(大多数在 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 代码中,这并不重要。