我有一张包含两条这样的链的图:
\begin{document}
\tikz []
\graph [layered layout, components go right top aligned, nodes=draw]
{
{[nodes={name prefix=cat1}]
cat1 -> {100, 200 [>minimum layers=2]};
200 -> {210, 300};
300 -> {400, 420, 450};
};
{[nodes={name prefix=cat2}]
cat2 -> 101 -> 102 -> 203 -> {204, 408};
};
% (cat2102) -> (cat1200);
};
\end{document}
在最后注释的一行中,我尝试在两个链上的节点之间绘制一条边,但 tikz 抱怨节点不在图中。我该如何实现这一点?您必须使用 luatex 编译上述内容。
答案1
您必须使用键/tikz/graphs/name
来为图表上的节点使用前缀。但前缀后会添加一个分隔符。默认值为/tikz/graphs/name separator
空格。
\documentclass[margin=5pt]{standalone}
\usepackage{luatex85}
\usepackage{tikz}
\usetikzlibrary{graphs}
\usetikzlibrary{graphdrawing}
\usegdlibrary{layered}
\begin{document}
\tikz []
\graph [layered layout, components go right top aligned, nodes=draw]
{
{[name=cat1]
cat1 -> {100,200 [>minimum layers=2]};
200 -> {210, 300};
300 -> {400, 420, 450};
};
{[name=cat2]
cat2 -> 101 ->102-> 203 -> {204, 408};
};
(cat2 102) -> (cat1 200);
};
\end{document}
结果:
备注:如果您想使用不同的值,name separator
您必须在设置name
密钥之前更改其值。