如何自动绘制图形?

如何自动绘制图形?

是否有一个简单的包,我可以输入一个抽象图形然后它返回一个绘图?

A类似问题2010 年曾问过这个问题,但并没有收到任何与我的问题相关的答案。我不需要复杂的代码,只需给出图形的边列表即可获得任何图形。(当然,欢迎使用一些可选参数。)这已经在许多编程语言中实现,所以我想它也应该在 LaTeX 中可用。

答案1

至少有两种方法:

  1. 最灵活的(也是我推荐的)是使用PGF3/TikZ如果您拥有最新版本的软件包(3.0.0 及以上版本)并使用luatex/lualatex进行编译,则可以使用 的自动布局功能。请参阅 PGF 手册,其中有一章专门介绍此内容。优点是您可以充分利用 TikZ 的全部功能来设置节点/边的样式,并且它将与文档的其余部分无缝融合。您可以将(几乎)任意的 TeX 代码用于标签/节点内容和 TikZ 样式。缺点可能是性能,但您可以通过使用库来缓解这个问题external(请参阅手册)。

    手册中的一个例子:

    \tikz [>=spaced stealth’]
    \graph [layered layout, components go right top aligned, nodes=draw, edges=rounded corners]
    {
        first root -> {1 -> {2, 3, 7} -> {4, 5}, 6 }, 4 -- 5;
        second root -> x -> {a -> {u,v}, b, c -> d -> {w,z} };
        third root -> child -> grandchild -> youngster -> third root;
    };
    

    example

  2. 使用 graphviz 生成布局,然后使用dot2tex。优点是您仍然可以获得与主文档相同的字体,可以使用数学,并且可以编译一次图形,而避免在每次编译文档时进行布局。

    有几种方法可以使用 LaTeX 包来自动化后者。请记住使用选项dot2texi运行以使其工作:需要调用需要安装的外部工具(取决于 python)以及。使用最新版本,您可以选择生成 TikZ 代码并为节点/边指定自定义 TikZ 样式。文档中的引文:pdflatex-shell-escapedot2texidot2texgraphviz

    Graphviz 和 dot2tex 的输出并不完美。有时需要手动调整才能获得用于出版物的正确结果。对于最终和外观调整,编辑生成的代码通常比破解 dot 源更容易。使用 tikz 输出格式时尤其如此。

相关内容