How to change route of edge in graphviz
18:00 07 Sep 2025

I tried to make edge from out1 to out3 take route under the nodes to get more symetrical look but instead it makes a crazy detour.

I use graphviz in diagraph package in typst

I tried using ports to mage edges rearrange itself but when graph starts to be a little dense, edge cannot be forced to change route and instead always directs itself into the default edge crossing that it decided is right.

I observed this behavior a couple of times, here's the example

I looked through graphviz edge parameters and unfortunately nothing seems to help with that, also I can't find any help on the internet or mentions of a similar issue.

digraph {
    subgraph{
      e1 [label =\"\" , style = invis]
      e2 [label =\"\" , style = invis]
      e3 [label =\"\" , style = invis]
    }
    
    subgraph A {
      rank = same
      in1 -> in2 -> in3
      in3:nw -> in1:ne
    }


    subgraph {
      rank=same
      out1 -> out2 -> out3 [dir=back];
      out1:se -> out3:sw; //THIS EDGE <--------------------------
    }

    in1->out1
    in2->out2
    in3->out3
      
    subgraph{
      rank=same
      r1 [label= \"\", shape=none,height=.0,width=.0]
      r2 [label= \"\", shape=none,height=.0,width=.0]
      r3 [label= \"\", shape=none,height=.0,width=.0]
    }

    e1->in1
    e2->in2
    e3->in3 

    out1->r1
    out2->r2
    out3->r3
}
graphviz