在使用 graphviz 执行任何操作时,我收到“无法找到/打开字体”错误。我已经将其范围缩小到尽可能简单的图表,在文件中
simplest.dot
:
digraph G {
node1
}
运行
$ dot simplest.dot -Tpng -O
时,图形渲染为simplest.dot.png
,但我总是收到此错误:Error: Could not find/open font
,并且输出中使用的字体不是很漂亮。
根据 graphviz 常见问题解答,当出现此错误时,您可以 告诉 graphviz 在哪里寻找字体。我一直在我使用的系统上寻找字体,
/usr/share/fonts
中似乎有一些 TrueType 字体,其中包括 Bitstream Vera 字体,它似乎存在于 /usr/share/fonts/bitstream-vera
中。
所以我尝试在点图中设置
fontpath
和fontname
,以帮助graphviz弄清楚事情:
digraph G {
fontpath="/usr/share/fonts/bitstream-vera"
fontname="Bitstream Vera Sans"
node1
}
但我仍然遇到完全相同的错误。我已经尝试了路径和字体名称的几种变体,但我似乎无法得到正确的结果。我做错了什么?
这可能是一次冒险,但在 http://www.graphviz.org/doc/info/attrs.html#d:fontname 中它说 如果您指定 fontname=schlbk,该工具将查找fontpath 属性指定的目录之一中名为 schlbk.ttf 或 schlbk.pfa 或 schlbk.pfb 的文件。
所以,我可能会尝试
digraph G {
fontpath="/usr/share/fonts/bitstream-vera"
fontname="nameOfttfWITHOUTsuffix.ttf"
node1
}
在我的 macOS 上,可以执行以下操作:
digraph G {
node [shape=plaintext, fontname="SourceCodePro"];