出于某种原因,我想将 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}}
这在其他样式中始终有效。请注意,这些键是专门为此而设计的,因此您不必为所有内容设置新的宏。