Lux Absio Bervatum

Sunday, March 21, 2021

How I make crosswords

I recently made my last crossword ("crossweird") for Tumbleweird. Coincidentally, it turned out to be my 50th published crossword. Here are all 50 together in chronological order:

This is meant to be an overview of how I make crosswords. My approach is a little unorthodox (overly verbose clues, non-rectangular/asymmetrical puzzle shapes, an obsession with Roman numerals, etc.), so it's not a how-to. Doing a lot of crosswords by mainstream crosswordists (is that a thing? syndicated puzzlemakers) would probably prepare a person better than hearing my process. But I'm going to explain it anyway.


I start in Excel, but any spreadsheet software should work. Google Sheets works fine. Sorting out snarls and making words fit together with as much overlap as possible is way easier with word/pattern search engines. OneLook is the best for this, no question. A2zWordFinder can be useful too; has some foreign language options. People by Initials is good for 2- and 3-letter strings. Wikipedia and Wiktionary go without saying. Once the puzzle is done, Inkscape to pretty it up. But Inkscape doesn't play nice with CMYK (at least, in my experience; even if the color tools in Inkscape say something is K-100 black I always seem to end up with rich black when I view the ink separations independently). So I take that output and use Scribus to make the colors behave themselves. Import the puzzle to InDesign, type up the clues, add extras like title, byline, etc. Done!

Making the Solution to the Puzzle

It helps to pre-format the spreadsheet by setting every cell to the intended font and sizing the rows and columns to make each cell square.

I usually try to begin with one or two "anchor" words meant to run the width and/or length of the puzzle. Here's an example:

STRANGERTHINGS is the Across anchor and DUFFERBROS is the Down anchor. This kind of synergy is nice because the Down clue can refer back to the Across answer (e.g., "9-Across: Netflix series that follows Mike, Lucas, Dustin, and Will as they contend with otherworldly forces in the 1980s (2 words)" and "21-Down: Creators of 9-across (2 words)"). Ideally, I can hang the rest of the puzzle off the anchors, though it doesn't always work out that way. I find making puzzles requires a lot of patience because oftentimes a great "mesh" of words turns out to be unresolvable and it's better to scrap it for something more elegant than to kludge it together with too many unconnected letters (i.e., letters with black cells on either side of them) and lazy clues (e.g., "D_ey__al_" (Dreysdale) to produce RSDE). Early on it felt like a waste of time, but I came to accept that progress requires a willingness to backtrack from dead ends.

Next, I try to work out at least one 4x4 section with no black cells. There are different ways to attack this. I like to pick one 4-letter word as a starting point, then focus on the letters in the center 2x2 section. It's easier when the center letters are common (re: dictionary letter frequency). And of course some combinations here are the kiss of death, like ?SN? or ?NS? (even though S and N are very common by themselves). In smaller areas like this, when word options seem equally good, I usually tilt toward the one that lets me alternate vowels and consonants in the crossing (perpendicular) words.

The Puzzle Grid & Numbering

Once the solution is done I end up with something like this in my spreadsheet:

Apply the borders and black cells:

Then I copy it over to one side, delete the text, decrease the font size, change cell alignment to top-left and number the Across and Down answers:

Important note on numbering: There's an established system for numbering the puzzle answers. Start with the leftmost cell in the topmost row. That's 1. Move across that entire row, left to right, skipping over gaps, and assign the next number to the next Across answer you encounter (ignore the Downs). Then move down one row and start at its leftmost cell. Assign the next number to the next Across answer you encounter. Repeat this process all the way down for all the Across answers. When all the Across answers are numbered, go back to the leftmost cell in the topmost row and repeat the numbering process for the Down answers.

My first puzzles were numbered incorrectly and I didn't realize it until my friend Molly explained the numbering system to me. Numbering answers correctly makes the puzzle easier to navigate. It also makes mistakes (like failing to number an answer) less likely.

Vector Post-Processing

With this part done, I select the "solution" grid and print the selection to PDF. Repeat for the puzzle grid. With Excel, this produces 8.5x11 in. pages with the content way up in the upper-left corner. That needs to be cropped properly and Excel does some odd things with PDFs that can lead to printing problems, so these get imported to Inkscape for cleanup. In Inkscape, I ungroup everything and convert it all to paths (including borders, which need Stroke to Path). Some elements can be nested, so I do a few rounds of Ungroup-Object to Path-Stroke to Path to make sure it's all normal paths with black fills and no strokes.

I find Excel doesn't get the numbers quite as far into the corners as I like, so I select those and tweak the positioning. While I have them selected, I make them all a tiny bit narrower (Transform > Scale > width 95%, apply to each object separately, Apply).

Once the puzzle grid looks the way I want, I select everything and use Union to make it a single object. Then I put a colored rectangle behind it, Duplicate the puzzle object, Difference the duplicate onto the rectangle (destroying the duplicate), Break Apart the rectangle, select the rectangle region outside the puzzle, delete that, select everything again, un-select the puzzle object, and Union the rest together. This makes a perfect uniform background for the puzzle cells. However, its edges are exactly identical to the puzzle's edges, which can cause tiny hairline defects when printed. So I select the background object, zoom way in, and use Dynamic Offset to pull the edge in about half the thickness of the puzzle's outer border. Then Object to Path on the background, change fill to white, and group with the puzzle. Now the puzzle can be dropped onto any background and the puzzle's cells will always have nice white backgrounds and everything will print the way it appears on the screen.

At this point, I dress the puzzle up a little. The style I like best, the one I've settled on anyway, is a black circle that totally encompasses the puzzle. I decorate the circle's black space with white vector traces of public domain clipart (thank you, British Library!) and stars. Like so:

My last step before saving as PDF is to go to Document Properties and resize page to content.

As I said earlier, Inkscape doesn't play nice with CMYK so I open that PDF in Scribus and force all the colors into CMYK with K-100 black. This is really important if you're designing for print because rich black will blur easily. Also, people touch the page when they're working the puzzle and if you stack lots of color in one place it'll rub/smear onto their skin much more easily. That's gross.

Layout, Writing Clues

With the puzzle part done, I place the post-Scribus PDF in InDesign and start writing the clues. I find it's very helpful to place the solution in the pasteboard area just off the page so I can refer to it easily.

If the puzzle is numbered correctly all the Across clues will be sequential and the Down clues will have one or more gaps in the numbering.

That's about it!