Графвиз, переносимость и шрифты.Как сделать схемы одинаковыми на разных ОС? - PullRequest
0 голосов
/ 18 февраля 2019

Я работаю с Graphviz на Mac, но большинство моих приложений работают на серверах с Ubuntu.Я заметил, что точечные схемы с одним и тем же исходным кодом при компиляции в разных операционных системах выглядят немного по-разному.

Мне кажется, что основная причина - это разница между шрифтами в системах.Несмотря на то, что я использую одни и те же общие шрифты и одинаковые размеры - они кажутся слишком разными, что сильно влияет на макет.

Так что вопрос: можно ли заставить шрифты выглядеть одинаково в Graphviz?Схемы в разных системах?

Ниже я прилагаю примеры, демонстрирующие проблему.Изображения для удобства прикреплены в виде ссылок.

Исходный код:

digraph {
    graph [label="Mac" labelloc=t]
    dpi=100
    pad=0.2
    rankdir=LR
    a [shape=rect label="width=1" width=1]
    b [shape=rect label="width=1.5 Arial" width=1.5 fontname=Arial]
    c [shape=rect label="width=2.7 Arial 20" width=2.7 fontname=Arial fontsize=20]
    d [shape=rect label="width=4 Helvetica" width=4 fontname=Helvetica]
    e [shape=rect label="width=5 Helvetica 25" width=5 fontname=Helvetica fontsize=25]
    f [shape=rect label="width=6, blue 0.8, red 0.2" width=6 style=filled color="blue:red;0.2" fontcolor=white]
}

Как видно на схемах,Шрифт - не единственная проблема: заливка двумя цветами выглядит немного по-другому на Mac \ Ubuntu и Win10.Но эта конкретная проблема может быть связана с тем, что у меня на компьютере Windows есть Graphviz 2.38.

А теперь та же схема, но без меток узлов:

digraph {
    graph [label=Mac labelloc=t]
    dpi=100
    pad=0.2
    rankdir=LR
    a [shape=rect label="" width=1]
    b [shape=rect label="" width=1.5 fontname=Arial]
    c [shape=rect label="" width=2.7 fontname=Arial fontsize=20]
    d [shape=rect label="" width=4 fontname=Helvetica]
    e [shape=rect label="" width=5 fontname=Helvetica fontsize=25]
    f [shape=rect label="" width=6 style=filled color="blue:red;0.2" fontcolor=white]
}

Здесь результаты почти идентичны (кроме чертового списка цветов)

1 Ответ

0 голосов
/ 28 марта 2019

Проблема, похоже, связана с версией graphviz, которая разливается в Homebrew .Graphviz там очень странный, особенно он не включает движок Cairo и действительно имеет некоторые проблемы со шрифтами.

Поэтому я удалил версию Homebrew и установил Graphviz из MacPorts .Теперь размеры шрифтов при сборке изображений на Mac почти такие же, как на Ubuntu и Windows.Шрифты не совсем одинаковые, но они достаточно близки для процесса разработки.

То же изображение, сгенерированное Graphviz из MacPorts

...