我想通过 newcommand 定义选项,以便可以将它们用于 tikzpicture 环境。我尝试了以下方法:
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\newcommand{\test}{[every path/.style={->,red,thick}]}
\begin{document}
\begin{tikzpicture}\test
\draw (0,0)--(1,1);
\end{tikzpicture}
\end{document}
但那条线仍然是黑色的。我的方法哪里错了?我以为,newcommand 在写入时只是扩展了它的内容。我猜想方括号可能是问题所在...
答案1
欢迎使用 TeX.SE!虽然从技术上讲是正确的,但@ferahfeza 的评论可能不是我在这里使用的。秉承 的精神pgfkeys
,我将定义一个/tikz/test
风格。这通常更容易在 Ti 中重用钾Z 图片。请注意,这两种方法都允许利用 TeX 的分组规则,如下面的“我”的方法所示:
\documentclass{article}
\usepackage{tikz}
\tikzset{
test/.style={
every path/.style={->, red, thick},
}
}
\begin{document}
\begin{tikzpicture}[test] % '/tikz/test' style manually set for this picture
\draw (0,0)--(1,1);
\end{tikzpicture}
\bigskip
{%
\tikzset{test}% Applies to the current TeX group, until (possibly) overridden
%
\begin{tikzpicture}
\draw (1,1)--(0,0);
\end{tikzpicture}%
\qquad
\begin{tikzpicture}
\draw (0,1)--(1,0);
\end{tikzpicture}%
}% TeX group terminated; the '/tikz/test' style is not in effect anymore.
\bigskip
\begin{tikzpicture}
\draw (0,0)--(1,1) (1,0)--(0,1);
\end{tikzpicture}
\end{document}
答案2
本着不使用 \pgfkeys 的精神,可以使用
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\newcommand{\test}{[every path/.style={->,red,thick}]}
\newcommand{\tikzstart}{\begin{tikzpicture}}
\begin{document}
\expandafter\tikzstart\test
\draw (0,0)--(1,1);
\end{tikzpicture}
\end{document}