summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-04-27 03:01:43 +0000
committerNorbert Preining <norbert@preining.info>2024-04-27 03:01:43 +0000
commit71f3eefe319b1194e0470ee83dd8723b3288f8d4 (patch)
tree503b3ee87a27155262bbddff29f79ad8d14edf15 /graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
parentcb867271b21bfe7bea226cbe72cc596124933dfc (diff)
CTAN sync 202404270301
Diffstat (limited to 'graphics/pgf/contrib/jigsaw/jigsaw-doc.tex')
-rw-r--r--graphics/pgf/contrib/jigsaw/jigsaw-doc.tex195
1 files changed, 76 insertions, 119 deletions
diff --git a/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex b/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
index 18ff47f514..d52b2fb216 100644
--- a/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
+++ b/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
@@ -11,91 +11,40 @@
% See http://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[parskip=half]{scrartcl}
-
-% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\usepackage[english]{babel}
-\usepackage[bitstream-charter]{mathdesign}
-%\usepackage{duckuments}
-\usepackage{jigsaw}
-\usetikzlibrary{matrix}
-\usepackage[most]{tcolorbox}
-\usepackage[paper=a4paper,margin=2.9cm]{geometry}
-\usepackage{url}
-\usepackage{xspace}
-\usepackage{scrlayer-scrpage}
-\usepackage[hang,flushmargin,bottom]{footmisc}
-\usepackage[colorlinks=true,breaklinks=true,urlcolor=duckblue,linkcolor=duckblue,citecolor=duckblue,filecolor=duckblue]{hyperref}
-
-% macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\CTAN}{\textsc{CTAN}\xspace}
-\newcommand{\TikZ}{Ti\emph{k}Z\xspace}
-\newcommand{\miktex}{MiK\TeX\xspace}
-\newcommand{\texlive}{\TeX{}Live\xspace}
-
-% customisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\definecolor{duckblue}{RGB}{0,70,140}
-\definecolor{marmotred}{RGB}{140,20,40}
-\addtokomafont{sectioning}{\color{teal}}
-\addtokomafont{date}{\normalsize}
-\addtokomafont{author}{\normalsize}
-\setlength{\footnotemargin}{0.7em}
-
-% from https://tex.stackexchange.com/a/147848
-\def\beginlstdelim#1#2#3%
-{%
- \def\endlstdelim{#2\egroup}%
- \ttfamily#1\bgroup\color{#3}\aftergroup\endlstdelim%
-}
-
-\lstdefinestyle{jigsawstyle}{%
- language={[latex]TeX},
- tabsize=2,
- breaklines,
- basicstyle=\footnotesize\ttfamily,
- commentstyle={\color{teal}\slshape},
- columns=fullflexible,
- texcsstyle=*\color{duckblue}\bfseries,
- keywordstyle=\color{red!60!black}\bfseries,
- morekeywords={tikzpicture,scope},
- moretexcs={path,node,draw,clip,pic,includegraphics,color,piece,tile,jigsaw},
- delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
- moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
- moredelim={[s][\color{gray}]{<}{>}},
-% moredelim = **[is][\beginlstdelim{\{}{\}}{orange!70!black}]{\{}{\}},
-% moredelim = **[is][\beginlstdelim{[}{]}{orange!70!black}]{[}{]},
-}
-
-\tcbset{%
- colframe=teal,
- arc=2mm,
- fonttitle=\bfseries,
- sidebyside,
- listing options={style=jigsawstyle},
- center lower,
- righthand width=5.7cm,
- bottom=0pt,
- top=0pt,
- sidebyside gap=10pt
-}
-
-\lstset{style=jigsawstyle}
+% !TeX program = txs:///arara
+% arara: latexmk: {
+% arara: --> engine: pdflatex,
+% arara: --> options: [
+% arara: --> '-shell-escape',
+% arara: --> '-synctex=1',
+% arara: --> '-interaction=nonstopmode',
+% arara: --> ]
+% arara: --> }
+\documentclass{scrartcl}
% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{The jigsaw package}
\subtitle{Drawing jigsaw pieces in \TikZ}
\author{%
- \texorpdfstring{
- \begin{tikzpicture}
- \piece[lightgray!70!white]{1}{-1}{1}{-1}
- \end{tikzpicture}\\[0.8em]
- \texttt{samcarter}\\
- \url{https://github.com/samcarter/jigsaw}\\
- \url{https://www.ctan.org/pkg/jigsaw}
- }{samcarter}}
-\date{Version v0.4 \textendash{} 2023/02/21}
+ \texorpdfstring{
+ \begin{tikzpicture}
+ \piece[lightgray!70!white]{1}{-1}{1}{-1}
+ \end{tikzpicture}\\[0.8em]
+ \texttt{samcarter}\\
+ \url{https://github.com/samcarter/jigsaw}\\
+ \url{https://www.ctan.org/pkg/jigsaw}
+ }{samcarter}}
+\date{Version v0.5 \textendash{} 2024/04/25}
+
+\usepackage[
+ themecolor=samlgreen
+]{\jobname-settings}
+
+\colorlet{teal}{samlgreen}
+\colorlet{violet}{samviolet}
+
+\usepackage{jigsaw}
+\usetikzlibrary{matrix}
\begin{document}
\maketitle
@@ -114,20 +63,22 @@ Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \text
An individual jigsaw piece can be drawn with
\begin{tcolorbox}[title={Jigsaw piece}]
-\begin{lstlisting}
+\begin{samcode}
\piece{<bottom>}{<right>}{<top>}{<left>}
-\end{lstlisting}
+\end{samcode}
\tcblower
\begin{tikzpicture}
- \piece{1}{-1}{1}{1}
+\piece{1}{-1}{1}{1}
\end{tikzpicture}
\end{tcolorbox}
-wherein arguments specify for each side if it should be a tab (-1), a straight line (0) or a slot (1). The following example will produce a jigsaw piece with one tab sticking out, one straight boarder and two slots:
+wherein arguments specify for each side if it should be a tab (-1), a straight line (0) or a slot (1).
+
+The following example will produce a jigsaw piece with one tab sticking out, one straight boarder and two slots:
\begin{tcblisting}{title={Jigsaw piece}}
\begin{tikzpicture}
- \piece{1}{-1}{0}{1}
+ \piece{1}{-1}{0}{1}
\end{tikzpicture}
\end{tcblisting}
@@ -135,7 +86,7 @@ With an optional argument, a fill colour can be passed to the piece:
\begin{tcblisting}{title={Filled piece}}
\begin{tikzpicture}
- \piece[teal]{-1}{1}{-1}{1}
+ \piece[teal]{-1}{1}{-1}{1}
\end{tikzpicture}
\end{tcblisting}
@@ -143,69 +94,73 @@ Or to change the line colour:
\begin{tcblisting}{title={Coloured piece}}
\begin{tikzpicture}
- \color{teal}\piece{-1}{-1}{1}{1}
+ \color{teal}\piece{-1}{-1}{1}{1}
\end{tikzpicture}
\end{tcblisting}
-The piece shape is also available as \TikZ \verb|pic|:
+The piece shape is also available as \TikZ \saminline|pic|:
\begin{tcblisting}{title={\texttt{pic}}}
\begin{tikzpicture}
- \path (2,-3) pic[
- fill=lightgray, draw=teal, ultra thick,
+ \path (2,-3) pic[
+ fill=lightgray, draw=teal, thick,
scale=2, pic text={Some Text},
pic text options={text=violet}
]{piece={1}{-1}{1}{0}};
\end{tikzpicture}
\end{tcblisting}
-Using the \TikZ \verb|pic| allows to apply various \TikZ option like \verb|scale| or add text in the centre of the piece via \verb|pic text={...}|.
+Using the \TikZ \saminline|pic| allows to apply various \TikZ option like \saminline|scale| or add text in the centre of the piece via \saminline|pic text={...}|.
The shapes of the jigsaw pieces are designed to seamlessly fit into each other which allows to produce tile patters in various ways:
\begin{tcblisting}{title={Manual tile pattern}}
\begin{tikzpicture}
\begin{scope}
- \piece[teal]{1}{1}{0}{0}
+ \piece[teal]{1}{1}{0}{0}
\end{scope}
\begin{scope}[xshift=1cm]
- \piece[lightgray]{1}{0}{0}{-1}
+ \piece[lightgray]{1}{0}{0}{-1}
\end{scope}
\begin{scope}[yshift=-1cm]
- \piece[lightgray]{0}{-1}{-1}{0}
+ \piece[lightgray]{0}{-1}{-1}{0}
\end{scope}
\begin{scope}[xshift=1cm,yshift=-1cm]
- \piece[teal]{0}{0}{-1}{1}
+ \piece[teal]{0}{0}{-1}{1}
\end{scope}
\end{tikzpicture}
\end{tcblisting}
\begin{tcblisting}{title={Manual pattern using \texttt{\textbackslash pic}}}
\begin{tikzpicture}
-\pic at (0,1) [fill=lightgray,draw]
- {piece={1}{1}{0}{0}};
-\pic at (1,1) [fill=teal]
- {piece={1}{0}{0}{-1}};
-\pic at (0,0) [fill=teal]
- {piece={0}{-1}{-1}{0}};
-\pic at (1,0) [fill=lightgray,draw]
- {piece={0}{0}{-1}{1}};
+ \pic at (0,1) [fill=lightgray,draw]
+ {piece={1}{1}{0}{0}};
+ \pic at (1,1) [fill=teal,draw]
+ {piece={1}{0}{0}{-1}};
+ \pic at (0,0) [fill=teal,draw]
+ {piece={0}{-1}{-1}{0}};
+ \pic at (1,0) [fill=lightgray,draw]
+ {piece={0}{0}{-1}{1}};
\end{tikzpicture}
\end{tcblisting}
\begin{tcblisting}{title={Manual pattern using Ti\emph{k}Z matrix}}
% \usetikzlibrary{matrix}
\begin{tikzpicture}
-\matrix [nodes=draw]{
-\pic [fill=lightgray]{piece={-1}{1}{0}{0}};&
-\pic [fill=teal]{piece={1}{0}{0}{-1}}; \\
-\pic [fill=teal]{piece={0}{-1}{1}{0}}; &
-\pic [fill=lightgray]{piece={0}{0}{-1}{1}};\\
-};
+ \matrix [nodes=draw]{
+ \pic [fill=lightgray]
+ {piece={-1}{1}{0}{0}}; &
+ \pic [fill=teal]
+ {piece={1}{0}{0}{-1}}; \\
+ \pic [fill=teal]
+ {piece={0}{-1}{1}{0}}; &
+ \pic [fill=lightgray]
+ {piece={0}{0}{-1}{1}};\\
+ };
\end{tikzpicture}
\end{tcblisting}
-Manually position each jigsaw piece at the correct position can be tedious, therefore the command \lstinline|\tile[<colour>]{<bottom>}{<right>}{<top>}{<left>}| was added. It can be used outside of of the \lstinline|tikzpicture| environment to place the pieces besides each other like normal letters in a text. Line breaks have to be added at the appropriate positions and one has to be careful not to introduce additional spaces between the jigsaw pieces from unprotected line endings.
+Manually position each jigsaw piece at the correct position can be tedious, therefore the command \saminline|\tile[<colour>]{<bottom>}{<right>}{<top>}{<left>}| was added. It can be used outside of of the \saminline|tikzpicture| environment to place the pieces besides each other like normal letters in a text. Line breaks have to be added at the appropriate positions and one has to be careful not to introduce additional spaces between the jigsaw pieces from unprotected line endings.
\begin{tcblisting}{title={The tile command}}
\tile[violet]{1}{1}{0}{0}%
@@ -221,23 +176,25 @@ Manually position each jigsaw piece at the correct position can be tedious, ther
\tile[violet]{0}{0}{1}{1}
\end{tcblisting}
-Finally there is also the possibility to automatically generate complete jigsaw puzzles using the command \lstinline|\jigsaw{<x>}{<y>}|, with \lstinline|<x>| and \lstinline|<y>| the number of rows and columns, respectively.
+Finally there is also the possibility to automatically generate complete jigsaw puzzles using the command \saminline|\jigsaw{<x>}{<y>}|, with \saminline|<x>| and \saminline|<y>| the number of rows and columns, respectively.
-\begin{tcblisting}{title={Automatic jigsaw generation}}
+\begin{tcblisting}{title={Automatic jigsaw generation},righthand width=6.1cm}
\begin{tikzpicture}
-\jigsaw{6}{4}
+ \jigsaw{6}{4}
\end{tikzpicture}
\end{tcblisting}
This automatically generated jigsaw can also be overlaid on a picture:
-\begin{tcblisting}{title={Overlaid image}}
+\begin{tcblisting}{title={Overlaid image},righthand width=6.1cm}
\begin{tikzpicture}
-\clip (0,0) rectangle (6,4);
-\node at (3,2) {%
- \includegraphics[width=6cm,height=4cm]{example-image-duck}%
-};
-\jigsaw{6}{4}
+ \clip (0,0) rectangle (6,4);
+ \node at (3,2) {%
+ \includegraphics[
+ width=6cm,height=4cm
+ ]{example-image-duck}%
+ };
+ \jigsaw{6}{4}
\end{tikzpicture}
\end{tcblisting}