title: GraphViz edge labels
body: <p>I'm trying to draw a graph of the dependencies between C header files using graphviz.</p>
  
  <p>Basically, what I'm doing is log all the #include that appear and the condition (#if conditions I mean). If a file includes another one, it becomes its father in the graph and the potential condition is the edge label.</p>
  
  <p>I obtain a pretty large graph. The problem stems from the edge labels which are always horizontal (you cannot change that) and always seem to be left-align (I've tried labelloc and labeljust but it doesn't change anything. What is the correct way to "center" the label of one edge.</p>
  
  <p>To avoid this problem, I've tried to render conditions as nodes. If A.h includes B.h under ANSI condition, there's a link from A.h to ANSI and then from ANSI to B.h... That looks ok, but the problem is that if C.h include D.h under the same condition, I would see a link from A.h to ANSI, one from to C.h to ANSI; one from ANSI to B.h and one from ANSI to D.h . The problem is I don't know if it's A.h or C.h that includes B.h . Is there a way to specify something like go through nodes (a link from A.h to B.h that goes under ANSI maybe leveraging transparency.)</p>