TikZ 附加不会覆盖 – 会覆盖什么?

TikZ 附加不会覆盖 – 会覆盖什么?

主要问题

我想以 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}

相关内容