graphviz/dot 中记录内的边

jon*_*asn 5 record dot graphviz

我想通过在该记录中的两个元素之间运行直边来突出显示 graphviz(v 2.38.0)中记录内的关系。然而,dot 尽一切努力在记录节点之外运行边。

以下示例显示了我的问题。

digraph {
  rankdir = LR;
  splines = line;

  i1; i2; i3;
  mux [shape=record,label="{  {<i1>i1|<i2>i2|<i3>i3} | MUX | <o1>o1}"];
  o;

  i1 -> mux:i1;
  i2 -> mux:i2;
  i3 -> mux:i3;
  mux:o1 -> o;

  mux:i1:e -> mux:o1:w [color=red];

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我希望红色边缘是记录内部端口之间的直线。我不在乎边缘是否覆盖唱片公司。

有没有办法强制边缘成为一条忽略障碍物的直线,或者以其他方式指示对象在覆盖节点/标签时应忽略的点?

这个问题类似于Graphviz Edges Between ports Been the same record Node Look bad,它没有答案。

ob1*_*ob1 2

尝试:splines = curved;

digraph {
  rankdir = LR;
  splines = curved;

  i1; i2; i3;
  mux [shape=record,label="{  {<i1>i1|<i2>i2|<i3>i3} | MUX | <o1>o1}"];
  o;

  i1 -> mux:i1;
  i2 -> mux:i2;
  i3 -> mux:i3;
  mux:o1 -> o;

  mux:i1:e -> mux:o1:w [color=red];


}
Run Code Online (Sandbox Code Playgroud)

PNG