graphviz 图渲染器

graphviz 图渲染器

我尝试使用 的 fig 输出驱动程序将 dot 转换为 metapost dotfig2dev将图形转换为 metapost,最后tex将结果包含在文档中。示例脚本如下

digraph {
    A -> B[label="$\\leftarrow$"]
    A[label="$A \\in M_0$"]
    B[label="$B \\in M_1$"]
}

使用 Makefile 中的这些命令一切都正常工作:

dot -Tfig test.dot >test.fig
fig2dev -L mp -f tt test.fig >test.mp
F=test-$$; (echo "prologues:=3"; cat test.mp) >$F.mp; mpost -jobname=test.prev -file-line-error $F.mp; rm -f $F.*

prologues:=3在这里使用来获取一个简单的预览文件test.prev.0

在此处输入图片描述

如您所见,标签的基线不正确。它们有点太低了。问题已经出在 graphviz 的 fig 驱动程序中了。

将 test.fig 加载到 xfig 中得到以下表:

在此处输入图片描述

有谁知道这个问题的快速解决方法吗?

PS:这是直接点-Tps 输出(屏幕截图)

在此处输入图片描述

您可以看到点能够将文本放置在正确的位置。

graphviz 图渲染器

fig 渲染器似乎根本不会估计字体大小,并附有注释,说 dot 对 tex 字体一无所知。但这并不完全正确。至少可以提出和估计一些默认字体大小。我认为即使是一些粗略的近似值也比仅仅假设高度和宽度为 0pt 要好。

在 graphviz fig 驱动程序中尝试了一些参数,当我为每个文本的 y 坐标添加 1in (72.0pt) 时,我得到了最佳结果。因此,除了近似值之外,似乎还存在系统性错误... 推送到 github...

相关内容