我对 tikz 还不熟悉,但发现了图表库,它对我的目的非常有用。我用它来绘制一种树形的无环有向图(请原谅我的术语匮乏!;)因此,对于如下代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph[tree layout, sibling distance=1.3in]{
"0" -> {"1" -> [edge label=Sub] "4" -> [edge label=Sub] {"2","3"}};
"2" -> [edge label=Crd, swap] "3";
};
\end{tikzpicture}
\end{document}
我得到了预期的输出:
但是当我做类似的事情时
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph[tree layout, sibling distance=1.3in]{
"0" -> [edge label=Sub] {"1" -> [edge label=Sub] "2","3"};
"2" -> [edge label=Crd, swap] "3";
};
\end{tikzpicture}
\end{document}
我得到:
尽管我实际上想要的是从 2 到 3 的边以 90 度角绘制,或者换句话说,我想强制节点 3 与 2 处于同一水平。
编辑:我简化了图表,并在这里对图表属性做了一些注释,以帮助解释我的问题。基本上,在我的框架中有两种边,从属边支配结构中的节点(并且可以用角度绘制),而协调边需要是水平的。这种格式良好的图表有一个约束,即可能永远不会有两个协调边从同一个节点开始(而对于从属边,这是允许的)。这应该允许协调边始终水平绘制。我可以用任何方式在 tikz 上施加这些约束吗?