Graphviz可移植性和字体。如何在不同的操作系统上使方案相同?

问题描述 投票:1回答:1

我在Mac上使用Graphviz,但我的大多数应用程序都在使用Ubuntu的服务器上运行。我注意到,在不同的操作系统上编译时,具有相同源代码的点方案的绘制方式略有不同。

在我看来,主要原因是系统上的字体之间的差异。即使我使用相同的通用字体和相同的大小 - 它们看起来太不同了,这对布局影响很大。

所以问题是:是否有可能在整个系统中使Graphviz方案中的字体看起来相同?

下面我附上演示问题的例子。为方便起见,图像作为链接附加。

源代码:

digraph {
    graph [label="Mac" labelloc=t]
    dpi=100
    pad=0.2
    rankdir=LR
    a [shape=rect label="width=1" width=1]
    b [shape=rect label="width=1.5 Arial" width=1.5 fontname=Arial]
    c [shape=rect label="width=2.7 Arial 20" width=2.7 fontname=Arial fontsize=20]
    d [shape=rect label="width=4 Helvetica" width=4 fontname=Helvetica]
    e [shape=rect label="width=5 Helvetica 25" width=5 fontname=Helvetica fontsize=25]
    f [shape=rect label="width=6, blue 0.8, red 0.2" width=6 style=filled color="blue:red;0.2" fontcolor=white]
}

正如您在方案中看到的那样 - 字体不是唯一的问题:在Mac \ Ubuntu和Win10上填充两种颜色看起来有点不同。但是这个具体问题可能是因为我的Windows机器上有graphviz 2.38。

现在是相同的方案,但没有节点标签:

digraph {
    graph [label=Mac labelloc=t]
    dpi=100
    pad=0.2
    rankdir=LR
    a [shape=rect label="" width=1]
    b [shape=rect label="" width=1.5 fontname=Arial]
    c [shape=rect label="" width=2.7 fontname=Arial fontsize=20]
    d [shape=rect label="" width=4 fontname=Helvetica]
    e [shape=rect label="" width=5 fontname=Helvetica fontsize=25]
    f [shape=rect label="" width=6 style=filled color="blue:red;0.2" fontcolor=white]
}

这里的结果几乎相同(除了该死的颜色列表)

fonts graphviz portability dot
1个回答
0
投票

这个问题似乎与graphviz版本有关,它装在Homebrew中。 Graphviz在那里非常奇怪,特别是它不包括Cairo引擎,并且确实存在字体问题。

所以我删除了Homebrew版本并从MacPorts安装了Graphviz。现在,我在Mac上构建图像时的字体大小几乎与Ubuntu和Windows上的相同。字体不完全相同,但它们足够接近开发过程。

Same image generated by Graphviz from MacPorts

© www.soinside.com 2019 - 2024. All rights reserved.