我正在用graphviz渲染管道图。每个节点都是管道中的一个步骤,并使用表格进行布局。第一行以粗体显示该步骤的名称。其他行显示该步骤的输出。步骤之间的箭头显示依赖性。
digraph {
node[shape=plaintext]
A [
label=<
<table border="1" cellborder="0" cellspacing="1" >
<tr><td align="left"><b>FirstVeryLongVeryBoldStepName</b></td></tr>
<tr><td align="left">→ out.txt</td></tr>
</table>
>];
B [
label=<
<table border="1" cellborder="0" cellspacing="1" >
<tr><td align="left"><b>SecondVeryLongVeryBoldStepName</b></td></tr>
<tr><td align="left">→ out2.txt</td></tr>
<tr><td align="left">→ out3.json</td></tr>
</table>
>];
A -> B
}
这是它的渲染方式:
每个框的宽度似乎是根据文本的非粗体宽度设置的。如果删除<b>
标签,则布局看起来正好:
如何使用粗体显示紧凑的布局?如果有帮助,请访问link to the example in Graphviz Online
答案 0 :(得分:1)
有趣的是,在我的计算机上,您的代码可以正常显示(在Mac上带有graphviz 2.41的Ubundtu和在graphviz 2.40上的Ubundtu:rendered.png)。也许这取决于graphviz构建期间使用的字体引擎。
根据您的情况,您可以在每个粗体文本节点的末尾添加三个空格:link to fixed example
如果HTML解析器占用了空格(尤其是在渲染svg时可能会发生),则可以用
符号(不易碎的空格)替换它们。