使用新命令在 TikZ 中绘制线条

使用新命令在 TikZ 中绘制线条

我想创建一个命令来在两点之间画一条线。该命令需要将线型作为参数。以下 MWE 可按预期工作:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
    \newcommand{\testtikz}[1]{
        \begin{tikzpicture}
            \draw[#1] (0,0) -- (1,1);
        \end{tikzpicture}
    }
    \testtikz{red,line width=1mm}
\end{document}

对于我的用例,我需要将参数def传递给命令,如下所示:

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
    \newcommand{\testtikz}[1]{
        \begin{tikzpicture}
            \draw[#1] (0,0) -- (1,1);
        \end{tikzpicture}
    }
    \def\tikzparams{red,line width=1mm}
    \testtikz{\tikzparams}
\end{document}

这会导致错误:

! Package pgfkeys Error: I do not know the key '/tikz/red,line width=1mm' and I
 am going to ignore it. Perhaps you misspelled it.

只要有逗号或等号,这种情况就会出现\tikzparams。我该如何解决这个问题?

答案1

在将参数传递给之前先将其展开\draw

\documentclass{article}

\usepackage{tikz}

\newcommand{\testtikz}[1]{%
  \begin{tikzpicture}
    \expandafter\draw\expandafter[#1] (0,0) -- (1,1);
  \end{tikzpicture}
}

\begin{document}

\def\tikzparams{red,line width=1mm}

\testtikz{\tikzparams}

\end{document}

相关内容