TikZ:从定义的样式中删除/覆盖自动选项(箭头标签定位)

TikZ:从定义的样式中删除/覆盖自动选项(箭头标签定位)

我有一个已定义的样式,并应用于许多箭头。大多数时候,我希望它们使用 定位标签节点auto,但有时我不希望这样。目前,我只是auto在需要的地方添加。由于auto是默认设置,因此将其包含在样式中似乎更自然;但如果我这样做,有没有办法偶尔将其关闭?

目前正在写例如:

\begin{tikzpicture}
          [myarrow/.style={->,font=\scriptsize}]
  \draw[myarrow,auto] (0,0) to node {L} (0,1);
  \draw[myarrow,auto] (1,0) to node {L} (1,1);
  \draw[myarrow,auto] (2,0) to node {L} (2,1);
  \draw[myarrow] (3,0) to node {M} (3,1);
\end{tikzpicture}

更愿意写类似的东西:

\begin{tikzpicture}
          [myarrow/.style={->,font=\scriptsize,auto}]
  \draw[myarrow] (0,0) to node {L} (0,1);
  \draw[myarrow] (1,0) to node {L} (1,1);
  \draw[myarrow] (2,0) to node {L} (2,1);
  \draw[myarrow,not auto] (3,0) to node {M} (3,1);
\end{tikzpicture}

但我不知道该放什么not auto

答案1

自动选项既是锚点选择器,同时也是开/关开关。这意味着您可以同时使用auto=<left,right>auto=<true,false>

对于感兴趣的

\tikzoption{auto}[]{\csname tikz@install@auto@anchor@#1\endcsname}

就是这样定义的。因此,无论给出什么选项,都会替换#1并提供false选项或仅使用auto都会触发以下内容。

\def\tikz@install@auto@anchor@{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on}
\def\tikz@install@auto@anchor@false{\let\tikz@do@auto@anchor=\relax}

相关内容