2012-06-04 3 views
44

Mi chiedo se posso definire un carattere alternativo per l'intero grafico.Graphviz: cambia il carattere per l'intero grafico?

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

Secondo questa 1 più vecchio del atribute fontname può essere definito solo separatamente:

nodi e spigoli non ereditano il tipo di carattere del grafico, è necessario specificare separatamente

C'è un altro modo, come definire il carattere globalmente?

risposta

65

No, non c'è altro modo.

Come nel post forum si è collegato, è necessario definire i valori di default separatamente (come gli altri attributi) all'inizio del file graphviz:

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

Tuttavia, c'è un trucco facile, se si sono SVG esportatori:

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

combinare questo con Marca e tutto l'orrore sarà nascosto :) ecco un esempio 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

Ma questo non risolverà le cose in base alla dimensione del testo renderizzato – Eric

4

Non sono sicuro se questo è un recente aggiornamento, ma è possibile modificare questi a livello di riga di comando utilizzando i flag di attributo -G, -E e -N. Cioè, il seguente funziona per me:

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