我从未在某个dot2tex
部分中布局(任意)大边标签。问题是布局的大小对布局没有影响,渲染仅基于默认边长。我想描述具有任意内容(在节点和边中)的图形,而根本不关心布局(也许我必须指定最大边标签和最大节点宽度之类的东西)。
我在下面的例子中尝试了很多东西,其中最重要的是:
- 尝试使用所有可用的布局引擎
dot2texi
(所有引擎都无法正确计算所需空间(在其他布局中,除了分层排列之外,fdp
它不仅是长度,而且是空间计算问题) - 将文本和空格放在
label
和的所有组合中texlbl
- 尝试了纯文本,,
vbox
环境minipage
在texlbl
/label
- 省略封闭
tikzpicture
一个问题是,一些关键的边缘属性,texlbl
比如dot2texi
似乎没有记录。
\RequirePackage{shellesc}
\documentclass[a4paper,10pt]{article}
\usepackage{dot2texi}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{dot2tex}[autosize,tikz,scale=1.0,fdp]
digraph G {
A [shape=box, texlbl="A"];
B [shape=box, texlbl="B"];
C [shape=box, texlbl="C"];
D [shape=box, texlbl="\vbox{ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQ }"];
E [shape=box, texlbl="ABCDEFGHIJKLMNOPQ "];
A -> B [label=" ", shape=box, width=10, texlbl="\vbox{abcdefghijklmnopqrstuvw }"];
B -> C [label=" ", shape=box, width=10, texlbl="\vbox{ 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890}"];
C -> D;
D -> E;
}
\end{dot2tex}
\end{document}
结果是
其中,计算布局时显然不考虑从 B 到 C 的边的大小。我希望它不会与 B 或 C 重叠。添加选项autosize
可以解决 的问题dot
,但这对其他布局(对于下面描述的任务至关重要)没有帮助,例如fdp
。
我正在寻找一种 (Lua)TeX 解决方案,它允许节点和边包含尽可能多的信息形式(文本、图像、表格、公式等),并且仍然能够正确布局。我的目的是创建一个链接良好的知识图谱,我只需以节点的形式指定我的知识,以边的形式指定链接。
欢迎推荐除 dot2texi 和 pgf 之外的其他方法来解决此问题。