当加载弯曲模块时,使用 >=Stealth 和双线似乎会失败

当加载弯曲模块时,使用 >=Stealth 和双线似乎会失败

我喜欢Stealth[round,bend]箭头提示,但最近发现当线条弯曲和加倍时,它们无法按预期工作。玩一个小例子后,我发现参数bend不是问题,问题只是由加载bending库引起的。

这是一个不加载bending库的小例子:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
%\usetikzlibrary{bending}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[>={Stealth[round]}]
  \node[draw] (A) at (0,0) {A};
  \node[draw] (B) at (2,0) {B};
  \draw[->]        (A) to[bend right] (B);
  \draw[->,double] (A) to[bend left] (B);
  \draw[->,double] (A) to (B);
  \draw[->,double] (A) to[loop above] (A);
\end{tikzpicture}
\end{document}

结果看起来不错

现在,如果我取消注释\usetickzlibrary{bending},则图形现在将呈现如下形式。

结果不好

有人知道解决这个问题的办法吗?理想情况下,我希望使用,>={Stealth[round,bend]}因此加载\usetickzlibrary{bending}似乎是必要的。

答案1

使用Qrrbrbirlbel 的提示关于使用quick禁用双线损坏的弹性计算,我现在使用以下解决方法,除了需要双线时外,在任何地方都有弯曲箭头。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{bending}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[>={Stealth[round,bend,length=4.75pt]},
                    % disable flex on double lines due to
                    % https://github.com/pgf-tikz/pgf/issues/896
                    StealthDouble/.tip={Stealth[round,quick,length=4.75pt]},
                    double>/.style={-StealthDouble,double}]
  \node[draw] (A) at (0,0) {A};
  \node[draw] (B) at (2,0) {B};
  \draw[->]      (A) to[bend right] (B);
  \draw[double>] (A) to[bend left] (B);
  \draw[double>] (A) to (B);
  \draw[double>] (A) to[loop above] (A);
  \draw[->] (B) to[loop above] (B);
\end{tikzpicture}
\end{document}

解决方法

相关内容