How to create a crossword puzzle in LaTeX?

I would suggest you to use the cwpuzzle package.

I used this package a couple of weeks ago to typeset a small crossword puzzle and it worked quite well.

The content of the crossword puzzle is taken from abcteach.com. I just adapted it for the use with the cwpuzzle package.

Code

\documentclass{article}

\usepackage[unboxed]{cwpuzzle}
\begin{document}

\begin{Puzzle}{16}{12}
|{}   |[1]O |[2]P |E  |R     |A  |T     |I  |O    |N  |{}    |{}   |[3]B |{} |{} |{} |.
|{}   |{}   |L    |{} |{}    |{} |{}    |{} |{}   |{} |{}    |[4]R |A    |N  |G  |E  |.
|[5]E |{}   |A    |{} |[6]M  |{} |{}    |{} |{}   |{} |{}    |{}   |R    |{} |{} |{} |.
|S    |{}   |[7]C |O  |O     |R  |D     |I  |N    |A  |T     |E    |G    |R  |I  |D  |.
|T    |{}   |E    |{} |D     |{} |{}    |{} |{}   |{} |{}    |{}   |R    |{} |{} |{} |.
|I    |{}   |V    |{} |E     |{} |{}    |{} |[8]V |A  |R     |I    |A    |B  |L  |E  |.
|[9]M |E    |A    |N  |{}    |{} |{}    |{} |{}   |{} |{}    |{}   |P    |{} |{} |{} |.
|A    |{}   |L    |{} |[10]L |I  |N     |E  |G    |R  |[11]A |P    |H    |{} |{} |{} |.
|T    |{}   |U    |{} |{}    |{} |{}    |{} |{}   |{} |X     |{}   |{}   |{} |{} |{} |.
|I    |{}   |E    |{} |{}    |{} |[12]S |C  |A    |L  |E     |M    |O    |D  |E  |L  |.
|O    |{}   |{}   |{} |{}    |{} |{}    |{} |{}   |{} |S     |{}   |{}   |{} |{} |{} |.
|N    |{}   |{}   |{} |{}    |{} |{}    |{} |{}   |{} |{}    |{}   |{}   |{} |{} |{} |.
\end{Puzzle}

\begin{PuzzleClues}{\textbf{Across}}
\Clue{1}{OPERATION}{Any mathematical process}
\Clue{4}{RANGE}{The lowest value in a set of numbers through the highest value in the set}
\Clue{7}{COORDINATEGRID}{A network of lines used for locating points}
\Clue{8}{VARIABLE}{Any symbol that could represent a number}
\Clue{9}{MEAN}{Average}
\Clue{10}{LINEGRAPH}{Graph that displays data using line segments}
\Clue{12}{SCALEMODEL}{A model or drawing based on a ratio}
\end{PuzzleClues}

\begin{PuzzleClues}{\textbf{Down}}
\Clue{2}{PLACEVALUE}{the positions of a single digit in the whole number}
\Clue{3}{BARGRAPH}{A graph that uses bars to display data}
\Clue{5}{ESTIMATION}{The use of rounding to determine a reasonable answer}
\Clue{6}{MODE}{The number found most often}
\Clue{11}{AXES}{The horizontal and vertical number lines used in a graph}
\end{PuzzleClues}

\end{document}

Result

enter image description here

Or if you prefer to have a black background:

\documentclass{article}

\usepackage[unboxed]{cwpuzzle}
\begin{document}

\begin{Puzzle}{16}{12}
|*    |[1]O |[2]P |E  |R     |A  |T     |I  |O    |N  |*     |*    |[3]B |*  |*  |*  |.
|*    |*    |L    |*  |*     |*  |*     |*  |*    |*  |*     |[4]R |A    |N  |G  |E  |.
|[5]E |*    |A    |*  |[6]M  |*  |*     |*  |*    |*  |*     |*    |R    |*  |*  |*  |.
|S    |*    |[7]C |O  |O     |R  |D     |I  |N    |A  |T     |E    |G    |R  |I  |D  |.
|T    |*    |E    |*  |D     |*  |*     |*  |*    |*  |*     |*    |R    |*  |*  |*  |.
|I    |*    |V    |*  |E     |*  |*     |*  |[8]V |A  |R     |I    |A    |B  |L  |E  |.
|[9]M |E    |A    |N  |*     |*  |*     |*  |*    |*  |*     |*    |P    |*  |*  |*  |.
|A    |*    |L    |*  |[10]L |I  |N     |E  |G    |R  |[11]A |P    |H    |*  |*  |*  |.
|T    |*    |U    |*  |*     |*  |*     |*  |*    |*  |X     |*    |*    |*  |*  |*  |.
|I    |*    |E    |*  |*     |*  |[12]S |C  |A    |L  |E     |M    |O    |D  |E  |L  |.
|O    |*    |*    |*  |*     |*  |*     |*  |*    |*  |S     |*    |*    |*  |*  |*  |.
|N    |*    |*    |*  |*     |*  |*     |*  |*    |*  |*     |*    |*    |*  |*  |*  |.
\end{Puzzle}

\begin{PuzzleClues}{\textbf{Across}}
\Clue{1}{OPERATION}{Any mathematical process}
\Clue{4}{RANGE}{The lowest value in a set of numbers through the highest value in the set}
\Clue{7}{COORDINATEGRID}{A network of lines used for locating points}
\Clue{8}{VARIABLE}{Any symbol that could represent a number}
\Clue{9}{MEAN}{Average}
\Clue{10}{LINEGRAPH}{Graph that displays data using line segments}
\Clue{12}{SCALEMODEL}{A model or drawing based on a ratio}
\end{PuzzleClues}

\begin{PuzzleClues}{\textbf{Down}}
\Clue{2}{PLACEVALUE}{the positions of a single digit in the whole number}
\Clue{3}{BARGRAPH}{A graph that uses bars to display data}
\Clue{5}{ESTIMATION}{The use of rounding to determine a reasonable answer}
\Clue{6}{MODE}{The number found most often}
\Clue{11}{AXES}{The horizontal and vertical number lines used in a graph}
\end{PuzzleClues}

\end{document}

enter image description here

To display the solutions you just have to use the \PuzzleSolution command that gives you the following result:

enter image description here


a package for crossword puzzles was introduced by brian {hamilton kelly} in tugboat 11. this package is on ctan as crosswd and also on tex live. there are several other possibilities listed as well in a ctan search. the styles of the puzzles vary, so personal preference may play a role in your choice.

Tags:

Packages