为什么使用 pgfmathparse 时这个小示例不再起作用?

为什么使用 pgfmathparse 时这个小示例不再起作用?

以下小示例在\pgfmathparse{\myvalue+1}\pgfmathresult添加 而不是 之前一直有效1。我没有收到任何错误消息,只是编译过程没有结束。这是尝试将我的实际文档压缩为这个小示例。在我的文档中,我收到错误

Illegal parameter number in definition of \pgfplots@stored@current@data. \end{tikzpicture}

怎么了?

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
    xmin=0,
    xmax=2,
    ymin=0,
    ymax=2
    ]
    \newcommand{\myvalue}{1}
    \draw (1,\pgfmathparse{\myvalue+1}\pgfmathresult) -- (0, 0);
  \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

答案1

\pgfmathparse使用 tex 分配,它不会简单地扩展到结果,因此您需要提前完成,例如

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{figure}
\begin{tikzpicture}
    \newcommand{\myvalue}{1}
\begin{axis}[
    xmin=0,
    xmax=2,
    ymin=0,
    ymax=2
    ]
    \pgfmathparse{\myvalue+1}
    \draw (1,\pgfmathresult) -- (0, 0);
  \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

相关内容