边缘上有奇怪的别针

边缘上有奇怪的别针

尝试回答这个问题自循环上的锚点(从该锚点画一条线),答案是“你可以使用 pin 来实现这一点...”我发现 pin 在边中间的节点上的行为有些奇怪(对我来说)。pin 的样式与它前面的边一样。

这是一个错误还是一个功能?

在此处输入图片描述

\documentclass[tikz]{standalone}
\begin{document}
  \begin{tikzpicture}
    \node [circle, draw, font=\scriptsize] (n1) {is this ...};
    \path (n1) edge[loop,>=latex] node[pin={[purple]90:a bug ?}]{} ();
    \path (n1) edge[bend right=40, thick,-latex] node[pin={[red]above:or feature ?}]{} +(3,0);
  \end{tikzpicture}
\end{document}

答案1

对我来说这不是一个功能,因为:

  • 针脚是节点的附件,无论我们如何定位节点,针脚边缘样式都不应改变;
  • 例如,可以通过边缘宽度来确认这一点。正如我们在代码中看到的那样,如果某个边缘较厚,则相应的引脚边缘不会更厚。

但是这个不是一个(深的)漏洞任何一个。

  • 可以理解的是,处于另一条边范围内的引脚边会继承所有未明确设置的样式。而引脚边的默认样式是help lines。因此,设置为 的线宽very thin不会被继承,但未bend设置的 会被继承。
  • 通过以下设置,可以轻松地以标准方式纠正此行为:

\tikzset{every pin edge/.append style={bend left=0,>={},->}}

这样,问题代码的结果就变成:

在此处输入图片描述

\documentclass[tikz]{standalone}
\tikzset{every pin edge/.append style={bend left=0,>={},->}}
\begin{document}
\begin{tikzpicture}
  \node [circle, draw, font=\scriptsize] (n1) {is this ...};
  \path (n1) edge[loop,>=latex] node[pin={[purple]90:a bug ?}]{} ();
  \path (n1) edge[bend right=40, thick,-latex] node[pin={[red]above:or feature ?}]{} +(3,0);
\end{tikzpicture}
\end{document}

笔记:所以我现在可以回答原始问题;) ... 几乎,因为在针脚的边缘似乎有“虚线”的不良行为 :(

相关内容