如何在 tikz 图形环境中为节点名称添加前缀

如何在 tikz 图形环境中为节点名称添加前缀

我有一张包含两条这样的链的图:

\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密钥之前更改其值。

相关内容