2012-10-27 15 views
25

Ayrıştığım bir dilin AST'sini görselleştirmek için graphviz kullanıyorum. Kaynak kodunu (etiket olarak) eklemek istiyorum, ancak graphviz, etiketin içindeki metni girintimle karıştıran metni hizalar (ve kod girintiye duyarlıdır). İşte sorunun bir örnek kod ikinci satırı girintili edilmemelidir:Graphviz - Etiketlerdeki metni sola hizalayarak nasıl yapabilirim?

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"; 

cevap

31

yerine \l kullanabilirsiniz:

enter image description here

Bu oluşturulan .dot dosyasının ilgili kısmı divide the label into left-justified lines'a göre \n.

graphviz label with left-justifed lines

+0

Teşekkür ederim, bu tam olarak istediğim şey. – migimunz

+2

Sonuçta sadece iki satır için çalıştığı sonucunu elde ediyorum (bir tane \ 'nin olması). Bu sorunu tanıyan var mı? Benim için üçüncü hat hizalı değil. – Tarrasch

+7

Eski thread, fark ettim, ama @Tarrasch: son satırın sonuna bir '\ l 'ekleyerek onu çözecek, ör. '' Satır 1 \ lLine 3 \ lLine 3 \ l \ ' – JStroop