TikZ/PGFplots etx
March 2, 2015 — December 6, 2024
The classic type-your-diagram-in-then-work-out-what-went-wrong option for plotting. If I am constructing a well-understood type of diagram (e.g. a PGM) then this is good. If we are doing something unusual, it can become tedious. However, ChatGPT is very good at writing TikZ, and that is what I usually use.
The main strength of TikZ compared to other text-to-diagram tools is that it has flexible ways of declaring layouts. Alternative tools prefer automatic layouts, which sounds like a good idea, but empirically, it has never actually been what I want in the end when I am trying to draw a diagram that uses spatial information to convey things.
The original flavour, pstricks/TikZ, is based on postscript and has compatibility problems with modern toolchains. Modern projects seem to prefer the more compatible (less powerful?) PGF/TikZ.
latexdraw is a Java pstricks GUI. Might be good, but I couldn’t install it.
TikZiT looks like a reasonably good alternative GUI (HT Luis Riera Garcia for showing me this)
a super simple GUI editor for graphs and string diagrams. Its native file format is a subset of PGF/TikZ, which means TikZiT files can be included directly in papers typeset using LaTeX.
Agustinus Kristiadi, in The Last Mile of Creating Publication-Ready Plots, introduces texworld/tikZplotlib, a matplotlib backend.
The Overleaf tutorial, LaTeX Graphics using TikZ, is probably the best one.
I am currently rendering TikZ in quarto using an extension that I wrote: danmackinlay/quarto\_tikz
. There is also pandoc-ext/diagram
, which has more features but is a bit broken on recent Quarto versions and has more opaque error messages. I prefer my own extension because I like simple things.