当我们使用箭头类型时,可以在 之前或 之后->
用 覆盖。或者放在 之后,再使用另一种样式。>=Arrow
->
->
-Arrow
对于loop
边,我们可以用 覆盖箭头类型,>=Arrow
但不能用 覆盖-Arrow
。为什么 ?
\documentclass[varwidth,border=7mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[scale=5, very thick]
\draw[green] (0,0) edge[loop, -latex] (); % ->
\draw[xshift=3mm] (0,0) edge[loop, >=latex] (); % -latex
\draw[green, scale=-1] (0,0) edge[-latex, loop] (); % ->
\draw[xshift=3mm,scale=-1] (0,0) edge[>=latex, loop] (); % -latex
\draw[yshift=3mm,blue] (0,0) edge[>=latex, ->, -Ellipse] (.3,0); % -Ellipse
\draw[yshift=-3mm,red] (0,0) edge[>=latex, -Ellipse, ->] (.3,0); % -latex
\end{tikzpicture}
\end{document}
答案1
我知道答案了。查看代码我们发现:
\tikzstyle{循环}= [到路径={ \pgfextra{\let\tikztotarget=\tikztostart} [松紧度=8,最小距离=5mm,每个环] \tikz@to@curve@path }]\tikzstyle{每个循环}= [->,缩短 >=1pt]
因此,样式every loop
在 中被调用to path
。这样,当我们使用 时,edge[loop, -latex]
样式就“等同于” edge[loop, -latex][every loop]
。
every loop
因此,我们拥有遵循定制风格的独特地位。
因此,如果我们放edge[loop, shorten >=5pt]
将不起作用。我们不得不说every loop/.style={->,shorten >=5pt}
。