diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.pdf | bin | 0 -> 490717 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.tex | 537 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.pdf | bin | 0 -> 501108 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.tex | 544 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/README.md | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/base.csv | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/cap.csv | 22 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pixelarttikz/test1.csv | 23 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pixelarttikz/PixelArtTikz.sty | 313 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-pictures.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/pixelarttikz.tlpsrc | 0 |
13 files changed, 1453 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.pdf b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.pdf Binary files differnew file mode 100644 index 00000000000..f694421de18 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.tex b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.tex new file mode 100644 index 00000000000..000fddd55e3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-en.tex @@ -0,0 +1,537 @@ +% !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[english]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[table,svgnames]{xcolor} +\usepackage{amsmath,amssymb} +\usepackage{PixelArtTikz} +\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{hvlogos} +\usepackage{hologo} +\usepackage{xspace} +\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} & & & & &\\ + & {\huge \hologo{pdfLaTeX}} & & & & \\ + & & {\huge \hologo{LuaLaTeX}} & & & \\ + & & & {\huge \TikZ} & & \\ + & & & & {\huge \TeXLive} & \\ + & & & & & {\huge \hologo{MiKTeX}} \\ + \end{tblr} +} + +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=1.5cm]{geometry} +\setlength{\parindent}{0pt} +\definecolor{LightGray}{gray}{0.9} + +\def\TPversion{0.1.0} +\def\TPdate{23/01/2023} + +\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 +} + +\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 [en]}}\\ + \\ + {\LARGE PixelArts, with Ti\textit{k}Z}, \\ + \\ + {\LARGE with solution and colors.} \\ + \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$~~Commands to display PixelArts.} + +\smallskip + +{$\blacktriangleright$~~Environment to complete the PixelArt.} + +\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*} + +\PixlArtTikz[Codes=123469,Style=\ttfamily,Unit=0.35]{test1.csv} +~~ +\PixlArtTikz[Codes=123469,Symbols={A,B,C,D,E,F},Symb,Style=\ttfamily,Unit=0.35]{test1.csv} +~~ +\PixlArtTikz[Codes=123469,Colors={Red,Brown,Yellow,Black,Blue,White},Correction,Unit=0.35]{test1.csv} +\end{center} + +\vspace{0.5cm} + +%\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !} + +%\hfill{}\textit{Merci à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\vfill + +\hrule + +\medskip + +\TableauDocumentation + +\medskip + +\hrule + +\medskip + +\newpage + +\phantomsection +\hypertarget{matoc}{} + +\tableofcontents + +\newpage + +\part{Introduction} + +\section{The package PixelArtTikz} + +\subsection{Introduction} + +The idea is to \textit{propose}, within a Ti\textit{k}Z environment, a macro to generate PixelArt. + +Datas are \textit{red} by a \textsf{csv} file, already created and placed into the folder of the \textsf{tex} file, or directly created by \textsf{filecontents}. + +\medskip + +Some advices about the \textsf{cvs} file : + +\begin{itemize} + \item the \textsf{csv} file must use "," as separator ; + \item empty cases are coded by "\texttt{-}". +\end{itemize} + +\begin{PresentationCode}{listing only} +\begin{filecontents*}{filename.csv} + A,B,C,D + A,B,D,C + B,A,C,D + B,A,D,C +\end{filecontents*} +\end{PresentationCode} + +While compiling, the file \textsf{filename.csv} will be created, and the option \Cle{[overwrite]} will propagate the modifications ! + +\subsection{Loading of the package, and option} + +The \textit{needed} package is here \textsf{csvsimple}, in order to read the \textsf{csv} file. + +It's available for \hologo{LaTeX2e} or for \hologo{LaTeX3}. By default, \textsf{PixelArtTikz} loads it for \hologo{LaTeX3}, but an \textit{option} is available to work with \hologo{LaTeX2e}. + +\smallskip + +The option \Cle{[csvii]} forces the usage of \hologo{LaTeX2e}. + +\begin{PresentationCode}{listing only} +\usepackage{PixelArtTikz} %package latex3 +%which loads +%\RequirePackage{expl3} +%\RequirePackage[l3]{csvsimple} + +\usepackage[csvii]{PixelArtTikz} %package latex2 +%which loads +%\RequirePackage[legacy]{csvsimple} +\end{PresentationCode} + +\subsection{Used packages} + +It's fully copatible with usuals compilations, such as \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} or \textsf{xelatex}. + +\medskip + +It loads the packages and libraries : + +\begin{itemize} + \item \texttt{tikz}, \texttt{xintexpr} et \texttt{xinttools}; + \item \texttt{xstring}, \texttt{xparse}, \texttt{simplekv} and \texttt{listofitems}. +\end{itemize} + +\pagebreak + +\subsection{Macros and environment} + +There's two ways to create PixelArt : + +\begin{itemize} + \item by an independent macro ; + \item by a Ti\textit{k}Z environment in order to put code after. +\end{itemize} + +\begin{PresentationCode}{listing only} +%Independent macro +\PixlArtTikz[keys]<options tikz>{file.csv} + +%Semi-independent macro, in a tiks environment +\PixlArtTikz*[keys]{file.csv} + +%environment +\begin{EnvPixlArtTikz}[keys]<options tikz>{file.csv} + %tikz code +\end{EnvPixlArtTikz} +\end{PresentationCode} + +For the colors, its depending from the loaded packages. + +\smallskip + +This documentation was compiled with \textsf{xcolor}, with \Cle{[table,svgnames]} options. + +%%\section{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 à 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{Macros and environment} + +\section{Main macro} + +\subsection{Example} + +The macro \texttt{\textbackslash PixlArtTikz} needs : + +\begin{itemize} + \item the file \textsf{csv} ; + \item the list (by a string) of codes used in the file \textsf{csv} (eg \texttt{234679} or \texttt{ABCDJK}\ldots); + \item the list of symbols (if needed) to print in the cases, eg \texttt{25,44,12} or \texttt{AA,AB,AC} ; + \item the list of colors (for the correction), same order as the codes. +\end{itemize} + +We can begin by creating the file \textsf{csv}, directly within the \textsf{tex} code, or with a external file. + +\begin{PresentationCode}{} +%creation of the 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}{} +%instructions and pixelarts +\begin{center} + \begin{tblr}{colspec={*{4}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}} + \SetCell[c=4]{c} Instructions & & & \\ + A & B & C & D \\ + 45 & 22 & 1 & 7 \\ + Black & Green & Yellow & Red \\ + \end{tblr} +\end{center} + +\PixlArtTikz[Codes=ABCD,Style=\large\sffamily,Unit=0.85]{base.csv} +~~ +\PixlArtTikz[Codes=ABCD,Symbols={45,22,1,7},Symb,Style=\large\sffamily,Unit=0.85]{base.csv} +~~ +\PixlArtTikz[Codes=ABCD,Colors={black,green,yellow,red},Correction,Unit=0.85]{base.csv} +~~ +\PixlArtTikz[Codes=ABCD,Colors={black,green,yellow,red},Correction,Border=false,Unit=0.85]{base.csv} +\end{PresentationCode} + +\pagebreak + +\subsection{Options an keys} + +\begin{PresentationCode}{listing only} +\PixlArtTikz[keys]<options tikz>{file.csv} +\end{PresentationCode} + +The first argument, \textit{optional} and between \texttt{[...]} proposes the \textsf{keys} : + +\begin{itemize} + \item the key \Cle{Codes} with the \textit{string} of \textit{simple} codes of the \textsf{csv} file ; + \item the key \Cle{Colors} with the \textit{list} of colors ; + \item the key \Cle{Symbols} with the \textit{optional list} of alt. symbols for the cases ; + \item the boolean \Cle{Correction} to color the PixelArt ;\hfill{}default \textsf{false} + \item the boolean \Cle{Symb} to print the symbols ;\hfill{}default \textsf{false} + \item the boolean \Cle{Border} to print borders of the cases ;\hfill{}default \textsf{true} + \item the key \Cle{Style} to specifythe style of the text. \hfill{}default \textsf{\textbackslash scriptsize} +\end{itemize} + +The second argument, \textit{optional} and between \texttt{<...>} are options -- in Ti\textit{k}Z -- to parse to the environment which create the PixelArt. + +\medskip + +The third argument, \textit{mandatory}, is the filename of the \textsf{csv}. + + +\begin{PresentationCode}{} +%creation of the 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}{} +%simple codes +%empty case with - +\PixlArtTikz[Codes=123469,Style=\ttfamily,Unit=0.35]{test1.csv} +~~ +\PixlArtTikz[Codes=123469,Colors={Red,Brown,Yellow,Black,Blue,White},Correction,Unit=0.35]{test1.csv} +~~ +\PixlArtTikz[Codes=123469,Colors={Red,Brown,Yellow,Black,Blue,White},Correction,Unit=0.35,Border=false]{test1.csv} +\end{PresentationCode} + +\pagebreak + +In the following example, les \textit{symbols} to print can't be used for the \textit{codes}, so we can use the keys \Cle{Symbols} and \Cle{Symb} to bypass this limitation. + +\begin{PresentationCode}{} +%symbols associated to codes + +\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*} + +\PixlArtTikz[Codes=ABCDFJ,Symbols={1,2,3,4,6,10},Symb,Style=\tiny\sffamily,Unit=0.35]{cap.csv} +~~ +\PixlArtTikz[Codes=ABCDFJ,Colors={Red,Brown,Yellow,Black,Blue,Gray},Correction,Unit=0.35]{cap.csv} +\end{PresentationCode} + +\pagebreak + +\subsection{Starred macro} + +The starred \textit{étoilée} macro \texttt{\textbackslash PixlArtTikz*} is to be integrated within an environment already created. It cas be usefull to add code after the PixelArt. + +\smallskip + +In this case : + +\begin{itemize} + \item the \textit{optional} between \texttt{<...>} is useless ; + \item the key \Cle{Unit} is useless too (uints can be configured in the environment !) +\end{itemize} + +\begin{PresentationCode}{} +\begin{center} + \begin{tikzpicture}[scale=0.5] + %grid to show positionning + \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 + \PixlArtTikz*[Codes=123469,Colors={Red,Brown,Yellow,Black,Blue,White},Correction]{test1.csv} + %added code + \filldraw[Blue] (14,-1) circle[radius=1] ; + \filldraw[Yellow] (14,-1) circle[radius=0.8] ; + \draw[ForestGreen,very thick,<-,>=latex] (15,-1) to[bend left=30] (18,-2)% + node[right,font=\scriptsize\sffamily] {Code Ti\textit{k}Z} ; + \end{tikzpicture} +\end{center} +\end{PresentationCode} + +\pagebreak + +\section{PixelArt environment} + +\subsection{Usage} + +The package \textsf{PixelArtTikz} proposes an environment to create a PixelArt, and to add code after. + +\begin{itemize} + \item The environment is created within Ti\textit{k}Z and added code is to give in Ti\textit{k}Z ! + \item The added code will be print "above" the PixelArt ! +\end{itemize} + +\begin{PresentationCode}{listing only} +\begin{EnvPixlArtTikz}[keys]<options tikz>{filename.csv} + %tikz code(s) +\end{EnvPixlArtTikz} +\end{PresentationCode} + +The first argument, \textit{optional} and between \texttt{[...]} proposes the \textsf{keys} : + +\begin{itemize} + \item the key \Cle{Codes} with the \textit{string} of \textit{simple} codes of the \textsf{csv} file ; + \item the key \Cle{Colors} with the \textit{list} of colors ; + \item the key \Cle{Symbols} with the \textit{optional list} of alt. symbols for the cases ; + \item the boolean \Cle{Correction} to color the PixelArt ;\hfill{}default \textsf{false} + \item the boolean \Cle{Symb} to print the symbols ;\hfill{}default \textsf{false} + \item the boolean \Cle{Border} to print borders of the cases ;\hfill{}default \textsf{true} + \item the key \Cle{Style} to specifythe style of the text. \hfill{}default \textsf{\textbackslash scriptsize} +\end{itemize} + +The second argument, \textit{optional} and between \texttt{<...>} are options -- in Ti\textit{k}Z -- to parse to the environment which create the PixelArt. + +\medskip + +The third argument, \textit{mandatory}, is the filename of the \textsf{csv}. + +\subsection{Exemple} + +The symbols are at the nodes $(c\,;\,-l)$ where $l$ and $c$ are the row and column of the data in the \textsf{csv} file. + +\begin{PresentationCode}{} +\begin{center} + \begin{EnvPixlArtTikz}% + [Codes=123469,Colors={Red,Brown,Yellow,Black,Blue,White},Correction,Unit=0.25] + {test1.csv} + \filldraw[Blue] (14,-1) circle[radius=1] ; + \filldraw[Yellow] (14,-1) circle[radius=0.8] ; + \draw[ForestGreen,very thick,<-,>=latex] (15,-1) to[bend left=30] (18,-2)% + node[right,font=\scriptsize\sffamily] {Ti\textit{k}Z code} ; + \end{EnvPixlArtTikz} +\end{center} +\end{PresentationCode} + +\newpage + +\part{Historique} + +\verb|v0.1.0|~:~~~~Initial version + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.pdf b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.pdf Binary files differnew file mode 100644 index 00000000000..8865790e6d7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.pdf diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.tex b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.tex new file mode 100644 index 00000000000..fec2cca2716 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/PixelArtTikz-doc-fr.tex @@ -0,0 +1,544 @@ +% !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[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[table,svgnames]{xcolor} +\usepackage{amsmath,amssymb} +\usepackage{PixelArtTikz} +\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{hvlogos} +\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} & & & & &\\ + & {\huge \hologo{pdfLaTeX}} & & & & \\ + & & {\huge \hologo{LuaLaTeX}} & & & \\ + & & & {\huge \TikZ} & & \\ + & & & & {\huge \TeXLive} & \\ + & & & & & {\huge \hologo{MiKTeX}} \\ + \end{tblr} +} + +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=1.5cm]{geometry} +\setlength{\parindent}{0pt} +\definecolor{LightGray}{gray}{0.9} + +\def\TPversion{0.1.0} +\def\TPdate{23 Janvier 2023} + +\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 +} + +\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$~~Environnement pour compléter éventuellement le PixelArt.} + +\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} + +%\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !} + +%\hfill{}\textit{Merci à Denis Bitouzé et à Patrick Bideault pour leurs retours et idées !} + +\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} à partir d'un fichier \textsf{csv}, externe au fichier \textsf{tex} ou déclaré en interne grâce à 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 à 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} + +\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{xparse}, \texttt{simplekv} et \texttt{listofitems}. +\end{itemize} + +\pagebreak + +\subsection{Commandes et environnement} + +Il existe deux 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é}. +\end{itemize} + +\begin{PresentationCode}{listing only} +%Commande autonome +\PixelArtTikz[clés]<options tikz>{fichier.csv} + +%Commande semi-autonome, à intégrer dans un environnement tikz +\PixelArtTikz*[clés]{fichier.csv} + +%environnement +\begin{EnvPixelArtTikz}[clés]<options tikz>{fichier.csv} + %code tikz +\end{EnvPixelArtTikz} +\end{PresentationCode} + +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]}. + +\section{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 à 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 et environnement} + +\section{La commande principale} + +\subsection{Exemple introductif} + +La commande \texttt{\textbackslash PixelArtTikz} nécessite de connaître : + +\begin{itemize} + \item le fichier \textsf{csv} à 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 !) à 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 & & & \\ + A & B & C & D \\ + 45 & 22 & 1 & 7 \\ + Noir & Vert & Jaune & 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]<options tikz>{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 à 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{<...>} sont des options -- en langage Ti\textit{k}Z -- à passer à l'environnement qui sert de base au PixelArt. + +\medskip + +Le troisième argument, \textit{obligatoire}, est le nom du fichier \textsf{csv} à 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}, à 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} à afficher ne peuvent pas servir de \textit{codes}, donc on utilise les options liées à \Cle{Symboles} pour s'affranchir de cette limitation. + +\begin{PresentationCode}{} +%codes à 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{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 à noter que, dans ce cas : + +\begin{itemize} + \item l'argument \textit{optionnel} entre \texttt{<...>} 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[ForestGreen,very thick,<-,>=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]<options tikz>{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 à 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{<...>} sont des options -- en langage Ti\textit{k}Z -- à passer à l'environnement qui sert de base au PixelArt. + +\medskip + +Le troisième argument, \textit{obligatoire}, est le nom du fichier \textsf{csv} à 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 à 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[ForestGreen,very thick,<-,>=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 + +\part{Historique} + +\verb|v0.1.0|~:~~~~Version initiale + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/README.md b/Master/texmf-dist/doc/latex/pixelarttikz/README.md new file mode 100644 index 00000000000..fcdd25b2e45 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/README.md @@ -0,0 +1,7 @@ +PixelArtTikz is a package to work with PixlArts. +--------------------------------------------------------------- +PixelArtTikz est un package pour travailler avec des PixelArts. +--------------------------------------------------------------- +Author : Cédric Pierquet +email : cpierquet@outlook.fr +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/base.csv b/Master/texmf-dist/doc/latex/pixelarttikz/base.csv new file mode 100644 index 00000000000..6f8d88334bf --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/base.csv @@ -0,0 +1,4 @@ + A,B,C,D + A,B,D,C + B,A,D,C + C,A,B,D diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/cap.csv b/Master/texmf-dist/doc/latex/pixelarttikz/cap.csv new file mode 100644 index 00000000000..e530bb4f3ee --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/cap.csv @@ -0,0 +1,22 @@ + -,-,-,-,-,-,-,-,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,-,-,-,- diff --git a/Master/texmf-dist/doc/latex/pixelarttikz/test1.csv b/Master/texmf-dist/doc/latex/pixelarttikz/test1.csv new file mode 100644 index 00000000000..d5efaaf580a --- /dev/null +++ b/Master/texmf-dist/doc/latex/pixelarttikz/test1.csv @@ -0,0 +1,23 @@ + -,-,-,-,-,-,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,-,-,-,-,-,-,- diff --git a/Master/texmf-dist/tex/latex/pixelarttikz/PixelArtTikz.sty b/Master/texmf-dist/tex/latex/pixelarttikz/PixelArtTikz.sty new file mode 100644 index 00000000000..e5f9e9ccb83 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pixelarttikz/PixelArtTikz.sty @@ -0,0 +1,313 @@ +% Author.........: C. Pierquet +% licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{PixelArtTikz}[2023/01/25 v0.1.0 PixelArts with csv and TikZ] +% 0.1.0 Version initiale + +%------Option(s) +\newif\if@csvii \@csviifalse +\DeclareOption{csvii}{\@csviitrue} +\DeclareOption*{} +\ProcessOptions\relax + +%------Packages utiles +\RequirePackage{tikz} +\RequirePackage{xparse} +\RequirePackage{simplekv} +\RequirePackage{xintexpr} +\RequirePackage{xinttools} +\RequirePackage{xstring} +\RequirePackage{listofitems} +%librairies tikz +%\usetikzlibrary{calc,shapes.geometric} +%cvs +\if@csvii + \RequirePackage[legacy]{csvsimple} +\else + \RequirePackage{expl3} + \RequirePackage[l3]{csvsimple} +\fi + +%------clés [fr] / keys [en] +\defKV[pixelarttkz]{% + Codes=\def\PATlettres{#1},% + Couleurs=\def\PATcouleurs{#1},% + Symboles=\def\PATchiffres{#1},% + Style=\def\PATtaille{#1},% + Unite=\def\PATunit{#1} +} + +\setKVdefault[pixelarttkz]{% + Style=\scriptsize,% + Correction=false,% + Symb=false,% + BordCases=true,% + Unite=1 +} + +%----[fr] commands +\NewDocumentCommand\PixelArtTikz{ s O{} D<>{} m }{%commande autonome + \useKVdefault[pixelarttkz]% + \setKV[pixelarttkz]{#2}% + %affichage du corrigé / display of correction + \IfBooleanTF{#1}{}{\begin{tikzpicture}[x=\PATunit cm,y=\PATunit cm,#3]} + \ifboolKV[pixelarttkz]{Correction}% + {% + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCPA\PATcouleurs + \StrPosition{\PATlettres}{\l}[\pixcnt]% + \xintifboolexpr{\pixcnt>0}% + {% + \itemtomacro\LCPA[\pixcnt]\pixcol% + \ifboolKV[pixelarttkz]{BordCases}% + {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + }% + {}% + }% + }% + }% + }% + {% + \ifboolKV[pixelarttkz]{Symb}{%affichage du pixelart versions chiffres si besoin + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCNA\PATchiffres + \StrPosition{\PATlettres}{\l}[\pixpos]% + \xintifboolexpr{\pixpos>0}% + {% + \itemtomacro\LCNA[\pixpos]\pixchf% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\pixchf} ;% + }% + {}% + }% + }% + }% + }% + {%affichage du pixelart versions lettres ou chiffres simples (<=9) / display of letters/symbols PixelArt + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \IfSubStr{\PATlettres}{\l}% + {% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\l};% + }% + {}% + }% + }% + }% + }% + }% + \IfBooleanTF{#1}{}{\end{tikzpicture}}% +} + +\NewDocumentEnvironment{EnvPixelArtTikz}{ O{} D<>{} m }%environnement +{% + \useKVdefault[pixelarttkz]% + \setKV[pixelarttkz]{#1}% + %affichage du corrigé / display of correction + \begin{tikzpicture}[x=\PATunit cm,y=\PATunit cm,#2] + \ifboolKV[pixelarttkz]{Correction}% + {% + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCPA\PATcouleurs + \StrPosition{\PATlettres}{\l}[\pixcnt]% + \xintifboolexpr{\pixcnt>0}% + {% + \itemtomacro\LCPA[\pixcnt]\pixcol% + \ifboolKV[pixelarttkz]{BordCases}% + {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + }% + {}% + }% + }% + }% + }% + {% + \ifboolKV[pixelarttkz]{Symb}{%affichage du pixelart versions chiffres si besoin + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCNA\PATchiffres + \StrPosition{\PATlettres}{\l}[\pixpos]% + \xintifboolexpr{\pixpos>0}% + {% + \itemtomacro\LCNA[\pixpos]\pixchf% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\pixchf} ;% + }% + {}% + }% + }% + }% + }% + {%affichage du pixelart versions lettres ou chiffres simples (<=9) / display of letters/symbols PixelArt + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \IfSubStr{\PATlettres}{\l}% + {% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\l};% + }% + {}% + }% + }% + }% + }% + }% +}% +{% + \end{tikzpicture}% +}% + +%----[en] commands +\defKV[pixelarttkzen]{% + Codes=\def\PATlettres{#1},% + Colors=\def\PATcouleurs{#1},% + Symbols=\def\PATchiffres{#1},% + Style=\def\PATtaille{#1},% + Unit=\def\PATunit{#1} +} + +\setKVdefault[pixelarttkzen]{% + Style=\scriptsize,% + Correction=false,% + Symb=false,% + Border=true,% + Unit=1 +} + +\NewDocumentCommand\PixlArtTikz{ s O{} D<>{} m }{%commande autonome + \useKVdefault[pixelarttkzen]% + \setKV[pixelarttkzen]{#2}% + %affichage du corrigé / display of correction + \IfBooleanTF{#1}{}{\begin{tikzpicture}[x=\PATunit cm,y=\PATunit cm,#3]} + \ifboolKV[pixelarttkzen]{Correction}% + {% + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCPA\PATcouleurs + \StrPosition{\PATlettres}{\l}[\pixcnt]% + \xintifboolexpr{\pixcnt>0}% + {% + \itemtomacro\LCPA[\pixcnt]\pixcol% + \ifboolKV[pixelarttkzen]{Border}% + {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + }% + {}% + }% + }% + }% + }% + {% + \ifboolKV[pixelarttkzen]{Symb}{%affichage du pixelart versions chiffres si besoin + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCNA\PATchiffres + \StrPosition{\PATlettres}{\l}[\pixpos]% + \xintifboolexpr{\pixpos>0}% + {% + \itemtomacro\LCNA[\pixpos]\pixchf% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\pixchf} ;% + }% + {}% + }% + }% + }% + }% + {%affichage du pixelart versions lettres ou chiffres simples (<=9) / display of letters/symbols PixelArt + \csvloop{file=#4,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \IfSubStr{\PATlettres}{\l}% + {% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\l};% + }% + {}% + }% + }% + }% + }% + }% + \IfBooleanTF{#1}{}{\end{tikzpicture}}% +} + +\NewDocumentEnvironment{EnvPixlArtTikz}{ O{} D<>{} m }%environnement +{% + \useKVdefault[pixelarttkzen]% + \setKV[pixelarttkzen]{#1}% + %affichage du corrigé / display of correction + \begin{tikzpicture}[x=\PATunit cm,y=\PATunit cm,#2] + \ifboolKV[pixelarttkzen]{Correction}% + {% + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCPA\PATcouleurs + \StrPosition{\PATlettres}{\l}[\pixcnt]% + \xintifboolexpr{\pixcnt>0}% + {% + \itemtomacro\LCPA[\pixcnt]\pixcol% + \ifboolKV[pixelarttkzen]{Border}% + {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + }% + {}% + }% + }% + }% + }% + {% + \ifboolKV[pixelarttkzen]{Symb}{%affichage du pixelart versions chiffres si besoin + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \setsepchar{,} + \readlist*\LCNA\PATchiffres + \StrPosition{\PATlettres}{\l}[\pixpos]% + \xintifboolexpr{\pixpos>0}% + {% + \itemtomacro\LCNA[\pixpos]\pixchf% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\pixchf} ;% + }% + {}% + }% + }% + }% + }% + {%affichage du pixelart versions lettres ou chiffres simples (<=9) / display of letters/symbols PixelArt + \csvloop{file=#3,no head,command={% + \foreach \l [count=\n] in \csvline {% + \StrDel{\l}{ }[\l] + \IfSubStr{\PATlettres}{\l}% + {% + \draw ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) node[inner sep=0,midway,font=\PATtaille] {\l};% + }% + {}% + }% + }% + }% + }% + }% + }% + {% + \end{tikzpicture}% +}% + +\endinput
\ No newline at end of file diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 490b602398a..c127b032ed8 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -638,7 +638,7 @@ my @TLP_working = qw( phonenumbers phonetic phonrule photo photobook physconst physics physunits piano picinpar pict2e pictex pictex2 pictexsum picture piechartmp piff pigpen - pinlabel pinoutikz pitex piton pittetd pixelart + pinlabel pinoutikz pitex piton pittetd pixelart pixelarttikz pkfix pkfix-helper pkgloader pkuthss pl placeat placeins placeins-plain plain-doc plainpkg plainyr plari plantslabels plantuml plates diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 2ee08852367..c0d2519c06c 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1753,6 +1753,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'pgfornament' => '&POSTpgfornament', 'pgfplots' => '&POSTpgfplots', 'pict2e' => '&POSTpict2e', + 'pixelarttikz' => '&POST_onelevel', 'pkfix-helper' => '&POSTpkfix_helper', 'platex' => '&POST_preserve_man', 'pmx' => '&POSTpmx', diff --git a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc index 4724346299c..916f1180f75 100644 --- a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc @@ -125,6 +125,7 @@ depend pictex depend pictex2 depend pinlabel depend pixelart +depend pixelarttikz depend pmgraph depend postage depend prerex diff --git a/Master/tlpkg/tlpsrc/pixelarttikz.tlpsrc b/Master/tlpkg/tlpsrc/pixelarttikz.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/pixelarttikz.tlpsrc |