![graphviz 图渲染器](https://linux22.com/image/337794/graphviz%20%E5%9B%BE%E6%B8%B2%E6%9F%93%E5%99%A8.png)
我尝试使用 的 fig 输出驱动程序将 dot 转换为 metapost dot
,fig2dev
将图形转换为 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...