Graphviz - 如何使标签中的文本左对齐?

mig*_*unz 35 graphviz

我正在使用graphviz来可视化我正在解析的语言的AST.我想要包含源代码(作为标签),但graphviz对齐标签内的文本,这与我的缩进混淆(代码是缩进敏感的).这是问题的一个例子,第二行代码不应缩进:

在此输入图像描述

这是生成的.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";
Run Code Online (Sandbox Code Playgroud)

mar*_*pet 48

您可以使用\l,而不是\n为了标签分为左对齐线.

带有左对齐线的graphviz标签

  • 老线程,我意识到,但@Tarrasch:在你最后一行的末尾添加一个`\ l`将解决它,例如`"Line 1\lLine 3\lLine 3\l"` (15认同)
  • 我得到的结果是它只适用于两行(一次出现`\ l`).有人认识到这个问题吗?对我来说,第三行没有对齐. (4认同)