是否可以从现有风格衍生出新风格?

是否可以从现有风格衍生出新风格?

TikZ 中是否有将新样式定义为现有样式的扩展的约定?

就目前情况而言,我可以这样做:

a/.style    = { black, very thin }

然后我可以在例如一个范围内本地扩展这种风格:

\begin{scope}[a/.append style = { thick }]
\end{scope}

或者我可以定义一种全新的风格:

b/.style    = { black, thick }

但这需要在a和之间复制共享的样式信息b

似乎可以通过某种方式来指定b作为的扩展a(到处都等同于将的b定义“附加”到a的定义),类似于:

b/.style    = { extends = a, thick }

或者:

b/.inherits = a,
b/.style    = { thick }

除了“使用 TeX 宏来定义共享内容”之外,TikZ 中是否还有其他规范的答案?

答案1

为了他人的利益而回答我自己的问题:对我的问题的评论是正确的。

具体来说,关于我所概述的两种用于扩展或继承现有风格的伪语法,.style .inherits,并且仅使用键a就相当于,extends = a因为a扩展到中定义的所有键a/.style

因此简单的答案很简单:

a/.style = { black, very thin },
b/.style = { a, thick } % copy styles of "a", then append "thick" which overrides "very thin"

或者:

b/.prefix style = a, % equivalent to putting "a" at the start of b's style definition above
% later...
b/.style = { thick }

当我自己搜索时,很难找到的参考资料是pgfkeys当前 TikZ/PGF 参考手册第 63 节中记录的包。

所有荣誉归功于@Qrrbrbirlbel 和@Ryan Reich。

相关内容