2D-Sudoku
The puzzle
Fill every row, every column and each of the two diagonals – if indicated – with numbers from 1 to SIZE of the grid. Here’s a little self-explanatory example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
\begin{center} \begin{ddsudoku} \framepuzzle \filldiagonals[orange!50] \ddsudokucell{1}{5}{1} \ddsudokucell{1}{4}{3} \ddsudokucell{2}{3}{4} \ddsudokucell{4}{1}{3} \ddsudokucell{4}{3}{2} \ddsudokucell{5}{4}{4} \end{ddsudoku} \hspace{1,5cm} \begin{ddsudoku} \framepuzzle \filldiagonals[orange!50] \setrow{5}{1,3,4,5,2} \setrow{4}{3,2,5,1,4} \setrow{3}{5,4,3,2,1} \setrow{2}{2,5,1,4,3} \setrow{1}{4,1,2,3,5} \end{ddsudoku} \end{center} |
Options
-
rows (5)
defines the number of rows in the grid -
columns (5)
specifies the number of columns in the grid -
width (5.1cm)
sets the width of the minipage, in which the grid is typeset -
scale (1)
scales the size of the grid in the minipage -
fontsize (Large)
specifies the size of the numbers next to the grid. Here, the usual LaTeX sizes are used. Possible values: tiny, scriptsize, footnotesize, small, normalsize, large, Large, LARGE, huge, Huge -
title ()
sets the title of a puzzle -
titleindent (0cm)
defines the indent of the title -
titlewidth (5.1cm)
specifies the width of the box the title is set in -
bgcolor ()
sets the background color of the grid -
counterstyle (none)
defines the counter style. Predefined styles: none, left, right -
cvoffset (-22pt)
sets the vertical offset of the counters in the margin
Environments
ddsudoku
1 2 3 |
\begin{ddsudoku} \end{ddsudoku} |
The ddsudoku
environment is the central core of the style file. With the optional argument of the environment, you can reset the options with local scope. Here, a blank grid is created.
Commands
In the grid and around
ddsudokucell
\ddsudokucell{column}{row}{number}
The command sets the {number}
of the grid cell {column}{row}
.
setrow
\setrow{row}{csv list}
The command sets the contents of {row}
. It expects a comma-separated list.
setcolumn
\setcolumn{column}{csv list}
The command sets the contents of {column}
.
filldiagonals
\filldiagonals[color]
With the \filldiagonals
command, you can fill the diagonals with the color specified with the optional argument color
(default: yellow!20). Furthermore, it checks for a quadratic grid, otherwise an error message is issued.
framepuzzle
\framepuzzle[color]
With the \framepuzzle
command, you can frame the grid (thicker line) with the color specified with the optional argument color
(default: black).
Presentation
definecounterstyle
The command allows you to define your own styles. For example, the style
left
is defined as follows:
1 2 3 4 5 6 |
\definecounterstyle{left}{ \begingroup\reversemarginpar\marginnote{ \tikz\node[shape=rectangle,fill=yellow!40,inner sep=7pt, draw,rounded corners=3pt,thick] {\Huge\puzzlecounter};}[\LP@cvoffset]\endgroup} } |
To typeset the counter into the margin we use the command \marginnote
. We need to use the command \reversemarginpar
to set the counter into the left margin. Of course, we must use this command in a group for local scope. Finally we use \puzzlecounter
in a \tikz
node with a vertical offset set with the option cvoffset
.
puzzlecounter
\puzzlecounter
The command provides the counter in textual form to use it for example in \definecounterstyle
.
titleformat
\titleformat{format}
With the command \titleformat
, you can define the format of the title. By default, the definition is as follows:
\titleformat{\centering\Large\color{blue}}
Miscellaneous
ddsudokusetup
\ddsudokusetup{options}
With the command \ddsudokusetup
you can reset the options with global scope.
setpuzzlecounter
\setpuzzlecounter{number}
With the command \setpuzzlecounter
, you can reset the puzzle counter, for example before the solutions.
Examples & Solutions
You can download application examples and their solutions from the project page. The puzzles are originally licensed under CC-BY-NC-SA.