我正在使用graphviz创建流程图。我每次通过设置节点和边属性来更改样式:
node[shape="box",
style="filled, rounded",
fillcolor=lightyellow,
fontname="Verdana",
fontsize=9,
penwidth=.5,
color="gray83"]
start, end;
对于平行四边形,矩形,菱形等,包含此和其他类似的声明有点痛苦。
我希望能够引用可重复使用的样式文档,而不是将其复制并粘贴到每个.dot
文件中。
有标准的方法吗?我可能会构建一个shell脚本或python脚本来为我做这件事,但是似乎功能应该已经存在。
“有时候答案是'不'。”
所以,不。GraphViz缺少Microsoft Word和LibreOffice等字处理器中的“命名样式”概念,并且缺少HTML和CSS中的“类”样式概念。其格式化属性更为原始,在许多情况下,必须明确说明。
您可以设置一些默认值,例如其有限状态机示例:
node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
node [shape = circle];
在这里,您可以默认使用圆的形状(定义的最后一个形状),并从先前在先前默认值(doublecircle
)下声明的少数节点中进行显式调用。这对于某些设计是很方便的,但是它需要进行很好的预计划(例如,声明订单项)。有时您可以使用此subgraph
功能来按组帮助组织默认值,如Stack Overflow答案所示。
但是对于我们习惯于表达,简单类型机制的默认设置来说,默认设置是一个小小的安慰。查看文档的其余部分可以确认,尽管您可以将一些HTML样式元素用于文本,例如,它们仅限于HTML标记(例如<b>
和)<i>
。这是在质量CSS普及之前的原始HTML样式,大约在2001年。
也不要被该stylesheet
属性所欺骗;它仅用于SVG输出,令人失望的是它比最初看起来的通用性和价值低得多。
因此,长话短说,“不”。GraphViz没有内置的可重用样式元素。如果需要,您将必须使用程序,宏预处理器或类似工具单独构建它。对不起!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句