假设我创建了一个.sty
,最终想与其他人分享,其特点如下:
\tikzset{
photon/.style = {
draw = black,
decorate,
decoration = {
snake,
amplitude = 1mm,
segment length = 3mm
}
},
}
以下是文件中的预期用途.tex
:
\begin{tikzpicture}
\coordinate[vertex] (v1);
\coordinate[vertex, right=of v1] (v2);
\draw[photon] (v1) -- (v2);
\end{tikzpicture}
问题是 和segment length
是amplitude
硬编码的。让我的用户更改这些的最佳方法是什么
- 每行?
- 每
tikzpicture
? - 全球范围内?
我天真地尝试添加
\tikzset{
photon/.append style={decoration=segment length=1mm}
}
在文件的开头.tex
,但它不起作用:我得到Missing number, treated as zero
和TeX capacity exceeded
。我感觉这是因为这用替换了整个装饰segment length=1mm
。
无论如何,这只能解决我的第 3 点和第 2 点(通过放入tikzset
)tikzpicture
。
答案1
您缺了一副牙套photon/.append style={decoration={segment length=1mm}}
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing,positioning}
\tikzset{
vertex/.style = {
% ???
},
photon/.style = {
draw = black,
decorate,
decoration = {
snake,
amplitude = 1mm,
segment length = 3mm
}
},
}
\begin{document}
\begin{tikzpicture}
\coordinate[vertex] (v1);
\coordinate[vertex, right=of v1] (v2);
\draw[photon] (v1) -- (v2);
\end{tikzpicture}
\tikzset{
photon/.append style={decoration={segment length=1mm}}
}
\begin{tikzpicture}
\coordinate[vertex] (v1);
\coordinate[vertex, right=of v1] (v2);
\draw[photon] (v1) -- (v2);
\end{tikzpicture}
\end{document}