2012-06-04 29 views
44

我想知道如果我可以定義整個圖形的替代字體。Graphviz:更改整個圖的字體?

節點和邊緣不繼承圖的字體,則需要分別指定 他們

... 
digraph script_concept { 
graph [layout="dot",fontname="helvetica"]; 
... 

根據這一1較早的帖子的字體名稱屬性附加傷害只能單獨定義

有沒有其他方法,如何定義全局字體?

回答

65

不,沒有其他辦法。

正如你鏈接的論壇後,你必須在你的graphviz的文件的開頭單獨定義的默認值(像其他屬性):

digraph g { 
graph [fontname = "helvetica"]; 
node [fontname = "helvetica"]; 
edge [fontname = "helvetica"]; 
... 
} 
1

然而,有一個簡單的技巧,如果你是出口svgs:

sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg

與製作相結合這一點,所有的恐怖將被隱藏:) 下面是一個例子生成文件:

all: helvetica 

svg: 
    cat thegraph.dot | dot -Tsvg > thegraph.svg 
helvetica: svg 
    sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg 
+6

但是,這不會根據呈現文本的大小 – Eric

4

不知道這是一個新的更新,但是你可以在使用-G-E-N屬性標誌命令行級別改變這些。也就是說,以下作品適合我:

$ dot -Tpng -Nfontname=Roboto -Nfontsize=10 \ 
    -Efontname=Roboto -Efontsize=10 \ 
    tree.dot > tree.png 
相關問題