Crossword Generator for Typst – Just Add Words! 🧩

Hey everyone,

Earlier today I came across this post about creating crosswords in Typst, and I found the idea so intriguing that I decided to give it a try myself.

I ended up building a small project that automatically places words into a crossword grid, based on a given list and a maximum grid size. It’s still a bit rough around the edges, but I think it shows what’s possible!


// --- Example word list ---
#let my-words = (
  ("TYPST", "A modern markup language for layout and documents"),
  ("LAYOUT", "Arrangement of elements on a page"),
  ("LATEX", "Well-known typesetting language for scientific documents"),
...
)

// --- Generate the crossword (with size limit) ---
#let crossword-data = generate-crossword(my-words, max-width: 20, max-height: 20)

#crossword(crossword-data)

#crossword-list(crossword-data)

Crossword-2

I just wanted to share it here and see what you think:

  • Would it be worth turning this into a proper package or template?
  • What features would you like to see added?

Here’s the link to the project:
https://typst.app/project/rSoXp8FcY7pP0RyPnkQM0j

Looking forward to your thoughts!

10 Likes

I think it’s legit for those who like crosswords, but the ability to define how exactly words intersect would be great and/or generating different configurations based on RNG like Suiji.

1 Like