<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% !TeX TXS-program:compile = txs:///arara
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[table,svgnames]{xcolor}
\usepackage{amsmath,amssymb}
\usepackage{PixelArtTikz}
\usepackage{couleurs-fr}
\usepackage{fontawesome5}
\usepackage{enumitem}
\usepackage{tabularray}
\usepackage{multicol}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [PixelArtTikz]}
\cfoot{\sffamily\small - \thepage{} -}
\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}

\usepackage{hologo}
\providecommand\tikzlogo{Ti\textit{k}Z}
\providecommand\TeXLive{\TeX{}Live\xspace}
\providecommand\PSTricks{\textsf{PSTricks}\xspace}
\let\pstricks\PSTricks
\let\TikZ\tikzlogo
\newcommand\TableauDocumentation{%
	\begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}}
		{\huge \LaTeX} &amp; &amp; &amp; &amp; &amp;\\
		&amp; {\huge \hologo{pdfLaTeX}} &amp; &amp; &amp; &amp; \\
		&amp; &amp; {\huge \hologo{LuaLaTeX}} &amp; &amp; &amp; \\
		&amp; &amp; &amp; {\huge \TikZ} &amp; &amp; \\
		&amp; &amp; &amp; &amp; {\huge \TeXLive} &amp; \\
		&amp; &amp; &amp; &amp; &amp; {\huge \hologo{MiKTeX}} \\
	\end{tblr}
}

\usepackage{hyperref}
\urlstyle{same}
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}

\def\TPversion{0.1.8}
\def\TPdate{5 mai 2025}

\usepackage{minted2}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\NewTCBListing{PresentationCode}{ O{blue} m }{%
	sharp corners=downhill,enhanced,arc=12pt,skin=bicolor,%
	colback=#1!1!white,colframe=#1!75!black,colbacklower=white,%
	attach boxed title to top right={yshift=-\tcboxedtitleheight},title=Code \LaTeX,%
	boxed title style={%
		colframe=#1!75!black,colback=#1!15!white,%
		,sharp corners=downhill,arc=12pt,%
	},%
	fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
	listing engine=minted,minted style=colorful,
	minted language=tex,minted options={tabsize=4,fontsize=\footnotesize,autogobble},
	#2
}

\usepackage[french]{babel}

