循环边如何设置箭头类型?

循环边如何设置箭头类型?

当我们使用箭头类型时,可以在 之前或 之后->用 覆盖。或者放在 之后,再使用另一种样式。>=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}

相关内容