diagrams generated via text rather than point-and-click.
Looks pretty cool.
Create beautiful diagrams in minutes. Simple syntax. Endlessly customizable. D2 is the fastest and easiest way to get a mental model from your head onto the screen, then make edits with your team.
The classic type-your-diagram-in-then-work-out-what-went-wrong option. 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.
the main strength of tikz comapred to other text-to-diagram things is that it has flexible ways of declaring layouts. other options prefer automatic layouts, which sounds like a good idea, but in practice is rarely what I want.
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, a reasonably good GUI for Tikz:
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.
HT Luis Riera Garcia for showing me this.
The overleaf tutorial, LaTeX Graphics using TikZ, is probably the best one.
Grammar of graphics
I am slightly interested in a certain kind of low-key automation which is sometimes useful in diagrams, which I understand is called a “compositional layout” diagramming style, as seen in Grammar-of-graphics tools, most famously R’s ggplot2. These tools lay out components as a kind of algebra of composed styling operations.
Asymptote is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. Labels and equations are typeset with LaTeX, for high-quality PostScript output.
Might be good; haven’t used it. Has a jupyter extension
PlotDevice is a cousin of nodebox, which is to say, a python drawing system 2d vector printable outputs.