我们可以在tikzpicture
选项在 \axis 选项中,在\pgfmathdeclarefunction
,在\tikzmath
, 通过使用\tikzset
,通过使用\def\func
等等……这真是令人困惑(至少对于新手来说)。这些函数声明形式之间有什么区别?
答案1
定义 PGFMath 函数的最基本方法是\pgfmathdeclarefunction
。
这/pgf/declare function
钥匙PGFMath 也提供,可与 TikZ/\tikzset
和 PGFPlots/一起使用\pgfplotsset
(因为它们也会自动在命名空间中搜索/pgf
)。它只是一个前端,\pgfmathdeclarefunction
您可以在其中使用控制序列而不是参数#1
, #2
, ...。
这TikZMathfunction
是另一个前端,\pgfmathdeclarefunction
它只是将函数体放在\tikzmath
主体内的语句内\pgfmathdeclarefunction
。(它还像 一样处理参数/pgf/declare function
。)
这个\def\func
东西不是 PGFMath 函数,而是一个可以扩展为其他东西的宏。在链接问题的上下文中,有一个观点是,\func
只要理解了宏的扩展,宏就可以独立于其上下文工作。使用 TikZ 和 PGFPlots,GNUPlot可用于评估函数,但它本身无法理解 PGFMath 函数。(并且 TikZ 不会将 PGFMath 表达式转换为 GNUPlot 可以理解的表达式。)