\newcommand\Cle[1]{{\bfseries\sffamily\textlangle #1\textrangle}}

\begin{document}

\pagestyle{fancy}

\thispagestyle{empty}

\vspace{2cm}

\begin{center}
	\begin{minipage}{0.75\linewidth}
	\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
		\begin{center}
			\begin{tabular}{c}
				{\Huge \texttt{PixelArtTikz [fr]}}\\
				\\
				{\LARGE Des PixelArts, en Ti\textit{k}Z}, \\
				\\
				{\LARGE avec solution et couleurs.} \\
			\end{tabular}
			
			\medskip
			
			{\small \texttt{Version \TPversion{} -- \TPdate}}
		\end{center}
	\end{tcolorbox}
\end{minipage}
\end{center}

\vspace{0.5cm}

\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}

\vspace{0.25cm}

{$\blacktriangleright$~~Des commandes pour afficher des PixelArts.}

\smallskip

{$\blacktriangleright$~~Des commandes pour dÃ©couper des PixelArts en plusieurs parties.}

\smallskip

{$\blacktriangleright$~~Environnement pour complÃ©ter Ã©ventuellement le PixelArt.}

\smallskip

{$\blacktriangleright$~~Des PixelArts avec anamorphose cylindrique, des \textit{mini-}PixelArts.}

\smallskip

\vspace{1cm}

\begin{center}
\begin{filecontents*}[overwrite]{test1.csv}
-,-,-,-,-,-,4,4,4,4,-,-,-,-,-,-
-,-,-,-,4,4,1,1,1,1,4,4,-,-,-,-
-,-,-,4,1,1,1,1,1,1,1,1,4,-,-,-
-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-,4,1,9,9,1,1,1,1,1,1,9,9,1,4,-
-,4,9,9,9,9,4,4,4,4,9,9,9,9,4,-
-,4,9,4,9,9,4,4,4,4,9,4,9,9,4,-
-,4,1,9,9,9,4,4,4,4,9,9,9,1,4,-
-,-,4,1,1,9,4,4,4,4,9,1,1,4,-,-
-,-,4,1,1,1,4,4,4,4,1,1,1,4,-,-
-,-,-,4,1,1,1,4,4,1,1,1,4,-,-,-
-,-,4,3,1,1,1,1,1,1,1,1,3,4,-,-
-,4,6,3,1,1,1,1,1,1,1,1,3,6,4,-
-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-,4,6,4,1,1,1,4,4,1,1,1,4,6,4,-
2,2,4,2,4,4,4,2,2,4,4,4,2,4,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-,-,-,-,-,4,1,1,1,1,4,-,-,-,-,-
-,-,-,-,-,-,4,1,1,4,-,-,-,-,-,-
-,-,-,-,-,-,-,4,4,-,-,-,-,-,-,-
\end{filecontents*}

\PixelArtTikz[Codes=123469,Style=\ttfamily,Unite=0.35]{test1.csv}
~~
\PixelArtTikz[Codes=123469,Symboles={A,B,C,D,E,F},Symb,Style=\ttfamily,Unite=0.35]{test1.csv}
~~
\PixelArtTikz[Codes=123469,Couleurs={red,brown,yellow,black,blue,white},Correction,Unite=0.35]{test1.csv}
\end{center}

\vspace{0.5cm}

\vfill

\hrule

\medskip

\TableauDocumentation

\medskip

\hrule

\medskip

\newpage

\phantomsection
\hypertarget{matoc}{}

\tableofcontents

\newpage

\part{Introduction}

\section{Le package PixelArtTikz}

\subsection{Introduction}

L'idÃ©e est de \textit{proposer}, dans un environnement Ti\textit{k}Z, une commande permettant de gÃ©nÃ©rer des grilles PixelArt.

Les donnÃ©es sont \textit{lues} Ã&nbsp; partir d'un fichier \textsf{csv}, externe au fichier \textsf{tex} ou dÃ©clarÃ© en interne grÃ¢ce Ã&nbsp; l'environnement \texttt{filecontents}.

\medskip

Avant toute chose, quelques petites infos sur les donnÃ©es au format \textsf{csv}, surtout dans l'optique de sa lecture et de son traitement par les commandes :

\begin{itemize}
	\item le fichier de donnÃ©es \textsf{csv} doit Ãªtre formatÃ© avec le sÃ©parateur dÃ©cimal \og , \fg ;
	\item des cases vides seront codÃ©es par \og \texttt{-} \fg.
\end{itemize}

Le fichier \textsf{csv} peut Ãªtre dÃ©clarÃ© directement dans le fichier \textsf{tex}, grÃ¢ce Ã&nbsp; l'environnement \textsf{filecontents} (intÃ©grÃ© en natif sur les derniÃ¨res versions de \LaTeX) :

\begin{PresentationCode}{listing only}
\begin{filecontents*}{nomfichier.csv}
	A,B,C,D
	A,B,D,C
	B,A,C,D
	B,A,D,C
\end{filecontents*}
\end{PresentationCode}

Ã€ la compilation, le fichier \textsf{nomfichier.csv} sera crÃ©Ã© automatiquement, et l'option \Cle{[overwrite]} permet (logiquement) de propager les modifications au fichier \textsf{csv}.

\subsection{Chargement du package, et option}

Le package \textit{central} est ici \textsf{csvsimple}, qui permet de lire et traiter le fichier \textsf{csv}.

Il est \og disponible \fg{} en version \hologo{LaTeX2e} ou en version \hologo{LaTeX3}. Par dÃ©faut, \textsf{PixelArtTikz} le charge en version \hologo{LaTeX3}, mais une \textsf{option} est disponible pour une \textit{rÃ©tro-compatibilitÃ©} avec la version \hologo{LaTeX2e}.

\smallskip

L'option \Cle{[csvii]} permet de passer l'appel au package en version \hologo{LaTeX2e}.

\begin{PresentationCode}{listing only}
\usepackage{PixelArtTikz}                     %chargement du package version 3
%qui charge :
%\RequirePackage{expl3}
%\RequirePackage[l3]{csvsimple}

\usepackage[csvii]{PixelArtTikz}              %chargement du package version 2
%qui charge :
%\RequirePackage[legacy]{csvsimple}
\end{PresentationCode}

Ã€ noter qu'une version alternative \textit{simple}, avec le package \textsf{datatool}, est Ã©galement disponible.

\subsection{Packages utilisÃ©s}

Le package est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.

\medskip

Il charge les packages et librairies suivantes :

\begin{itemize}
	\item \texttt{tikz}, \texttt{xintexpr} et \texttt{xinttools};
	\item \texttt{xstring}, \texttt{simplekv} et \texttt{listofitems} ;
	\item \texttt{multicol} (pour le \textit{dÃ©coupage}).
\end{itemize}

\pagebreak

\subsection{Commandes et environnement}

Il existe trois maniÃ¨res de reprÃ©senter un PixelArt :

\begin{itemize}
	\item soit par une commande autonome et indÃ©pendante ;
	\item soit par un environnement Ti\textit{k}Z dans lequel du code pourra Ãªtre \textit{rajoutÃ©} ;
	\item soit par \textit{dÃ©coupage} de la grille en plusieurs (travail collaboratif).
\end{itemize}

\begin{PresentationCode}{listing only}
%Commande autonome
\PixelArtTikz[clÃ©s]&lt;options tikz&gt;{fichier.csv}

%Commande semi-autonome, Ã&nbsp; intÃ©grer dans un environnement tikz
\PixelArtTikz*[clÃ©s]{fichier.csv}

%environnement
\begin{EnvPixelArtTikz}[clÃ©s]&lt;options tikz&gt;{fichier.csv}
	%code tikz
\end{EnvPixelArtTikz}
\end{PresentationCode}

\begin{PresentationCode}{listing only}
%Affichage d'un bloc prÃ©cis (si dÃ©coupage)
\PixelArtTikzBloc[clÃ©s]&lt;options tikz&gt;{fichier.csv}{dÃ©coupage}{num bloc}

%Affichage des blocs (si dÃ©coupage)
\DecoupPixelArtTikz(*)[clÃ©s]&lt;options tikz&gt;{fichier.csv}{dÃ©coupage}

%Affichage d'une 'aide'
\AideGrillePixelArtTikz(*)[Echelle]{fichier.csv}{dÃ©coupage}
\end{PresentationCode}

\section{ComplÃ©ments}

\subsection{Les couleurs}

Concernant les couleurs, l'utilisateur utilisera celles disponibles avec les packages chargÃ©s.

%\smallskip

%La prÃ©sente documentation a Ã©tÃ© compilÃ©e avec le package \textsf{xcolor}, chargÃ© avec les options \Cle{[table,svgnames]}.

\smallskip

Les couleurs disponibles sans autre package sont donc :

\smallskip

\begin{tblr}{width=\linewidth,colspec={*{10}{X[m,c]}},cells={font=\small\ttfamily}}
	\SetCell{bg=magenta} magenta &amp;
	\SetCell{bg=cyan} cyan &amp;
	\SetCell{bg=blue,fg=white} blue &amp;
	\SetCell{bg=green} green &amp;
	\SetCell{bg=red} red &amp;
	\SetCell{bg=darkgray,fg=white} darkgray &amp;
	\SetCell{bg=olive,fg=white} olive &amp;
	\SetCell{bg=lime} lime &amp;
	\SetCell{bg=brown} brown &amp;
	\SetCell{bg=lightgray} lightgray \\
	\SetCell{bg=white} white &amp;
	\SetCell{bg=gray,fg=white} gray &amp;
	\SetCell{bg=black,fg=white} black &amp;
	\SetCell{bg=yellow} yellow &amp;
	\SetCell{bg=violet,fg=white} violet &amp;
	\SetCell{bg=teal,fg=white} teal &amp;
	\SetCell{bg=purple,fg=white} purple &amp;
	\SetCell{bg=pink} pink &amp;
	\SetCell{bg=orange} orange &amp; \\
\end{tblr}

\smallskip

Pour des couleurs \textit{francisÃ©es}, le package \texttt{couleurs-fr} pourra Ãªtre utile.

\subsection{Petit apartÃ© sur les fichiers csv}

\textsf{CSV} dÃ©signe un format de fichiers dont le rÃ´le est de prÃ©senter des donnÃ©es sÃ©parÃ©es par des virgules. Il s'agit d'une maniÃ¨re simplifiÃ©e d'afficher des donnÃ©es afin de les rendre transmissibles d'un programme Ã&nbsp; un autre.

\smallskip

Dans notre cas, le fichier \textsf{csv} contiendra les \textit{codes} qui seront analysÃ©s un par un et ligne par ligne pour avoir le rendu par \textit{code}, \textit{symbole} ou \textit{couleur}.

\medskip

Il \underline{doit} Ãªtre prÃ©parÃ© avec des caractÃ¨res (codes) \textit{simples} pour que le code de \textsf{PixelArtTikz} puisse fonctionner.

\pagebreak

\part{Commandes principales}

\section{La commande principale}

\subsection{Exemple introductif}

La commande \texttt{\textbackslash PixelArtTikz} nÃ©cessite de connaÃ®tre :

\begin{itemize}
	\item le fichier \textsf{csv} Ã&nbsp; traiter ;
	\item la liste (en fait sous forme de chaÃ®ne) des codes utilisÃ©s dans le fichier \textsf{csv} (comme \texttt{234679} ou \texttt{ABCDJK}\ldots);
	\item la liste des symboles (Ã©ventuellement !) Ã&nbsp; afficher dans les cases s'il y a ambiguÃ¯tÃ©, comme \texttt{25,44,12} ou \texttt{AA,AB,AC};
	\item la liste des couleurs (si la correction est demandÃ©e), dans le mÃªme ordre que la liste des caractÃ¨res.
\end{itemize}

On peut donc commencer par crÃ©er le fichier \textsf{csv} qui sera lu et interprÃ©tÃ© par les commandes du package. Le fichier peut-Ãªtre crÃ©Ã© directement dans la code du fichier \textsf{tex}.

\begin{PresentationCode}{}
%dÃ©claration du fichier csv
\begin{filecontents*}[overwrite]{base.csv}
A,B,C,D
A,B,D,C
B,A,D,C
C,A,B,D
\end{filecontents*}
\end{PresentationCode}

\begin{PresentationCode}{}
%notice et PixelArt
\begin{center}
	\begin{tblr}{colspec={*{4}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}}
		\SetCell[c=4]{c} Notice &amp; &amp; &amp; \\
		A &amp; B &amp; C &amp; D \\
		45 &amp; 22 &amp; 1 &amp; 7 \\
		Noir &amp; Vert &amp; Jaune &amp; Rouge \\
	\end{tblr}
\end{center}

\PixelArtTikz[Codes=ABCD,Style=\large\sffamily,Unite=0.85]{base.csv}
~~
\PixelArtTikz[Codes=ABCD,Symboles={45,22,1,7},Symb,Style=\large\sffamily,Unite=0.85]{base.csv}
~~
\PixelArtTikz[Codes=ABCD,Couleurs={black,green,yellow,red},Correction,Unite=0.85]{base.csv}
~~
\PixelArtTikz[Codes=ABCD,Couleurs={black,green,yellow,red},Correction,BordCases=false,Unite=0.85]{base.csv}
\end{PresentationCode}

\pagebreak

\subsection{ClÃ©s et options}

\begin{PresentationCode}{listing only}
\PixelArtTikz[clÃ©s]&lt;options tikz&gt;{fichier.csv}
\end{PresentationCode}

Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose des \textsf{ClÃ©s} nÃ©cessaires au bon fonctionnement de la commande :

\begin{itemize}
	\item la clÃ© \Cle{Codes} contient la \textit{chaÃ®ne} des codes \textit{simples} du  fichier \textsf{csv} ;
	\item la clÃ© \Cle{Couleurs} qui contient la \textit{liste} des couleurs associÃ©es ;
	\item la clÃ© \Cle{Symboles} qui contient la \textit{liste Ã©ventuelles} des caractÃ¨res alternatifs Ã&nbsp; afficher dans les cases ;
	\item la clÃ© boolÃ©enne \Cle{Correction} qui permet de colorier le PixelArt ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{Symb} qui permet d'afficher les caractÃ¨res \textit{alternatifs} ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{BordCases} qui permet d'afficher les bords des cases de la correction ;\hfill{}dÃ©faut \textsf{true}
	\item la clÃ© \Cle{Decoupage} pour afficher des lignes de dÃ©coupage Ã©ventuel :
	\begin{itemize}
		\item sous la forme \Cle{&lt;nb lig bloc&gt;x&lt;nb col bloc&gt;} pour spÃ©cifier la dimension des blocs ;
		\item sous la forme \Cle{&lt;nb blocs V&gt;+&lt;nb blocs H&gt;} pour spÃ©cifier le nombre de blocs ;
	\end{itemize}
	\item la clÃ© \Cle{Style} qui permet de spÃ©cifier le style des caractÃ¨res. \hfill{}dÃ©faut \textsf{scriptsize}
\end{itemize}

Le second argument, \textit{optionnel} et entre \texttt{&lt;...&gt;} sont des options -- en langage Ti\textit{k}Z -- Ã&nbsp; passer Ã&nbsp; l'environnement qui sert de base au PixelArt.

\medskip

Le troisiÃ¨me argument, \textit{obligatoire}, est le nom du fichier \textsf{csv} Ã&nbsp; utiliser.

\vspace{1cm}

On rappelle que le fichier peut Ãªtre crÃ©Ã© au prÃ©alable, et placÃ© dans le rÃ©pertoire du fichier, ou bien il peut Ãªtre crÃ©Ã© \textit{en direct}, Ã&nbsp; l'aide du package \textsf{filecontents} (chargÃ© par \LaTeX).

\begin{PresentationCode}{}
%crÃ©ation du fichier csv
\begin{filecontents*}[overwrite]{test1.csv}
	-,-,-,-,-,-,4,4,4,4,-,-,-,-,-,-
	-,-,-,-,4,4,1,1,1,1,4,4,-,-,-,-
	-,-,-,4,1,1,1,1,1,1,1,1,4,-,-,-
	-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
	-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
	-,4,1,9,9,1,1,1,1,1,1,9,9,1,4,-
	-,4,9,9,9,9,4,4,4,4,9,9,9,9,4,-
	-,4,9,4,9,9,4,4,4,4,9,4,9,9,4,-
	-,4,1,9,9,9,4,4,4,4,9,9,9,1,4,-
	-,-,4,1,1,9,4,4,4,4,9,1,1,4,-,-
	-,-,4,1,1,1,4,4,4,4,1,1,1,4,-,-
	-,-,-,4,1,1,1,4,4,1,1,1,4,-,-,-
	-,-,4,3,1,1,1,1,1,1,1,1,3,4,-,-
	-,4,6,3,1,1,1,1,1,1,1,1,3,6,4,-
	-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
	-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
	-,4,6,4,1,1,1,4,4,1,1,1,4,6,4,-
	2,2,4,2,4,4,4,2,2,4,4,4,2,4,2,2
	2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
	-,-,-,-,-,4,1,1,1,1,4,-,-,-,-,-
	-,-,-,-,-,-,4,1,1,4,-,-,-,-,-,-
	-,-,-,-,-,-,-,4,4,-,-,-,-,-,-,-
\end{filecontents*}
\end{PresentationCode}

\begin{PresentationCode}{}
%codes simples et sans ambiguÃ¯tÃ©
%une case vide sera codÃ©e par -
\PixelArtTikz[Codes=123469,Style=\ttfamily,Unite=0.35]{test1.csv}
~~
\PixelArtTikz[Codes=123469,Couleurs={red,brown,yellow,black,blue,white},Correction,Unite=0.35]{test1.csv}
~~
\PixelArtTikz[Codes=123469,Couleurs={red,brown,yellow,black,blue,white},Correction,Unite=0.35,BordCases=false]%
	{test1.csv}
\end{PresentationCode}

\pagebreak

Dans l'exemple suivant, les \textit{symboles} Ã&nbsp; afficher ne peuvent pas servir de \textit{codes}, donc on utilise les options liÃ©es Ã&nbsp; \Cle{Symboles} pour s'affranchir de cette limitation.

\begin{PresentationCode}{}
%codes Ã&nbsp; afficher, avec utiliser des symboles

\begin{filecontents*}[overwrite]{cap.csv}
	-,-,-,-,-,-,-,-,D,-,D,-,D,-,-,-,-,-,-,-,-,-
	-,D,D,-,-,-,-,D,D,D,D,D,D,-,-,D,D,D,D,-,-,-
	D,-,-,D,-,D,D,F,F,F,F,F,F,D,D,-,-,-,-,D,-,-
	-,D,-,-,D,F,F,F,-,-,F,F,F,F,F,D,-,D,D,-,-,-
	-,-,D,D,F,F,F,-,F,F,-,F,F,F,F,F,D,D,-,-,-,-
	-,-,-,D,F,F,F,F,F,F,F,F,F,F,F,F,D,-,-,-,-,-
	-,-,-,D,F,J,J,J,J,J,J,J,F,F,F,F,D,-,-,-,-,-
	-,-,-,D,J,-,-,-,J,-,-,-,J,J,F,F,D,-,-,-,-,-
	-,-,-,D,J,-,D,-,J,-,D,-,J,J,B,B,D,-,-,-,-,-
	-,-,-,D,J,-,-,-,J,-,-,-,J,J,B,B,D,-,-,-,-,-
	-,-,-,D,C,J,J,J,J,J,J,J,J,C,C,C,D,-,-,-,-,-
	-,-,-,D,C,C,C,C,C,C,C,C,C,C,C,D,D,D,-,-,-,-
	-,-,-,D,C,C,C,D,D,D,D,D,D,C,D,A,A,A,D,-,-,-
	-,-,-,D,F,C,C,C,C,C,C,C,C,D,A,-,-,-,A,D,-,-
	-,-,-,D,F,C,F,C,C,C,C,F,D,A,-,A,A,A,-,A,D,-
	-,-,D,C,F,F,F,F,C,C,F,D,A,-,A,F,F,F,A,-,A,D
	-,-,D,C,F,F,F,F,F,F,F,D,A,-,A,F,-,F,A,-,A,D
	-,-,D,A,D,-,A,-,A,-,A,D,A,-,A,F,F,F,A,-,A,D
	-,-,-,D,D,-,A,-,A,-,A,-,D,A,-,A,A,A,-,A,D,-
	-,-,-,-,-,D,D,F,D,D,D,D,F,D,A,-,-,-,A,D,-,-
	-,-,-,-,-,-,D,A,D,-,-,D,-,-,D,A,A,A,D,-,-,-
	-,-,-,-,-,-,D,D,D,-,-,D,D,D,D,D,D,D,-,-,-,-
\end{filecontents*}

\PixelArtTikz[Codes=ABCDFJ,Symboles={1,2,3,4,6,10},Symb,Style=\tiny\sffamily,Unite=0.35]{cap.csv}
~~
\PixelArtTikz[Codes=ABCDFJ,Couleurs={red,brown,yellow,black,blue,gray},Correction,Unite=0.35]{cap.csv}
\end{PresentationCode}

\pagebreak

\subsection{Symboles dans une liste}

Ã€ noter qu'il est possible de donner comme symboles des listes dans lesquelles seront choisies alÃ©atoirement les symboles.

\begin{PresentationCode}{}
%codes Ã&nbsp; afficher, avec utiliser des symboles "alÃ©taoires" dans une liste

\begin{filecontents*}[overwrite]{testlist.csv}
A,B,C,A
A,B,B,C
B,A,C,B
C,A,B,C
\end{filecontents*}

\textbf{Notice : }

Multiples de 5 : Rouge\\
Multiples de 3 : Vert\\
Multiples de 2 : Bleu

\PixelArtTikz[Codes=ABC,Symboles={5Â§25Â§35,3Â§9Â§21Â§27,2Â§4Â§8Â§14Â§16},Symb,Style=\large\sffamily,Unite=0.85]{testlist.csv}
\hspace{5mm}
\PixelArtTikz[Codes=ABC,Symboles={5Â§25Â§35,3Â§9Â§21Â§27,2Â§4Â§8Â§14Â§16},Symb,Style=\large\sffamily,Unite=0.85]{testlist.csv}
\hspace{5mm}
\PixelArtTikz[Codes=ABC,Couleurs={red,green,blue},Correction,Style=\large\sffamily,Unite=0.85]{testlist.csv}
\end{PresentationCode}

\pagebreak

\subsection{Commande Ã©toilÃ©e}

La commande \textit{Ã©toilÃ©e} \texttt{\textbackslash PixelArtTikz*} permet d'intÃ©grer le PixelArt dans un environnement crÃ©Ã© par l'utilisateur. Cela permet par exemple de pouvoir rajouter du code en parallÃ¨le du PixelArt.

\smallskip

Il est Ã&nbsp; noter que, dans ce cas :

\begin{itemize}
	\item l'argument \textit{optionnel} entre \texttt{&lt;...&gt;} est inutile ;
	\item la clÃ© \Cle{Unite} n'intervient plus dans le tracÃ© (elle peut Ãªtre passÃ©e directement dans l'environnement !)
