tikz 和命令

tikz 和命令

出于某种原因,我想将 tikz 与命令混合,但有时它不起作用。

什么有效

如果我使用\newcommand{\mycommand}{ultra thick}它就可以编译。

\documentclass[border=3pt]{standalone}
\usepackage{tikz}

\newcommand{\mycommand}{ultra thick}

\begin{document}
\begin{tikzpicture}
    \draw [\mycommand, draw=black, fill=yellow, fill opacity=0.2]
       (0,0) -- (0,1) -- (1,1) -- cycle;
\end{tikzpicture}
\end{document}

什么不起作用

如果我使用\newcommand{\mycommand}{fill=yellow}它,则无法编译。

\documentclass[border=3pt]{standalone}
\usepackage{tikz}

\newcommand{\mycommand}{fill=yellow}

\begin{document}
\begin{tikzpicture}
    \draw [ultra thick, draw=black, \mycommand, fill opacity=0.2]
       (0,0) -- (0,1) -- (1,1) -- cycle;
\end{tikzpicture}
\end{document}

有人能帮我修复第二个例子吗?

或许还有更好的解决方案。

答案1

当 TikZ 遇到宏时,它会展开并使用其当前值作为键。在你的情况下,它是fill=yellow

因此,它查找一个名为的键fill=yellow,当然找不到,但它没有检查内容中是否有等号,因为它怀疑也许这意味着一个键=值对。因此你需要额外的扩展。你可以通过各种方法来实现,但没有一种方法比按键本身更实用。

而是使用你自己的风格

\tikzset{mystyle/.style={ultra thick, fill=yellow}}

这在其他样式中始终有效。请注意,这些键是专门为此而设计的,因此您不必为所有内容设置新的宏。

相关内容