Dotty показывает все метки в виде точек (точка) вместо текста

2684
Oak

У меня есть следующий график graphviz:

digraph finite_state_machine { a -> b [ label = "c" ]; } 

Вывод этого графика должен быть

correct graph

И это действительно то, что я получаю, если пытаюсь использовать точку для создания файла (например, с помощью dot -Tsvg test.dot > test.svg).

Когда я пытаюсь использовать dotty для его отображения, все метки отображаются в виде точек:

incorrect graph

Что вызывает эту проблему, и как я могу решить эту проблему? В прошлом я много использовал dotty на похожих графиках, как в Windows, так и в Linux, и никогда не видел такого поведения.

Ubuntu 10.04.3 LTS, Graphviz версия 2.20.2 (dotty версия 96c).

6
Правильные шрифты установлены? Sardathrion 12 лет назад 1
@ Сард, я не знаю, как я могу проверить? Oak 12 лет назад 0
Взгляните на $ HOME / .xsession-errors и / или /var/log/Xorg.0.log, чтобы увидеть, есть ли там ошибки. Запустите dotty в консоли (чтобы вы могли видеть любые сообщения, отправленные на stderr). Посмотрите, какие шрифты вы установили, и принудительно установите шрифт в файле точек, чтобы увидеть, имеет ли это какое-либо значение. Sardathrion 12 лет назад 0
звучит как отсутствующий шрифт для меня. RobotHumans 12 лет назад 1

4 ответа на вопрос

4
dyomas

My solution is too simple. I examined /var/log/Xorg.0.log and found the following:

[ 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. 

So, I installed the indicated packages:

xfonts-100dpi xfonts-cyrillic ... defoma psfontmgr x-ttcidfont-conf 

I rebotted and Dotty graphs became beautiful, but the default font name remains unknown for me.

Согласно [этому сообщению об ошибке] (https://bugs.launchpad.net/ubuntu/+source/graphviz/+bug/1016777), установки `xfonts-100dpi` должно быть достаточно, чтобы избежать этой проблемы. anol 7 лет назад 0
2
anol

У меня та же проблема, и я не нашел решения, но я составил список обходных путей (некоторые взяты из https://bugs.launchpad.net/ubuntu/+source/graphviz/+bug/1016777 ):

  1. Укажите название шрифта ( fontname="fixed"у меня работал атрибут ). Обратите внимание, что вы можете использовать глобальные атрибуты в начале файла, чтобы избежать необходимости указывать его для каждой метки:
 digraph cfg { graph [fontname="fixed"]; node [fontname="fixed"]; edge [fontname="fixed"]; ... } 
  1. Используйте dot(вместо dotty) и выведите график в файл изображения (например dot -Tpng file.dot -o file.png), затем используйте средство просмотра изображений. Чтобы избежать создания временных файлов, используйте средство просмотра, которое поддерживает чтение из stdin, например gwenview(например dot -Tpng file.dot | gwenview /dev/stdin).

  2. Используй xdotвместо дотти.

Хотя эти обходные пути не решают реальную проблему, если все, что вам нужно, это быстро просмотреть некоторые графики, они могут быть быстрее, чем пытаться исправить проблему (которая все еще сохраняется в Linux Mint 17, основанном на Ubuntu 14.04).

0
polynomial

Как уже упоминали другие, ваша конфигурация шрифта не работает. Вы можете прочитать больше о том, как настроить это здесь:

http://www.graphviz.org/doc/info/attrs.html#d:fontname

Я попытался форсировать определенные шрифты, и я попытался вручную установить шрифты, используемые graphviz - ни один не помог. Я также думаю, что факт `dot` работает, просто` dotty` не работает, намекает, что это не проблема шрифта Oak 12 лет назад 0
0
Oak

Я нашел какой-то внутренний документ в компании, в которой я ненадолго работал, в которой упоминается, что dotty неисправен в Ubuntu 10.04, и призывает пользователей обновить свою ОС, чтобы решить эту проблему. Причина, по которой это происходит, до сих пор остается для меня загадкой, и «обновить вашу ОС» - довольно плохое решение, но все же - оно должно решить проблему, поэтому разместите ее здесь в качестве ответа.

Видя, что это ошибка, все еще присутствующая в Ubuntu 16.04, этот совет больше не является ни точным, ни полезным, так как он не решает проблему. Может быть, лучше выбрать другой ответ в качестве принятого. anol 7 лет назад 0
Достаточно справедливо, но, честно говоря, другие решения тоже мне не помогли. Oak 7 лет назад 0
О, я вижу, я не уделял много внимания всем датам. Тем не менее, я считаю, что ответ Dyomas все еще актуален и лучший на сегодняшний день. anol 7 лет назад 0

Похожие вопросы