主要问题
我想以 TikZ' 的样式更改某些 TikZ 元素的所有属性append
。但是,与其名称所暗示的不同,append
它仅提供默认值。相比之下,我希望覆盖在特定 TiKZ 命令中所做的任何详细设置。有没有通用的方法可以做到这一点?
我注意到 PGF Plots 中的句柄every axis plot post
做了类似的事情,但我缺乏将其来源转化为我的问题的知识。
例子
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzset{every path/.append style={dashed,draw=red}}
\draw[dotted] (0,0) -- (1,1);
\draw[dotted,dashed] (0,1) -- (1,0);
\end{tikzpicture}
\end{document}
这里,命令dotted
的参数通过附加\draw
取代了一般样式dashed
。只有字面上附加dashed
属性(第二行)才有效。
我正在寻找一些可以在开头写的东西,tikzpicture
例如:
\tikzset{every path/.override style={dashed}}
并导致上面的所有线条都变成虚线。对我来说,dotted
在这里明确覆盖该属性就足够了。
实际应用
tikzplotlib
我有一个使用生成的带有虚线的绘图文件add_axis_environment=False
,我想在不手动更改文件的情况下更改虚线图案。我知道我可以通过编程修改绘图文件,但这样我的格式规范就不再捆绑在一个地方(我的 TEX 文件)了。
答案1
如果您只是想“取消”某种样式的效果,您可以重新定义它:
\tikzset{dotted/.style={dashed}