; TeX output 1997.09.11:1156soDtGGcmr17A7tLdKGXQ cmr12AT[-E;gXPqackage7tforTqypsesettingFCrosswqord7tPuzzles!", cmsy10͕tGerdNeugebauerΚnMainzerStrae856321Rhens(Germanry)UNet:8߆T cmtt12gerd@informatik.uni-koblenz.de?37:|{Ycmr8Do'ExX.nThusIKdecidedtomakeonewhichatleast tsmyIneeds.XTherevareseveraltypGesofcrosswordpuzzlesaroung.)ThispackqagecanonlyIbGe~usedtotypesetseveralofthem.ThebasicassumptioninthispackqageisthatIpuzzlesarerectangulararragnementsofbGoxes.S=SomeofthesebGoxesareblackandIothers)arepreparedtotakesingleletters.EachwordinthegridisenclosedinIblackUUbGoxesortheoutside.XOptionallytheremaybGerectangularregionsleftblankinsidethepuzzle.HTheyIcanUUbGeusedtoplaceadsorotherinformativetextsinsidethepuzzle.ȉI N cmbx121.1gClassicalCrosswordPuzzles-TVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfefefefeʎɘJ"s6cmss81dfeʟfefefefeʎdfeʟfefefefeʎVdfeʟfefefefeʎݘXJ2jdfeʟfefefefeʎݘlJ3~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎݘJ4VdfeʟfefefefeʎjdfeʟfefefefeʎlJ5~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎڿAcross#s6cmss81unitofmeasure 2XK cmsy85sectioningunit9>DoÎwne12cmmi8pE3unitofmea- 9>sure b4nonpropfonÎt.XThe\classical"typGeofacrosswordpuzzlewordsaremarkedwithnumbGersandIeachpwordisacomapaniedwithacluewhichshouldhelp(orconfuse)thereader.IThoseUUcluesarelistedaftertheframeofthepuzzle.I1.2gNumb`erCrosswordPuzzles-TVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfefefefeʎɘJ6dfeʟfefefefeʎɘJ1dfeʟfefefefeʎVdfeʟfefefefeʎݘXJ5jdfeʟfefefefeʎݘlJ2~dfeʟfefefefeʎݘJ7dfeʟfefefefeʎdfeʟfefefefeʎݘJ7VdfeʟfefefefeʎjdfeʟfefefefeʎlJ4~dfeʟfefefefeʎJ5dfeʟfefefefeʎJ3dfeʟfefefefeʎJ7ȕTheUUfollowinglettersareused:qAEPRSTXǍ/~feʟfefefefeʎ;1/~feʟfefefefeʎ;2/~feʟfefefefeʎ;3/~feʟfefefefeʎ;4/~feʟfefefefeʎ;5,/~feʟfefefefeʎ-;6@/~feʟfefefefeʎA;7.XThe0\numbGerpuzzle"vqariantcontainsonlynumbGersinsteadofletters.eDi er-IentånumbGersdenotedi erentletters.A7Therearenoclues.ThereaderisassumedtoI ndacompletelistoflettersby llingappropriatewordsintothegrid.?:SometimesIaUUwordisalreadyenteredintothegridtoeasethestart.I1.3gFill-InCrosswordPuzzles-TVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎȕW*ordsUUoflength2:EXSPTTȕW*ordsUUoflength3:ASTETAȕW*ordsUUoflength4:PART.XThe\ ll-inpuzzle"vqariantconsistsofaframecontainingonlyblackandwhiteIbGoxes.`AdditionallyalistofwordsisgivenwhichhavetobGeputintotheframeIuntilUUnoneisleftandtheframeiscompleted.2FsoI1.4gSolutions-TVdfeʟfefefefeʎjdfeʟfefefefeʎ~dfeʟfejEfefefeʎdfeʟfej@XfefefeʎdfeʟfefefefeʎVdfeʟfej@Afefefeʎjdfeʟfej8Sfefefeʎ~dfeʟfejcTfefefeʎdfeʟfefefefeʎdfeʟfejcTfefefeʎVdfeʟfefefefeʎjdfeʟfejPfefefeʎ~dfeʟfej@AfefefeʎdfeʟfejQRfefefeʎdfeʟfejcTfefefeʎ /qǍXOftenӮitisnotonlydesirabletotypGesettheunsolvedcrosswordpuzzlebutalso Ithedsolution.ThismeansthatallthelettershavedtobGe lledin.ThisshouldIbGeZ>possiblewiththesamesourceasthequestionstoavoidtypGosorredundanciesIleadingUUtoadditionalwork.XSeveralvqariantsofsolutionscometomind.A_PrimarilythesolutionshouldshowIthetlettersandsuppressanyclues.J|Onema8jordistinctionisalsowetherornottheInumbGersUUofthewordsshouldbeshowninthesolutionaswell.-YfeʟfefefefeʎmfeʟfefefefeʎfeʟfejEfefefeʎɘ]1feʟfej@XfefefeʎfeʟfefefefeʎYfeʟfej@Afefefeʎݘ[]2mfeʟfej8Sfefefeʎݘo]3feʟfejcTfefefeʎfeʟfefefefeʎfeʟfejcTfefefeʎݘ]4YfeʟfefefefeʎmfeʟfejPfefefeʎo]5feʟfej@AfefefeʎfeʟfejQRfefefeʎfeʟfejcTfefefeʎ)qǍXFinally_GtherearethelistsoflettersinnumbGered_Gpuzzles.InthesolutiontheyIwillUUshowthelettersinthemaswell.YfeʟfefefefeʎmfeʟfefefefeʎfeʟfejEfefefeʎfeʟfej@XfefefeʎfeʟfefefefeʎYfeʟfej@Afefefeʎmfeʟfej8SfefefeʎfeʟfejcTfefefeʎfeʟfefefefeʎfeʟfejcTfefefeʎYfeʟfefefefeʎmfeʟfejPfefefeʎfeʟfej@AfefefeʎfeʟfejQRfefefeʎfeʟfejcTfefefeʎ8TheUUfollowinglettersareused:qAEPRSTXǍ˄ӟfeʟfej@Xfefefeʎ߄ӟfeʟfej8SfefefeʎӟfeʟfejQRfefefeʎӟfeʟfejPfefefeʎӟfeʟfej@Afefefeʎ/ӟfeʟfejEfefefeʎCӟfeʟfejcTfefefeʎ;ÍI2aLInputffofCrosswordPuzzlesIThedbasicideabGehindthispackqageisthatacrosswordpuzzleisspGeci edinaIsepGerate le.QTheactualappearanceofthepuzzleiscontrolledbyseveraloptions.IThusbitshouldbGepossibletoproducetheunsolvedandthesolvedpuzzlefromtheIsame source.BeforewedescribGethevqariousoptionswewillhavealoGokattheIbasicUUenvironmentsandmacrosusedtospGeci edacrosswordpuzzle.XThisYpackqageprovidestheenvironment%'ExX.ThusyouIcanUUthinkofitlikeamacro.XThe|macrotakestwoarguments.67The rstargumentisoptional,`i.e.67enclosedIinsbracketsifpresent.ͤThisoptionalargumentdenotesthenumbGerfornumbGeredIbGoxes.XThesecondargumentiseitherempty{}oritconsistsofasinglecharacter.IThisUUargumentdescribGestheactiontobeperformed.X !", cmsy10bIfthisargumentisaletterthenitissimplyshowninthesolutionandbsuppressedUUintheunsolvedcrosswordpuzzle.XbIfUUthisargumentisanasterisk*thenablackbGoxisproGduced.XbIfF|thisargumentisadot.thenthismarkstheendofthecurrentrow.lThe bnextUUbGoxistypGesetatthebeginningofthefollowingrow.XbIf_thisargumentisempty{}thenawhitebGoxistypGeset.ZuThisboxdoesnotbcontainr.aletter,yenordoGesithaveaframe.SThismacrocanbGeusedtoleavebroGomforlargerboxedwithads.AlternativelythiscanbGeusedtodisablebcertainUUbGoxestomakeanon-rectangularcrosswordpuzzle.[X\begin{Puzzle}{5}{5} eY|{} s,|{}|[1]S|.eY|{} s,|[2]M|I,|[3]D|.eY|[4]T|I,|M|E|S|.eY|{} s,|[5]N|E,|G|.eY|{} s,|{}|Q,|.[X\end{Puzzle}E)~dfeʟfefefefeʎJ1jdfeʟfefefefeʎlJ2~dfeʟfefefefeʎdfeʟfefefefeʎJ3VdfeʟfefefefeʎɘXJ4jdfeʟfefefefeʎ~dfeʟfefefefeʎdfeʟfefefefeʎdfeʟfefefefeʎjdfeʟfefefefeʎݘlJ5~dfeʟfefefefeʎdfeʟfefefefeʎ~dfeʟfefefefeʎ&2@cmbx8Across:"(2Xj45:9>DoOwn: w1q'$2loglikÎe 9>function pB3!loglikÎefunc-9>tion=qǍXNote~thatwhitespaceisignoredaftertheargumentsbutnotbGetweenthebarIandUUthearguments.XThemacro\FramecanbGeusedtotypesetadsorothertextintolargerboxes!|\FrameIinside"theframeofthecrosswordpuzzle. -F*orthispurpGose veargumentsareIrequired.^The rsttwoargumentsareusedtospGecifytheleowerleftcorneroftheIframe.The7[lowerleftcornerhasthecoGordinates0,0andthenumbGersincreaseIupwardsUUandtotheright.XThetNthirdargumentisthewidthoftheframeandthefourthargumentistheIheight=oftheframemeasuredinnumbGerofboxes.Finally*,ɷthe fthargumentIcontainskthetexttobGetypGeset.PerdefaultitistypGesetinaminipageoftheIappropriateUUwidthcenteredhorizontallyandvertically*.4Deso[X\begin{Puzzle}{8}{6} eY\Frame{2}{2}{4}{2}{\sfCrossword\\Puzzle}eY|[1]E|*,|[2]N|UX|L|[3]L|*|[4]V|.eY|[5]T|[6]R|IX|A|N,|G|[7]L|E|.eY|A,|U|{}|{}|{} s,|{}|[8]C|C|.eY|*,|L|{}|{}|{} s,|{}|E|*|.eY|[9]B|E,|TX|[10]A|*|[11]L|I|M|.eY|F,|*|[12]L|AX|B|E|L|*|.[X\end{Puzzle}I-FfeHʟ$$fe㍑S!m#R cmss10Crossword uUPuzzleH$fefefeHʎ[Ffeʟfefefefeʎ~j\1mFfeʟfefefefeʎFfeʟfefefefeʎ~j2FfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎ~j3FfeʟfefefefeʎFfeʟfefefefeʎ~jڨ4[Ffeʟfefefefeʎ~j\5mFfeʟfefefefeʎ~jn6FfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎ~jȨ7Ffeʟfefefefeʎ[FfeʟfefefefeʎmFfeʟfefefefeʎFfeʟfefefefeʎ~jȨ8Ffeʟfefefefeʎ[FfeʟfefefefeʎmFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎ[Ffeʟfefefefeʎ~j\9mFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎ~j10FfeʟfefefefeʎFfeʟfefefefeʎ~j11FfeʟfefefefeʎFfeʟfefefefeʎ[FfeʟfefefefeʎmFfeʟfefefefeʎFfeʟfefefefeʎ~j12FfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎFfeʟfefefefeʎ W+Across: R2emptÎy +5Y48carb'ExXpictureenviron- Iment.CXThisgivesusenough exibilityandprovidesanhighenoughabractionsuchIthatUUwedonothaveto ddlearoundwithtomanylowleveldetails.XThenaturalunitinacrosswordpuzzleisabGoxwhichisemptyorblack.XOThusItheUUunitlengthissettothewidth(andheight)ofsuchabGox.I6.1gBasicDe nitionsandParametersuTIFirstUUweidentifythispackqage.@Ls1S\ProvidesPackage{cwpuzzle}[\filedategene]@XTheMdimenregister\PuzzleUnitlengthstorestheheightandwidthofabGoxIofUUthepuzzle.qThedefaultis20ptwhichisalsoshowninthisdoGcumentation. Ls2S\newdimen\PuzzleUnitlength Ls3S\PuzzleUnitlength=20pt_f\PuzzleClueFontIThemacro\PuzzleClueFontcontainsfontchangingscommandsissuedbGeforetheIcluesUUaretypGeset.Ls4S\newcommand\PuzzleClueFont{\footnotesize}_ L\PuzzleFontITheOmacro\PuzzleFontcontainsfontchangingscommandsissuedbGeforetheIpuzzleUUistypGeset.Ls5S\newcommand\PuzzleFont{\rm\normalsize}_t\PuzzleNumberFontIThebmacro\PuzzleNumberFontcontainsfontchangingscommandsissuedbGeforeItheUUnumbGersinapuzzlearetypGeset.Ls6S\newcommand\PuzzleNumberFont{\sf\scriptsize}_ L\PuzzleHookIPuzzlesIaretypGesetwiththeL5ffA͉TU>'ExXpictureenvironment.-Attheendofthisen-Ivironmentthemacro\PuzzleHookiscalled.ThepackqageproGdisedanemptyIdefault.UsersmaywanttousethisplacetotypGesetadditionalelementsontopIofUUthepuzzle.XThe%puzzleusesa\unitlengthof\PuzzleUnitlength.S ThusitisrathereasyItoUUadressthebGoxesinthepuzzle.@Ls7S\let\PuzzleHook=\relaxI6.2gTheFrameoftheCrosswordPuzzleuTIT*o:describGethecoordinateswherethenextboxshouldbetypesetweneedtwoIcounters$forthecoGordinates.5ThesecountersarenowalloGcated(eventhoughweIcouldUUusetempGorarycountersfromL5ffA͉TU>'ExX).Ls8S\newcount\Puzzle@X Ls9S\newcount\Puzzle@Y@I10S\begingroupI11S\catcode`\|=13I12S\gdef\Puzzle@@solution{I13]\let|=\Puzzle@Box@@solutionI14]\let\Frame=\Puzzle@Frame@@solutionI15S}8 .soI16S\gdef\Puzzle@@normal{ I17]\let|=\Puzzle@Box@@normalI18]\let\Frame=\Puzzle@Frame@@normalI19S}I20S\endgroup"PuzzleITheoenvironmentPuzzletypGesetstheframeofacrosswordpuzzle. Itis Iimplementedputilizingapictureenvironment. TheunilengthissettotheI\PuzzleUnitlength. Thusfthenavigationisfailyeasy*. ThebasicunitiswidthIandUUheightofasinglebGox.XThe"macroswhichareloGcaltotheenvironmentareactivqated. -ThusweavoidIcollisionsUUwithotherpackqageswherethesamemacronamesmightbGeused.XFinallyZthecounterwhichcontainthexandtheycoGordinatehavetobGeini-Itialized.XThelastactioninthepictureenvironmentistheexpansionofthemacroI\PuzzleHook.jThis]canbGeusedtoincludeadditionalmaterialinthepictureIenvironment.t#PrimarilytI^haveusethistoincludetheads.t#ButnowthereistheImacroUU\FrameforthispurpGose. 鍍I21S\newenvironment{Puzzle}[2]{\par\noindent\mbox{}\hfill I22]\catcode`\|=13I23]\@nameuse{Puzzle@@\Puzzle@TYPE}%I24]\unitlength=\PuzzleUnitlengthI25]\Puzzle@Y=#2I26]\begin{picture}(#1,#2)I27f\Puzzle@Box@@normal.I28S}{%I29f\PuzzleHookI30]\end{picture}\hfill\null\par\noindentI31S} \Puzzle@Frame@@normalITheC;macroPuzzle@Frameisusedtoplaceadditionalrectangularregionsintothe Ipuzzleframe.LThisframecancontainarbitrarytextwhichistypGesetinacenteredIenvironment.XThis¯otakes vearguments.b-The rsttwoargumentsarethecoGordinatesIoftheuppGerleftcorneroftheframe.?vThecoordinatesarelogicalcoordinatesIstarting4fromthelower4leftcornerofthepuzzle.fThenexttwo4argumentsaretheIwidthxandtheheightoftheframegiveninthenumbGerofboxescovered.jFinallyItheUU fthargumentcontainsthetextwhichshouldapGearinthisframe. 鍍I32S\newcommand\Puzzle@Frame@@normal[5]{\put(#1,#2){\framebox(#3,#4){% I33p2\begin{minipage}{#3\unitlength}\begin{center}#5I34p2\end{center}\end{minipage}}}}ҙ\Puzzle@Frame@@solutionIF*orUUthesolutiontheframedadsaresimplyignored. 鍍I35S\newcommand\Puzzle@Frame@@solution[5]{}f\PuzzleBlackBoxIThevZmacro\PuzzleBlackBoxiscalledtotypGesettheblackbGoxes.Itshouldpro- IduceUUabGoxofatmostwidthandheightof\PuzzleUnitlength.I36S\newcommand\PuzzleBlackBox{\rule{\PuzzleUnitlength}{\PuzzleUnitlength}}H\Puzzle@Box@@normalIThejmacro\Puzzle@Box@@normalpGerformsalltaskswhenaboxshouldbetypeset Iin+G\normal"moGde.cTheargumentsareevqaluatedandtheappropriatetpyeofbGoxItypGesetUUorotheractionsperformed.9 soI37S\newcommand\Puzzle@Box@@normal[2][]{% I38]\def\Puzzle@tmp{#2}%I39]\if\Puzzle@tmp.I40f\Puzzle@X=0\relax\advance\Puzzle@Y-1I41]\elseI42f\ifx\@empty\Puzzle@tmpI43f\elseI44f\if\Puzzle@tmp*I45f\put(\Puzzle@X,\Puzzle@Y){\framebox(1,1){\PuzzleBlackBox}}I46f\elseI47f\put(\Puzzle@X,\Puzzle@Y){\framebox(1,1){}}I48f\fiI49f\fiI50f\def\Puzzle@tmp{#1}%I51f\ifx\@empty\Puzzle@tmp\elseI52p2\put(\Puzzle@X,\Puzzle@Y){%I53yw^\makebox(1,.95)[tl]{\PuzzleNumberFont\,#1}}%I54f\fiI55f\advance\Puzzle@X1I56]\fiI57S} \Puzzle@Box@@solutionIThemacro\Puzzle@Box@@solutionpGerformsalltaskswhenaboxshouldbe ItypGesetT"in\solution"mode.n.TheargumentsareevqaluatedandtheappropriateItpyeUUofbGoxtypGesetorotheractionsperformed.I58S\newcommand\Puzzle@Box@@solution[2][]{% I59]\def\Puzzle@tmp{#2}%I60]\if\Puzzle@tmp.I61f\Puzzle@X=0\relax\advance\Puzzle@Y-1I62]\elseI63f\ifx\Puzzle@tmp\@emptyI64f\else\if\Puzzle@tmp*I65f\put(\Puzzle@X,\Puzzle@Y){\framebox(1,1){\PuzzleBlackBox}}I66f\elseI67f\put(\Puzzle@X,\Puzzle@Y){\framebox(1,1){\uppercase{#2}}}%I68f\fiI69f\fiI70f\def\Puzzle@tmp{#1}%I71f\ifx\Puzzle@tmp\@empty\elseI72p2\ifPuzzle@SolutionNumberedI73p2\put(\Puzzle@X,\Puzzle@Y){%I74yw^\makebox(1,.95)[tl]{\PuzzleNumberFont\,#1}}%I75f\fiI76f\fiI77f\advance\Puzzle@X1I78]\fiI79S}6I6.3gCluesuTƲ\Puzzle@Clue@@normalITheDt rstandthethirdargumentareshownasclue.Thismacroisusedforunsolved Ipuzzles.I80S\newcommand\Puzzle@Clue@@normal[3]{\textsf{#1}#3}10 soS\Puzzle@Clue@@solutionIInUUsolutionscluesaresimplysuppressed.qThusallthreeargumentsarediscarted.I81S\newcommand\Puzzle@Clue@@solution[3]{}ƲPuzzle@Clues@@normalITheenvironmentPuzzle@Clues@@normalismappGedtoPuzzleCluesin\normal" ImoGde.qItUUtypesetsitscontentsinaminipageofappropriatehalftextwidth.I82S\newenvironment{Puzzle@Clues@@normal}[1]{% I83]\null\hfillI84]\let\Clue\Puzzle@Clue@@normalI85]\begin{minipage}[t]{.45\textwidth}%I86f\PuzzleClueFont{#1}%I87S}{\end{minipage}\hfill\null}SPuzzle@Clues@@solutionITheAenvironmentPuzzle@Clues@@solutionismappGedtoPuzzleCluesin\solu- Ition"UUmoGde.qItjustsuppressedanyoutput.I88S\newenvironment{Puzzle@Clues@@solution}[1]{%I89]\let\Clue\Puzzle@Clue@@solutionI90S}{} \PuzzleWordsTextIThe}macro\PuzzleWordsTextisthetexttypGesetatthebeginningoftheenvi- IronmentIPuzzleWords.IttakesoneargumentwhichisthelengthofthewordsIlisted.I91S\newcommand\PuzzleWordsText[1]{Wordsoflength#1:}ƲPuzzle@Words@@normalIThe!environmentPuzzle@Words@@normalwillbGemappedtotheenvironmentIPuzzleWordsuin\normal"moGde.ҙItjustarrangesthatwordsaretypGesetafterIthe\PuzzleWordsTexthasshownthelengthofthewords.Finallyanewpara-IgraphUUisstarted.I92S\newenvironment{Puzzle@Words@@normal}[1]{% I93]\PuzzleWordsText{#1}%I94]\let\Word\relaxI95S}{\par}SPuzzle@Words@@solutionITheenvironmentPuzzle@Words@@solutionwillbGemappedtotheenvironment IPuzzleWordsݲin\solution"moGde.!^ItarrangesthingsthatthecontentsissilentlyIignored.I96S\newenvironment{Puzzle@Words@@solution}[1]{% I97]\newcommand\Word[1]{}%I98S}{}6I6.4gNumb`ersuT 6\PuzzleNumbersIThe,rmacro\PuzzleNumberswillproGducealistofboxeswithnumbGersforletters. IItUUisintendedfornumbGeredcrosswordpuzzles.I99S\newcommand\PuzzleNumbers[1]{\begingroupE100]\@nameuse{Puzzle@@\Puzzle@TYPE}%E101]\Puzzle@Y=0E102]\Puzzle@X=1E103]\unitlength=\PuzzleUnitlengthE104]\Puzzle@Numbers#1.\endgroup}11 Ѡsof\Puzzle@NumbersIThe5macro\Puzzle@NumbersloGopsthroughtheargumentsuntilit ndsadot. IF*orFeachargumentitproGducesabox,IeitherwiththenumbGersorwiththelettersIorUUbGoth,dependingonthecurrentsettings.XThePloGopisimplementedviarecursion.cTheboxistyepsetbythe|macroIwhich[takescareofthecurrentsettings.F*orthispurpGosethischaracterhastobGeImadeUUactivetempGorarily*.E105S\begingroup E106S\catcode`\|=13E107S\gdef\Puzzle@Numbers#1{%E108]\if#1.E109f\let\next\relaxE110]\elseE111f\begin{picture}(1,1)E112p2\xdef\X{\the\Puzzle@X}%E113p2\Puzzle@X=0E114p2|[\X]{#1}%E115f\end{picture}%E116f\let\next\Puzzle@NumbersE117f\advance\Puzzle@X1E118]\fiE119]\nextE120S}E121S\endgroup9\PuzzleLettersTextIThemacro\PuzzleLettersTextcontainsthetexttypGesetatthebeginningofthe I\PuzzleLettersUUenvironment.E122S\newcommand\PuzzleLettersText{Thefollowinglettersareused:} 6\PuzzleLettersITheӏmacro\PuzzleLettersisintendedtoshowthelettersusedinanumbGered IcrosswordUUpuzzle.qTheargumentisthe(sorted)listofcharactersused.E123S\newcommand\PuzzleLetters[1]{\PuzzleLettersText#1\par}b\Puzzle@TYPEIThemacro\Puzzle@TYPELcontainsthetypGeofthepuzzle.#Itisused ndthe IappropriateUUinitializationmacro.E124S\newcommand\Puzzle@TYPE{normal}f\PuzzleSolutionITheȲmacro\PuzzleSolutionarrangeseverythingthatthefollowingpuzzlesare ItypGesetinthe\solution"mode,i.e.qthelettersareshownandthecluesaresup-Ipressed.XThisomacroshasoneoptionalargumentwhichhastobGetrueorfalse.kThisIargument]determineswhetherornotthenumbGersshouldalsobeshownintheIsolution.ThedefaultisfalsewhichmeansthatthenumbGersaresuppressedinItheUUsolution.E125S\newcommand\PuzzleSolution[1][false]{% E126]\@nameuse{Puzzle@SolutionNumbered#1}%E127]\let\PuzzleClues\Puzzle@Clues@@solutionE128]\let\endPuzzleClues\endPuzzle@Clues@@solutionE129]\let\PuzzleWords\Puzzle@Words@@solutionE130]\let\endPuzzleWords\endPuzzle@Words@@solutionE131]\xdef\Puzzle@TYPE{solution}}12 sof\PuzzleUnsolvedITheȲmacro\PuzzleUnsolvedarrangeseverythingthatthefollowingpuzzlesare ItypGesetinthe\unsolved"moGde,i.e.8ethelettersaresuppressedandthecluesareIshown.E132S\newcommand\PuzzleUnsolved{% E133]\let\PuzzleClues\Puzzle@Clues@@normalE134]\let\endPuzzleClues\endPuzzle@Clues@@normalE135]\let\PuzzleWords\Puzzle@Words@@normalE136]\let\endPuzzleWords\endPuzzle@Words@@normalE137]\xdef\Puzzle@TYPE{normal}}XThe~>bGooleanPuzzle@SolutionNumbereddeternimeswhetherornotthesolu- ItionUUshouldcontainnumbGers.qInitiallyitissetto\false".E138S\newif\ifPuzzle@SolutionNumberedE139S\Puzzle@SolutionNumberedfalseXFinallyJwearrangethatthedefaultbGehaviouristotypGesetanunsolvedcross-IwordUUpuzzle.E140S\PuzzleUnsolvedXThat'sUUall.13; &2@cmbx8%