2012-10-27 9 views
25

मैं एक भाषा के एएसटी को देखने के लिए ग्राफ़विज़ का उपयोग कर रहा हूं जिसे मैं पार्स कर रहा हूं। मैं स्रोत कोड (लेबल के रूप में) शामिल करना चाहता हूं लेकिन ग्राफ़विज़ लेबल के अंदर पाठ को संरेखित करता है, जो मेरे इंडेंटेशन के साथ गड़बड़ करता है (और कोड इंडेंटेशन-संवेदनशील है)। यहाँ समस्या का एक उदाहरण है, कोड की दूसरी पंक्ति इंडेंट नहीं किया जाना चाहिए:ग्राफविज़ - मैं लेबल को बाएं-गठबंधन में कैसे बना सकता हूं?

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

उत्तर

31

आप \l बजाय का उपयोग हो सकता है:

enter image description here

यह उत्पन्न .dot फ़ाइल के प्रासंगिक हिस्सा है के लिए \n का।

graphviz label with left-justifed lines

+0

धन्यवाद, यह वही है जो मैं चाहता था। – migimunz

+2

मुझे परिणाम मिलता है कि यह केवल दो लाइनों ('\ l' की एक घटना) के लिए काम करता है। क्या कोई इस मुद्दे को पहचानता है? मेरे लिए तीसरी पंक्ति गठबंधन नहीं है। – Tarrasch

+7

पुराना धागा, मुझे एहसास है, लेकिन @Tarrasch: आखिरी पंक्ति के अंत में एक \ l' जोड़ना इसे हल करेगा, उदा। '" रेखा 1 \ lLine 3 \ lLine 3 \ l "' – JStroop

संबंधित मुद्दे