Подтвердить что ты не робот

Graphviz: изменить шрифт для всего графика?

Мне интересно, могу ли я определить альтернативный шрифт для всего графика.

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

В соответствии с этим 1 старшим постом атрибут fontname может быть определен только отдельно:

Узлы и ребра не наследуют шрифт графа, вам нужно указать их отдельно

Есть ли другой способ, как определить шрифт глобально?

4b9b3361

Ответ 1

Нет, другого пути нет.

Как и в сообщении на форуме, которое вы связали, вы должны определить значения по умолчанию отдельно (например, другие атрибуты) в начале файла graphviz:

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

Ответ 2

Не уверен, что это последнее обновление, но вы можете изменить их на уровне командной строки, используя флаги атрибутов -G, -E и -N. То есть для меня работает следующее:

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

Ответ 3

Однако, есть один простой трюк, если вы экспортируете svgs:

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