<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.6}
\def\TPdate{4 janvier 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://github.com/cpierquet/PixelArtTikz}}
\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.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>