sudoku-zine/sudoku.tex
2025-04-20 11:45:52 -04:00

274 lines
7.5 KiB
TeX

\documentclass[twoside]{report}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{float}
\raggedbottom
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Choose either kpfonts or fourier
% \usepackage[nott]{kpfonts}
% \usepackage{fourier}
\usepackage{lmodern}
% Delete any of the following that are not needed
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{array}
\usepackage{multirow}
\usepackage{gensymb} % Just for the degree symbol
\usepackage{ccicons} % Creative Commons icons; now we can delete an image
\usepackage{lettrine} % Drop caps
\usepackage{wrapfig} % Let's wrap some images
\usepackage{hanging} % For hanging indents in a script
\usepackage{fancyvrb} % Use line numbers with code samples
\usepackage{fvextra} % Break lines inside Verbatim environment:
\usepackage{enumitem} % Control spacing in lists
\usepackage{setspace} % Better control over line-spacing
\usepackage{nicefrac} % Use nice fractions
\usepackage[bottom]{footmisc} % Keep the footnotes at the bottom of the page
%\usepackage{tabto} % Use tab stops when we need to (especially in footnotes)
\usepackage{microtype} % Make things neater.
\usepackage{tabularray} % Easy tables
\usepackage[]{footmisc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{ninecolors}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\graphicspath{{images/}} % Where are our images?
\usepackage{multicol} % Include two- or three-column sections
\counterwithout{footnote}{chapter} % Stop resetting the footnote count after each chapter
%\NumTabs{18} % Define 18 tab stops (at 1/4" intervals) [tabto package]
\raggedbottom % Don't force text to fill page
\setlength{\belowcaptionskip}{4pt} % Adjust space between caption and figure
%\renewcommand*\contentsname{In This Issue…} % Change the name of the TOC
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Document Setup%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{geometry}
\geometry{
paperheight=8.5in,
paperwidth=5.5in,
margin=15mm,
% a5paper % Comment out for half-letter paper
}
\addtolength{\topmargin}{10mm} % Adjust and bottom margin
\addtolength{\textheight}{-20mm} % Adjust the bottom margin
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Page Headers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Adjust the TITLE as necessary
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\textit{Sudoku}}
\fancyhead[RE,LO]{Issue \#006}
\cfoot{Page \thepage}
\renewcommand{\footrulewidth}{0.5pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Chapter Title Spacing %%%%%%%%%%%%%%%%%%%%
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}
{\chaptertitlename\ \thechapter}
{20pt}
{\Huge}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom Macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Make a nice border and box for the tops of our examples
\newcommand\klab[3]{\vspace{#1}\noindent{}\hrulefill\fbox{\texttt{~#2~}}\hrulefill\vspace{#3}}
% Add an \hrule with space above and below
\newcommand\krule[2]{\vspace{#1}\hrule\vspace{#2}}
% Make hrefs easier (must load package hyperref}
\newcommand\kref[2]{\href{#1}{{\texttt{#2}}}}
% Rotate text in tables easier
% https://tex.stackexchange.com/questions/89115/how-to-rotate-text-in-multirow-table
\newcommand\krot[3]{\parbox[t]{#1}{\multirow{#2}{*}{\rotatebox[origin=c]{90}{#3}}}}
% Draw a sudoku grid
\newcommand{\kgrid}{
% Thick horizontal lines
\draw [ultra thick](0,0)--(9,0);
\draw [ultra thick](0,3)--(9,3);
\draw [ultra thick](0,6)--(9,6);
\draw [ultra thick](0,9)--(9,9);
% Thick vertical lines
\draw [ultra thick](0,0)--(0,9);
\draw [ultra thick](3,0)--(3,9);
\draw [ultra thick](6,0)--(6,9);
\draw [ultra thick](9,0)--(9,9);
% Thin horizontal lines
\draw (0,1)--(9,1);
\draw (0,2)--(9,2);
\draw (0,4)--(9,4);
\draw (0,5)--(9,5);
\draw (0,7)--(9,7);
\draw (0,8)--(9,8);
% Thin vertical lines
\draw (1,0)--(1,9);
\draw (2,0)--(2,9);
\draw (4,0)--(4,9);
\draw (5,0)--(5,9);
\draw (7,0)--(7,9);
\draw (8,0)--(8,9);
% Labels
\begin{scriptsize}
\node at (-0.5,0.5) {R1};
\node at (-0.5,1.5) {R2};
\node at (-0.5,2.5) {R3};
\node at (-0.5,3.5) {R4};
\node at (-0.5,4.5) {R5};
\node at (-0.5,5.5) {R6};
\node at (-0.5,6.5) {R7};
\node at (-0.5,7.5) {R8};
\node at (-0.5,8.5) {R9};
\node at (0.5,-0.5) {C1};
\node at (1.5,-0.5) {C2};
\node at (2.5,-0.5) {C3};
\node at (3.5,-0.5) {C4};
\node at (4.5,-0.5) {C5};
\node at (5.5,-0.5) {C6};
\node at (6.5,-0.5) {C7};
\node at (7.5,-0.5) {C8};
\node at (8.5,-0.5) {C9};
\end{scriptsize}
}
% Sudoku nodes
\newcommand{\knode}[3]{\node at (#1,#2) {#3};}
% Sudoku fills
\newcommand{\kfill}[3]{\draw [fill=gray#3, line width=0mm] (#1,#2) rectangle +(1,1);}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Just for Issue #006 %%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Include URLS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Be sure to load this package last
\usepackage[hidelinks]{hyperref} % Inlcude URLs, but load this package last
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Document Information %%%%%%%%%%%%%%%%%%%%%
%% Adjust the TITLE and SUBTITLE as necessary
\author{Kenneth John Odle}
\title{
{\Huge Sudoku} \\
\bigskip
{\footnotesize How to Play \\ How to Win \\
\bigskip
Typeset in \LaTeX{} \\
% Issue \#006
}
}
\date{\begin{small}\the\year\end{small}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Let's get it started %%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle
\section*{Impressum}
All contents \copyright{}2025 Kenneth John Odle
FYI, this is made in \LaTeX \,using the report document class. It then gets exported to a letterhalf (5.5 in x 8.5 in) pdf, which then gets made into a booklet using PDF Booklet, which you can find at
\kref{https://pdfbooklet.sourceforge.io/wordpress/}{https://pdfbooklet.sourceforge.io/wordpress/}
If you want to donate financial support for the creation of this zine (and all the hours of research that go into it), you can do so at
\kref{https://paypal.me/kjodle}{https://paypal.me/kjodle} (Thanks!)
\tableofcontents
\chapter{What Is Sudoku?}
Tikz grid example:
\noindent{}\begin{tikzpicture}[x=5mm,y=5mm]
% Fills (must go first to put behind the grid)
\path [fill=gray8, line width=0mm] (6,7) -- (7,7) -- (7,8) -- (6,8);
% Thick horizontal lines
\draw [ultra thick](0,0)--(9,0);
\draw [ultra thick](0,3)--(9,3);
\draw [ultra thick](0,6)--(9,6);
\draw [ultra thick](0,9)--(9,9);
% Thick vertical lines
\draw [ultra thick](0,0)--(0,9);
\draw [ultra thick](3,0)--(3,9);
\draw [ultra thick](6,0)--(6,9);
\draw [ultra thick](9,0)--(9,9);
% Thin horizontal lines
\draw (0,1)--(9,1);
\draw (0,2)--(9,2);
\draw (0,4)--(9,4);
\draw (0,5)--(9,5);
\draw (0,7)--(9,7);
\draw (0,8)--(9,8);
% Thin vertical lines
\draw (1,0)--(1,9);
\draw (2,0)--(2,9);
\draw (4,0)--(4,9);
\draw (5,0)--(5,9);
\draw (7,0)--(7,9);
\draw (8,0)--(8,9);
% Nodes
\node at (0.5,7.5) {6};
\node at (1.5,7.5) {1};
\node at (4.5,7.5) {3};
\node at (7.5,8.5) {9};
\node at (8.5,8.5) {5};
\node at (5.5,8.5) {2};
\end{tikzpicture}
\begin{wrapfigure}{R}{0.6\textwidth}
\begin{tikzpicture}[x=5mm,y=5mm]
\kfill{6}{7}{8}
\kgrid
\knode{0.5}{7.5}{6}
\knode{1.5}{7.5}{1}
\knode{4.5}{7.5}{3}
\knode{6.5}{1.5}{7}
\knode{6.5}{4.5}{4}
\knode{7.5}{8.5}{9}
\knode{8.5}{6.5}{2}
\knode{8.5}{8.5}{5}
\end{tikzpicture}
\caption{Grid A}
\end{wrapfigure}
\chapter{The Rules of Sudoku}
\chapter{Troubleshooting}
\end{document}