我喜欢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}