% !TeX TXS-program:compile = txs:///arara
% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')

\documentclass[french,11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{DejaVuSerif}
%\usepackage[scale=1.125]{inconsolata}
\usepackage{pgffor}
\usepackage{coloredbelts}
\usepackage{enumitem}
\usepackage{soul}
\usepackage{codehigh}
\usepackage{multicol}
\usepackage{tabularray}
\usepackage{fontawesome5}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
%\rhead{\sffamily\small\affloetalab[Legende]}
\lfoot{\sffamily\small [coloredbelts]}
\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

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

\def\TPversion{0.20a}
\def\TPdate{20/02/2026}
\def\HtRet{0.45}\def\LgRect{1.5}
\usepackage{tcolorbox}

\def\ListeTailleTexte{tiny,scriptsize,footnotesize,small,normalsize,large,large,LARGE,huge,Huge}

\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
	\hl{\vphantom{\texttt{pf}}\texttt{#1}}%
}

\usepackage{babel}

\begin{document}

\pagestyle{fancy}

\thispagestyle{empty}

\begin{center}
	\begin{minipage}{0.88\linewidth}
	\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
		\begin{center}
			\begin{tabular}{c}
				{\Huge \texttt{coloredbelts}}\\
				\\
				{\LARGE Des ceintures colorées,}\\
				\\
				{\LARGE au format vectoriel, ou via \TikZ,} \\
				\\
				{\LARGE pour présenter des compétences, par exemple.} \\
				\\
				{\small \texttt{Version \TPversion{} -- \TPdate}}
		\end{tabular}
		\end{center}
	\end{tcolorbox}
\end{minipage}
\end{center}

\begin{center}
	\begin{tabular}{c}
	\texttt{Cédric Pierquet}\\
	{\ttfamily c pierquet -- at -- outlook . fr}\\
	\texttt{\url{https://github.com/cpierquet/latex-packages/tree/main/coloredbelts}}
\end{tabular}
\end{center}

\hrule

\phantomsection

\hypertarget{matoc}{}

\tableofcontents

\vspace*{5mm}

\hrule

\vspace*{5mm}

\vfill

\begin{tcolorbox}[colframe=lightgray,colback=lightgray!10]
\hfill
{\Huge\CeintureCouleur[Hauteur=2cm]{red}~\CeintureCouleur[Hauteur=2cm]{jaune-orange}}
\hfill~

\bigskip

\hfill\foreach \couleur in {blanc,jaune,orange,rouge,rose,vert,bleu,marron,violet,gris,noir}{{\LARGE\sffamily\CeintureCouleur{\couleur}\,}}\hfill~

\bigskip

\hfill{\Huge\rotatebox[origin=c]{45}{\CeintureCouleur{vert}}\:\rotatebox[origin=c]{-45}{\CeintureCouleur{bleu}}\:\rotatebox[origin=c]{45}{\CeintureCouleur{violet-marron}}}\hfill~
\end{tcolorbox}

\vfill~

\pagebreak

\section{Le package coloredbelts}

\subsection{Idées}

L'idée est de pouvoir intégrer, dans un document \LaTeX, un pictogramme type \textit{ceinture colorée} pour présenter par exemple des niveaux de compétences.

\medskip

Les logos sont au format (vectoriel) \MontreCode{pdf}, et ont été obtenus à partir d'un fichier \MontreCode{svg}, diffusé sous licence CC BY-SA 3.0 (\url{https://commons.wikimedia.org/wiki/File:Judo_yellow_belt.svg}). Le fichier a servi de base pour les différents coloris.

\medskip

Je remercie Sascha Christmann pour sa contribution aux ceintures bicolores (les deux versions ont les mêmes dimensions initiales).

\subsection{Chargement}

Le package se charge dans le préambule, via \MontreCode{\textbackslash usepackage\{coloredbelts\}}.

Les seuls packages chargés sont \MontreCode{graphicx} et \MontreCode{tikz}, le reste du code est en \hologo{LaTeX3}.

\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\usepackage{coloredbelts}
\end{codehigh}

\section{La commande}

\subsection{Masque de nommage des fichiers}

Chaque logo est nommé sous la forme \MontreCode{judobelt-<couleur(s)>.pdf}, de sorte que les pictogrammes peuvent être insérés directement via la commande \MontreCode{\textbackslash includegraphics} \textit{classique}.

\begin{demohigh}[language=latex/latex3,style/main=cyan!10,style/code=cyan!10,style/demo=cyan!10]
\includegraphics[height=5cm]{judobelt-yellow.pdf}\par
\includegraphics[width=4cm]{judobelt-pink.pdf}\par
\includegraphics[width=3cm]{judobelt-orange-green.pdf}
\end{demohigh}

\subsection{Fonctionnement}

La commande dédiée à un affichage \textit{en ligne} est \MontreCode{\textbackslash CeintureCouleur}.

\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\CeintureCouleur(*)[options]{couleur}
\end{codehigh}

La version étoilée correspond en fait à un \textit{alias} d'un \MontreCode{\textbackslash includegraphics}, avec les paramètres optionnels entre \MontreCode{[...]}.

\medskip

Concernant les options de la version non étoilée :

\begin{itemize}[leftmargin=*]
	\item la cle \MontreCode{Hauteur} permet de :
	\begin{itemize}
		\item spécifier une hauteur automatique, via \MontreCode{auto}, au quel cas le code se charge de positionner la ceinture en fonction de la fonte et de la taille du texte courant (95\,\% de la hauteur globale des lettres (modifiable par la clé \MontreCode{Strut}) + léger décalage vertical) ;
		\item ou bien de spécifier une hauteur globale ;
	\end{itemize}
	\item la clé \MontreCode{DecalV} (sans hauteur automatique) permet de décaler verticalement le pictogramme.
\end{itemize}

Les couleurs diponibles sont :

\begin{itemize}
	\item \CeintureCouleur{blanc} : \texttt{blanc} ;
	\item \CeintureCouleur{jaune}  : \texttt{jaune} ;
	\item \CeintureCouleur{orange}  : \texttt{orange} ;
	\item \CeintureCouleur{rouge}  : \texttt{rouge} ;
	\item \CeintureCouleur{rose}  : \texttt{rose} ;
	\item \CeintureCouleur{vert}  : \texttt{vert} ;
	\item \CeintureCouleur{bleu}  : \texttt{bleu} ;
	\item \CeintureCouleur{marron}  : \texttt{marron} ;
	\item \CeintureCouleur{violet}  : \texttt{violet} ;
	\item \CeintureCouleur{gris}  : \texttt{gris} ;
	\item \CeintureCouleur{noir}  : \texttt{noir} ;
	\item \CeintureCouleur{blanc-jaune}  : \texttt{blanc-jaune} ;
	\item \CeintureCouleur{jaune-orange}  : \texttt{jaune-orange} ;
	\item \CeintureCouleur{orange-vert}  : \texttt{orange-vert} ;
	\item \CeintureCouleur{vert-bleu}  : \texttt{vert-bleu} ;
	\item \CeintureCouleur{violet-marron}  : \texttt{violet-marron} ;
	\item \CeintureCouleur{bleu-marron}  : \texttt{bleu-marron} ;
	\item \CeintureCouleur{bleu-violet}  : \texttt{bleu-violet} ;
	\item \CeintureCouleur{marron-noir}  : \texttt{marron-noir}.
\end{itemize}

\medskip

\begin{tblr}{hlines,width=\linewidth,colspec={Q[l,m]X[l,m]},row{1}={magenta!10},row{2-Z}={cyan!10}}
	\SetCell[r=1,c=2]{c,m} \fakeverb{\CeintureCouleur} & \\
	{\tiny\fakeverb{\tiny}} & {\tiny Essai de logo \CeintureCouleur{red} en ligne} \\
	{\scriptsize\fakeverb{\scriptsize}} & {\scriptsize Essai de logo \CeintureCouleur{red} en ligne} \\
	{\footnotesize\fakeverb{\footnotesize}} & {\footnotesize Essai de logo \CeintureCouleur{red} en ligne} \\
	{\small\fakeverb{\small}} & {\small Essai de logo \CeintureCouleur{red} en ligne} \\
	{\normalsize\fakeverb{\normalsize}} & {\normalsize Essai de logo \CeintureCouleur{red} en ligne} \\
	{\large\fakeverb{\large}} & {\large Essai de logo \CeintureCouleur{red} en ligne} \\
	{\Large\fakeverb{\Large}} & {\Large Essai de logo \CeintureCouleur{red} en ligne} \\
	{\LARGE\fakeverb{\LARGE}} & {\LARGE Essai de logo \CeintureCouleur{red} en ligne} \\
	{\huge\fakeverb{\huge}} & {\huge Essai de logo \CeintureCouleur{red} en ligne} \\
	{\Huge\fakeverb{\Huge}} & {\Huge Essai de logo \CeintureCouleur{red} en ligne} \\
\end{tblr}

\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
{\Huge\rotatebox[origin=c]{30}{\CeintureCouleur{marron}}\:
\rotatebox[origin=c]{-45}{\CeintureCouleur{bleu}}}
\end{demohigh}

\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\CeintureCouleur*[scale=0.25]{orange}\par
\CeintureCouleur*[scale=0.15]{yellow}\par
\CeintureCouleur*[scale=0.3]{vert-bleu}
\end{demohigh}

\subsection{Version \TikZ}

Il est également possible d'utiliser une macro \textit{simplifiée}, utilisant \TikZ, pour insérer les ceintures de couleur, avec couleurs \textbf{personnalisées}.

Il est -- pour le moment -- possible d'insérer uniquement une ceinture \textit{monochrome}.

\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
\tkzcoloredbelt(*)[clés]<options tikzpicture>{couleur}

%les clés sont :
%height  = hauteur si version étoilée
%strut   = caractères de base pour le calcul en mode non étoilé
%border  = couleur de la bordure
\end{codehigh}

\begin{demohigh}[language=latex/latex3,style/main=cyan!10,style/code=cyan!10,style/demo=cyan!10]
%version en ligne
Version en ligne d'une \tkzcoloredbelt{pink} ceinture rose
\end{demohigh}

\begin{demohigh}[language=latex/latex3,style/main=cyan!10,style/code=cyan!10,style/demo=cyan!10]
%version en ligne
\LARGE\sffamily\bfseries
Version en ligne d'une (\tkzcoloredbelt[border=blue,strut=()]{pink}) ceinture rose à bord bleue
\end{demohigh}

\begin{demohigh}[language=latex/latex3,style/main=cyan!10,style/code=cyan!10,style/demo=cyan!10]
%version 'classique'
\tkzcoloredbelt*[height=2cm]<rotate=10>{orange!50!red!50!yellow}
\end{demohigh}

\pagebreak

\vfill

\section{Historique}

\verb|v0.20a|~:~~~~Améliorations \hologo{LaTeX3}

\verb|v0.1.6|~:~~~~Améliorations + version \TikZ

\verb|v0.1.5|~:~~~~Passage à \hologo{LaTeX3}

\verb|v0.1.4|~:~~~~Ajout d'une clé \textsf{Strut} pour la hauteur automatique

\verb|v0.1.3|~:~~~~Uniformisation des fichiers

\verb|v0.1.2|~:~~~~Meilleure gestion des longueurs

\verb|v0.1.1|~:~~~~Couleur "duo"

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

\vspace*{15mm}

\end{document}