finite is a Typst package for rendering finite automata on top of CeTZ.
Import the package from the Typst preview repository:
#import "@preview/finite:0.5.0": automaton
After importing the package, simply call #automaton()
with a dictionary holding a transition table:
#import "@preview/finite:0.5.0": automaton
#automaton((
q0: (q1:0, q0:"0,1"),
q1: (q0:(0,1), q2:"0"),
q2: (),
))
The output should look like this:
See manual.pdf
for a full manual of the package.