2012-10-27 30 views
25

Tôi đang sử dụng graphviz để trực quan hóa AST của ngôn ngữ tôi đang phân tích cú pháp. Tôi muốn bao gồm mã nguồn (dưới dạng nhãn) nhưng graphviz căn chỉnh văn bản bên trong nhãn, điều này gây rối với sự thụt đầu dòng của tôi (và mã có độ nhạy cảm thụt đầu dòng). Dưới đây là một ví dụ về vấn đề này, dòng thứ hai của mã không nên thụt:Graphviz - làm cách nào để làm cho văn bản trong nhãn được căn trái?

enter image description here

Đây là phần có liên quan của tập tin Dot tạo:

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

Trả lời

31

Bạn có thể sử dụng \l thay của \n để divide the label into left-justified lines.

graphviz label with left-justifed lines

+0

Cảm ơn bạn, đây chính là điều tôi muốn. – migimunz

+2

Tôi nhận được kết quả là nó chỉ hoạt động cho hai dòng (một lần xuất hiện '\ l'). Có ai nhận ra vấn đề này không? Đối với tôi dòng thứ ba không được căn chỉnh. – Tarrasch

+7

Chủ đề cũ, tôi nhận ra, nhưng @Tarrasch: thêm '\ l' vào cuối dòng cuối cùng của bạn sẽ giải quyết nó, ví dụ: '" Dòng 1 \ lLine 3 \ lLine 3 \ l "' – JStroop

Các vấn đề liên quan