我有一个已定义的样式,并应用于许多箭头。大多数时候,我希望它们使用 定位标签节点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}