命令中的数字输入到 tikzpicture 中

命令中的数字输入到 tikzpicture 中

以下代码无法用“pdflatex file.tex”编译,我不知道如何修复它。第 9 行是问题所在。具体来说是 \MV。

\documentclass[tikz]{standalone}
\usepackage{tikz}
\newcommand\MV{\foreach\item in {2}{3}}
\newcommand\YV{2}
\begin{document}
\begin{tikzpicture}
\draw (1,0) node[below=3pt] {\MV}; % works
\draw (0,0) -- (2,\YV);            % works
\draw (0,0) -- (2,\MV);            % fails
\end{tikzpicture}
\end{document}

我收到此错误:

! Undefined control sequence.
\foreach ...reach \let \pgffor@assign@before@code 
                                                  =\pgfutil@empty \let \pgff...

答案1

据我了解,这不是由于可扩展性,而是由于误用\foreach

只需尝试用它的定义替换你\MV:它在第 9 行变得毫无意义。它在第 7 行运行完美,因为该命令针对的是节点内容,而不是位置。

我稍微调整一下你的例子

\documentclass[tikz]{standalone}
\usepackage{tikz}
\newcommand\MV{\foreach\item in {2,...,4}{\item+3}}
\newcommand\YV{2}
\begin{document}
  \begin{tikzpicture}
    \draw (1,0) node[below=3pt] {\MV}; % works
    \draw (0,0) -- (2,\YV);            % works
%    \draw (0,0) -- (2,\MV);           % fails
%    \draw (0,0) -- (2,\foreach\item in {2,...,4}{\item+3});  % fails
    \foreach \item in {2,...,4}{
      \draw (0,0) -- (2,\item) node[below=3pt] {\item};       % works
    }
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容