在下面的代码片段中,我本来期望和r(x)
是s(x)
同一行,但输出是两条截然不同的线如下图所示。
如果使用该名称作为函数名存在问题r
,那么我本来期望出现某种错误消息,但却没有找到。
\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfmathdeclarefunction{r}{1}{\pgfmathparse{(2.0)}}
\pgfmathdeclarefunction{s}{1}{\pgfmathparse{(2.0)}}
\tikzstyle{MyPlotStyle}=[domain=-5:5, samples=50, ultra thick]
\begin{document}
Plot of $r(x)=2$ and $s(x)=2$ using PGF Version \pgfversion.
\begin{tikzpicture}
\begin{axis}
\addplot[MyPlotStyle, red ]{r(x)};
\addplot[MyPlotStyle, blue]{s(x)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
在 中pgfmathparser.code.tex
,r
被定义为应用函数的数学运算符deg
,以便能够以弧度指定角度(\pgfmathparse{3.14r}\pgfmathresult
产生(几乎)180),因此您不应该将此名称用于您自己的函数。不过,我同意,如果您尝试使用已经被运算符占用的名称定义新函数,应该会出现错误消息,特别是因为运算符似乎优先。您可能希望为此提交错误报告/功能请求。