2012-10-27 11 views
25

Używam graphviz do wizualizacji AST języka, który parsuję. Chciałbym dołączyć kod źródłowy (jako etykietę), ale graphviz wyrównuje tekst wewnątrz etykiety, co zagraża mojemu wcięciu (a kod jest wrażliwy na wcięcia). Oto przykład problemu, druga linia kodu nie powinien być wcięty:Graphviz - jak ustawić tekst na etykietach wyrównanych do lewej?

enter image description here

Jest odpowiednia część wygenerowanego pliku .dot:

graph [fontname=Courier,fontsize=10.0,labeljust=l,nojustify=true]; 
node [shape=box,width=0.2,height=0.2,fontname=Courier,fontsize=10.0,penwidth=0.5]; 
edge [weight=1.2,penwidth=0.5,fontname=Courier,fontsize=10.0,labeljust=c]; 
labelloc="t"; 
label="\ndef square(a, b) -> a * b\ndef dotProduct(a, b) -> \n a.x * b.x + a.y * b.y\n"; 

Odpowiedz

31

Można użyć \l zamiast z \n w celu uzyskania divide the label into left-justified lines.

graphviz label with left-justifed lines

+0

Dziękuję, właśnie tego chciałem. – migimunz

+2

Otrzymuję wynik, że działa tylko dla dwóch linii (jedno wystąpienie '\ l'). Czy ktoś rozpoznaje ten problem? Dla mnie trzecia linia nie jest wyrównana. – Tarrasch

+7

Stary wątek, zdaję sobie sprawę, ale @ Tarrasch: dodanie '\ l' na końcu ostatniej linii rozwiąże to, np. '" Linia 1 \ lLinia 3 \ LLinia 3 \ l "' – JStroop

Powiązane problemy