splines attribute only works on a graph-wide, not on a per-edge granularity
Steps to reproduce
test.dot:
digraph {
a -> b;
a -> c;
b -> d;
c -> d;
d -> a [splines=line];
}
run:
dot test.dot -Tpdf -o test.pdf
Expected Behaviour
Edge d \rightarrow a
should be a straight line.
Actual Behaviour
Edge d \rightarrow a
is curved.
OS Version
Linux zen 6.7.7-1-MANJARO #1 SMP PREEMPT_DYNAMIC Fri Mar 1 18:26:06 UTC 2024 x86_64 GNU/Linux
Graphviz Version
dot - graphviz version 10.0.1 (0)
libdir = "/usr/lib/graphviz"
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Activated plugin library: libgvplugin_core.so.6
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
/usr/lib/graphviz/config6
was successfully loaded.
render : cairo dot dot_json fig gd json json0 map mp pic pov ps svg svg_inline tk vrml xdot xdot_json
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
textlayout : textlayout
device : canon cmap cmapx cmapx_np dot dot_json eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg json json0 kitty kittyz mp pdf pic plain plain-ext png pov ps ps2 svg svg_inline svgz tk vrml vt vt-24bit wbmp webp x11 xdot xdot1.2 xdot1.4 xdot_json xlib
loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg webp xbm
Additional info
Apparently, you can only set behavior how edges are rendered on a global level like this:
graph [splines=line];
But you cannot make this decision on a per-edge basis.