diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/jigsaw/jigsaw-doc.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/jigsaw/jigsaw-doc.tex | 195 |
1 files changed, 76 insertions, 119 deletions
diff --git a/Master/texmf-dist/doc/latex/jigsaw/jigsaw-doc.tex b/Master/texmf-dist/doc/latex/jigsaw/jigsaw-doc.tex index 18ff47f514d..d52b2fb216f 100644 --- a/Master/texmf-dist/doc/latex/jigsaw/jigsaw-doc.tex +++ b/Master/texmf-dist/doc/latex/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} |