Ответ 1
"Иногда ответ" нет ".
Итак, нет. GraphViz не имеет понятия "названные стили", которые видны в текстовых редакторах, таких как Microsoft Word и LibreOffice, и не имеет стиля "класс" из HTML и CSS. Его атрибуты форматирования более примитивны и, во многих случаях, должны быть явно указаны.
Вы можете установить некоторые значения по умолчанию, как в своем примере конечного автомата:
node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
node [shape = circle];
Здесь вы получаете значение по умолчанию для формы круга (последняя форма определена), с явным вызовом из нескольких узлов, которые ранее были объявлены ранее по умолчанию (doublecircle
). Это удобство для некоторых конструкций, но для этого требуется хорошая степень предпланирования (например, объявляются элементы заказа). Иногда вы можете использовать функцию subgraph
, чтобы помочь упорядочивать значения по умолчанию по группам, как показывает этот ответ.
Но значения по умолчанию - это небольшой комфорт для тех из нас, кто привык к выразительным, простым типам механизмов. Взгляд на остальную часть документации подтверждает, что, хотя вы можете использовать некоторые элементы стиля HTML для текста, например, они ограничены тегами HTML, такими как <b>
и <i>
. Это примитивный стиль HTML около 2001 года, до распространения качества CSS.
Не обманывайте себя атрибутом stylesheet
; это только для вывода SVG, и, к сожалению, гораздо менее общий и ценный, чем кажется на первый взгляд.
Итак, длинный рассказ, "нет". GraphViz не имеет встроенных элементов многократного использования. Если вы этого хотите, вам придется строить это отдельно, используя программу, макро-препроцессор и т.п. Извините!