我可以将标签完美地放到普通边缘上,但是当边缘应用了样式时,标签就不再适用。
知道发生了什么事/如何解决这个问题吗?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget)}}]
\graph[grow down sep, branch right = 4em] {
A ->["this prints"] B ->{C,D};
A ->[hv path,"this doesn't"] D;
};
\end{document}
答案1
节点实际上已被应用,但是它们并未显示,因为缺少宏to path
中的声明,而宏随后将扩展到库在某个时间点收集的节点。hv path
\tikztonodes
quotes
完整且正确的定义hv path
是
hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}
节点默认放置在路径上的pos = .5
(= midway
) 处。在正常直线上,这位于线的实际中间。在正交路径上-|
,|-
这位于拐角处。位置pos = .75
(= near end
) 位于第二部分的中间点。(另请参阅关节 TikZ 路径上的节点。
键swap
(或其快捷键'
)可用于将节点放置在路径的另一侧。(图形内部使用auto
默认为 的选项auto=left
。swap
键将其切换为auto=right
,反之亦然。)
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}}]
\graph[grow down sep, branch right = 4em] {
A ->["this prints", '] B ->{C,D};
A ->[hv path,"this doesn't" near end] D;
};
\end{document}