\end{itemize}

\begin{PresentationCode}{}
\begin{center}
	\begin{tikzpicture}[scale=0.5]
		%grille pour visualiser le positionnement
		\draw[very thin,gray,xstep=1,ystep=1] (0,0) grid (17,-24) ;
		\foreach \x in {0,1,...,17} \draw[very thin,gray] (\x,-3pt)--(\x,3pt)%
		node[above,font=\scriptsize\sffamily] {\x} ;
		\foreach \y in {0,-1,...,-24} \draw[very thin,gray] (3pt,\y)--(-3pt,\y)%
		node[left,font=\scriptsize\sffamily] {\y} ;
		%le PixelArt
		\PixelArtTikz*[Codes=123469,Couleurs={red,brown,yellow,black,blue,white},Correction]{test1.csv}
		%du code rajoutÃ©
		\filldraw[blue] (14,-1) circle[radius=1] ;
		\filldraw[yellow] (14,-1) circle[radius=0.8] ;
		\draw[green,very thick,&lt;-,&gt;=latex] (15,-1) to[bend left=30] (18,-2)%
		node[right,font=\scriptsize\sffamily] {rajoutÃ© en Ti\textit{k}Z} ;
	\end{tikzpicture}
\end{center}
\end{PresentationCode}

\pagebreak

\section{Environnement PixelArt}

\subsection{Commande et options}

Le package \textsf{PixelArtTikz} propose Ã©galement un environnement pour crÃ©er un PixelArt, et pouvoir rajouter des Ã©lÃ©ments en marge du PixelArt.

\begin{itemize}
	\item L'environnement est crÃ©Ã© autour de Ti\textit{k}Z et le code rajoutÃ© le sera dans un langage Ti\textit{k}Z !
	\item Le code rajoutÃ© le sera, dans ce cas, \textit{au-dessus} du PixelArt !
\end{itemize}

Le fonctionnement global est le mÃªme que pour la commande autonome.

\begin{PresentationCode}{listing only}
	\begin{EnvPixelArtTikz}[clÃ©s]&lt;options tikz&gt;{fichier.csv}
		%code(s) tikz qui seront au-dessus du PixelArt
	\end{EnvPixelArtTikz}
\end{PresentationCode}

Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose des \textsf{ClÃ©s} nÃ©cessaires au bon fonctionnement de la commande :

\begin{itemize}
	\item la clÃ© \Cle{Codes} contient la \textit{chaÃ®ne} des codes \textit{simples} du  fichier \textsf{csv} ;
	\item la clÃ© \Cle{Couleurs} qui contient la \textit{liste} des couleurs associÃ©es ;
	\item la clÃ© \Cle{Symboles} qui contient la \textit{liste Ã©ventuelles} des caractÃ¨res alternatifs Ã&nbsp; afficher dans les cases ;
	\item la clÃ© boolÃ©enne \Cle{Correction} qui permet de colorier le PixelArt ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{Symb} qui permet d'afficher les caractÃ¨res \textit{alternatifs} ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{BordCases} qui permet d'afficher les bords des cases de la correction ;\hfill{}dÃ©faut \textsf{true}
	\item la clÃ© \Cle{Style} qui permet de spÃ©cifier le style des caractÃ¨res. \hfill{}dÃ©faut \textsf{scriptsize}
\end{itemize}

Le second argument, \textit{optionnel} et entre \texttt{&lt;...&gt;} sont des options -- en langage Ti\textit{k}Z -- Ã&nbsp; passer Ã&nbsp; l'environnement qui sert de base au PixelArt.

\medskip

Le troisiÃ¨me argument, \textit{obligatoire}, est le nom du fichier \textsf{csv} Ã&nbsp; utiliser.

\subsection{Exemple}

Les symboles affichÃ©s dans les cases sont situÃ©s aux nÅ“uds de coordonnÃ©es $(c\,;\,-l)$ oÃ¹ $l$ et $c$ sont les numÃ©ros de ligne et de colonne correspondants Ã&nbsp; la position de la donnÃ©e dans le fichier \textsf{csv}.

\begin{PresentationCode}{}
\begin{center}
	\begin{EnvPixelArtTikz}%
		[Codes=123469,Couleurs={red,brown,yellow,black,blue,white},Correction,Unite=0.25]
		{test1.csv}
		\filldraw[blue] (14,-1) circle[radius=1] ;
		\filldraw[yellow] (14,-1) circle[radius=0.8] ;
		\draw[green,very thick,&lt;-,&gt;=latex] (15,-1) to[bend left=30] (18,-2)%
		node[right,font=\scriptsize\sffamily] {rajoutÃ© en Ti\textit{k}Z} ;
	\end{EnvPixelArtTikz}
\end{center}
\end{PresentationCode}

\newpage

\section{La commande pour dÃ©couper}

\subsection{IdÃ©e et fonctionnement global}

L'idÃ©e est de proposer unes commandes pour crÃ©er des PixelArts \textit{collaboratifs}, pour former une \textit{grande} image Ã&nbsp; partir de plusieurs petites (de mÃªme taille).

\smallskip

{\footnotesize\faBomb} Pour des raisons pratiques (liÃ©es Ã&nbsp; l'utilisation de \texttt{filecontents}) le fichier \textsf{csv} doit finir par une ligne vide (elle est crÃ©Ã©e automatiquement via \texttt{filecontents}, et le code utilise cette spÃ©cificitÃ©).

\smallskip

Les \Cle{clÃ©s} disponibles sont exactement les mÃªmes que celles des affichages classiques.

\smallskip

L'exemple qui illustre cet aspect est issu d'un travail de Cyril IakoNelly, et reprÃ©sente un koala, dont le fichier \textsf{csv} a une taille 40Ã—40 (ce qui permet un dÃ©coupage \textit{facile}).

\begin{filecontents*}[overwrite]{PAkoala.csv}
A,A,A,A,A,A,A,H,H,H,A,A,A,A,A,H,H,H,A,A,A,A,A,A,A,A,A,H,H,H,H,A,A,H,A,A,A,A,A,A
A,A,A,A,A,A,A,A,H,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,A,A,H,A,A,A,A,A,H,A,A,A,A,A,A
A,A,A,H,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,H,H,H,A,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,B,E,E,E,E,A,A,A,A,A,A,A,A,A,A,A,H,H,H,A,B,B,E,E,E,E,B,A,A,A,A,A,H
A,A,H,A,A,A,A,B,E,E,E,E,E,A,A,A,A,A,A,A,A,A,A,H,H,H,B,E,E,E,E,E,E,B,B,A,A,A,A,H
A,A,H,A,A,B,B,E,C,C,C,C,C,E,B,B,B,E,E,E,E,E,E,B,B,B,E,C,C,C,C,C,C,E,B,B,H,H,A,A
A,A,H,A,B,E,D,D,D,D,B,D,C,C,E,E,E,E,C,C,C,C,E,E,E,E,E,C,D,B,B,D,D,D,E,B,H,A,A,A
A,A,A,A,B,E,D,D,F,F,D,B,D,C,C,E,C,C,C,C,C,C,C,C,E,C,C,D,B,D,D,F,F,D,E,B,A,A,A,H
A,A,A,B,C,D,D,F,F,F,D,D,B,B,C,C,C,C,C,C,C,C,C,C,C,C,C,B,D,D,D,F,F,D,D,C,B,A,H,H
A,A,A,B,C,D,F,F,F,F,F,D,D,D,C,C,C,C,C,C,C,C,C,C,C,C,C,D,D,F,F,F,F,F,D,C,B,A,H,H
A,A,A,B,D,D,F,F,F,F,F,D,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,D,F,F,F,F,F,D,D,B,A,A,H
A,A,A,B,D,D,G,F,F,F,F,D,C,C,B,B,B,C,C,B,B,C,C,B,B,B,C,C,D,F,F,F,F,G,D,D,B,A,A,A
A,A,A,A,B,G,G,F,F,F,F,D,C,C,B,F,B,C,B,D,D,B,C,B,F,B,C,C,D,G,F,F,F,G,G,B,H,A,A,A
A,A,A,A,A,B,G,G,G,F,G,D,C,C,C,B,B,C,B,D,D,B,C,B,B,C,C,C,D,G,G,F,G,G,B,H,H,H,A,A
A,A,A,A,A,A,B,G,G,G,G,B,C,C,C,C,C,C,B,B,B,B,C,C,C,C,C,C,D,B,G,G,G,G,B,H,H,H,A,A
A,A,A,A,A,A,A,B,B,B,B,B,C,C,C,C,C,C,B,B,B,B,C,C,C,C,C,C,D,B,B,B,B,B,A,A,H,H,A,A
A,A,A,A,A,A,A,A,A,A,A,D,D,C,C,C,C,F,B,B,B,B,F,C,C,C,C,D,D,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,B,D,D,C,C,C,F,F,B,B,F,F,C,C,C,D,D,B,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,H,H,H,A,A,A,A,B,B,D,C,C,F,F,F,F,F,F,C,C,D,B,B,A,A,A,A,A,A,H,H,H,A,A,A
A,A,A,A,H,H,H,H,A,A,A,A,B,B,D,D,D,G,G,G,G,G,G,D,D,D,D,B,A,A,A,A,A,A,A,H,H,H,A,A
A,A,A,A,H,H,H,A,A,A,A,B,D,D,D,D,D,G,G,G,G,G,G,D,D,D,D,D,B,A,A,A,A,A,A,A,H,H,A,A
A,A,A,H,A,A,A,A,A,A,B,C,D,D,D,G,G,G,D,D,D,D,G,G,G,D,D,D,C,B,A,H,H,A,A,A,A,H,A,A
A,A,A,H,H,A,A,A,A,A,D,C,C,C,D,G,G,F,G,D,D,G,F,G,G,D,D,C,C,C,B,A,H,H,A,A,A,A,A,A
A,A,A,A,A,H,H,H,H,B,D,D,C,C,D,G,G,F,F,F,F,F,F,G,G,D,D,C,C,D,B,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,B,D,D,C,C,C,C,C,B,F,F,F,F,F,B,C,C,C,C,D,D,B,A,A,H,H,H,H,A,A,A
A,A,A,H,H,A,A,A,A,B,D,D,C,C,C,C,C,C,B,F,F,F,B,C,C,C,C,C,D,D,B,A,A,A,A,H,H,A,A,A
A,A,A,A,A,A,A,A,A,A,B,B,D,D,C,C,C,C,C,B,F,B,C,C,C,C,D,D,B,B,A,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,B,B,B,D,D,C,C,C,C,B,F,B,C,C,C,C,D,B,B,B,A,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,B,C,C,C,B,B,D,D,D,D,B,F,B,D,D,D,B,B,D,C,C,B,A,A,A,H,A,A,A,A,A
A,A,A,A,A,A,A,A,B,C,C,C,C,C,D,B,B,B,F,F,F,F,B,B,B,D,D,C,C,C,C,B,A,A,A,A,A,A,H,H
A,A,A,A,A,A,A,A,B,C,C,C,C,C,D,D,D,G,G,F,F,G,G,D,D,D,D,C,C,C,C,B,A,A,A,A,A,A,H,H
A,A,A,A,A,A,A,I,B,D,C,C,C,C,C,C,C,G,G,F,F,G,G,C,C,C,C,C,C,C,D,B,I,A,A,A,A,A,A,A
A,A,A,A,A,A,A,I,B,D,D,D,C,C,C,B,B,B,G,G,G,G,B,B,B,C,C,C,D,D,D,B,I,A,A,A,A,A,A,A
A,A,A,A,A,H,A,I,I,B,D,D,D,D,D,C,C,C,B,D,D,B,C,C,C,C,D,D,D,B,B,I,I,A,A,A,A,A,A,A
A,A,A,A,A,H,H,H,I,B,B,D,D,D,D,D,C,C,B,D,D,B,C,C,C,D,D,D,D,B,I,I,A,A,A,A,A,A,A,A
A,A,H,H,H,A,A,A,I,I,I,B,B,B,D,B,B,B,B,B,B,B,B,B,B,D,B,B,B,I,I,I,A,A,A,A,A,A,H,A
A,A,H,H,H,A,A,A,A,I,I,I,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,I,I,I,A,A,A,A,A,A,A,H,A
H,H,A,H,H,A,A,A,A,A,A,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,I,I,I,I,I,I,I,I,I,A,A,A,A,A,A,A,A,A,A,A,H,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A
\end{filecontents*}

\def\listcoulkoala{VertForet,Noir,GrisClair,GrisFonce,Beige,Blanc,BleuClair,VertClair,Marron}

\begin{PresentationCode}{listing only}
\begin{filecontents*}[overwrite]{PAkoala.csv}
A,A,A,A,A,A,A,H,H,H,A,A,A,A,A,H,H,H,A,A,A,A,A,A,A,A,A,H,H,H,H,A,A,H,A,A,A,A,A,A
A,A,A,A,A,A,A,A,H,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,A,A,H,A,A,A,A,A,H,A,A,A,A,A,A
A,A,A,H,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,H,H,H,A,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,B,E,E,E,E,A,A,A,A,A,A,A,A,A,A,A,H,H,H,A,B,B,E,E,E,E,B,A,A,A,A,A,H
A,A,H,A,A,A,A,B,E,E,E,E,E,A,A,A,A,A,A,A,A,A,A,H,H,H,B,E,E,E,E,E,E,B,B,A,A,A,A,H
A,A,H,A,A,B,B,E,C,C,C,C,C,E,B,B,B,E,E,E,E,E,E,B,B,B,E,C,C,C,C,C,C,E,B,B,H,H,A,A
A,A,H,A,B,E,D,D,D,D,B,D,C,C,E,E,E,E,C,C,C,C,E,E,E,E,E,C,D,B,B,D,D,D,E,B,H,A,A,A
A,A,A,A,B,E,D,D,F,F,D,B,D,C,C,E,C,C,C,C,C,C,C,C,E,C,C,D,B,D,D,F,F,D,E,B,A,A,A,H
A,A,A,B,C,D,D,F,F,F,D,D,B,B,C,C,C,C,C,C,C,C,C,C,C,C,C,B,D,D,D,F,F,D,D,C,B,A,H,H
A,A,A,B,C,D,F,F,F,F,F,D,D,D,C,C,C,C,C,C,C,C,C,C,C,C,C,D,D,F,F,F,F,F,D,C,B,A,H,H
A,A,A,B,D,D,F,F,F,F,F,D,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,D,F,F,F,F,F,D,D,B,A,A,H
A,A,A,B,D,D,G,F,F,F,F,D,C,C,B,B,B,C,C,B,B,C,C,B,B,B,C,C,D,F,F,F,F,G,D,D,B,A,A,A
A,A,A,A,B,G,G,F,F,F,F,D,C,C,B,F,B,C,B,D,D,B,C,B,F,B,C,C,D,G,F,F,F,G,G,B,H,A,A,A
A,A,A,A,A,B,G,G,G,F,G,D,C,C,C,B,B,C,B,D,D,B,C,B,B,C,C,C,D,G,G,F,G,G,B,H,H,H,A,A
A,A,A,A,A,A,B,G,G,G,G,B,C,C,C,C,C,C,B,B,B,B,C,C,C,C,C,C,D,B,G,G,G,G,B,H,H,H,A,A
A,A,A,A,A,A,A,B,B,B,B,B,C,C,C,C,C,C,B,B,B,B,C,C,C,C,C,C,D,B,B,B,B,B,A,A,H,H,A,A
A,A,A,A,A,A,A,A,A,A,A,D,D,C,C,C,C,F,B,B,B,B,F,C,C,C,C,D,D,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,B,D,D,C,C,C,F,F,B,B,F,F,C,C,C,D,D,B,A,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,H,H,H,A,A,A,A,B,B,D,C,C,F,F,F,F,F,F,C,C,D,B,B,A,A,A,A,A,A,H,H,H,A,A,A
A,A,A,A,H,H,H,H,A,A,A,A,B,B,D,D,D,G,G,G,G,G,G,D,D,D,D,B,A,A,A,A,A,A,A,H,H,H,A,A
A,A,A,A,H,H,H,A,A,A,A,B,D,D,D,D,D,G,G,G,G,G,G,D,D,D,D,D,B,A,A,A,A,A,A,A,H,H,A,A
A,A,A,H,A,A,A,A,A,A,B,C,D,D,D,G,G,G,D,D,D,D,G,G,G,D,D,D,C,B,A,H,H,A,A,A,A,H,A,A
A,A,A,H,H,A,A,A,A,A,D,C,C,C,D,G,G,F,G,D,D,G,F,G,G,D,D,C,C,C,B,A,H,H,A,A,A,A,A,A
A,A,A,A,A,H,H,H,H,B,D,D,C,C,D,G,G,F,F,F,F,F,F,G,G,D,D,C,C,D,B,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,B,D,D,C,C,C,C,C,B,F,F,F,F,F,B,C,C,C,C,D,D,B,A,A,H,H,H,H,A,A,A
A,A,A,H,H,A,A,A,A,B,D,D,C,C,C,C,C,C,B,F,F,F,B,C,C,C,C,C,D,D,B,A,A,A,A,H,H,A,A,A
A,A,A,A,A,A,A,A,A,A,B,B,D,D,C,C,C,C,C,B,F,B,C,C,C,C,D,D,B,B,A,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,B,B,B,D,D,C,C,C,C,B,F,B,C,C,C,C,D,B,B,B,A,A,A,H,H,A,A,A,A,A
A,A,A,A,A,A,A,A,A,B,C,C,C,B,B,D,D,D,D,B,F,B,D,D,D,B,B,D,C,C,B,A,A,A,H,A,A,A,A,A
A,A,A,A,A,A,A,A,B,C,C,C,C,C,D,B,B,B,F,F,F,F,B,B,B,D,D,C,C,C,C,B,A,A,A,A,A,A,H,H
A,A,A,A,A,A,A,A,B,C,C,C,C,C,D,D,D,G,G,F,F,G,G,D,D,D,D,C,C,C,C,B,A,A,A,A,A,A,H,H
A,A,A,A,A,A,A,I,B,D,C,C,C,C,C,C,C,G,G,F,F,G,G,C,C,C,C,C,C,C,D,B,I,A,A,A,A,A,A,A
A,A,A,A,A,A,A,I,B,D,D,D,C,C,C,B,B,B,G,G,G,G,B,B,B,C,C,C,D,D,D,B,I,A,A,A,A,A,A,A
A,A,A,A,A,H,A,I,I,B,D,D,D,D,D,C,C,C,B,D,D,B,C,C,C,C,D,D,D,B,B,I,I,A,A,A,A,A,A,A
A,A,A,A,A,H,H,H,I,B,B,D,D,D,D,D,C,C,B,D,D,B,C,C,C,D,D,D,D,B,I,I,A,A,A,A,A,A,A,A
A,A,H,H,H,A,A,A,I,I,I,B,B,B,D,B,B,B,B,B,B,B,B,B,B,D,B,B,B,I,I,I,A,A,A,A,A,A,H,A
A,A,H,H,H,A,A,A,A,I,I,I,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,I,I,I,A,A,A,A,A,A,A,H,A
H,H,A,H,H,A,A,A,A,A,A,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,A,A,A,A,A,A,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,I,I,I,I,I,I,I,I,I,A,A,A,A,A,A,A,A,A,A,A,H,A,A,A,A
A,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,H,H,A,A,A,A
\end{filecontents*}

%couleurs avec couleurs-fr
\def\listcoulkoala%
	{VertForet,Noir,GrisClair,GrisFonce,Beige,Blanc,BleuClair,VertClair,Marron}
\end{PresentationCode}

\subsection{Aide quant Ã&nbsp; la crÃ©ation du dÃ©coupage}

La premiÃ¨re commande disponible est celle de l'affichage \textit{simplifiÃ©} de la grille de dÃ©coupage (attention aux dimensions initiales pour un dÃ©coupage \textit{idoine} !)

La version Ã©toilÃ©e affiche les grilles sous la forme \texttt{1.1}/\texttt{1.2}, etc.

La version normale sous la forme \texttt{A1}, \texttt{A2}, etc.

\smallskip

L'argument \texttt{dÃ©coupage} peut Ãªtre donnÃ© sous la forme :
%
\begin{itemize}
	\item \Cle{&lt;nb lig bloc&gt;x&lt;nb col bloc&gt;} pour spÃ©cifier la dimension des blocs ;
	\item \Cle{&lt;nb blocs V&gt;+&lt;nb blocs H&gt;} pour spÃ©cifier le nombre de blocs.
\end{itemize}

\begin{PresentationCode}{}
%dÃ©coupage par blocs de taille 8x8
\AideGrillePixelArtTikz{PAkoala.csv}{8x8}
~~
\PixelArtTikz[Correction,Unite=0.125,Codes=ABCDEFGHI,Couleurs={\listcoulkoala},Decoupage=8x8]{PAkoala.csv}
\end{PresentationCode}

\begin{PresentationCode}{}
%dÃ©coupage par 4 blocs / ligne et 4 blocs / colonne
\AideGrillePixelArtTikz*[2]{PAkoala.csv}{4+4}
~~
\PixelArtTikz[Correction,Unite=0.2,Codes=ABCDEFGHI,Couleurs={\listcoulkoala},Decoupage=4+4]{PAkoala.csv}
\end{PresentationCode}

\newpage

\subsection{Affichage d'une partie unique}

Une commande est disponible pour l'affichage d'\textit{un} bloc particulier du PixelArt.

Les clÃ©s sont hÃ©ritÃ©es de celle des commandes principales.

\begin{PresentationCode}{}
%bloc 1/1 pour un dÃ©coupage 8x8
\PixelArtTikzBloc[Unite=0.35,Codes=ABCDEFGHI]{PAkoala.csv}{8x8}{1/1}
~~
\PixelArtTikzBloc[Unite=0.35,Codes=ABCDEFGHI,Correction,Couleurs={\listcoulkoala}]{PAkoala.csv}{8x8}{1/1}
\end{PresentationCode}

\begin{PresentationCode}{}
%bloc 2/4 pour un dÃ©coupage 4+4
\PixelArtTikzBloc[Unite=0.35,Codes=ABCDEFGHI]{PAkoala.csv}{4+4}{2/4}
~~
\PixelArtTikzBloc[Unite=0.35,Codes=ABCDEFGHI,Correction,Couleurs={\listcoulkoala}]{PAkoala.csv}{4+4}{2/4}
\end{PresentationCode}

\smallskip

L'idÃ©e est ensuite d'utiliser cette commande d'insertion d'\textit{un} bloc pour crÃ©er l'Ã©noncÃ© avec \textit{les} grilles de dÃ©coupage.

Mais il existe une commande de crÃ©ation \textit{automatique} des grilles dÃ©coupÃ©es !

\newpage

\subsection{CrÃ©ation automatique du dÃ©coupage}

Il existe Ã©galement une commande dÃ©diÃ©e pour le dÃ©coupage automatique et la prÃ©sentation automatique des petites grilles.

\begin{PresentationCode}{}
%dÃ©coupage par blocs de 8x8
\DecoupPixelArtTikz[Unite=0.3,Codes=ABCDEFGHI]{PAkoala.csv}{8x8}
\end{PresentationCode}

\pagebreak

\begin{PresentationCode}{}
%dÃ©coupage en4 blocs par 4
\DecoupPixelArtTikz[Unite=0.3,Codes=ABCDEFGHI,Correction,Couleurs={\listcoulkoala}]{PAkoala.csv}{4+4}
\end{PresentationCode}

\newpage

\part{Commandes complÃ©mentaires}

\section{PixelArt et anamorphose cylindrique}

\subsection{IdÃ©e}

L'idÃ©e est de proposer de quoi crÃ©er un PixelArt dans le but d'utiliser une anamorphose cylindrique.

Sur \url{https://www.youtube.com/watch?v=PT8KUozBg3I}, il y a une vidÃ©o \textit{dÃ©monstration}, proposÃ©e par Jean-Yves Labouche.

Le fonctionnement global est similaire Ã&nbsp; celui de la commande \textit{principale}, il existe cependant quelques ajustements :

\begin{itemize}
	\item la possibilitÃ© de donner le fichier \textsf{csv} en mode \textit{normal} ou \textit{inversÃ©} ;
	\item les dimensions (largeur \&amp; milieu) sont Ã&nbsp; prÃ©ciser pour produire le PixelArt ;
	\item la commande est autonome (pour le moment) donc pas d'ajout(s) ultÃ©rieurement.
\end{itemize}

\begin{PresentationCode}{listing only}
\PixelArtTikzCylindre[clÃ©s]{fichier.csv}
\end{PresentationCode}

Les fichiers illustrant ce paragraphe sont donnÃ©s ci-dessous.

\begin{PresentationCode}{}
%version avec donnÃ©es inversÃ©es
\begin{filecontents*}[overwrite]{PAyoda.csv}
E,E,E,A,A,E,A,A,E,D
E,E,E,F,F,F,F,F,E,D
E,E,E,F,F,C,F,F,E,D
E,A,F,F,C,C,C,F,F,A
E,A,F,F,C,C,C,F,F,A
E,E,E,A,A,A,A,A,E,E
E,E,E,A,A,A,A,A,E,E
E,E,A,E,B,A,B,E,A,E
E,A,A,A,A,A,A,A,A,A
E,E,E,A,A,A,A,A,E,E
\end{filecontents*}

\PixelArtTikz[%
	Codes=ABCDEF,
	Couleurs={green,black,brown,white,brown!75!black,lightgray},
	Correction,Unite=0.35]%
	{PAyoda.csv}
\end{PresentationCode}

\begin{PresentationCode}{}
%version avec donnÃ©es normales
\begin{filecontents*}{PAsorciere.csv}
V,V,V,V,N,N,N,V,V,V
V,V,V,N,N,N,N,N,V,V
N,N,N,N,N,N,N,N,N,N
V,V,V,G,G,G,O,O,V,V
V,V,V,J,J,G,O,O,O,V
V,V,G,N,J,G,O,O,O,V
V,G,G,G,G,G,O,O,O,O
V,V,N,N,N,G,O,O,O,O
V,V,G,G,G,G,O,O,O,O
V,V,V,V,N,N,O,O,O,O
\end{filecontents*}

\PixelArtTikz[%
	Codes=VNGOJ,
	Couleurs={violet!50,black,green,orange,yellow},
	Correction,Unite=0.35]%
	{PAsorciere.csv}
\end{PresentationCode}

\subsection{ClÃ©s et options}

Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose des \textsf{ClÃ©s} nÃ©cessaires au bon fonctionnement de la commande :

\begin{itemize}
	\item la clÃ© \Cle{Largeur} qui dÃ©finir la largeur (rayon en cm) du rendu ;\hfill{}dÃ©faut \textsf{6}
	\item la clÃ© \Cle{Centre} qui dÃ©finir la largeur (rayon en cm) du \textit{milieu} ;\hfill{}dÃ©faut \textsf{1.25}
	\item la clÃ© \Cle{Codes} contient la \textit{chaÃ®ne} des codes \textit{simples} du  fichier \textsf{csv} ;
	\item la clÃ© \Cle{Couleurs} qui contient la \textit{liste} des couleurs associÃ©es ;
	\item la clÃ© \Cle{Symboles} qui contient la \textit{liste Ã©ventuelles} des caractÃ¨res alternatifs Ã&nbsp; afficher dans les cases ;
	\item la clÃ© \Cle{Style} qui permet de spÃ©cifier le style des caractÃ¨res. \hfill{}dÃ©faut \textsf{normalsize}
	\item la clÃ© boolÃ©enne \Cle{Correction} qui permet de colorier le PixelArt ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{Symb} qui permet d'afficher les caractÃ¨res \textit{alternatifs} ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{Solution} qui permet d'afficher la solution (avec effet \textit{mirroir}) ;\hfill{}dÃ©faut \textsf{false}
	\item la clÃ© boolÃ©enne \Cle{Swap} qui permet de spÃ©cifier le type de donnÃ©es (\Cle{true} := normal ; \Cle{false} := inversÃ©).
	
	\hfill{}dÃ©faut \textsf{false}
\end{itemize}

Le deuxiÃ¨me argument, \textit{obligatoire}, est le nom du fichier \textsf{csv} Ã&nbsp; utiliser.

\pagebreak

\subsection{Exemple avec donnÃ©es inversÃ©es (Yoda)}

Dans ce paragraphe, on utilise les donnÃ©es \texttt{PAyoda}, qui correspondent Ã&nbsp; la disposition \textit{inversÃ©e}, donc la clÃ© \Cle{Swap} n'est pas nÃ©cessaire.

\begin{PresentationCode}{}
%version classique
\PixelArtTikzCylindre[Codes=ABCDEF,Style=\small\ttfamily]{PAyoda.csv}

%version avec 'symboles'
\PixelArtTikzCylindre[Codes=ABCDEF,Symboles={1,2,3,4,5,6},Symb,Style=\small\ttfamily]{PAyoda.csv}
\end{PresentationCode}

\begin{PresentationCode}{}
%Correction et solution
\begin{tabular}{c}
	\PixelArtTikzCylindre[%
		Codes=ABCDEF,
		Couleurs={green,black,brown,white,brown!75!black,lightgray},
		Solution]%
		{PAyoda.csv}
	\\
	\PixelArtTikzCylindre[%
		Codes=ABCDEF,
		Couleurs={green,black,brown,white,brown!75!black,lightgray},
		Correction]%
		{PAyoda.csv}
\end{tabular}
\end{PresentationCode}

\pagebreak

\subsection{Exemple avec donnÃ©es classiques (SorciÃ¨re)}

Dans ce paragraphe, on utilise les donnÃ©es \texttt{PAsorciere}, qui correspondent Ã&nbsp; la disposition \textit{normale}, donc la clÃ© \Cle{Swap} est nÃ©cessaire.

\begin{PresentationCode}{}
%version classique
\PixelArtTikzCylindre[%
	Largeur=4,Centre=1,Codes=VNGOJ,
	Couleurs={violet!50,black,green,orange,yellow},
	Swap,Style=\ttfamily\scriptsize]%
	{PAsorciere.csv}
\end{PresentationCode}

\begin{PresentationCode}{}
%Correction et solution
\begin{tabular}{c}
	\PixelArtTikzCylindre[%
		Largeur=4,Centre=0.75,Codes=VNGOJ,
		Couleurs={violet!50,black,green,orange,yellow},
		Swap,Solution]%
		{PAsorciere.csv}
	\\
	\PixelArtTikzCylindre[%
		Largeur=4,Centre=0.75,Codes=VNGOJ,
		Couleurs={violet!50,black,green,orange,yellow},
		Swap,Correction]%
		{PAsorciere.csv}
\end{tabular}
\end{PresentationCode}

\newpage

\section{La commande pour un \textit{mini-}PixelArt}

\subsection{IdÃ©e}

L'idÃ©e est de proposer une commande pour insÃ©rer, sans passer par un fichier \textsf{csv}, un petit PixelArt avec une liste de couleurs rÃ©duite.

\begin{PresentationCode}{listing only}
\MiniPixelArt[clÃ©s]{liste des couleurs}
\end{PresentationCode}

Le premier argument, \textit{optionnel} et entre \texttt{[...]} propose des \textsf{ClÃ©s} nÃ©cessaires au bon fonctionnement de la commande :

\begin{itemize}
	\item la clÃ© \Cle{Unite} pour spÃ©cifier l'unitÃ© des cases ;\hfill{}dÃ©faut \textsf{0.25em}
	\item le boolÃ©en \Cle{Bord} pour afficher une bordure aux cases.\hfill{}dÃ©faut \textsf{false}
\end{itemize}

Le deuxiÃ¨me argument, obligatoire et entre \texttt{\{...\}} permet de donner les couleurs des cases :

\begin{itemize}
	\item chaque couleur est codÃ©e par une lettre :
	\begin{multicols}{5}
		\begin{itemize}
			\item \texttt{R : \textcolor{red}{rouge}}
			\item \texttt{V : \textcolor{green}{vert}}
			\item \texttt{B : \textcolor{blue}{bleu}}
			\item \texttt{J : \textcolor{yellow}{jaune}}
			\item \texttt{N : \textcolor{black}{noir}}
			\item \texttt{G : \textcolor{gray}{gris}}
			\item \texttt{. : \colorbox{lightgray}{\textcolor{white}{blanc}}}
			\item \texttt{M : \textcolor{brown}{marron}}
			\item \texttt{O : \textcolor{orange}{orange}}
			\item \texttt{P : \textcolor{violet}{violet}}
		\end{itemize}
	\end{multicols}
	\item chaque \textit{passage Ã&nbsp; la ligne} est spÃ©cifiÃ© par \texttt{,} ;
	\item les bords Ã©ventuels ont une Ã©paisseur Ã©gale Ã&nbsp; 10\,\% de l'unitÃ© des carreaux.
\end{itemize}

Le dernier argument, optionnel et entre \texttt{&lt;...&gt;}, permet quant Ã&nbsp; lui de passer des options Ã&nbsp; l'environnement \textsf{tikz} crÃ©Ã©.

\subsection{Exemples}

\begin{PresentationCode}{}
\MiniPixelArt{%
	..RR..RR..,
	.RRRRRRRR.,
	RRRRRRRRRR,
	RRRRRRRRRR,
	RRRRRRRRRR,
	.RRRRRRRR.,
	..RRRRRR..,
	...RRRR...,
	....RR....
}
\end{PresentationCode}

\begin{PresentationCode}{}
En ligne, on a \MiniPixelArt[Unite=5mm,Bord]{NBVOJV,JGP.NR}&lt;baseline=(current bounding box.center)&gt; ce miniPA.
\end{PresentationCode}

\newpage

\section{CrÃ©ation automatique du tableau notice}

\subsection{IdÃ©e}

L'idÃ©e est de proposer une commande pour crÃ©er automatiquement le tableau de notice, avec coloration des cases.

\smallskip

Le package utilisÃ© est \texttt{tabularray}, et le code propose deux prÃ©sentations du tableau, sous forme horizontal ou vertical (les tableaux sur plusieurs lignes ne sont pas gÃ©rÃ©s\ldots)

\begin{PresentationCode}{listing only}
\TablCouleursPixelArt(*)[clÃ©s]{%
	donnÃ©es1,%
	donnÃ©es2,%
	...
}
\end{PresentationCode}

Les \Cle{donnÃ©es} sont Ã&nbsp; mettre sous la forme \Cle{&lt;NomCouleur&gt;/&lt;CodeCouleur&gt;/&lt;CouleurPolice&gt;/&lt;RÃ©sultat&gt;}.

\subsection{ClÃ©s et exemples}

La version \textit{Ã©toilÃ©e} force le tableau en mode vertical.

\smallskip

Les \Cle{clÃ©s} disponibles pour cette commande sont :

\begin{itemize}
	\item la clÃ© \Cle{Largeur}, pour spÃ©cifier les informations de largeur :
	\begin{itemize}
		\item sous la forme \Cle{auto} pour les adapter aux contenus (valeur par dÃ©faut) ;
		\item sous la forme \Cle{largeurglobale} en mode H (les cases auront la mÃªme largeur) ;
		\item sous la forme \Cle{largeurcolonne} ou \Cle{largeurcolonne1/largeurcolonne2} en mode V ;
	\end{itemize}
	\item la clÃ© \Cle{Police} spÃ©cifier une police particuliÃ¨re.
\end{itemize}

\begin{PresentationCode}{}
%par dÃ©faut
\TablCouleursPixelArt{%
	Marron/BrunIntense/Blanc/75,%
	{Gris Clair}/GrisClair/Noir/{112,5},%
	Vert Clair/VertClair/Noir/600,%
	Noir/Noir/Blanc/9,%
	Beige/Beige/Noir/15,%
	Gris foncÃ©/GrisFonce/Noir/{202,5},%
	Bleu clair/BleuClair/Noir/288,%
	Vert foncÃ©/VertFonce/Blanc/10,%
	Blanc/Blanc/Noir/55%
}
\end{PresentationCode}

\begin{PresentationCode}{}
%personnalisations
\TablCouleursPixelArt[Largeur=\linewidth,Police=\small\sffamily]{%
	Marron/BrunIntense/Blanc/75,%
	{Gris Clair}/GrisClair/Noir/{112,5},%
	Vert Clair/VertClair/Noir/600,%
	Noir/Noir/Blanc/9,%
	Beige/Beige/Noir/15,%
	Gris foncÃ©/GrisFonce/Noir/{202,5},%
	Bleu clair/BleuClair/Noir/288,%
	Vert foncÃ©/VertFonce/Blanc/10,%
	Blanc/Blanc/Noir/55%
}
\end{PresentationCode}

\pagebreak

\begin{PresentationCode}{}
%personnalisations
\TablCouleursPixelArt*[Largeur=3cm/]{%
	Marron/BrunIntense/Blanc/75,%
	{Gris Clair}/GrisClair/Noir/{112,5},%
	Vert Clair/VertClair/Noir/600,%
	Noir/Noir/Blanc/9,%
	Beige/Beige/Noir/15,%
	Gris foncÃ©/GrisFonce/Noir/{202,5},%
	Bleu clair/BleuClair/Noir/288,%
	Vert foncÃ©/VertFonce/Blanc/10,%
	Blanc/Blanc/Noir/55%
}
\end{PresentationCode}

\subsection{Commande simplifiÃ©e (??) pour les cases}

Il est Ã©galement possible de crÃ©er le tableau \textit{manuellement}, avec une commande \textit{simplifiÃ©e} pour la crÃ©ation des cases.

\begin{PresentationCode}{listing only}
%dans un environnement tblr, chargÃ© avec [expand=\expanded] et \expanded !
\cctblr[couleur police]{couleur fond}{case}
\end{PresentationCode}

\begin{PresentationCode}{}
\begin{tblr}[expand=\expanded]{width=\linewidth,colspec={*{5}{Q[m,l]}},hlines,vlines}
	\expanded{\cctblr[Blanc]{BrunIntense}{Marron}} &amp;
	\expanded{\cctblr{GrisClair}{Gris clair}} &amp;
	\expanded{\cctblr{VertClair}{Vert clair}} &amp;
	\expanded{\cctblr[Blanc]{Noir}{Noir}} &amp;
	\ldots \\
	75 &amp; {112,5} &amp; 600 &amp; 9 &amp; \ldots \\
\end{tblr}
\end{PresentationCode}

\pagebreak

\section{Avec le package datatool}

\subsection{Commandes}

Le package \textsf{datatool}, chargÃ© par \textsf{PixelArtTikz}, permet de reprÃ©senter un PixelArt (sans environnement).

Les clÃ©s sont les mÃªmes que pour la version \textsf{csvsimple}, mais il est nÃ©cessaire de \textit{traiter} le ficher \textsf{csv} en amont des tracÃ©s.

\begin{PresentationCode}{listing only}
%lecture du fichier csv
\readdtcsv{fichier.csv}{nomlecture}

%traitement du PixelArt complet
\dtpixlarttikz[clÃ©s]{nomlecture}

%traitement du PixelArt en mode dÃ©coupage
\dtpixlarttikzblock[clÃ©s]{nomlecture}{LxC ou L+C}{numbloc}
\end{PresentationCode}

Ã€ noter que la commande est autonome, ne permet pas d'ajouts Ã©ventuels, mais est compatible avec le traitement par dÃ©coupage (mais sans crÃ©ation automatique des blocs de dÃ©coupage avec prÃ©sentation).

\subsection{Exemple}

\begin{PresentationCode}{}
%lecture du fichier csv (koala)
\readdtcsv{PAkoala.csv}{DTkoala}

%traitement du PixelArt complet
\dtpixlarttikz[Correction,Unite=0.125,Codes=ABCDEFGHI,Couleurs={\listcoulkoala},Decoupage=8x8]{DTkoala}

%traitement du PixelArt en mode dÃ©coupage
\dtpixlarttikzblock[Unite=0.125,Correction,Codes=ABCDEFGHI,Couleurs={\listcoulkoala}]%
	{DTkoala}{8x8}{1/1}
\end{PresentationCode}

\pagebreak

\part{Historique}

\verb|v0.1.8|~:~~~~Bugfix

\verb|v0.1.7|~:~~~~Correction d'un bug avec les dÃ©coupages

\verb|v0.1.6|~:~~~~Ajout d'un style pour les traits + utilisation de \textsf{datatool} (plus rapide ?)

\verb|v0.1.5|~:~~~~Symboles sous forme de liste(s) (Ã©lÃ©ments tirÃ©s alÃ©atoirement) + AmÃ©lioration du traitement

\verb|v0.1.4|~:~~~~PixelArts avec anamorphose cylindrique

\verb|v0.1.3|~:~~~~PossibilitÃ© de crÃ©er des PixelArts collaboratifs

\verb|v0.1.2|~:~~~~PossibilitÃ© de crÃ©er des \textit{mini-}PixelArts

\verb|v0.1.1|~:~~~~Correction d'un bug avec les couleurs

\verb|v0.1.0|~:~~~~Version initiale

\end{document}</pre></body></html>