Show HN: TikZ Editor – WYSIWYG editor for figures in LaTeX
Show HN: TikZ Editor – A WYSIWYG Approach to LaTeX Figures
Welcome, everyone! I am excited to introduce TikZ Editor, a tool designed to transform how we create figures for LaTeX.
For too long, creating diagrams in TikZ has been a process of blind guessing iterative trial and error. You write a line of code, compile the entire document, realize the node is 2mm too far to the left, and repeat. It is a tedious cycle that kills creative flow.
The Vision
The goal of TikZ Editor is to bridge the gap between the precision of code and the intuition of visual design. Instead of manually calculating coordinates like or in your head, you can simply move elements on a canvas.
"The objective is to make figure creation as intuitive as drawing on a whiteboard, while maintaining the professional output of ."
How the Workflow Changes
Below is a conceptual look at how the tool streamlines the production of figures:
Key Features
The editor provides a comprehensive suite of tools to handle both simple and complex diagrams:
- Interactive Canvas: Move
nodesandedgeswith your mouse. - Live Synchronization: As you drag an object, the underlying
\drawcommand updates instantly. - Precision Control: While you can drag, you can still manually enter exact values for mathematical rigor, such as .
- Export Options: Copy the raw code directly into your
.texfile.
Manual Coding vs. TikZ Editor
| Feature | Manual TikZ Coding | TikZ Editor |
|---|---|---|
| Coordinate Adjustment | Manual editing Recompile | Instant Drag-and-Drop |
| Visual Feedback | Delayed | Real-time |
| Learning Curve | Steep (Requires Syntax Mastery) | Low (Intuitive UI) |
| Precision | Absolute | Absolute + Visual |
Technical Implementation
The editor parses TikZ syntax into a visual graph representation. For example, if you have a simple circle:
\begin{tikzpicture}
\draw[blue, thick] (0,0) circle (1cm);
\node at (0,0) {Center};
\end{tikzpicture}
The software interprets the (0,0) coordinate and the 1cm radius to render a manipulatable object on the screen.
Roadmap & Future Goals
I am still refining the tool and would love your feedback. Here is what is currently on the agenda:
- Basic shape implementation (circles, rectangles, lines)
- Real-time code generation
- Support for advanced TikZ libraries (e.g.,
shapes.geometric) - Collaborative real-time editing
- Integration with Overleaf via API
I believe this will significantly reduce the friction of academic writing. Please let me know what features you would find most useful!