summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-06-30 22:40:57 +0000
committerKarl Berry <karl@freefriends.org>2014-06-30 22:40:57 +0000
commit3aa44db1e4dea11619c4a7260854303656fbe2c4 (patch)
treea82af70f8cd615b8ed4bf06a285f156f063f0306 /Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty
parent96269d837dc550d7b3276e44afcfc7a4b42b5259 (diff)
logicpuzzle (29jun14)
git-svn-id: svn://tug.org/texlive/trunk@34491 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty')
-rw-r--r--Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty1304
1 files changed, 275 insertions, 1029 deletions
diff --git a/Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty b/Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty
index 1fdd9900ac5..291e3c223b4 100644
--- a/Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty
+++ b/Master/texmf-dist/tex/latex/logicpuzzle/logicpuzzle.sty
@@ -1,46 +1,55 @@
%%
-%% Copyright (C) 2013 by:
+%% This is file `logicpuzzle.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% logicpuzzle.dtx (with options: `package')
+%%
+%% Copyright (C) 2013-2014 by:
%% Josef Kleber
%% <josef.kleber@gmx.de>
-%%
+%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
%% or (at your option) any later version. The latest version of this
%% license is in:
-%%
+%%
%% http://www.latex-project.org/lppl.txt
-%%
+%%
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2003/12/01 or later.
-%%
+%%
%% This work has the LPPL maintenance status "author-maintained".
-%%
+%%
%% The Current Maintainer of this work is Josef Kleber.
-%%
+%%
%% This work consists of all files listed in manifest.txt.
-%%
-\ProvidesPackage{logicpuzzle}[2013/06/06 logicpuzzle.sty v2.4 - Josef Kleber (C) 2013]%
-%
+%%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{logicpuzzle}[2014/06/15 v2.5 logicpuzzle.sty%
+ - Josef Kleber (C) 2013-2014]%
\RequirePackage{xkeyval}%
\RequirePackage{ifthen}%
\RequirePackage{ragged2e}%
-\RequirePackage{etoolbox}%
\RequirePackage{marginnote}%
\RequirePackage{tikz}%
-\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing,calc,shapes.geometric}%
+\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing,%
+ calc,shapes.geometric}%
\pgfdeclarelayer{LPdump}%
\pgfdeclarelayer{LPbgcolor}%
\pgfdeclarelayer{LPbackgroundtwo}%
\pgfdeclarelayer{LPbackground}%
\pgfdeclarelayer{LPforeground}%
\pgfdeclarelayer{LPforegroundtwo}%
-\pgfsetlayers{LPdump,LPbgcolor,LPbackgroundtwo,LPbackground,main,LPforeground,LPforegroundtwo}%
-%
+\pgfsetlayers{LPdump,LPbgcolor,LPbackgroundtwo,LPbackground,main,%
+ LPforeground,LPforegroundtwo}%
\newcounter{LP@rows}%
\newcounter{LP@columns}%
\newcounter{LP@counter@unique}%
\newcounter{LP@counti}%
\newcounter{LP@countii}%
+\newcounter{LP@countiii}%
\newcounter{LP@whiledo@i}%
\newcounter{LP@whiledo@ii}%
\newcounter{LP@count@ig@i}%
@@ -49,13 +58,7 @@
\newcounter{LP@count@ig@iv}%
\newcounter{LP@puzzlecounter}%
\setcounter{LP@puzzlecounter}{1}%
-%
\newlength\LP@length%
-%
-\newcommand*\LP@counterstyle{none}%
-\newcommand*\LP@titleformat{}%
-\gdef\LP@env@prefix{}%
-\gdef\LP@package{}%
\gdef\LP@rows{}%
\gdef\LP@columns{}%
\gdef\LP@scale{1}%
@@ -63,7 +66,10 @@
\gdef\LP@bgcolor{}%
\gdef\LP@fontsize\Large%
\gdef\LP@cvoffset{0pt}%
-%
+\newcommand*\LP@counterstyle{none}%
+\newcommand*\LP@titleformat{}%
+\gdef\LP@env@prefix{}%
+\gdef\LP@package{}%
\def\LP@normallines{0.5pt}%
\def\LP@thicklines{1.5pt}%
\def\LP@grid@linestyle{}%
@@ -71,15 +77,7 @@
\def\LP@rel@tikzpath{}%
\def\LP@tracks@scale{.3}%
\def\LP@fw@linestyle{-|}%
-%
\newcommand*\LP@Pfive{.5}%
-%
-% init
-%
-% #1 package prefix
-% #2 package
-% #3 option
-% #4 default
\newcommand*\LP@define@key[4]%
{%
\expandafter\gdef\csname#1@#3\endcsname{#4}%
@@ -92,14 +90,12 @@
\expandafter\def\csname#1@#3\endcsname{##1}%
}%
}%
-%
-% #1 package prefix
-% #2 package
-% #3 default
\newcommand*\LP@define@choicekey@fontsize[3]%
{%
\expandafter\gdef\csname#1@fontsize\endcsname{\Large}%
- \define@choicekey*{#2.sty}{fontsize}[\LP@dck@fontsize\nr]{tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge}[#3]%
+ \define@choicekey*{#2.sty}{fontsize}[\LP@dck@fontsize\nr]{%
+ tiny,scriptsize,footnotesize,small,normalsize,%
+ large,Large,LARGE,huge,Huge}[#3]%
{%
\ifcase\nr\relax%
\expandafter\gdef\csname#1@fontsize\endcsname{\tiny}%
@@ -123,7 +119,9 @@
\expandafter\gdef\csname#1@fontsize\endcsname{\Huge}%
\fi%
}%
- \define@choicekey*{#2}{fontsize}[\LP@dck@fontsize\nr]{tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge}[#3]%
+ \define@choicekey*{#2}{fontsize}[\LP@dck@fontsize\nr]{%
+ tiny,scriptsize,footnotesize,small,normalsize,%
+ large,Large,LARGE,huge,Huge}[#3]%
{%
\ifcase\nr\relax%
\expandafter\def\csname#1@fontsize\endcsname{\tiny}%
@@ -148,16 +146,10 @@
\fi%
}%
}%
-%
-% colors
-%
-% #1 name
-% #2 rgb color
\newcommand*\LP@definecolor[2]%
{%
\definecolor{#1}{rgb}{#2}%
}%
-%
\LP@definecolor{LP@c@i}{.9,.9,.98}%
\LP@definecolor{LP@c@ii}{.688,.932,.932}%
\LP@definecolor{LP@c@iii}{.88,1,1}%
@@ -170,82 +162,21 @@
\LP@definecolor{LP@c@griddots}{.25,.51,.33}%
\LP@definecolor{LP@c@cross}{.25,.51,.33}%
\LP@definecolor{LP@c@mirror}{.8,.8,.8}%
-\definecolor{LP@c@tunnel}{rgb}{.7,.7,.7}%
-\definecolor{LP@c@tunnel@i}{rgb}{.8,.8,.8}%
-\definecolor{LP@c@tunnel@ii}{rgb}{.5,.5,.5}%
+\LP@definecolor{LP@c@tunnel}{.7,.7,.7}%
+\LP@definecolor{LP@c@tunnel@i}{.8,.8,.8}%
+\LP@definecolor{LP@c@tunnel@ii}{.5,.5,.5}%
\LP@definecolor{LP@c@bridge}{1,0,0}%
\colorlet{LP@c@track}{black!80}%
-%
-% drawing grids
-%
-% #1 grid x min
-% #2 grid y min
-% #3 grid x max
-% #4 grid y max
-% #5 step
\newcommand*\LP@drawgrid[5]%
{%
\setcounter{LP@counti}{#3}% max column
\setcounter{LP@countii}{#4}% max row
\stepcounter{LP@counti}%
\stepcounter{LP@countii}%
- \draw[step=#5,line width=\LP@normallines,\LP@grid@linestyle,draw opacity=\LP@draw@opacity] (#1,#2) grid (\value{LP@counti},\value{LP@countii});%
-}%
-%
-\newcommand*\LP@drawgriddots%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \pgfmathsetmacro{\START}{1}%
- % dots are drawn immediatly after the grid,
- % so we can recycle LP@counti and LP@countii
- \pgfmathsetmacro{\ENDC}{\arabic{LP@counti}}%
- \pgfmathsetmacro{\ENDR}{\arabic{LP@countii}}%
- \begin{pgfonlayer}{LPforeground}%
- \foreach \i in {\START,...,\ENDC}%
- \foreach \j in {\START,...,\ENDR}%
- \fill[color=LP@c@griddots] (\i,\j) circle [radius=3pt];%
- \end{pgfonlayer}%
+ \draw[step=#5,line width=\LP@normallines,\LP@grid@linestyle,%
+ draw opacity=\LP@draw@opacity]%
+ (#1,#2) grid (\value{LP@counti},\value{LP@countii});%
}%
-%
-\newcommand*\LP@magnetsgrid%
-{%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \LP@set@LP@columns{\LP@env@prefix}%
- \LP@set@LP@rows{\LP@env@prefix}%
- \setcounter{LP@counti}{\LP@columns}% max column
- \setcounter{LP@countii}{\LP@rows}% max row
- \stepcounter{LP@counti}%
- \stepcounter{LP@countii}%
- \draw[step=1cm,line width=\LP@normallines] (-1,1) grid (1,\arabic{LP@countii});%
- \draw[step=1cm,line width=\LP@normallines] (1,\arabic{LP@countii}) grid ++(\LP@columns,2);%
- \draw[line width=\LP@normallines] (0,\arabic{LP@countii}) -- ++(0,1) -- ++(1,0);%
- \draw[line width=\LP@thicklines] (-1,1) rectangle (1,\arabic{LP@countii});%
- \draw[line width=\LP@thicklines] (1,\arabic{LP@countii}) rectangle ++(\LP@columns,2);%
- \draw[line width=\LP@thicklines] (1,\arabic{LP@countii}) rectangle ++(-2,2);%
- \node[font=\LP@fontsize\bfseries] at (0.5,\arabic{LP@counti}.5) {$-$};%
- \stepcounter{LP@counti}%
- \node[font=\LP@fontsize\bfseries] at (-0.5,\arabic{LP@counti}.5) {$+$};%
-}%
-%
-\newcommand*\LP@drawsudokugrid%
-{%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (1,1) -- (1,10);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (4,1) -- (4,10);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (7,1) -- (7,10);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (10,1) -- (10,10);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (1,1) -- (10,1);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (1,4) -- (10,4);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (1,7) -- (10,7);%
- \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity] (1,10) -- (10,10);%
-}%
-%
-% drawing grid background
-%
-% #1 grid x min
-% #2 grid y min
-% #3 grid x max
-% #4 grid y max
-% #5 bgcolor
\newcommand*\LP@drawbackground[5]%
{%
\ifthenelse{\equal{#5}{}}%
@@ -256,43 +187,42 @@
\stepcounter{LP@counti}%
\stepcounter{LP@countii}%
\begin{pgfonlayer}{LPbgcolor}%
- \fill[color=#5] (#1,#2) rectangle (\value{LP@counti},\value{LP@countii});%
- \end{pgfonlayer}{LPbgcolor}%
+ \fill[color=#5] (#1,#2) rectangle%
+ (\value{LP@counti},\value{LP@countii});%
+ \end{pgfonlayer}%
}%
}%
-%
-% In the grid
-%
\newcommand*\LP@ingrid[5]%
{%
\setcounter{LP@count@ig@i}{#1}% column
\setcounter{LP@count@ig@ii}{#2}% row
\setcounter{LP@count@ig@iii}{#3}% max column
\setcounter{LP@count@ig@iv}{#4}% max row
- %#5 style
- %
\ifnum\value{LP@count@ig@i}<1%
\PackageError{#5}%
- {element outside of the grid}%
- {You tried to set an element at (#1,#2),\MessageBreak which is outside the grid (1,1) .. (#3,#4)}%
+ {element outside of the grid}%
+ {You tried to set an element at (#1,#2),\MessageBreak%
+ which is outside the grid (1,1) .. (#3,#4)}%
\fi%
\ifnum\value{LP@count@ig@ii}<1%
\PackageError{#5}%
- {element outside of the grid}%
- {You tried to set an element at (#1,#2),\MessageBreak which is outside the grid (1,1) .. (#3,#4)}%
+ {element outside of the grid}%
+ {You tried to set an element at (#1,#2),\MessageBreak%
+ which is outside the grid (1,1) .. (#3,#4)}%
\fi%
\ifnum\value{LP@count@ig@i}>\value{LP@count@ig@iii}%
\PackageError{#5}%
- {element outside of the grid}%
- {You tried to set an element at (#1,#2),\MessageBreak which is outside the grid (1,1) .. (#3,#4)}%
+ {element outside of the grid}%
+ {You tried to set an element at (#1,#2),\MessageBreak%
+ which is outside the grid (1,1) .. (#3,#4)}%
\fi%
\ifnum\value{LP@count@ig@ii}>\value{LP@count@ig@iv}%
\PackageError{#5}%
- {element outside of the grid}%
- {You tried to set an element at (#1,#2),\MessageBreak which is outside the grid (1,1) .. (#3,#4)}%
+ {element outside of the grid}%
+ {You tried to set an element at (#1,#2),\MessageBreak%
+ which is outside the grid (1,1) .. (#3,#4)}%
\fi%
}%
-%
\newcommand*\setrule[3]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
@@ -302,127 +232,108 @@
{\gdef\LP@sr@bgcolor{\LP@bgcolor}}%
\stepcounter{LP@counter@unique}%
\begin{pgfonlayer}{LPdump}%
- \node [shape=rectangle,inner sep=0pt] (A_\theLP@counter@unique) at (#1\LP@Pfive,#2\LP@Pfive) {\tikz\draw[scale=\LP@scale,color=\LP@sr@bgcolor] (0.08,0.1) rectangle (0.92,0.9);};%
+ \node [shape=rectangle,inner sep=0pt] (A_\theLP@counter@unique)%
+ at (#1\LP@Pfive,#2\LP@Pfive)%
+ {\tikz\draw[scale=\LP@scale,color=\LP@sr@bgcolor]%
+ (0.08,0.1) rectangle (0.92,0.9);};%
\end{pgfonlayer}%
- \node [shape=rectangle,inner sep=0pt,anchor=north west,scale=\LP@scale,font=\tiny] at (A_\theLP@counter@unique.north west) {$#3$};%
+ \node [shape=rectangle,inner sep=0pt,anchor=north west,%
+ scale=\LP@scale,font=\tiny] at%
+ (A_\theLP@counter@unique.north west) {$#3$};%
}%
-%
-% #1 column
-% #2 row
-% #3 content
-\newcommand*\LP@setcellcontent[3]%
+\define@key{LP@G@setcellcontent}{vcenter}[\LP@Pfive]%
{%
- \node at (#1\LP@Pfive,#2\LP@Pfive){#3};%
+ \def\LP@scc@v{\LP@Pfive}%
}%
-%
-% #1 column
-% #2 row
-% #3 content
-\newcommand*\LP@setcellcontentC[3]%
+\define@key{LP@G@setcellcontent}{hcenter}[\LP@Pfive]%
{%
- \node at (#1,#2){#3};%
+ \def\LP@scc@h{\LP@Pfive}%
}%
-%
-\newcommand*\LP@setcellcontentVE[3]%
+\newcommand*\LP@G@setcellcontent[4][]%
{%
- \node at (#1,#2\LP@Pfive){#3};%
+ \def\LP@scc@h{}%
+ \def\LP@scc@v{}%
+ \setkeys{LP@G@setcellcontent}{#1}%
+ \node at (#2\LP@scc@h,#3\LP@scc@v){#4};%
}%
-%
-\newcommand*\LP@setcellcontentHE[3]%
+\newcommand*\LP@setcellcontent[3]%
{%
- \node at (#1\LP@Pfive,#2){#3};%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{#3}%
}%
-%
-% #1 csv list
-% #2 column
-% #3 row
-\newcommand*\LP@setrowcontents[3]%
+\newcommand*\LP@setcellcontentC[3]%
{%
- \setcounter{LP@counti}{#2}%
- \setcounter{LP@countii}{#3}%
- \forcsvlist\LP@setrowcontents@i{#1}{\LP@env@prefix}%
+ \LP@G@setcellcontent{#1}{#2}{#3}%
}%
-%
-\newcommand*\LP@setrowcontents@i[1]%
+\newcommand*\LP@setcellcontentVE[3]%
{%
- \LP@setrowcontents@ii{#1}{\LP@env@prefix}%
+ \LP@G@setcellcontent[vcenter]{#1}{#2}{#3}%
}%
-%
-\newcommand*\LP@setrowcontents@ii[2]%
+\newcommand*\LP@setcellcontentHE[3]%
{%
- \LP@setcellcontent{\arabic{LP@counti}}{\arabic{LP@countii}}{\csname #2@fontsize\endcsname#1}%
- \stepcounter{LP@counti}%
+ \LP@G@setcellcontent[hcenter]{#1}{#2}{#3}%
}%
-%
-\newcommand*\LP@setrowcontents@edge[3]%
+\newcommand*\LP@setrowcontents[3]%
{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
\setcounter{LP@counti}{#2}%
\setcounter{LP@countii}{#3}%
- \forcsvlist\LP@setrowcontents@edge@i{#1}{\LP@env@prefix}%
-}%
-%
-\newcommand*\LP@setrowcontents@edge@i[1]%
-{%
- \LP@setrowcontents@edge@ii{#1}{\LP@env@prefix}%
-}%
-%
-\newcommand*\LP@setrowcontents@edge@ii[2]%
-{%
- \LP@setcellcontentVE{\arabic{LP@counti}}{\arabic{LP@countii}}{\csname #2@fontsize\endcsname#1}%
- \stepcounter{LP@counti}%
-}%
-%
-\newcommand*\setrow[2]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \LP@setrowcontents{#2}{1}{#1}%
+ \foreach \LP@element in {#1}%
+ {%
+ \LP@G@setcellcontent[vcenter,hcenter]%
+ {\arabic{LP@counti}}{\arabic{LP@countii}}%
+ {\LP@fontsize\LP@element}%
+ \stepcounter{LP@counti}%
+ }%
}%
-%
-% #1 csv list
-% #2 column
-% #3 row
\newcommand*\LP@setcolumncontents[3]%
{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
\setcounter{LP@counti}{#2}%
\setcounter{LP@countii}{#3}%
- \forcsvlist\LP@setcolumncontents@i{#1}%
-}%
-%
-\newcommand*\LP@setcolumncontents@i[1]%
-{%
- \LP@setcolumncontents@ii{#1}{\LP@env@prefix}%
+ \foreach \LP@element in {#1}%
+ {%
+ \LP@G@setcellcontent[vcenter,hcenter]%
+ {\arabic{LP@counti}}{\arabic{LP@countii}}%
+ {\LP@fontsize\LP@element}%
+ \stepcounter{LP@countii}%
+ }%
}%
-%
-\newcommand*\LP@setcolumncontents@ii[2]%
+\newcommand*\LP@setrowcontents@edge[3]%
{%
- \LP@setcellcontent{\arabic{LP@counti}}{\arabic{LP@countii}}{\csname #2@fontsize\endcsname#1}%
- \stepcounter{LP@countii}%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \setcounter{LP@counti}{#2}%
+ \setcounter{LP@countii}{#3}%
+ \foreach \LP@element in {#1}%
+ {%
+ \LP@G@setcellcontent[vcenter]%
+ {\arabic{LP@counti}}{\arabic{LP@countii}}%
+ {\LP@fontsize\LP@element}%
+ \stepcounter{LP@counti}%
+ }%
}%
-%
\newcommand*\LP@setcolumncontents@edge[3]%
{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
\setcounter{LP@counti}{#2}%
\setcounter{LP@countii}{#3}%
- \forcsvlist\LP@setcolumncontents@edge@i{#1}%
-}%
-%
-\newcommand*\LP@setcolumncontents@edge@i[1]%
-{%
- \LP@setcolumncontents@edge@ii{#1}{\LP@env@prefix}%
+ \foreach \LP@element in {#1}%
+ {%
+ \LP@G@setcellcontent[hcenter]%
+ {\arabic{LP@counti}}{\arabic{LP@countii}}%
+ {\LP@fontsize\LP@element}%
+ \stepcounter{LP@countii}%
+ }%
}%
-%
-\newcommand*\LP@setcolumncontents@edge@ii[2]%
+\newcommand*\setrow[2]%
{%
- \LP@setcellcontentHE{\arabic{LP@counti}}{\arabic{LP@countii}}{\csname #2@fontsize\endcsname#1}%
- \stepcounter{LP@countii}%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \LP@setrowcontents{#2}{1}{#1}%
}%
-%
\newcommand*\setcolumn[2]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
\LP@setcolumncontents{#2}{#1}{1}%
}%
-%
\newcommand*\setcell[3]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
@@ -430,9 +341,8 @@
\LP@set@LP@rows{\LP@env@prefix}%
\LP@set@LP@columns{\LP@env@prefix}%
\LP@ingrid{#1}{#2}{\LP@columns}{\LP@rows}{\LP@package}%
- \LP@setcellcontent{#1}{#2}{\LP@fontsize#3}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{\LP@fontsize#3}%
}%
-%
\newcommand*\setcells[2]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
@@ -441,11 +351,12 @@
\LP@set@LP@columns{\LP@env@prefix}%
\foreach \LP@sc@column/\LP@sc@row in {#1}%
{%
- \LP@ingrid{\LP@sc@column}{\LP@sc@row}{\LP@columns}{\LP@rows}{\LP@package}%
- \LP@setcellcontent{\LP@sc@column}{\LP@sc@row}{\LP@fontsize#2}%
+ \LP@ingrid{\LP@sc@column}{\LP@sc@row}%
+ {\LP@columns}{\LP@rows}{\LP@package}%
+ \LP@G@setcellcontent[hcenter,vcenter]%
+ {\LP@sc@column}{\LP@sc@row}{\LP@fontsize#2}%
};%
}%
-%
\newcommand*\setbigcell[4][Huge]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
@@ -457,135 +368,65 @@
\setcounter{LP@countii}{#3}%
\stepcounter{LP@counti}%
\stepcounter{LP@countii}%
- \draw[line width=\LP@normallines,fill=\LP@sbc@bgcolor,\LP@grid@linestyle] (#2,#3) rectangle ++(2,2);%
+ \draw[line width=\LP@normallines,fill=\LP@sbc@bgcolor,%
+ \LP@grid@linestyle]%
+ (#2,#3) rectangle ++(2,2);%
\begin{pgfonlayer}{LPforegroundtwo}%
- \fill[color=\LP@sbc@bgcolor] (\arabic{LP@counti},\arabic{LP@countii}) circle [radius=3.5pt*\LP@scale];%
- \node at (\arabic{LP@counti},\arabic{LP@countii}){\csname#1\endcsname#4};%
+ \fill[color=\LP@sbc@bgcolor]%
+ (\arabic{LP@counti},\arabic{LP@countii})%
+ circle [radius=3.5pt*\LP@scale];%
+ \node at (\arabic{LP@counti},\arabic{LP@countii})%
+ {\csname#1\endcsname#4};%
\end{pgfonlayer}%
}%
-%
\newcommand*\setcolorrow[2]%
{%
\setcounter{LP@counti}{1}%
\setcounter{LP@countii}{#1}%
- \forcsvlist\LP@setcolorrow@i{#2}%
-}%
-%
-\newcommand*\LP@setcolorrow@i[1]%
-{%
- \ifthenelse{\equal{#1}{0}}%
- {%
- \gdef\LP@HT@color{black}%
- \begin{puzzlebackground}%
- \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
- \end{puzzlebackground}%
- }%
- {%
- \expandafter\gdef\expandafter\LP@HT@color{LP@c@\romannumeral#1}%
- \begin{puzzlebackground}%
- \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
- \end{puzzlebackground}%
- \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{#1}%
- }%
- \stepcounter{LP@counti}%
-}%
-%
-\newcommand*\setcolorcolumn[2]%
-{%
- \setcounter{LP@counti}{#1}%
- \setcounter{LP@countii}{1}%
- \forcsvlist\LP@setcolorcolumn@i{#2}%
-}%
-%
-\newcommand*\LP@setcolorcolumn@i[1]%
-{%
- \ifthenelse{\equal{#1}{0}}%
- {%
- \gdef\LP@HT@color{black}%
- \begin{puzzlebackground}%
- \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
- \end{puzzlebackground}%
- }%
- {%
- \expandafter\gdef\expandafter\LP@HT@color{LP@c@\romannumeral#1}%
- \begin{puzzlebackground}%
- \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
- \end{puzzlebackground}%
- \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{#1}%
- }%
- \stepcounter{LP@countii}%
-}%
-%
-\def\LP@KKR@print@element#1%
-{%
- \if!\ifnum9<1#1!\else_\fi%
- \ifLP@KKR@solution%
- \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{#1}%
- \else%
- \fi%
- \else%
- #1%
- \fi%
-}%
-%
-\newcommand*\kakurorow[2]%
-{%
- \setcounter{LP@counti}{1}%
- \setcounter{LP@countii}{#1}%
- \foreach \LP@element in {#2}%
- {%
- \LP@KKR@print@element{\LP@element}%
- \stepcounter{LP@counti}%
- };%
-}%
-%
-\newcommand*\kakurocolumn[2]%
-{%
- \setcounter{LP@counti}{#1}%
- \setcounter{LP@countii}{1}%
- \foreach \LP@element in {#2}%
- {%
- \LP@KKR@print@element{\LP@element}%
- \stepcounter{LP@countii}%
- };%
-}%
-%
-\newcommand*\bridgesrow[2]%
-{%
- \setcounter{LP@counti}{1}%
- \setcounter{LP@countii}{#1}%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \LP@set@LP@color{\LP@env@prefix}%
\foreach \LP@element in {#2}%
{%
- \ifthenelse{\equal{\LP@element}{}}%
- {}%
+ \ifthenelse{\equal{\LP@element}{0}}%
{%
- \draw[fill=\LP@color] (\arabic{LP@counti},\arabic{LP@countii}) circle (0.5cm);%
- \node[scale=\LP@scale,font=\LP@fontsize] at (\arabic{LP@counti},\arabic{LP@countii}){\LP@element};%
+ \gdef\LP@HT@color{black}%
+ \begin{puzzlebackground}%
+ \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
+ \end{puzzlebackground}%
+ }%
+ {%
+ \expandafter\gdef\expandafter\LP@HT@color%
+ {LP@c@\romannumeral\LP@element}%
+ \begin{puzzlebackground}%
+ \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
+ \end{puzzlebackground}%
+ \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{\LP@element}%
}%
\stepcounter{LP@counti}%
- };%
+ }%
}%
-%
-\newcommand*\bridgescolumn[2]%
+\newcommand*\setcolorcolumn[2]%
{%
\setcounter{LP@counti}{#1}%
\setcounter{LP@countii}{1}%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \LP@set@LP@color{\LP@env@prefix}%
\foreach \LP@element in {#2}%
{%
- \ifthenelse{\equal{\LP@element}{}}%
- {}%
+ \ifthenelse{\equal{\LP@element}{0}}%
+ {%
+ \gdef\LP@HT@color{black}%
+ \begin{puzzlebackground}%
+ \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
+ \end{puzzlebackground}%
+ }%
{%
- \draw[fill=\LP@color] (\arabic{LP@counti},\arabic{LP@countii}) circle (0.5cm);%
- \node[scale=\LP@scale,font=\LP@fontsize] at (\arabic{LP@counti},\arabic{LP@countii}){\LP@element};%
+ \expandafter\gdef\expandafter\LP@HT@color%
+ {LP@c@\romannumeral\LP@element}%
+ \begin{puzzlebackground}%
+ \fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}%
+ \end{puzzlebackground}%
+ \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{\LP@element}%
}%
\stepcounter{LP@countii}%
- };%
+ }%
}%
-%
\newcommand*\fillcell[2]%
{%
\LP@set@LP@scale{\LP@env@prefix}%
@@ -593,61 +434,44 @@
\LP@set@LP@rows{\LP@env@prefix}%
\LP@set@LP@columns{\LP@env@prefix}%
\LP@ingrid{#1}{#2}{\LP@columns}{\LP@rows}{\LP@package}%
- \LP@setcellcontent{#1}{#2}{\LP@Block}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{\LP@Block}%
}%
-%
-% #1 row
-% #2 csv list
\newcommand*\fillrow[2]%
{%
\setcounter{LP@counti}{1}%
\setcounter{LP@countii}{#1}%
- \forcsvlist\LP@fillrow@i{#2}%
-}%
-%
-\newcommand*\LP@fillrow@i[1]%
-{%
- \ifthenelse{\equal{#1}{1}}%
- {\fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}}%
- {}%
- \stepcounter{LP@counti}%
+ \foreach \LP@element in {#2}%
+ {%
+ \ifthenelse{\equal{\LP@element}{1}}%
+ {\fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}}%
+ {}%
+ \stepcounter{LP@counti}%
+ }%
}%
-%
-% #1 column
-% #2 csv list
\newcommand*\fillcolumn[2]%
{%
\setcounter{LP@counti}{#1}%
\setcounter{LP@countii}{1}%
- \forcsvlist\LP@fillcolumn@i{#2}%
-}%
-%
-\newcommand*\LP@fillcolumn@i[1]%
-{%
- \ifthenelse{\equal{#1}{1}}%
- {\fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}}%
- {}%
- \stepcounter{LP@countii}%
+ \foreach \LP@element in {#2}%
+ {%
+ \ifthenelse{\equal{\LP@element}{1}}%
+ {\fillcell{\arabic{LP@counti}}{\arabic{LP@countii}}}%
+ {}%
+ \stepcounter{LP@countii}%
+ }%
}%
-%
\newcommand*\framearea[2]%
{%
\draw[line width=\LP@thicklines,color=#1] #2;%
}%
-%
\newcommand*\fillarea[2]%
{%
- \draw[line width=\LP@thicklines,fill=#1] #2 ;%
+ \draw[line width=\LP@thicklines,fill=#1] #2;%
}%
-%
\newcommand*\colorarea[2]%
{%
\fill[color=#1] #2 ;%
}%
-%
-% #1 column
-% #2 row
-% #3 csv list of directions
\newcommand*\tikzpath[3]%
{%
(#1\LP@rel@tikzpath,#2\LP@rel@tikzpath)%
@@ -679,7 +503,6 @@
\fi%
};%
}%
-%
\newcommand*\xtikzpath[3]%
{%
(#1\LP@rel@tikzpath,#2\LP@rel@tikzpath)%
@@ -711,7 +534,6 @@
\fi%
};%
}%
-%
\newcommand*\filldiagonals[1][yellow!20]%
{%
\LP@set@LP@columns{\LP@env@prefix}%
@@ -728,19 +550,22 @@
\setcounter{LP@whiledo@ii}{\LP@rows}%
\whiledo{\value{LP@whiledo@i}<\value{LP@counti}}%
{%
- \LP@setcellcontent{\arabic{LP@whiledo@i}}{\arabic{LP@whiledo@i}}{\LP@Block}%
- \LP@setcellcontent{\arabic{LP@whiledo@i}}{\arabic{LP@whiledo@ii}}{\LP@Block}%
+ \LP@G@setcellcontent[hcenter,vcenter]%
+ {\arabic{LP@whiledo@i}}{\arabic{LP@whiledo@i}}{\LP@Block}%
+ \LP@G@setcellcontent[hcenter,vcenter]%
+ {\arabic{LP@whiledo@i}}{\arabic{LP@whiledo@ii}}{\LP@Block}%
\stepcounter{LP@whiledo@i}%
\addtocounter{LP@whiledo@ii}{-1}%
}%
\end{puzzlebackground}%
\else%
\PackageError{\LP@package}%
- {non quadratic grid (\filldiagonals)}%
- {You tried to fill diagonals,\MessageBreak in a non quadratic grid (1,1) .. (\arabic{LP@counti},\arabic{LP@countii})\MessageBreak doesn't make sense!}%
+ {non quadratic grid (\filldiagonals)}%
+ {You tried to fill diagonals,\MessageBreak in a non quadratic%
+ grid (1,1) .. (\arabic{LP@counti},\arabic{LP@countii})%
+ \MessageBreak doesn't make sense!}%
\fi%
}%
-%
\newcommand*\framepuzzle[1][black]%
{%
\LP@set@LP@columns{\LP@env@prefix}%
@@ -749,25 +574,16 @@
\setcounter{LP@countii}{\LP@rows}%
\stepcounter{LP@counti}%
\stepcounter{LP@countii}%
- \draw[line width=\LP@thicklines,color=#1] (1,1)--(1,\arabic{LP@countii});%
- \draw[line width=\LP@thicklines,color=#1] (1,\arabic{LP@countii})--(\arabic{LP@counti},\arabic{LP@countii});%
- \draw[line width=\LP@thicklines,color=#1] (\arabic{LP@counti},\arabic{LP@countii})--(\arabic{LP@counti},1);%
- \draw[line width=\LP@thicklines,color=#1] (\arabic{LP@counti},1)--(1,1);%
-}%
-%
-\newcommand*\placecross[2]%
-{%
- \LP@setcellcontentC{#1}{#2}{\LP@Cross}%
-}%
-%
-\newcommand*\placemirror[3]%
-{%
- \LP@setcellcontentC{#1}{#2}{\LP@Mirror{#3}}%
-}%
-%
-\newcommand*\placearrow[3]%
-{%
- \LP@setcellcontentC{#1}{#2}{\LP@Arrow{#3}}%
+ \draw[line width=\LP@thicklines,color=#1]%
+ (1,1)--(1,\arabic{LP@countii});%
+ \draw[line width=\LP@thicklines,color=#1]%
+ (1,\arabic{LP@countii})--%
+ (\arabic{LP@counti},\arabic{LP@countii});%
+ \draw[line width=\LP@thicklines,color=#1]%
+ (\arabic{LP@counti},\arabic{LP@countii})--%
+ (\arabic{LP@counti},1);%
+ \draw[line width=\LP@thicklines,color=#1]%
+ (\arabic{LP@counti},1)--(1,1);%
}%
\newenvironment{puzzlebackground}%
{%
@@ -776,7 +592,6 @@
{%
\end{pgfonlayer}%
}%
-%
\newenvironment{puzzleforeground}%
{%
\begin{pgfonlayer}{LPforeground}%
@@ -784,363 +599,81 @@
{%
\end{pgfonlayer}%
}%
-%
-% around the grid
-%
\newcommand*\LP@bottomrow[1]%
{%
\LP@setrowcontents{#1}{1}{0}%
}%
-%
\newcommand*\LP@bottomrow@edge[1]%
{%
\LP@setrowcontents@edge{#1}{1}{0}%
}%
-%
\newcommand*\LP@leftcolumn[1]%
{%
\LP@setcolumncontents{#1}{0}{1}%
}%
-%
\newcommand*\LP@toprow[1]%
{%
- \LP@toprow@i{#1}{\LP@env@prefix}%
-}%
-%
-\newcommand*\LP@toprow@i[2]%
-{%
\LP@setrowcontents{#1}{1}{\theLP@rows}%
}%
-%
\newcommand*\LP@rightcolumn[1]%
{%
- \LP@rightcolumn@i{#1}{\LP@env@prefix}%
-}%
-%
-\newcommand*\LP@rightcolumn@i[2]%
-{%
\LP@setcolumncontents{#1}{\theLP@columns}{1}%
}%
-%
\newcommand*\LP@rightcolumn@edge[1]%
{%
- \LP@rightcolumn@edge@i{#1}{\LP@env@prefix}%
-}%
-%
-\newcommand*\LP@rightcolumn@edge@i[2]%
-{%
\LP@setcolumncontents@edge{#1}{\theLP@columns}{1}%
}%
-%
-% Presentation
-%
\newcommand*\titleformat[1]%
{%
\renewcommand*\LP@titleformat{#1}%
}%
\titleformat{\centering\Large\color{blue}}%
-%
\newcommand*\puzzlecounter{\theLP@puzzlecounter}%
-%
\newcommand*\setpuzzlecounter[1]%
{%
\setcounter{LP@puzzlecounter}{#1}%
}%
-%
-% #1 counterstyle
\newcommand*\LP@drawcounter[1]%
{%
\LP@set@LP@cvoffset{\LP@env@prefix}%
\csname LP@cs@#1\endcsname%
}%
-%
\newcommand*{\definecounterstyle}[2]%
{%
\expandafter\gdef\csname LP@cs@#1\endcsname{#2}%
}%
-%
\definecounterstyle{none}{}%
-\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}%
-\definecounterstyle{right}{\marginnote{\tikz\node[shape=rectangle,fill=yellow!40,inner sep=7pt,draw,rounded corners=3pt,thick]{\Huge\puzzlecounter};}[\LP@cvoffset]}%
-%
-\newcommand*\LP@Block{\tikz[scale=\LP@scale]\draw[line width=\LP@normallines,fill=\LP@color] (0,0) rectangle (1,1);}%
-%
-\newcommand*\LP@Arrow[1]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \def\LP@rotate{45}%
- \ifthenelse{\equal{#1}{LeftUp}}{\def\LP@rotate{135}}{}%
- \ifthenelse{\equal{#1}{LeftDown}}{\def\LP@rotate{225}}{}%
- \ifthenelse{\equal{#1}{RightDown}}{\def\LP@rotate{315}}{}%
- \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
- \tikz\draw[->,line width=\LPlinewidth,rotate=\LP@rotate,scale=\LP@scale] (0.1,.5) -- (0.9,.5);%
-}%
-%
-\newcommand*\LP@Cross%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}%
- \begin{pgfonlayer}{LPforeground}%
- \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
- \draw[line width=\LPlinewidth,scale=\LP@scale,color=LP@c@cross] (.35,.35) -- (0.65,.65) -- (.5,.5) -- (.65,.35)-- (.35,.65);%
- \end{pgfonlayer}%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@Mirror[1]%
-{%
- \def\LP@rotate{0}%
- \ifthenelse{\equal{#1}{V}}{\def\LP@rotate{90}}{}%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}%
- \begin{pgfonlayer}{LPforegroundtwo}%
- \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
- \draw[line width=\LPlinewidth,scale=\LP@scale,color=LP@c@mirror,rotate=\LP@rotate] (.35,.5) -- (0.65,.5);%
- \end{pgfonlayer}%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@Mine%
-{%
- \begin{tikzpicture}[scale=\LP@scale]%
- \fill[color=black] (.2,.5) -- (.5,.6) -- (.5,.4) -- cycle;%
- \fill[color=black] (.8,.5) -- (.5,.6) -- (.5,.4) -- cycle;%
- \fill[color=black] (.5,.8) -- (.4,.5) -- (.6,.5) -- cycle;%
- \fill[color=black] (.5,.2) -- (.4,.5) -- (.6,.5) -- cycle;%
- \shade[ball color=black] (.5,.5) circle (.225cm);%
- \end{tikzpicture}%
-}%
-\let\Mine\LP@Mine%
-%
-\newcommand*\LP@Portal%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale]%
- \fill[color=black] (0,0) -- (0,1) -- (.4,.5) -- (.4,0) -- cycle;%
- \fill[color=LP@c@tunnel@ii] (0,1) -- (1,1) -- (1,.5) -- (.4,.5) -- cycle;%
- \fill[color=LP@c@tunnel@i] (.4,0) rectangle (1,.5);%
- \draw[line width=\LP@normallines] (0,0) rectangle (1,1) ;%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\portal[2]%
-{%
- \begin{puzzlebackground}%
- \LP@setcellcontent{#1}{#2}{\LP@Portal}%
- \end{puzzlebackground}%
-}%
-%
-\newcommand*\tube[1]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \bgroup%
- \def\LP@rel@tikzpath{.5}%
- \begin{pgfonlayer}{LPbackgroundtwo}%
- \pgfsetcornersarced{\pgfpoint{3mm}{3mm}}%
- \draw[color=LP@c@tunnel!80!black, line width=.4cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel, line width=.38cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel!85, line width=.35cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel!70, line width=.32cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel!55, line width=.29cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel!45, line width=.25cm*\LP@scale] #1;%
- \draw[color=LP@c@tunnel!35, line width=.2cm*\LP@scale] #1;%
- \end{pgfonlayer}%
- \egroup%
-}%
-%
-\newcommand*\LP@Tree%
-{%
- \begin{tikzpicture}[scale=.07*\LP@scale]%
- \draw[fill=brown!95!black!95,line width=.1pt*\LP@scale]%
- (.75,-1) .. controls (.5,.5) and (.5,3) .. (0.5,4) --%
- (-0.5,4) .. controls (-.5,3) and (-.5,.5) .. (-.75,-1);%
- \shade[top color=green!50!black!60,draw=black,line width=.1pt*\LP@scale,bottom color=green!50!black]%
- (0,10) .. controls (0,8) and (1,7) .. (1.5,7)%
- .. controls (1,7) and (1,7) .. (0.5,7.25)%
- .. controls (1.5,5) and (2.5,4) .. (3,4)%
- .. controls (2,4) and (1.25,4) .. (1,4.5)%
- .. controls (2,2) and (3.5,2) .. (4,2)%
- .. controls (1,1) and (-1,1) .. (-4,2)%
- .. controls (-3.5,2) and (-2,2) .. (-1,4.5)%
- .. controls (-1.25,4) and (-2,4) .. (-3,4)%
- .. controls (-2.5,4) and (-1.5,5) .. (-0.5,7.25)%
- .. controls (-1,7) and (-1,7) .. (-1.5,7)%
- .. controls (-1,7) and (0,8) .. (0,10);%
- \end{tikzpicture}%
-}%
-%
-\let\Tree\LP@Tree%
-%
-\newcommand*\LP@Tent%
-{%
- \begin{tikzpicture}[scale=\LP@scale]%
- \draw[fill=yellow!50,line width=.1pt*\LP@scale] (.1,.1) -- (.6,.1) -- (.9,.5) -- (.75,.8) -- (.35,.6) -- cycle;%
- \draw[line width=.1pt*\LP@scale] (.35,.6) -- (.35,.1);%
- \draw[line width=.1pt*\LP@scale] (.35,.6) -- (.6,.1);%
- \end{tikzpicture}%
-}%
-%
-\let\Tent\LP@Tent%
-%
-\newcommand*\KKR[2]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \LP@set@LP@bgcolor{\LP@env@prefix}%
- \LP@set@LP@color{\LP@env@prefix}%
- \ifthenelse{\equal{\LP@bgcolor}{}}%
- {\gdef\LP@sr@bgcolor{white}}%
- {\gdef\LP@sr@bgcolor{\LP@bgcolor}}%
- \stepcounter{LP@counter@unique}%
- \begin{pgfonlayer}{LPdump}%
- \node [shape=rectangle,inner sep=0pt] (A_\theLP@counter@unique) at (\arabic{LP@counti}\LP@Pfive,\arabic{LP@countii}\LP@Pfive) {\tikz\draw[scale=\LP@scale,color=\LP@sr@bgcolor] (0.08,0.1) rectangle (0.92,0.9);};%
- \end{pgfonlayer}%
- \begin{puzzlebackground}%
- \fill[color=\LP@color] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,1);%
- \draw[line width=\LP@normallines] (\arabic{LP@counti},\arabic{LP@countii}) -- ++(0,1) -- ++(1,-1);%
- \end{puzzlebackground}%
- \node [shape=rectangle,inner sep=0pt,anchor=south west,scale=\LP@scale,font=\small] at (A_\theLP@counter@unique.south west) {#1};%
- \node [shape=rectangle,inner sep=0pt,anchor=north east,scale=\LP@scale,font=\small] at (A_\theLP@counter@unique.north east) {#2};%
-}%
-%
-\newcommand*\Black%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{puzzlebackground}%
- \fill[color=black] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,1);%
- \end{puzzlebackground}%
-}%
-%
-\newcommand*\LP@Diamond%
-{%
- \begin{tikzpicture}[scale=\LP@scale*.9]%
- \clip (.05,.905) rectangle (.95,.1);%
- \draw[line width=\LP@normallines,fill=yellow!20] (.5,.1) -- (.7,.9) -- (.3,.9) -- cycle;%
- \draw[line width=\LP@normallines,fill=orange!20] (.5,.1) -- (.7,.9) -- (.9,.8) -- cycle;%
- \draw[line width=\LP@normallines,fill=orange!20] (.5,.1) -- (.3,.9) -- (.1,.8) -- cycle;%
- \draw[line width=\LP@normallines] (.1,.8) -- (.9,.8);%
-\end{tikzpicture}%
-}%
-%
-\let\Diamond\LP@Diamond%
-%
-\newcommand*\LP@Star%
-{%
- \tikz\node[shape=star,fill=yellow,draw,scale=.8*\LP@scale,star point height=.25cm] {};%
-}%
-%
-\let\Star\LP@Star%
-%
-\newcommand*\LP@ArrowA[2][red]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
- \tikz\draw[->,line width=\LPlinewidth,rotate=#2,scale=\LP@scale,color=#1] (0.1,.5) -- (0.9,.5);%
-}%
-%
-\newcommand*\LP@c@stararrow{red}%
-\newcommand*\Right{\LP@ArrowA[\LP@c@stararrow]{0}}%
-\newcommand*\RightUp{\LP@ArrowA[\LP@c@stararrow]{45}}%
-\newcommand*\Up{\LP@ArrowA[\LP@c@stararrow]{90}}%
-\newcommand*\LeftUp{\LP@ArrowA[\LP@c@stararrow]{135}}%
-\newcommand*\Left{\LP@ArrowA[\LP@c@stararrow]{180}}%
-\newcommand*\LeftDown{\LP@ArrowA[\LP@c@stararrow]{225}}%
-\newcommand*\Down{\LP@ArrowA[\LP@c@stararrow]{270}}%
-\newcommand*\RightDown{\LP@ArrowA[\LP@c@stararrow]{315}}%
-%
-\newcommand*\LP@DarkCloud{\tikz[scale=0.7*\LP@scale]\fill[color=black!60] (0,0) rectangle (1,1);}%
-%
-\newcommand*\LP@Moon{\tikz[scale=0.7*\LP@scale]\fill[color=black!60] (0,0) circle (0.5cm);}%
-%
-\newcommand*\LP@MoonR%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
- \fill[color=yellow] (.5,0) arc (270:450:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonL%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
- \fill[color=yellow] (.5,0) arc (270:90:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonT%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
- \fill[color=yellow] (0,0.5) arc (180:0:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonB%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
- \fill[color=yellow] (0,0.5) arc (180:360:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonTL%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
- \fill[color=black!60] (1,.5) -- (.5,.5) -- (.5,0) arc (270:360:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonBL%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
- \fill[color=black!60] (1,.5) -- (.5,.5) -- (.5,1) arc (90:0:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonBR%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
- \fill[color=black!60] (0,.5) -- (.5,.5) -- (.5,1) arc (90:180:.5);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@MoonTR%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
- \fill[color=black!60] (0,.5) -- (.5,.5) -- (.5,0) arc (270:180:.5);%
- \end{tikzpicture}%
-}%
-%
-\let\Cloud\LP@DarkCloud%
-\let\Moon\LP@Moon%
-\let\MoonR\LP@MoonR%
-\let\MoonL\LP@MoonL%
-\let\MoonT\LP@MoonT%
-\let\MoonB\LP@MoonB%
-\let\MoonTL\LP@MoonTL%
-\let\MoonBL\LP@MoonBL%
-\let\MoonBR\LP@MoonBR%
-\let\MoonTR\LP@MoonTR%
-%
+\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%
+}%
+\definecounterstyle{right}{%
+ \marginnote{%
+ \tikz\node[shape=rectangle,fill=yellow!40,inner sep=7pt,draw,%
+ rounded corners=3pt,thick]%
+ {\Huge\puzzlecounter};%
+ }[\LP@cvoffset]%
+}%
+\newcommand*\LP@Block{%
+ \tikz[scale=\LP@scale]%
+ \draw[line width=\LP@normallines,fill=\LP@color]%
+ (0,0) rectangle (1,1);}%
\define@key{LP@Line}{double}[double]%
{%
\def\LP@Line@double{double}%
}%
-%
\define@key{LP@Line}{color}[LP@c@bridge]%
{%
\def\LP@Line@linecolor{#1}%
}%
-%
\define@key{LP@Line}{linewidth}[1mm]%
{%
\def\LP@Line@linewidth{#1}%
}%
-%
\newcommand*\LP@Line[2][]%
{%
\def\LP@Line@double{}%
@@ -1150,409 +683,119 @@
\LP@set@LP@scale{\LP@env@prefix}%
\begin{pgfonlayer}{LPbackgroundtwo}%
\ifthenelse{\equal{\LP@Line@double}{double}}%
- {\draw[double,double distance=\LP@Line@linewidth*\LP@scale,color=\LP@Line@linecolor, line width=\LP@Line@linewidth*\LP@scale] #2;}%
- {\draw[color=\LP@Line@linecolor, line width=\LP@Line@linewidth*\LP@scale] #2;}%
+ {\draw[double,double distance=\LP@Line@linewidth*\LP@scale,%
+ color=\LP@Line@linecolor,%
+ line width=\LP@Line@linewidth*\LP@scale] #2;}%
+ {\draw[color=\LP@Line@linecolor,%
+ line width=\LP@Line@linewidth*\LP@scale] #2;}%
\end{pgfonlayer}%
}%
-%
-\newcommand*\bridge[2][]%
-{%
- \LP@Line[#1]{#2}%
-}%
-%
-\newcommand*\LP@trackC%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale]%
- \pgfsetcornersarced{\pgfpoint{4mm*\LP@scale}{4mm*\LP@scale}}%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0,.5)--(.5,.5)--(.5,0);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@G@trackC[1][0]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
- \clip (0,0) rectangle (1,1);%
- \pgfsetcornersarced{\pgfpoint{4mm*\LP@scale}{4mm*\LP@scale}}%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0,.5)--(.5,.5)--(.5,0);%
- \end{tikzpicture}%
-}%
-%
-\let\CurveBL\LP@G@trackC%
-\newcommand*\CurveBR{\LP@G@trackC[90]}%
-\newcommand*\CurveTR{\LP@G@trackC[180]}%
-\newcommand*\CurveTL{\LP@G@trackC[270]}%
-%
-\newcommand*\LP@trackS%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale]%
- \draw[draw opacity=0] (.2,0) -- (.8,1);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (.5,0)--(.5,1);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@G@trackS[1][0]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
- \clip (0,0) rectangle (1,1);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (.5,0)--(.5,1);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\StraightV{\LP@G@trackS}%
-\newcommand*\StraightH{\LP@G@trackS[90]}%
-\let\Straight\StraightV%
-%
-\newcommand*\LP@trackCR%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale]%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0,0.5)--(1,.5);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0.5,0)--(.5,.2);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0.5,1)--(.5,.8);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\LP@G@trackCR[1][0]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
- \clip (0,0) rectangle (1,1);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0,0.5)--(1,.5);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0.5,0)--(.5,.2);%
- \draw[color=LP@c@track, line width=.3cm*\LP@scale] (0.5,1)--(.5,.8);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\CrossH{\LP@G@trackCR}%
-\newcommand*\CrossV{\LP@G@trackCR[90]}%
-\let\Cross\CrossH%
-%
-\newcommand*\LP@graveltrap%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \begin{tikzpicture}[scale=\LP@scale]%
- \clip (0,0) rectangle (1,1);%
- \fill[color=LP@c@track] (.5,.5) circle (.1cm);%
- \end{tikzpicture}%
-}%
-%
-\let\Graveltrap\LP@graveltrap%
-%
-\newcommand*\parkinglot[2]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \LP@set@LP@color{\LP@env@prefix}%
- \LP@set@LP@bgcolor{\LP@env@prefix}%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \ifthenelse{\equal{\LP@color}{}}%
- {\gdef\LP@c@parkinglot{black}}%
- {\gdef\LP@c@parkinglot{\LP@color}}%
- \ifthenelse{\equal{\LP@bgcolor}{}}%
- {\gdef\LP@c@bg@parkinglot{white}}%
- {\gdef\LP@c@bg@parkinglot{\LP@bgcolor}}%
- \setcounter{LP@counti}{#1}%
- \setcounter{LP@countii}{#2}%
- \stepcounter{LP@counti}%
- \stepcounter{LP@countii}%
- \draw[color=\LP@c@parkinglot,line width=\LP@normallines,fill=\LP@c@bg@parkinglot] (#1,#2) rectangle ++(2,2);%
- \node[color=\LP@c@parkinglot,font=\sffamily\bfseries\LP@fontsize] at (\arabic{LP@counti},\arabic{LP@countii}){P};%
-}%
-%
-\newcommand*\pitlane[3]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \LP@set@LP@color{\LP@env@prefix}%
- \ifthenelse{\equal{\LP@color}{}}%
- {\gdef\LP@c@pitlane{black}}%
- {\gdef\LP@c@pitlane{\LP@color}}%
- \ifthenelse{\equal{#3}{V}}%
- {\draw[color=black,line width=\LP@normallines,fill=\LP@c@pitlane] (#1,#2) rectangle ++(1,4);}%
- {\draw[color=black,line width=\LP@normallines,fill=\LP@c@pitlane] (#1,#2) rectangle ++(4,1);}%
-}%
-%
-\newcommand*\LP@trackline[3]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \pgfmathsetlength{\LP@length}{.1cm*\LP@scale}%
- \scalebox{\LP@tracks@scale}%
- {%
- \hspace{\LP@length}%
- \setcounter{LP@whiledo@i}{#1}%
- \whiledo{\arabic{LP@whiledo@i}>0}%
- {%
- \LP@trackS%
- \addtocounter{LP@whiledo@i}{-1}%
- }%
- \setcounter{LP@whiledo@i}{#2}%
- \whiledo{\arabic{LP@whiledo@i}>0}%
- {%
- \LP@trackC%
- \addtocounter{LP@whiledo@i}{-1}%
- }%
- \hspace{\LP@length}%
- \setcounter{LP@whiledo@i}{#3}%
- \whiledo{\arabic{LP@whiledo@i}>0}%
- {%
- \LP@trackCR%
- \addtocounter{LP@whiledo@i}{-1}%
- }%
- }%
-}%
-%
-\newcommand*\trackV[1]%
-{%
- \LP@set@LP@columns{\LP@env@prefix}%
- \setcounter{LP@counti}{\LP@columns}%
- \stepcounter{LP@counti}%
- \setcounter{LP@countii}{1}%
- \foreach \LP@c@straight/\LP@c@curve/\LP@c@cross in {#1}%
- {%
- \node[anchor=west] at (\arabic{LP@counti},\arabic{LP@countii}.5) {\LP@trackline{\LP@c@straight}{\LP@c@curve}{\LP@c@cross}};%
- \stepcounter{LP@countii}%
- };%
-}%
-%
-\newcommand*\trackH[1]%
-{%
- \setcounter{LP@counti}{1}%
- \setcounter{LP@countii}{1}%
- \foreach \LP@c@straight/\LP@c@curve/\LP@c@cross in {#1}%
- {%
- \node[anchor=west,rotate=-90] at (\arabic{LP@counti}.5,\arabic{LP@countii}) {\LP@trackline{\LP@c@straight}{\LP@c@curve}{\LP@c@cross}};%
- \stepcounter{LP@counti}%
- };%
-}%
-%
-\newcommand*\track[1]%
-{%
- \LP@set@LP@scale{\LP@env@prefix}%
- \LP@set@LP@bgcolor{\LP@env@prefix}%
- \ifthenelse{\equal{\LP@bgcolor}{}}%
- {\gdef\LP@c@bg@track{white}}%
- {\gdef\LP@c@bg@track{\LP@bgcolor}}%
- \bgroup%
- \def\LP@rel@tikzpath{.5}%
- \begin{pgfonlayer}{LPbackgroundtwo}%
- \pgfsetcornersarced{\pgfpoint{4.9mm*\LP@scale}{4.9mm*\LP@scale}}%
- \draw[decorate,decoration={show path construction,%
- lineto code={%
- \draw [\LP@c@bg@track,line width=0.15cm*\LP@scale,double=LP@c@track,double distance=.3cm*\LP@scale]%
- (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);},%
- curveto code={%
- \draw [LP@c@track,line width=0.3cm*\LP@scale] (\tikzinputsegmentfirst) .. controls%
- (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)%
- ..(\tikzinputsegmentlast);}}] #1;%
- \end{pgfonlayer}%
- \egroup%
-}%
-%
-\newcommand*\link[2][]%
-{%
- \LP@set@LP@color{\LP@env@prefix}%
- \bgroup%
- \def\LP@rel@tikzpath{.5}%
- \LP@Line[color=\LP@color,#1]{#2}%
- \egroup%
-}%
-%
-\newcommand*\mlline[1]%
-{%
- \draw[color=black, line width=\LP@thicklines] #1;%
-}%
-%
-\newcommand*\MasyuW%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \draw[color=black,fill=white] (0.5,0.5) circle (0.5cm);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\MasyuB%
-{%
- \begin{tikzpicture}[scale=0.7*\LP@scale]%
- \fill[color=black] (0.5,0.5) circle (0.5cm);%
- \end{tikzpicture}%
-}%
-%
-\newcommand*\masyuline[1]%
-{%
- \LP@set@LP@color{\LP@env@prefix}%
- \begin{puzzleforeground}%
- \bgroup%
- \def\LP@rel@tikzpath{.5}%
- \draw[color=\LP@color, line width=\LP@thicklines] #1;%
- \egroup%
- \end{puzzleforeground}%
-}%
-%
-\newcommand*\PMH[1]%
-{%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \setcounter{LP@counti}{\LP@fe@column}%
- \setcounter{LP@countii}{\LP@fe@row}%
- \draw[line width=\LP@thicklines,fill=white] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(2,1);%
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
- \stepcounter{LP@counti}
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
- };%
-}%
-%
-\newcommand*\MPH[1]%
-{%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \setcounter{LP@counti}{\LP@fe@column}%
- \setcounter{LP@countii}{\LP@fe@row}%
- \draw[line width=\LP@thicklines,fill=white] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(2,1);%
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
- \stepcounter{LP@counti}
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
- };%
-}%
-%
-\newcommand*\PMV[1]%
-{%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \setcounter{LP@counti}{\LP@fe@column}%
- \setcounter{LP@countii}{\LP@fe@row}%
- \draw[line width=\LP@thicklines,fill=white] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,2);%
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
- \stepcounter{LP@countii}
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
- };%
-}%
-%
-\newcommand*\MPV[1]%
-{%
- \LP@set@LP@fontsize{\LP@env@prefix}%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \setcounter{LP@counti}{\LP@fe@column}%
- \setcounter{LP@countii}{\LP@fe@row}%
- \draw[line width=\LP@thicklines,fill=white] (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,2);%
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
- \stepcounter{LP@countii}
- \node[font=\LP@fontsize\bfseries] at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
- };%
-}%
-%
-\newcommand*\magnetsH[1]%
-{%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \draw[line width=\LP@thicklines,fill=white] (\LP@fe@column,\LP@fe@row) rectangle ++(2,1);%
- };%
-}%
-%
-\newcommand*\magnetsV[1]%
-{%
- \foreach \LP@fe@column/\LP@fe@row in {#1}%
- {%
- \draw[line width=\LP@thicklines,fill=white] (\LP@fe@column,\LP@fe@row) rectangle ++(1,2);%
- };%
-}%
-%
-% get package options with prefix
-%
\newcommand*\LP@set@LP@scale[1]%
{%
\expandafter\xdef\expandafter\LP@scale{\csname #1@scale\endcsname}%
}%
-%
\newcommand*\LP@set@LP@color[1]%
{%
\expandafter\xdef\expandafter\LP@color{\csname #1@color\endcsname}%
}%
-%
\newcommand*\LP@set@LP@rows[1]%
{%
\expandafter\xdef\expandafter\LP@rows{\csname #1@rows\endcsname}%
}%
-%
\newcommand*\LP@set@LP@columns[1]%
{%
\expandafter\xdef\expandafter\LP@columns{\csname #1@columns\endcsname}%
}%
-%
\newcommand*\LP@set@LP@cvoffset[1]%
{%
\expandafter\xdef\expandafter\LP@cvoffset{\csname #1@cvoffset\endcsname}%
}%
-%
\newcommand*\LP@set@LP@bgcolor[1]%
{%
\expandafter\xdef\expandafter\LP@bgcolor{\csname #1@bgcolor\endcsname}%
}%
-%
+\newcommand*\LP@set@LP@extracells[1]%
+{%
+ \expandafter\xdef\expandafter\LP@extracells{\csname #1@extracells\endcsname}%
+}%
\newcommand*\LP@set@LP@fontsize[1]%
{%
- % can't expand \Large
\expandafter\gdef\expandafter\LP@fontsize{\csname #1@fontsize\endcsname}%
}%
-%
\newcommand*\LP@set@env@prefix[1]%
{%
\gdef\LP@env@prefix{#1}%
}%
-%
\newcommand*\LP@set@package[1]%
{%
\gdef\LP@package{#1}%
}%
-%
\newcommand*\setgridlinestyle[1]%
{%
\def\LP@grid@linestyle{#1}%
}%
-%
\newcommand*\setnormallinewidth[1]%
{%
\def\LP@normallines{#1}%
}%
-%
\newcommand*\setthicklinewidth[1]%
{%
\def\LP@thicklines{#1}%
}%
-%
-% generic logicpuzzle environment and options
-%
+\newcommand*\puzzlestrut%
+{%
+ \LP@set@LP@rows{\LP@env@prefix}%
+ \ifthenelse{\equal{\LP@package}{nonogram}}%
+ {%
+ \LP@set@LP@extracells{\LP@env@prefix}%
+ \setcounter{LP@counti}{\LP@rows}% max row
+ \stepcounter{LP@counti}%
+ \addtocounter{LP@counti}{\LP@NG@extracells}%
+ \draw[line width=\LP@thicklines, transparent]%
+ (1,1) -- (1,\arabic{LP@counti});%
+ }{}%
+}%
+\newcommand*\setTikZpreset[1]%
+{%
+ \tikzset{%
+ LPpreset/.style={#1}%
+ }%
+}%
+\setTikZpreset{line cap=rect,line join=round}%
\newcommand*\LP@LP@init@prefix{LP@LP}%
\newcommand*\LP@LP@init@package{logicpuzzle}%
-%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{rows}{5}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{columns}{5}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{scale}{1}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{counterstyle}{none}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{color}{}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{bgcolor}{}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{width}{5.1cm}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{cvoffset}{-23pt}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{title}{}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{titleindent}{0cm}%
-\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}{titlewidth}{5.1cm}%
-\LP@define@choicekey@fontsize{\LP@LP@init@prefix}{\LP@LP@init@package}{Large}%
-%
-\ExecuteOptionsX{rows,columns,width,fontsize,scale,bgcolor,cvoffset,counterstyle,title,titleindent,titlewidth}%
-%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{rows}{5}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{columns}{5}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{scale}{1}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{counterstyle}{none}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{color}{}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{bgcolor}{}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{width}{5.1cm}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{cvoffset}{-23pt}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{title}{}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{titleindent}{0cm}%
+\LP@define@key{\LP@LP@init@prefix}{\LP@LP@init@package}%
+{titlewidth}{5.1cm}%
+\LP@define@choicekey@fontsize{\LP@LP@init@prefix}%
+{\LP@LP@init@package}{Large}%
+\ExecuteOptionsX{rows,columns,width,fontsize,scale,bgcolor%
+,cvoffset,counterstyle,title,titleindent,titlewidth}%
\ProcessOptionsX\relax%
-%
\let\logicpuzzlecell\setcell%
-%
\newcommand*\logicpuzzlesetup[1]%
{%
\setkeys{logicpuzzle.sty}{#1}%
}%
-%
\newenvironment{logicpuzzle}[1][]%
{%
\setkeys{logicpuzzle}{#1}%
@@ -1565,9 +808,12 @@
\begin{minipage}[t]{\LP@LP@width}%
\ifthenelse{\equal{\LP@LP@title}{}}%
{\par\enspace\par}% empty
- {\enspace\par\noindent\hspace{\LP@LP@titleindent}\parbox{\LP@LP@titlewidth}{\strut\LP@titleformat\LP@LP@title}\vspace{3mm}\par}%
+ {\enspace\par\noindent\hspace{\LP@LP@titleindent}%
+ \parbox{\LP@LP@titlewidth}{\strut\LP@titleformat\LP@LP@title}%
+ \vspace{3mm}\par}%
\begin{tikzpicture}[scale=\LP@LP@scale]%
- \LP@drawbackground{1}{1}{\LP@LP@columns}{\LP@LP@rows}{\LP@LP@bgcolor}%
+ \LP@drawbackground{1}{1}{\LP@LP@columns}{\LP@LP@rows}%
+ {\LP@LP@bgcolor}%
\LP@drawgrid{1}{1}{\LP@LP@columns}{\LP@LP@rows}{1cm}%
}%
{%
@@ -1576,7 +822,7 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
\RequirePackage{lpenv}%
-%
-\endinput% \ No newline at end of file
+\endinput
+%%
+%% End of file `logicpuzzle.sty'.