我想edge
使用构造指定的两个 TikZ 节点之间绘制一个to path
,并沿边缘放置一个节点(标签)。放置node[options] {text}
在后面edge
似乎不起作用。
梅威瑟:
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw, circle, radius=1] (q0) at (0,0) {};
\node[draw, circle, radius=1] (q1) at (2,0) {};
\draw (q0) edge[to path={.. controls (1,1) .. (\tikztotarget)}, ->] node[above] {x} (q1)
edge[->, bend right=15] node[below] {y} (q1);
\end{tikzpicture}
\end{document}
第二条边被标记为“y”,我可以使用pos
节点选项控制其位置。第一条边根本没有标签。
我怎样才能以与第二条边类似的方式标记第一条边?特别是,我想避免添加新的\draw
、\path
或\node
类似的,因为我正在从一些数据表中以编程方式构建我的图表。
答案1
问题是,路径选项的设置方式比节点命令(被忽略)具有“更高的优先级”...发生这种情况是因为节点命令之前的(\tikztoterget)(稍后被替换)
你可以尝试这个方法:
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw, circle, radius=1] (q0) at (0,0) {};
\node[draw, circle, radius=1] (q1) at (2,0) {};
\draw (q0) edge[to path={.. controls (1,1) ..node[above] {x} (\tikztotarget)}, ->] (q1)
edge[->, bend right=15] node[below] {y} (q1);
\end{tikzpicture}
\end{document}
得出: