尝试回答这个问题自循环上的锚点(从该锚点画一条线),答案是“你可以使用 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}
笔记:所以我现在可以回答原始问题;) ... 几乎,因为在针脚的边缘似乎有“虚线”的不良行为 :(