Wie zeichne ich automatisch ein Diagramm?

Wie zeichne ich automatisch ein Diagramm?

Gibt es ein einfaches Paket, in das ich ein abstraktes Diagramm eingeben kann und das eine Zeichnung zurückgibt?

Aähnliche Fragewurde 2010 gestellt, es gab keine Antworten, die für meine Frage relevant waren. Ich möchte keinen komplizierten Code, sondern nur die Kantenliste des Graphen angeben und eine beliebige Zeichnung erhalten. (Natürlich sind ein paar optionale Parameter willkommen.) Dies ist bereits in vielen Programmiersprachen implementiert, daher gehe ich davon aus, dass es auch in LaTeX verfügbar sein sollte.

Antwort1

Es gibt mindestens zwei Möglichkeiten:

  1. Die flexibelste Methode (und die, die ich empfehle) ist die VerwendungPGF3/TikZDie automatischen Layoutfunktionen von sind verfügbar, wenn Sie eine aktuelle Version des Pakets (Version 3.0.0 und höher) haben und luatex/ lualatexzum Kompilieren verwenden. Siehe das PGF-Handbuch, dort gibt es ein eigenes Kapitel dazu. Der Vorteil ist, dass Sie die volle Leistungsfähigkeit von TikZ nutzen können, um Ihre Knoten/Kanten zu gestalten, und es sich nahtlos in den Rest des Dokuments einfügt. Sie können (fast) beliebigen TeX-Code für Beschriftungen/Knoteninhalte und TikZ-Stile verwenden. Der Nachteil könnte die Leistung sein, aber Sie könnten dies durch die Verwendung der externalBibliothek verringern (siehe Handbuch).

    Ein Beispiel aus dem Handbuch:

    \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;
    };
    

    Beispiel

  2. Verwenden Sie Graphviz, um das Layout zu generieren, und verwenden Sie danndot2tex. Der Vorteil besteht darin, dass Sie immer noch dieselben Schriftarten wie in Ihrem Hauptdokument haben, Mathematik verwenden können und das Diagramm einmal kompilieren können, sodass Sie das Layout nicht bei jeder Kompilierung des Dokuments neu erstellen müssen.

    Es gibt Möglichkeiten, Letzteres mit dem LaTeX-Paket zu automatisieren dot2texi. Denken Sie daran, pdflatexmit der -shell-escapeOption zu arbeiten, damit dies funktioniert: dot2texiSie müssen das externe dot2texTool aufrufen, das zusammen mit installiert werden muss (hängt von Python ab) graphviz. Mit den neuesten Versionen haben Sie die Möglichkeit, TikZ-Code zu generieren und benutzerdefinierte TikZ-Stile für Knoten/Kanten anzugeben. Ein Zitat aus den Dokumenten:

    Die Ausgabe von Graphviz und dot2tex ist nicht perfekt. Manchmal sind manuelle Anpassungen erforderlich, um die richtigen Ergebnisse für die Verwendung in einer Veröffentlichung zu erhalten. Für endgültige und kosmetische Anpassungen ist es oft einfacher, den generierten Code zu bearbeiten, als die Dot-Quelle zu hacken. Dies gilt insbesondere bei Verwendung des Tikz-Ausgabeformats.

verwandte Informationen