我想知道是否可以为整个图形定义替代字体。
...
digraph script_concept {
graph [layout="dot",fontname="helvetica"];
...
根据this 1 old post fontname属性只能单独定义:
节点和边不继承图形的字体,需要单独指定
有没有其他方法,如何全局定义字体?
不,没有别的办法。
与您链接的论坛帖子一样,您必须在 graphviz 文件的开头单独定义默认值(如其他属性):
digraph g {
graph [fontname = "helvetica"];
node [fontname = "helvetica"];
edge [fontname = "helvetica"];
...
}
不确定这是否是最近的更新,但您可以使用-G
,-E
和-N
属性标志在命令行级别更改这些。也就是说,以下对我有用:
$ dot -Tpng -Nfontname=Roboto -Nfontsize=10 \
-Efontname=Roboto -Efontsize=10 \
tree.dot > tree.png
但是,如果您要导出 svg,有一个简单的技巧:
sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg
将它与 Make 结合起来,所有的恐怖都将被隐藏 :) 这是一个 Makefile 示例:
all: helvetica
svg:
cat thegraph.dot | dot -Tsvg > thegraph.svg
helvetica: svg
sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg