% !TeX TXS-program:compile = txs:///arara
% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
\documentclass[11pt,a4paper]{ltxdoc}
\usepackage{amsmath}
\usepackage{kpfonts}
\usepackage{inconsolata}
\usepackage[T1]{fontenc}
\usepackage[scale=0.875]{cabin}
\usepackage{tikz-triminos}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{tabularray}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [tikz-triminos]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\let\TikZ\tikzlogo
\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
\def\TPversion{0.1.0}
\def\TPdate{20/01/2025}
\usepackage{tcolorbox}
\tcbuselibrary{breakable,skins,hooks,listingsutf8}
\lstset{
language=[LaTeX]TeX,%
basicstyle=\ttfamily,%
keywordstyle={\color{blue}},%
classoffset=0,%
keywords={},%
alsoletter={-},%
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
morekeywords={tkz-triminos},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
morekeywords={\tkztriminos},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
morekeywords={},%
keywordstyle={\color{orange}}
}
\newtcblisting{DemoCode}[1]{%
enhanced,width=\linewidth,%
bicolor,size=title,%
colback=cyan!10!white,%
colbacklower=cyan!5!white,%
colframe=cyan!75!black,%
listing options={%
breaklines=true,%
breakatwhitespace=true,%
style=tcblatex,basicstyle=\small\ttfamily,%
tabsize=4,%
commentstyle={\itshape\color{gray}},
keywordstyle={\color{blue}},%
classoffset=0,%
keywords={\usepackage,\includegraphics,xstring,listofitems,\tikzset,\readlist,\showitems,\xintFor,\xintSeq},%
alsoletter={-},%
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
morekeywords={tikz-triminos},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
morekeywords={\tkztriminos},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
morekeywords={size,font,decocolor,decoration,showtxtlogo,showiconlogo,bgcolor,txtlogo,iconlogo,scaledeco,fontdeco},%
keywordstyle={\color{orange}}
},%
#1
}
\newtcbinputlisting\DemoCodeFile[1]{%
enhanced,width=\linewidth,%
bicolor,size=title,%
colback=lightgray!10!white,%
colbacklower=lightgray!5!white,%
colframe=lightgray!75!black,%
listing options={%
breaklines=true,%
breakatwhitespace=true,%
style=tcblatex,
basicstyle=\scriptsize\ttfamily,%
tabsize=4,%
commentstyle={\itshape\color{gray}},%
%lastline=148
},%
breakable,
listing only,%
listing file={#1}
}
\NewDocumentCommand\ShowCode{ m }{%
\lstinline{#1}%
}
\begin{document}
\thispagestyle{empty}
\begin{center}
\begin{minipage}{0.88\linewidth}
\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
\begin{center}
\renewcommand{\arraystretch}{1.25}%
\begin{tabular}{c}
{\Huge \texttt{tikz-triminos}}\\
\\
{\LARGE Single or several TriMinos,} \\
{\LARGE made with Ti\textit{k}Z\ldots} \\
\\
{\small \texttt{Version \TPversion{} -- \TPdate}}
\end{tabular}
\end{center}
\end{tcolorbox}
\end{minipage}
\end{center}
\begin{center}
\begin{tabular}{c}
\texttt{Cédric Pierquet}\\
{\ttfamily c pierquet -- at -- outlook . fr}\\
\texttt{\url{
https://forge.apps.education.fr/pierquetcedric/packages-latex}} \\
\end{tabular}
\end{center}
\hrule
\vfill
\begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only}
%single TriMino
\tkztriminos{One § Two § \faHatWizard}~~\tkztriminos{\faHatWizard § Three § Two}
\end{tcblisting}
\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
\hfill\tkztriminos<scale=0.85,transform shape>{One § Two § \faHatWizard}~~\tkztriminos<scale=0.85,transform shape>{\faHatWizard § Three § Two}\hfill~
\end{tcolorbox}
\begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only}
%multiple TriMino (9 or 12)
\tkztriminos[keys]<tikz options>{list of values}
\end{tcblisting}
\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
\hfill\tkztriminos%
[size=5cm,showiconlogo,bgcolor=teal!15,font=\large,iconlogo={\scalebox{3}[3]{\textcolor{orange}{\faBahai}}},decocolor=orange]%
<scale=0.5,rotate=90,transform shape>%
{%
$1+1$ § $2$ §
$2+2$ § $4$ §
$3+3$ § ${6}$ §
{$x_{1}=\frac{-3-\sqrt{41}}{6}$ ; $x_{2}=\frac{-3+\sqrt{41}}{6}$} § $9x^{2}+9x-8$ §
$5+5$ § $10$ §
${6}+6$ § $12$ §
$7+7$ § $14$ §
$8+8$ § $16$ §
${9}+{9}$ § $18$ §
$10+10$ § $20$ §
$11+11$ § $22$ §
$12+12$ § $24$ §
$13+13$ § $26$ §
$14+14$ § $28$ §
$15+15$ § $30$ §
$16+16$ § $32$ §
$17+17$ § $34$ §
$18+18$ § $36$
}\hfill~
\end{tcolorbox}
\vfill~
\hrule
\vspace*{2.5mm}
\textit{Inspirations, with \texttt{CC\,BY-NC-SA\,4.0} license, come from \url{
https://schule.paul-matthies.de/Trimino.php}}.
\vspace*{2.5mm}
\hrule
\vspace*{2.5mm}
{\tiny\itshape Yes, it's -- again -- a package "clearly too limited which simply aligns, linearly and without any real programmation, the high-level macros of the packages \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|tikz|, \texttt{listofitems}, \texttt{xstring}, \texttt{settobox} and \texttt{simplekv}". But if you don't want to use it, it's easy\ldots don't load it ! If you want to take ownership of the package, with better programming, it's easy too\ldots just ask !}
\vspace*{2.5mm}
\hrule
\pagebreak
\phantomsection
\hypertarget{matoc}{}
\tableofcontents
\vspace*{5mm}
%\hrule
\pagebreak
\section{Loading, useful packages, purposes and acknowledgments}
\subsection{Loading and useful packages}
In order to load \lstinline[language={[latex]TeX},basicstyle=\ttfamily]{tikz-triminos}, simply use:
\begin{DemoCode}{listing only}
\usepackage{tikz-triminos}
\end{DemoCode}
%Loaded packages are \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|tikz| (with librairies \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|calc| and \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|decorations text|), \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|ifthen|, \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|simplekv|, \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|listofitems|, \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|fontawesome5| and \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|settobox|.
\subsection{Purposes and acknowledgments}
The purposes of this small package is to provide simple tool to create \textsf{TriMinos} (1 or 9 or 12) with automatic positionning of texts.
\smallskip
\textit{Inspiration come from \url{
https://schule.paul-matthies.de/Trimino.php} (CC BY-SA 4.0)}.
\section{Usage}
\subsection{Main macro}
In order to create (single or multiple) \textsf{TriMinos}, simple use:
\begin{DemoCode}{listing only}
\tkztriminos[keys]<tikz options>{list of values}
\end{DemoCode}
For \texttt{list of values} argument (seperated with \texttt{§}):
\begin{itemize}
\item 3 values can be given (so 1 \textsf{TriMino}) ;
\item 19 values can be given (so 9 \textsf{TriMinos}, with 5 \textit{jokers}) ;
\item 25 values can be given (so 12 \textsf{TriMinos}, with 10 \textit{jokers}) ;
\item 36 values can be given (so 12 full \textsf{TriMinos}).
\end{itemize}
Moreover:
\begin{itemize}
\item if the text is too long for the \textsf{TriMino}, the code adjusts its width ;
\item icons of graphicx elements can be used ;
\item with \textit{jokers}, the final value is the \textit{joker}.
\end{itemize}
\begin{DemoCode}{}
%default output
\tkztriminos{value 1 § value 2 § a long long value 3}
\end{DemoCode}
\pagebreak
\subsection{TikZ styles}
Few \TikZ\ styles are available, and they can be modified.
\begin{DemoCode}{listing only}
%sides of TriMino
\tikzset{tkztriminoside/.style={thick}}
%labels (with \tkztriminofont given by key)
\tikzset{tkztriminolabel/.style={font=\tkztriminofont,inner sep=1pt}}
%decoration (with \tkztriminocolor given by key)
\tikzset{tkztriminosidedeco/.style={semithick,draw=black,fill=\tkztriminocolor}}
\end{DemoCode}
\subsection{Keys}
Available keys, to be given within \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|[...]| are:
\begin{itemize}
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|size| := size of \textsf{TriMino}\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|5cm|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|font| := font for texts\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|\Large|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|decoration| :=boolean for showing the \textit{inner} decoration\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|true|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|decocolor| := color of the optional \textit{inner} decoration\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|lightgray|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|showtxtlogo| := boolean for showing optional circular logo text\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|false|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|txtlogo| := text for optional circular logo\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|TriMino~TriMino~TriMino~|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|fontdeco| := font for optional circular logo\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|\tiny\sffamily|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|showiconlogo| := boolean for showing optional graphic logo\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|false|)
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|iconlogo| := graphic element for center logo
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|bgcolor| := optional background color of \textsf{TriMino}
\item \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|scaledeco| :=scale for \textit{inner} decoration\hfill(default \lstinline[language={[latex]TeX},basicstyle=\ttfamily]|0.25|)
\end{itemize}
\pagebreak
\section{Examples}
\subsection{One TriMino}
\begin{DemoCode}{}
\tkztriminos%
[showiconlogo,size=4cm,bgcolor=yellow!15,decocolor=teal!75,font=\large]
{$(x+1)(x+2)$ § $x^2+2x+1$ § $(x-7)^2-4$}
\end{DemoCode}
\begin{DemoCode}{}
\tkztriminos[showtxtlogo]{%
\faHatWizard\,--\,\faHatWizard\,--\,\faHatWizard
§
\faPython\,--\,\faPython\,--\,\faPython
§
\faTimes\,--\,\faTimes\,--\,\faTimes
}
\end{DemoCode}
\subsection{Several TriMinos}
\begin{DemoCode}{}
\tkztriminos%
[size=5cm,showiconlogo,bgcolor=orange!15,font=\large,decocolor=purple,%
iconlogo={\scalebox{2.15}[2.15]{\textcolor{blue!75!black}{\faPuzzlePiece}}}]%
<scale=0.75,transform shape>%
{%
$1+1$ § $2$ §
$2+2$ § $4$ §
$3+3$ § $6$ §
{$x_{1}=\frac{-3-\sqrt{41}}{6}$ ; $x_{2}=\frac{-3+\sqrt{41}}{6}$} § $9x^{2}+9x-8$ §
$5+5$ § $10$ §
$6+6$ § $12$ §
$7+7$ § $14$ §
$8+8$ § $16$ §
$9+9$ § $18$ §
$10+10$ § $20$ §
$11+11$ § $22$ §
$12+12$ § $24$ §
Joker
}
\end{DemoCode}
\pagebreak
\begin{DemoCode}{}
\tkztriminos%
[showiconlogo,iconlogo={\includegraphics[height=0.75cm]{pfl-checked}}]%
{1a§1b§2a§2b§3a§3b§4a§4b§5a§5b§6a§6b§7a§7b§8a§8b§9a§9b§joker}
\end{DemoCode}
\pagebreak
\section{History}
\texttt{0.1.0: Initial version}
\end{document}