使用Graphviz DOT(结合Pandoc)绘制二叉树,能否用短名引用长文本节点?
解决Graphviz节点长文本显示+短名连接的问题
问题根源
你之前的写法错误在于混淆了Graphviz的节点名和id属性:Graphviz中节点名才是引用节点的唯一标识,id属性仅用于SVG输出的元素标识,不能用来在DOT代码里连接节点。你把长文本设为节点名,再用id去连接,Graphviz找不到对应节点,自然无法渲染出正确图形,甚至导致Pandoc-plot无法识别有效代码,只显示代码块。
正确的Graphviz写法
先定义短节点名,再通过label属性设置要显示的长文本内容,示例如下:
graph { adam [label="Adam\n01/01"] bella [label="Bella\n01/02"] eloise [label="Eloise\n01/05"] adam -- bella bella -- eloise }
这样既可以用短名adam/bella来连接节点,节点显示的又是带换行的长文本,在Graphviz在线编辑器和Pandoc-plot中都能正常渲染。
Pandoc+Pandoc-plot的额外注意事项
- 确保Markdown中的代码块语言标记为
dot或graphviz,而非graph——Pandoc-plot需要正确识别语言类型才能调用Graphviz引擎。 - 确认本地已安装Graphviz的
dot命令,且Pandoc-plot配置中已启用Graphviz支持(默认一般支持,可通过pandoc-plot --list-engines命令检查)。
内容的提问来源于stack exchange,提问作者Caitlyn Williams
相关产品推荐
相关产品推荐

