Dotty показывает все метки как точки (точки) вместо текста
У меня есть следующий график graphviz:
digraph finite_state_machine {
a -> b [ label = "c" ];
}
Вывод этого графика должен быть
И это действительно то, что я получаю, если пытаюсь использовать точку для создания файла (например, dot -Tsvg test.dot > test.svg
).
Когда я пытаюсь использовать dotty для его отображения, все метки отображаются в виде точек:
Что вызывает эту проблему, и как я могу решить эту проблему? В прошлом я много использовал dotty на похожих графиках, как в Windows, так и в Linux, и никогда не видел такого поведения.
Ubuntu 10.04.3 LTS, Graphviz версия 2.20.2 (dotty версия 96c).
4 ответа
Мое решение слишком простое. Я осмотрел /var/log/Xorg.0.log
и нашел следующее:
[ 52.308] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[ 52.308] Entry deleted from font path.
[ 52.308] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 52.308] Entry deleted from font path.
...
[ 52.314] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[ 52.314] Entry deleted from font path.
[ 52.314] (WW) The directory "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
[ 52.314] Entry deleted from font path.
Итак, я установил указанные пакеты:
xfonts-100dpi
xfonts-cyrillic
...
defoma
psfontmgr
x-ttcidfont-conf
Я перезагрузился, и графики Дотти стали красивыми, но имя шрифта по умолчанию для меня остается неизвестным.
У меня та же проблема, и я не нашел решения, но я составил список обходных путей (некоторые взяты из https://bugs.launchpad.net/ubuntu/+source/graphviz/+bug/1016777):
- Укажите название шрифта (атрибут
fontname="fixed"
работал на меня). Обратите внимание, что вы можете использовать глобальные атрибуты в начале файла, чтобы избежать необходимости указывать его для каждой метки:
digraph cfg {
graph [fontname="fixed"];
node [fontname="fixed"];
edge [fontname="fixed"];
...
}
использование
dot
(вместо dotty) и вывести график в файл изображения (например,dot -Tpng file.dot -o file.png
), затем используйте средство просмотра изображений. Чтобы избежать создания временных файлов, используйте средство просмотра, которое поддерживает чтение изstdin
, такие какgwenview
(напримерdot -Tpng file.dot | gwenview /dev/stdin
).использование
xdot
вместо дотти.
Хотя эти обходные пути не решают реальную проблему, если все, что вам нужно, это быстро просмотреть некоторые графики, они могут быть быстрее, чем пытаться исправить проблему (которая все еще сохраняется в Linux Mint 17, основанном на Ubuntu 14.04).
Я нашел какой-то внутренний документ в компании, в которой я ненадолго работал, в которой упоминается, что dotty неисправен в Ubuntu 10.04, и призывает пользователей обновить свою ОС, чтобы решить эту проблему. Причина, по которой это происходит, до сих пор остается для меня загадкой, и "обновить свою ОС" - довольно плохое решение, но все же - оно должно решить проблему, поэтому разместите ее здесь в качестве ответа.
Как уже упоминали другие, ваша конфигурация шрифта не работает. Вы можете прочитать больше о том, как настроить это здесь: