【问题标题】:DOT/graphviz node labels not displaying HTML-like subscriptsDOT/graphviz 节点标签不显示类似 HTML 的下标
【发布时间】:2020-02-26 21:41:31
【问题描述】:

Graphviz 的 HTML-like labels documentation 建议我可以使用此 .dot 文件创建一个标记为 Uₓ 的节点:

digraph G {
    U [label=<U<SUB>X</SUB>>];
    U->X
}

不幸的是,生成的图表显示了一个带有 UX 而不是 Uₓ 的节点:

我是否遗漏了一些东西来使 Uₓ 中的 X 成为下标?

更新:我正在输出带有dot mygraph.dot -Tpng -o mygraph.png 的PNG 图像并且收到没有警告或错误。版本是:

$ dot -V
dot - graphviz version 2.40.1 (20161225.0304)

在 macOS 上使用brew 安装

更新 2:我尝试使用 -Tsvg 输出 SVG,而不是使用 -Tpng 输出 PNG,我确实得到了一个下标 X,有点。 X 的字体大小与U 完全相同,只是向下移动了一点。为什么会这么糟糕?

【问题讨论】:

  • 当像dot -Tpng ... 这样直接使用点可执行文件时,我得到了一张显示下标的图像(虽然有点大)。使用 Web 服务 (webgraphviz.com) 时,我收到“警告:未使用 libexpat 构建。表格格式不可用。在节点 U 的标签中”。您收到警告/错误吗?
  • 在生成 svg 时应该可以工作吗?
  • 本来打算将限制文档链接为here,但似乎下标不适用于所有输出格式和graphviz版本。
  • 我使用命令dot mygraph.dot -Tpng &gt; mygraph.png来生成PNG图片。我收到的警告或错误为零。
  • 我正在使用 dot - graphviz 版本 2.40.1 (20161225.0304)。

标签: graphviz dot


【解决方案1】:

我对我的评论不满意,所以我会尝试对我所看到的内容提供一个更好的概述(所以没有答案,只是一个总结)。 对于这个概述,我使用了以下输入:

digraph G {
    U [label=<U<sub>x</sub>>];
    U->X
    V [label=<U<SUB>x</SUB>>];
    V->X
    V1 [label=<Ux>];
    V1->X
    W [label=<U<sub>X</sub>>];
    W->X
    Y [label=<U<SUB>X</SUB>>];
    Y->X
    Y1 [label=<UX>];
    Y1->X
}

以及以下版本的点:

  • Windows:点 - graphviz 版本 2.38.0 (20140413.2041)
  • Cygwin:点 - graphviz 版本 2.40.1 (20161225.0304)

结果如下:

Windows png

Windows svg

Cygwin png

Cygwin svg

【讨论】:

  • 有趣的是,对您而言,SVG 忽略了 &lt;sub&gt; 标记,而 PNG 确实输出了下标,但效果很差。对我来说,在 macOS 上,情况正好相反。我的 SVG 输出看起来与您的 PNG 相似,反之亦然。
猜你喜欢
  • 2015-09-21
  • 2012-09-05
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 2015-01-21
  • 2021-02-25
相关资源
最近更新 更多