在 tikz 图表中使用自定义路径样式时,不会打印引号标签

在 tikz 图表中使用自定义路径样式时,不会打印引号标签

我可以将标签完美地放到普通边缘上,但是当边缘应用了样式时,标签就不再适用。

知道发生了什么事/如何解决这个问题吗?

\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\tikztonodesquotes

完整且正确的定义hv path

hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}

节点默认放置在路径上的pos = .5(= midway) 处。在正常直线上,这位于线的实际中间。在正交路径上-||-这位于拐角处。位置pos = .75(= near end) 位于第二部分的中间点。(另请参阅关节 TikZ 路径上的节点

swap(或其快捷键')可用于将节点放置在路径的另一侧。(图形内部使用auto默认为 的选项auto=leftswap键将其切换为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}

输出

在此处输入图片描述

相关内容