- TikZ Editor v0.4.0 ist eine kostenlose Open-Source-App unter MIT-Lizenz zum direkten Bearbeiten von TikZ-Diagrammen in LaTeX und kann im Web sowie auf dem Desktop verwendet werden
- Vorhandene TikZ-Grafiken oder ganze
.tex-Paper-Dateien lassen sich öffnen; zieht man Elemente per Drag-and-drop, wird der TikZ-Code sofort aktualisiert, wobei bestehende Formatierung wie Zeilenumbrüche und Leerzeichen erhalten bleibt - Häufig verwendete TikZ-Bestandteile wie Knoten, Pfade, Pfeile, Formen, Matrizen,
\foreach-Schleifen, Labels, Pins und Edge-Labels lassen sich visuell bearbeiten - Der Source-Editor bietet Syntax-Highlighting, Code-Folding, Autovervollständigung, Suche, Diagnosen, Inline-Farbmuster, Farbwähler und Number Scrubbing und analysiert Fehler ohne TeX-Compiler
- Implementiert auf Basis von TypeScript und Tauri; statt den gesamten TikZ-Code neu zu schreiben, werden nur kleine Patches angewendet, sodass die Einrückungen und Zeilenumbrüche der Nutzer erhalten bleiben
Editor zum direkten Bearbeiten von TikZ-Grafiken
- TikZ Editor v0.4.0 ist ein WYSIWYG-Editor für TikZ-Diagramme in LaTeX
- Man kann neue Grafiken von Grund auf erstellen oder vorhandene TikZ-Grafiken bearbeiten; außerdem lässt sich eine vollständige
.tex-Paper-Datei öffnen, um darin enthaltene Bilder zu ändern - Wenn Elemente verschoben werden, wird der TikZ-Code sofort aktualisiert, und die bestehende Formatierung des Codes wie Zeilenumbrüche und Leerzeichen bleibt erhalten
- Bei feinen Positionsanpassungen lässt sich das Ergebnis sofort sehen, ohne erneut zu kompilieren
- Die App ist als kostenlose Open Source unter MIT-Lizenz veröffentlicht, der Code liegt auf GitHub
- Sie ist im Web nutzbar, außerdem gibt es eine schlanke Desktop-App mit einigen zusätzlichen Funktionen
Synchronisierung von visueller Bearbeitung und TikZ-Code
- Statt Koordinaten direkt zu ändern, zieht man Pfade und Knoten an die gewünschte Position, und der Code wird sofort aktualisiert
- Mit Werkzeugen zum Hinzufügen neuer Elemente lassen sich folgende Dinge einfügen
- Linien, Pfeile, Pfade mit mehreren Segmenten
- Knoten, Rechtecke, Kreise
- Neue Elemente werden am Ende des Codes eingefügt und können danach sofort verschoben oder in der Größe verändert werden
- Für abgerundete Ecken und Pfadverbindungen kann
rounded cornersverwendet werden, auch mit Werten wierounded corners=2pt
Auf TikZ zugeschnittener Source-Editor
- Das Source-Panel zeigt den aktuellen Source immer an und bietet TikZ-Syntax-Highlighting
- Unterstützt Code-Folding, um Details von Scopes auszublenden
- Beim Darüberfahren mit der Maus lassen sich relevante Snippets aus dem TikZ-Handbuch anzeigen
- Fehler werden hervorgehoben und mit Erklärungen versehen, damit klar ist, was falsch ist
- Möglich ist das, weil die App den Code auch ohne TeX-Compiler versteht
- Farben und Zahlen lassen sich anpassen, ohne direkt in der Source-Ansicht zu tippen
- Unterstützung für Farbwähler
- Unterstützung für Number Scrubbing
Ausrichtung, Gruppierung und Bearbeitung mehrerer Grafiken
- Mit Snap-Funktionen lassen sich Elemente vertikal oder horizontal ausrichten oder mit gleichen Abständen anordnen
- Es gibt Lineale, benutzerdefinierte Hilfslinien, Zoom und ein Lupenwerkzeug
- Mehrere Objekte können ausgewählt und gruppiert werden; die Gruppierung wird als TikZ-Scope umgesetzt
- Im Mehrfachauswahlmodus sind Layout-Arbeiten wie Ausrichten und Verteilen möglich
- Öffnet man eine vollständige
.tex-Paper-Datei, kann man über die Bildvorschau am unteren Rand zwischen mehrerentikzpicture-Umgebungen wechseln - Die App versteht viele benutzerdefinierte Makros der Nutzer
Unterstützte TikZ-Funktionen und Werkzeuge
- Die App ist dafür ausgelegt, idiomatische TikZ-Grafiken zu erstellen
- Pfade lassen sich leicht so zeichnen, dass sie an Node-Ankern andocken
- Das Bearbeiten von Node-Labels, Pins und Edge-Labels wird unterstützt
- Zu den bereitgestellten Werkzeugen gehören
- Select: Objekte verschieben, skalieren, drehen, Pfade bearbeiten, Mehrfachauswahl bearbeiten
- Magnify: virtuelle Lupe ähnlich wie in TeXstudio
- Node: Text mit TikZ-
\nodehinzufügen - Shape: Nodes auf Basis der Shape-Bibliothek hinzufügen, mit Unterstützung für Diamanten, Polygone, Sterne, Wolken, Pfeile usw.
- Matrix: Node-Matrix mit vorgegebener Anzahl an Zeilen und Spalten einfügen
- Line, Arrow, Bezier, Path, Freehand: gerade Linien, Pfeile, Kurven, Pfade mit mehreren Segmenten und geglättete Freihandkurven erzeugen
- Grid, Rectangle, Ellipse, Circle: Raster und grundlegende Formpfade erzeugen
- Bucket: Füllfarbe auf vorhandene geschlossene Bereiche anwenden
Dateien, Export und Panel-Funktionen
- Datei- und Exportfunktionen umfassen
.tex- und.tikz-Dateien öffnen und bearbeiten- Grafiken aus SVG, Ipe
.ipeund PowerPoint.pptximportieren - Export als SVG, PNG, PDF und eigenständiges LaTeX
- Mehrere Dokumente gleichzeitig in Tabs bearbeiten
- Funktionen zum Bearbeiten von Papern und Grafiken umfassen
- Vollständige Paper mit mehreren Grafiken öffnen
- Zwischen Grafiken per Thumbnail-Vorschau wechseln
- Knoten, Formen, Matrizen, Pfeile, Pfade, Kurven, Raster, Rechtecke, Ellipsen und Kreise zeichnen
- Text und Formeln innerhalb der Grafik direkt bearbeiten
- Funktionen zur direkten Bearbeitung umfassen
- Verschieben, skalieren, drehen, duplizieren, gruppieren, ausrichten, verteilen, spiegeln, Reihenfolge ändern
- Pfade mit Punkthandles bearbeiten
- Befehle für Teilen/Zusammenfügen, Umkehren, Öffnen/Schließen, Ecken und glatte Punkte
- Snap auf Raster, Hilfslinien, Objektpunkte und Objektabstände
- Panel-Funktionen umfassen
- Im Inspector Linien, Füllungen, Pfeile, Text, Transformationen, Formen und Stile bearbeiten
- Im Objects-Panel Sichtbarkeit von Objekten, Gruppen, Umbenennen und Layer-Reihenfolge verwalten
- Im Styles-Panel TikZ-Stile bearbeiten, ähnlich wie CSS-Bearbeitung in den Developer Tools des Browsers
Schleifen, Struktur und KI-Unterstützung
- Über den Repeat-Dialog lässt sich eine
\foreach-Schleife hinzufügen, die eine Auswahl über mehrere Zeilen und Spalten kopiert - Auch Grafiken, die bereits
\foreachverwenden, können geöffnet und bearbeitet werden, einschließlich verschachtelter Schleifen - Baumdiagramme lassen sich durch Hinzufügen von Kindern bearbeiten
- Matrizen können mit Befehlen für Zeilen, Spalten und Transponieren geändert werden
- Ist in der Desktop-Version OpenAI Codex installiert, kann man innerhalb der App um Bearbeitung einer Grafik bitten
- Der Assistent hat Zugriff auf mehrere TikZ-spezifische Werkzeuge
- Die Nutzung wird dem ChatGPT-Konto des Nutzers angerechnet
- Unterstützung bei der Bearbeitung inklusive Anhängen von Bildern wird ebenfalls geboten
Interne Implementierung
- Die App ist in TypeScript geschrieben
- Die Desktop-Version verwendet Tauri und enthält ein leichtgewichtiges Rust-Backend
- Die anfängliche Codebasis wurde drei Monate lang von Codex geschrieben; verwendet wurden die Modelle gpt-5-3-codex, gpt-5-4, gpt-5-4-mini und gpt-5-5
- Auch einige Beiträge von Claude sind enthalten
- Das Parsen von TeX-Code ist sehr schwierig, aber TikZ Editor parst nicht beliebiges vollständiges TeX, sondern nur Befehle, die beim Erstellen von TikZ-Grafiken häufig verwendet werden
- Sehr „hacky“ geschriebener Code wird möglicherweise nicht korrekt interpretiert
- Der unterstützte Umfang ist bereits ziemlich gut und wächst mit der Zeit weiter
- Die App parst TikZ-Code, erstellt daraus eine interne Repräsentation und interpretiert damit Koordinaten, Stile, Transformationen, Schleifen, Knoten, Pfade und Text als bearbeitbare Szenenelemente
- Die interne Repräsentation ist über Zeilen- und Zeichenbereichs-Tags eng mit dem Syntax-Input verknüpft
- Weil nicht der gesamte Code in ein Standardformat umgeschrieben wird, sondern nur kleine Patches geändert werden, können die Einrückungen und Zeilenumbrüche der Nutzer zuverlässig erhalten bleiben
- Die Szene wird als SVG gerendert
Rendering und Konverter
- Das Rendern von Text und Formeln erfolgt mit MathJax
- Um mehrzeiligen Text zu unterstützen, wurden der TeX-Silbentrennungsalgorithmus und der Knuth-Plass-Zeilenumbruchalgorithmus neu implementiert
- Dank dieser Implementierung stimmt mehrzeiliger Text, der in der App angezeigt wird, im Allgemeinen exakt damit überein, wie TeX denselben Text rendert
- Der benutzerdefinierte Farbwähler wandelt RGB-Farben in die nächstliegende Farbe um, die sich als kurzer xcolor-String darstellen lässt
- Beispiel:
#409a40wird inviolet!88!white!45!greenumgewandelt - Der zugehörige Code ist als npm-Paket xcolor-rgb-convert verfügbar
- Beispiel:
- Der Import verschiedener Dateiformate basiert auf separat entwickelten Konvertern
- svg2tikz
- pptx2tikz, basierend auf pptxtojson
- ipe2tikz
- Die Desktop-App kann Objekte direkt aus PowerPoint und Keynote einfügen
- Das Einfügen aus Keynote nutzt einen Interpreter für das Keynote-Clipboard-Format, der als npm-Paket keynote-clipboard bereitsteht
- Die KI-Unterstützung der Desktop-App wird über den Codex App Server bereitgestellt
- Der Source-Editor basiert auf CodeMirror
1 Kommentare
Hacker-News-Kommentare
Ich habe es kurz ausprobiert; die UI ist wirklich großartig und das Projekt an sich ebenfalls. Glückwunsch
Allerdings finde ich den erzeugten TikZ-Code nicht besonders gut. Alles verwendet absolute Koordinaten, obwohl das in TikZ fast nie nötig ist
Zum Beispiel entsteht schon beim Platzieren eines einzelnen Knotens eine absolute Koordinate, obwohl
\node {Hello};ausreichen würde; dann platziert TikZ ihn in der Mitte der Bounding Box. Es muss nicht testweise als(0.5,2.91)angegeben werdenAuch wenn man mehrere Knoten auswählt und Funktionen wie „unten ausrichten“ verwendet, sollte man meiner Meinung nach statt absoluter Koordinaten eher die Ausrichtungsfunktionen von TikZ nutzen, also Anker und Ähnliches. Ich verstehe, dass diese Art der Code-Erzeugung schwieriger ist, aber vielleicht wäre das eine Richtung für die nächste Version
Wenn man auf den Button „unten ausrichten“ klickt und ein Code wie
\begin{tikzpicture} \draw (0,2) rectangle (1,1); \draw (1.5,2) rectangle (2.5,1); \end{tikzpicture}plötzlich in willkürlich benannte
\coordinate-Anweisungen und relative Koordinaten umgewandelt wird, wäre das wohl überraschendUmgekehrt kann die App in vielen Fällen kein Drag-and-Drop mehr erlauben, wenn man von Anfang an mit „schönem“ Code startet. Denn oft ist nicht klar, was das Ziehen bedeuten soll, oder es lässt sich tatsächlich nicht bestimmen. Etwa ob man eine benannte Koordinate ändern möchte oder den Offset relativ zu dieser Koordinate. Solche Probleme tauchen dann auf
An anderer Stelle in dieser Diskussion ging es auch um Platzierungsarten wie „right of“, und dabei kamen gute Vorschläge auf: https://news.ycombinator.com/item?id=48647683
Falls es jemanden interessiert: An diesem Projekt wird seit Februar 2026 relativ kontinuierlich gearbeitet
In dieser Zeit habe ich dafür über Codex ungefähr 700 Millionen Token verbraucht, ohne Cache-Reads mitzurechnen. Über API-Gebühren wären das etwa 15.000 Dollar gewesen, tatsächlich habe ich aber nur rund 500 Dollar für ChatGPT-Abos bezahlt
Ich mag CircuitiTikZ wirklich sehr. Es ist fast die einzige Möglichkeit, einfache textbasierte Schaltpläne zu zeichnen
https://ctan.org/pkg/circuitikz?lang=en
https://github.com/circuitikz/circuitikz
Vor ein paar Jahren habe ich es mit
asciidoctor-diagramverbunden, sodass wir einfache Schaltungen in Asciidoc-Wartungshandbücher einfügen konnten. Die Servicetechniker vor Ort fanden das wirklich gut, und wir konnten im Git-versionierten Ökosystem zusammenarbeiten statt mit den höllischen Tools, die uns das PDM/ERP vorwirftEs ist außerdem eine sehr gute Ergänzung zu dem ohnehin großartigen WireViz: https://github.com/wireviz/WireViz
Cool. https://q.uiver.app/ fand ich auch gut, aber das ist ein stärker spezialisiertes Tool von https://github.com/varkor
https://www.lyx.org/
Sehr cool, aber um die unvermeidliche Frage zu stellen: Wie schwierig wäre cetz-Unterstützung?
Wenn ich es vermeiden kann, möchte ich LaTeX nicht anfassen, und ich nutze immer Typst
Es gibt bereits eine vollständige WYSIWYG-Präsentationssoftware auf Typst-Basis, per Vibe Coding gebaut, und einige davon implementieren genau solche Funktionen
https://codeberg.org/presenst/presenst
Als Student hätte ich mir so etwas wirklich gewünscht. Danke, dass du es als Open Source veröffentlicht hast
Mein Professor für theoretische Informatik war zufällig Till Tantau, der TikZ erfunden hat. Er konnte auch wirklich gut erklären
Sowohl beamer als auch TikZ sind enorm wichtige Beiträge zur Wissenschaftskommunikation
Cool
Ich weiß, dass viele Leute es mögen, aber ich hasse es wirklich, TikZ direkt zu benutzen, und habe deshalb die meisten technischen Zeichnungen zu draw.io/diagrams.net verlagert und exportiere sie als PNG. Das ist nicht elegant, funktioniert aber gut genug, und man bekommt leicht ansehnliche Ergebnisse. Eigentlich bevorzuge ich meist Dinge, die als Text definiert sind
Einige Grafiken, die in Markdown bleiben sollten, habe ich stattdessen auf Mermaid umgestellt, aber ich habe nicht versucht, das in TeX zum Laufen zu bringen
Trotzdem ist die idiomatische Art, in LaTeX Diagramme zu zeichnen, eher TikZ, daher scheint ein WYSIWYG-Editor dafür nützlich zu sein
Ein Vorschlag wäre, dass Pfeile an Boxen „andocken“ können. Wenn man eine Box verschiebt, sollten sich die Endpunkte der Pfeile mitbewegen. draw.io funktioniert so
Wenn du draw.io verwendest, würde ich empfehlen, statt PNG als PDF zu exportieren. Dann bleibt es eine Vektorgrafik
.drawio.svgspeichern?Ich habe ein paar Diagramme so erstellt und Computer Modern verwendet, damit die Abbildungen dem Fließtext ähneln. Das war für mich völlig ausreichend
Sieht wirklich gut aus. Vielleicht wäre es gut, ein paar Presets hinzuzufügen, damit der Einstieg leichter fällt. Etwa gängige neuronale Netzarchitekturen oder andere Anwendungsfälle von TikZ
File > Open Example, aber da ist eindeutig noch Luft nach oben. Auf dem Desktop kann man sogar direkt arXiv-Paper öffnenWow, wirklich beeindruckend. Ich habe bisher ChatGPT benutzt, um TikZ-Diagramme zu erstellen, und ehrlich gesagt ist das Erstellen von TikZ-Diagrammen nicht einfach, auch wenn die Ergebnisse, wenn es gut gemacht ist, wirklich schön sind
Allerdings ist es auch schwierig, ChatGPT dazu zu bringen, ein Diagramm fein abzustimmen. Mein Wissen über TikZ-Syntax und -Verhalten ist nicht immer präzise genug, um das gewünschte Ergebnis zu bekommen. Deshalb wirkt dieses Tool wie genau die Antwort darauf. Ich freue mich darauf, es auszuprobieren
Zur Einordnung: Ich erstelle auch LaTeX-Dokumente für meinen Blog mit ChatGPT und rendere sie serverseitig. Dieser Workflow funktioniert für mich ausgezeichnet