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

Fonts Graphviz可移植性和字体。如何使不同操作系统上的方案相同?,fonts,graphviz,portability,dot,Fonts,Graphviz,Portability,Dot,我在Mac上使用Graphviz,但我的大多数应用程序都在Ubuntu服务器上运行。我注意到,当在不同的操作系统上编译时,具有相同源代码的点模式的绘制略有不同 在我看来,主要原因是系统上字体之间的差异。尽管我使用相同的通用字体和相同的大小,但它们看起来太不一样了,这会对布局产生很大影响 所以问题是:有没有可能让整个系统的Graphviz方案中的字体看起来相同 下面我附上了演示该问题的示例。为方便起见,将图像作为链接附加 源代码: digraph { graph [label="Mac"

我在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]
}
  • graphviz版本2.40.1
  • graphviz版本2.40.1
  • graphviz版本2.38
正如你在方案中看到的,字体并不是唯一的问题:在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]
}
  • graphviz版本2.40.1
  • graphviz版本2.40.1
  • graphviz版本2.38

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

问题似乎在于装在瓶子里的graphviz版本。Graphviz在这里非常奇怪,尤其是它不包括Cairo引擎,而且在字体方面确实存在一些问题

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


问题似乎出在装在瓶子里的graphviz版本上。Graphviz在这里非常奇怪,尤其是它不包括Cairo引擎,而且在字体方面确实存在一些问题

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


您如何保存生成的图像?@tk421使用相同的命令:
dot-Tpng input.dot-ooput.png
您可以在首选平台上生成png,并在其他任何地方使用这些图像。@tk421这是一个解决方案!但不幸的是,在我的项目中使用Graphviz的想法是,我可以避免将方案保存在静态PNG文件中。我在MAC上设计方案,但在Ubuntu容器中自动编译。但是它们也可以在任何其他机器上编译,因为这是一个git存储库。如果您想保持字体一致,您可能还需要查看。您如何保存生成的图像?@tk421使用相同的命令:
dot-Tpng input.dot-ooput.png
您可以在首选平台上生成png,并在任何地方使用这些图像否则。@tk421这是一个解决方案!但不幸的是,在我的项目中使用Graphviz的想法是,我可以避免将方案保存在静态PNG文件中。我在MAC上设计方案,但在Ubuntu容器中自动编译。但它们也可以在任何其他机器上编译,因为这是一个git存储库,如果您想保持字体一致,您可能还需要查看它。