即使我使用包 pgfplots,也不能使用 \pgfmathdeclarefunction?

即使我使用包 pgfplots,也不能使用 \pgfmathdeclarefunction?

可能重复:
如何使用 pgfmathdeclarefunction 来定义新的 pgf 函数?

我正在运行简单的代码:

\documentclass{minimal}
\usepackage{pgfplots}

\pgfmathdeclarefunction{p}{1}{%
  \pgfmathand{\pgfmathless{#1}{1}} {\pgfmathgreater{#1}{0}}%
}

\begin{document}

\begin{tikzpicture}
  \begin{axis}
    \addplot {p(x)};
  \end{axis}
\end{tikzpicture}

\end{document}

我得到:

!未定义的控制序列。

1.4 \pgfmathdeclare函数

有什么想法可能出错了吗?其他使用 pgf 的示例似乎运行良好。

如果有帮助的话,我正在使用 Mac 版 TexShop。我有最新版本。

答案1

\pgfmath...我相信这与在其他中使用类型函数时的扩展有关\pgfmth...

但是如果你将该函数重写为:

 \pgfmathand{less({#1},1)}{greater({#1},0)}

得出:

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}

\pgfmathdeclarefunction{p}{1}{%
  \pgfmathand{less({#1},1)}{greater({#1},0)}%
}

\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot {p(x)};
  \end{axis}
\end{tikzpicture}
\end{document}

答案2

所以这不是 TexShop 的问题,而是 TikZ 的问题。\pgfmathdeclarefunction仅在最新版本中可用。

再次安装该包应该可以解决问题。

下载 Tikz

相关内容