有没有办法在 LaTeX 中创建树而不使用任何“排序”?到目前为止,我遇到的所有示例都是以这种方式构造的
child{ node [arn_n] {20}
child{ node [arn_r] {18}}
child{ node [arn_x] {}}
}
父母事先知道他的孩子,在我的例子中,我会从 Python 脚本生成这个 LaTeX 代码,浏览一些数据,并且直到实际在数据中找到孩子时才会知道他们是谁。
所以我正在寻找某种库,它可以让我列出所有节点,并且每个节点只知道它的父节点。
child 0 parent 0
child 1 parent 0
child 2 parent 0
child 3 parent 1
然后我的树就会在 LaTeX 中生成。遗憾的是,我还没有找到任何示例,也不知道这是否可行。
谢谢。
答案1
好的,这是一个非常入门的例子。
假设我们在 Excel 中有以下表格,其中显示了孩子及其父母:
第三列使用公式将两列连接在一起,并添加 GraphViz 语法所需的“ -> ”。
接下来,我们可以在编辑器中创建一个简单的文本文件,并将生成的代码复制/粘贴到以下模板中:
digraph G{
<generated code>
}
结果:
digraph G{
child0 -> parent0
child1 -> parent0
child2 -> parent0
child3 -> parent1
}
(当然代码文件的生成甚至编译都dot
可以集成到Excel中。)此文件保存在 下tsx.dot
。接下来我调用GraphViz的dot
引擎将图形转换为PDF:
dot -Tpdf tsx.dot > tsx.pdf
tsx.pdf 如下所示:
GraphViz 非常强大,这当然可能会使 Excel 和所需的公式变得非常复杂(例如,如果要使用不同的节点样式)
有一些软件包将 dot 集成到 LaTeX 中,但我更喜欢“自制”的 LaTeX 代码片段,它允许我将 LaTeX 环境中的任意代码保存到外部文件中并在其上运行批处理程序(目前我将其用于 GraphViz 和 Python)。我将在本周晚些时候撰写一篇关于此内容的博客文章。