2012-06-04 8 views
44

Ich frage mich, ob ich eine alternative Schriftart für den gesamten Graphen definieren kann.Graphviz: Schriftart für das gesamte Diagramm ändern?

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

dazu Nach 1 älteren Beitrag kann die Fontname atribute nur separat definiert werden:

Knoten und Kanten nicht die Schriftart des Graphen erben, Sie sie separat

angeben müssen

Gibt es eine andere Möglichkeit, wie man die Schriftart global definiert?

Antwort

65

Nein, es gibt keinen anderen Weg.

Wie im Forum posten Sie verknüpft, müssen Sie separat die Standardwerte definieren (wie auch die anderen Attribute) zu Beginn Ihrer graphviz Datei:

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

Allerdings gibt es einen einfachen Trick, wenn Sie SVGs ist exportieren:

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

dies kombiniert mit Make und all dem Grauen wird ausgeblendet :) hier ein Beispiel Makefile:

all: helvetica 

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

Aber das wird nicht Dinge auf der Grundlage der Größe des gerenderten Textes auslegen – Eric

4

Nicht sicher, ob dies ein neues Update ist, aber Sie können diese auf der Befehlszeilenebene ändern, die -G, -E und -N Attributflag verwenden. Das heißt, das Folgende funktioniert für mich:

$ dot -Tpng -Nfontname=Roboto -Nfontsize=10 \ 
    -Efontname=Roboto -Efontsize=10 \ 
    tree.dot > tree.png 
Verwandte Themen