% !TeX TS-program = pdflatex \documentclass[svgnames]{report} \usepackage[utf8]{inputenc} \usepackage{wordle} \usepackage{manfnt} \usepackage{enumitem} \setlist[description]{font=\sffamily\bfseries\color{ForestGreen},labelwidth=\textwidth} \usepackage{booktabs} \usepackage[a4paper,margin=18mm]{geometry} \synctex=1 \parindent=0pt \parskip=2mm \usepackage{cmap} % fix search and cut-and-paste in Acrobat \setcounter{secnumdepth}{0} \usepackage{listings}\lstset{language=[LaTeX]TeX,framerule=2pt} \lstset{language=[LaTeX]TeX, texcsstyle=*\bfseries\color{Peru}, backgroundcolor=\color{Ivory}, numbers=none, breaklines=true, keywordstyle=\color{Sienna}, commentstyle=\color{BurlyWood}, tabsize=2, morekeywords={Wordle,wordle,GrilleSutom}, resetmargins=true, } % hyperref links to ctan \newcommand\ctan[1]{\href{https://www.ctan.org/pkg/#1}{\texttt{#1}}} \newcommand\Section[1]{\subsection{\textcolor{DarkGreen}{#1}}} \ExplSyntaxOn \NewDocumentCommand\option{ omo }{% \IfNoValueTF{#1}{\textsf{#2}} {% \textbf{\textcolor{Crimson}{#2}} \str_if_empty:nF {#1}{~(défaut~:~\textcolor{DarkRed}{#1})}% \IfNoValueF{#3}{\hfill\textcolor{Gray}{[accepte~:~#3]}}% }% \index{#2}% } \ExplSyntaxOff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{imakeidx} \indexsetup{level=\section*, toclevel=section, noclearpage} \makeindex[intoc,columns=3] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[skins,listings]{tcolorbox} \usetikzlibrary{backgrounds, shapes.geometric} % for tikz={framed,...} \DeclareTotalTCBox\keyword{ O{} v }{ fontupper=\sffamily, nobeforeafter, skin=tile, verbatim, on line, tcbox raise base, top=0pt,bottom=0pt,left=0mm,right=0mm, colback=OldLace, colupper=ForestGreen, #1} {#2} \lstdefinestyle{tikz}{style=tcblatex, classoffset=0, texcsstyle=*\color{DarkGoldenrod},% deletetexcs={begin, end}, moretexcs={,% node, draw, true, false },% classoffset=1, keywordstyle=\color{ForestGreen},% morekeywords={wordle,GrilleSutom}, classoffset=2, keywordstyle=\color{Crimson},% morekeywords={ absent, Strict, Taille, Lignes, Epaisseur, align, border, borders, Bords, Cadres, Style, Formes, Separation, case, Police, Arrondi, Echelle, NonLettres, color, Couleurs, CouleurBordures, CouleurLettres, bordure, couleur, colours, correct, vide, font, frame, frames, letters, lower, params, name, natural, noalign, noletters, present, rounded, rows, scale, sensitive, separation, shape, shapes, size, strict, style, style, text, thickness, tikz, tile, upper, }, classoffset=3, keywordstyle=\color{DarkOrange},% morekeywords={ hard, standard, sutom, } } \DeclareTCBListing{example}{ !O{} }{% skin=bicolor, colframe=MediumSeaGreen, colbacklower=OldLace, colback=LawnGreen!20, lefthand width=50mm, listing style=tikz, sidebyside, sidebyside align=center, sidebyside gap=4mm, text and listing, text outside listing, boxsep = 0pt, #1 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \makeatletter \author{Andrew Mathas \&\ Cédric Pierquet} \usepackage{tikz} \usetikzlibrary{shadows.blur} \tikzset{shadowed/.style={blur shadow={shadow blur steps=5}, bottom color=ForestGreen!30, draw=MediumSeaGreen!70, shade, font=\normalfont\Huge\bfseries\scshape, rounded corners=8pt, top color=SeaGreen, }, boxes/.style={draw=SeaGreen, fill=Cornsilk, font=\sffamily\small, inner sep=5pt, rectangle, rounded corners=8pt, text=DarkGreen, } } \newcommand\Wordle{% \begin{tikzpicture}[remember picture,overlay] \node[yshift=-3cm] at (current page.north west) {\begin{tikzpicture}[remember picture, overlay] \draw[shadowed](30mm,0) rectangle node[white]{wordle} (\paperwidth-30mm,16mm); \node[anchor=west,boxes] at (4cm,0cm) {\@author}; \node[anchor=east,boxes] at (\paperwidth-4cm,0) {Version \wordle@version}; \end{tikzpicture} }; \end{tikzpicture} \vspace*{20mm} } \def\@oddfoot{\textsc{Wordle} --- \wordle@version~(version~du~\wordle@release)\hfill\thepage} \usepackage[colorlinks=true,linkcolor=blue,urlcolor=MediumBlue]{hyperref} \hypersetup{ pdfcreator={ Generated by pdfLaTeX }, pdfinfo={ Author ={ Andrew Mathas et Cédric Pierquet }, Keywords={ wordle }, License ={ LaTeX Project Public License v1.3c or later }, Subject ={ LaTeXing Wordle puzzles }, Title ={ Wordle - \wordle@version } }, } \makeatother \begin{document} \Wordle Ce package fournit un moyen \textit{stupidement} riche en fonctionnalités de créer des puzzles \keyword{Wordle} en \LaTeX, que \href{https://en.wikipedia.org/wiki/Wordle}{Wikipedia} décrit comme comme un jeu de lettres en ligne extrêmement populaire, créé et développé par l'ingénieur logiciel gallois Josh Wardle. Ce paquet est une version améliorée d'une des solutions à une question posée par \textcolor{FireBrick}{valerio\_new} sur \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com}. Ce paquet fournit l'environnement \keyword{GrilleSutom}, qui utilise la syntaxe : \begin{tcblisting}{ listing only, skin=bicolor, colframe=MediumSeaGreen, colbacklower=OldLace, colback=LawnGreen!20, listing style=tikz, boxsep = 0pt, } % \usepackage{wordle} \begin{GrilleSutom}[params sutom]{solution}[commandes tikz optionnelles] essai1 essai2 ... \end{GrilleSutom} \end{tcblisting} \index{environnement!GrilleSutom} \index{GrilleSutom} \index{sutom} et l'environnement \keyword{wordle}, pour la version anglaise du jeu : \begin{tcblisting}{ listing only, skin=bicolor, colframe=MediumSeaGreen, colbacklower=OldLace, colback=LawnGreen!20, listing style=tikz, boxsep = 0pt, } % \usepackage{wordle} \begin{wordle}[params wordle]{solution}[commandes tikz optionnelles] essai1 essai2 ... \end{wordle} \end{tcblisting} \index{environnement!wordle} \index{wordle} Les mots du puzzle peuvent être saisis sur une seule ligne ou sur des lignes séparées. Voici quelques exemples : \begin{example} %Version fr du wordle (sutom) \begin{GrilleSutom}{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} \begin{example} % Version en du sutom (wordle) \begin{wordle}{SUTOM} SAUCE SAUTS SUTOM \end{wordle} \end{example} Comme pour les puzzles en ligne, l'environnement \keyword{GrilleSutom} colore automatiquement les lettres en \keyword[colback=WordleSutomCorrect,colupper=White]{rouge} lorsque la lettre se trouve dans la même position que la solution, et en \keyword[colback=WordlePresent,colupper=White]{or} lorsque la lettre est dans la solution mais qu'elle n'est pas bien placée. De même, \keyword{GrilleSutom} colore les lettres correctes en \keyword[colback=WordleCorrect,colupper=White]{vert} et les lettres actuelles en \keyword[colback=WordleCorrect,colupper=White]{or}. Comme décrites ci-dessous, ces couleurs peuvent être modifiées en fonction de vos goûts. Le nombre de lettres du puzzle est déterminé par la solution, et n'est limité que par la largeur de la page. \begin{example} \begin{GrilleSutom}[Lignes=4]{orange} normal ordres orange \end{GrilleSutom} \end{example} Les lettres du puzzle peuvent être saisies en majuscules, en minuscules ou en mélange de majuscules et de minuscules. Par défaut, la casse des lettres est ignorée lors de la détermination des couleurs des cases de lettres. Comme décrit ci-dessous, les environnements \keyword{wordle} et \keyword{GrilleSutom} acceptent une liste d'options différentes qui modifient les couleurs, les polices et les formes de la tuile. De plus, vous pouvez modifier la sensibilité à la casse des environnements, ajouter des lignes supplémentaires au puzzle, désactiver la mise en forme spéciale des \textit{cases de lettres}. Ces options sont données sous la forme d'une liste séparée par des virgules de paires \texttt{clé-valeur}. Elles peuvent être définies localement, en utilisant l'argument optionnel de l'environnement \keyword|wordle|, ou globalement (plus précisément, dans le groupe \LaTeX\ actuel) en utilisant la commande \keyword{\ParamsSutom} \index{\textbackslash ParamsSutom}, ou comme options globales du package, via \keyword{\usepackage[options]{wordle}}. L'ordre des options n'a pas d'importance, sauf que les options ultérieures ont priorité sur les options précédentes, à l'exception des clés \option{tikz} et \option{tile style} qui sont toujours appliquées en dernier. Les puzzles \keyword{wordle} sont dessinés à l'aide de \ctan{TikZ}, chaque lettre du puzzle étant placée à l'intérieur d'un nœud \ctan{TikZ}. De nombreuses options contrôlent les paramètres de ces nœuds. Les descriptions des options ci-dessous sont regroupées en fonction de leur fonction. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Styles Wordle} La clé \option{Style} peut être utilisée pour modifier de nombreuses caractéristiques des cases dans un puzzle \keyword{wordle}, y compris leurs couleurs, les polices et ainsi de suite. Les paramètres les plus courants peuvent être définis à l'aide du mot-clé \option{style}. \textit{Le style doit toujours être défini en premier car, sinon, les paramètres de style peuvent remplacer les paramètres précédents.} Les styles suivants sont pris en charge : \textcolor{DarkOrange}{sutom} \index{Style!sutom} \index{sutom} \begin{example} \begin{GrilleSutom}[Style=sutom]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} En plus de définir les couleurs des cases, les cadres et les formes, le style \textsf{sutom} définit également la taille des cases à 8 mm. Le style \textsf{sutom} est le style par défaut pour l'environnement \keyword{GrilleSutom}. \textcolor{DarkOrange}{standard} \index{style!standard} \begin{example} \begin{GrilleSutom}[Style=standard]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} Le style \textcolor{DarkOrange}{standard} est le style par défaut pour l'environnement \keyword{wordle}. \textcolor{DarkOrange}{hard} \index{style!hard} \begin{example} \begin{GrilleSutom}[Style=hard]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Options pour les styles individuels des cases de lettres} Il existe quatre types de cases de lettres dans \keyword{wordle} : \option{absent}, \option{present}, \option{correct} et \option{vide}, correspondant respectivement aux lettres qui ne sont pas dans la solution, aux lettres mal placées, aux lettres correctement placées et aux cases vides. Les options de cette section peuvent être utilisées pour définir les couleurs du texte, des cases et des bordures, les formes et les cadres de ces cases. Les cases de lettres dans un environnement \keyword{wordle} sont composées à l'intérieur d'un \keyword{\node} \ctan{TikZ}. Les options ci-dessous contrôlent les différents paramètres de style de ces nœuds. \option[--]{Couleurs}[liste de couleurs valides séparées par des virgules] L'option \option{Couleurs} est un raccourci pour spécifier les couleurs des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre. Les couleurs suivantes peuvent être omises, mais les couleurs doivent être données dans cet ordre, de gauche à droite. Si une seule couleur est donnée, cette couleur est appliquée à toutes les cases. \begin{example} \begin{GrilleSutom}[Couleurs={LightGray,Orange,Teal}]{cellar} pounds taylor cellar \end{GrilleSutom} \end{example} Les couleurs peuvent également être définies individuellement à l'aide de \option{couleur absent}, \option{couleur present}, \option{couleur correct} et \option{couleur vide}. \begin{example} \begin{GrilleSutom}[couleur absent=DarkGray,couleur present=Salmon, couleur correct=SeaGreen]{cellar} pounds taylor cellar \end{GrilleSutom} \end{example} \option[white]{CouleurBordures}[liste de couleurs valides séparées par des virgules] de manière similaire à l'option \option{Couleurs}, il s'agit d'un raccourci pour le paramétrage des couleurs des bordures des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre. Si une seule couleur est donnée, elle est appliquée à toutes les cases. \begin{example} \begin{GrilleSutom}[CouleurBordures={red,orange,blue}]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} Les bordures pour les cases individuelles peuvent être paramétrer via \option{bordure absent}, \option{bordure present}, \option{bordure correct} et \option{bordure vide}. \option[false]{Cadres}[liste de booléens true/false séparées par des virgules] Il s'agit d'un raccourci pour ajouter un cadre autour des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre, avec la même couleur que \option{absent}. C'est utile uniquement pour les cases non carrée. \begin{example} \begin{GrilleSutom}[Cadres={false,true,true},Formes=circle]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} Les cadres pour les cases individuelles peuvent être paramétrer via \option{cadre absent}, \option{cadre present}, \option{cadre correct} and \option{cadre vide}. \option[rectangle]{Formes}[liste de formes TikZ séparées par des virgules] De même que pour l'option \option{Couleurs}, c'est un raccourci pour paramétrer les formes des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre. \begin{example} \begin{GrilleSutom}[Formes={circle, rectangle, circle}]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} Les formes individuelles peuvent être paramétrer via \option{forme absent}, \option{forme present}, \option{forme correct} et \option{forme vide}. Les formes proposés par le package \ctan{TikZ} \texttt{shapes.geometric}, incluant \texttt{diamond}, \texttt{ellipse}, \texttt{trapezium} et \texttt{star} (voir section~71.2 du manuel \ctan{TikZ}). \begin{example} % \usepackage{shapes.geometric} \begin{GrilleSutom}[Formes={diamond,ellipse,star}]{LADLE} FLAIL LAPEL * LADLE LOVER \end{GrilleSutom} \end{example} \option[white]{CouleurLettres}[liste de couleurs valides séparées par des virgules] Il s'agir d'un raccourci pour paramétrer la couleur des lettres des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre. \begin{example} \begin{GrilleSutom}[CouleurLettres={red,orange,blue}]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} Les cases individuelles peuvent être paramétrer via \option{coultxt absent}, \option{coultxt present}, \option{coultxt correct} et \option{coultxt vide}. \Section{Caractéristiques communes des cases} Les options suivantes s'appliquent à toutes les cases. \option[]{nonalign} (default) \qquad \option[]{align} Cette option s'occupe de l'alignement vertical des lettres. C'est utile essentiellement lors de l'utilisation de minuscules. \begin{example} \begin{GrilleSutom}[align]{agony} groan angry agony \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}{agony} % nonalign par defaut groan angry agony \end{GrilleSutom} \end{example} \option[\textbackslash Large\textbackslash bfseries\textbackslash sffamily]{Police} [Police \LaTeX] Cela permet de paramétrer la police de toutes les lettres. Toute commande valide est acceptée. \begin{example} \begin{GrilleSutom}[Police=\large\ttfamily]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} \option[1mm]{Arrondi}[une longueur] Cela permet de paramétrer le paramètres \texttt{rounded corners} (de TikZ) pour les cases \keyword{wordle}. \begin{example} \begin{GrilleSutom}[Arrondi=2.5mm]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} \option[0.5mm]{Separation}[une longueur] Cela permet de paramétrer la séparation entre les cases du \keyword{wordle}. \begin{example} \begin{GrilleSutom}[Separation=2mm,CouleurBordures=black]{REBUS} ABRIS ROUTE REBUS \end{GrilleSutom} \end{example} \option[1]{Echelle}[un nombre] L'option \option{Echelle} applique un facteur à l'environnement \keyword{wordle}. Cette option modifie les dimensions définies par les options \option{Arrondi}, \option{Separation}, \option{Taille} et \option{Epaisseur}. Si vous changez l'échelle, vous voudrez également changer la police de caractères via \option{Police} : \begin{example} \begin{GrilleSutom}[Echelle=1.5,Police=\huge\bfseries]{SIZE} HELP WISE SIZE \end{GrilleSutom} \end{example} \option[8mm]{Taille}[une longueur] L'option \option{Taille} définit la taille des cases. Contrairement à l'option \option{Echelle}, \option{Taille} change uniquement la dimension des cases. \begin{example} \begin{GrilleSutom}[Taille=10mm,Police=\huge\bfseries]{REPU} ABRI ROUE * REPU \end{GrilleSutom} \end{example} \option[0.25mm]{Epaisseur}[une longueur]• Cela permet de paramétrer la taille des bordures des cases. Par défaut la couleur est blanche, donc pour illustrer cette option elle sera paramétrer en rouge. \begin{example} \begin{GrilleSutom}[Epaisseur=0.75mm,CouleurBordures=red]{LADLE} FLAIL LAPEL LADLE \end{GrilleSutom} \end{example} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Lignes et colonnes supplémentaires} Par défaut, le nombre de lignes et de colonnes de la grille est fixée par les mots donnés. \option[]{Lettres} (défaut)\qquad \option[]{NonLettres} Par dafut, les lettres sont affichées, mais l'option \option{NonLettres} peuvent être cachées. \begin{example} \begin{GrilleSutom}{CRAZE} % the default TRACE CREAM CRAZE \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}[NonLettres]{CRAZE} TRACE CREAM CRAZE \end{GrilleSutom} \end{example} \option[false]{Strict}[true/false/--] Par défaut, l'environnement ne vérifie pas si tous les mots sont la même taille, donc les lettres \textit{en trop} n'ont pas de style particulier. \begin{example} \begin{GrilleSutom}[Strict=false]{CRAZE} % par defaut GRAIL CRAMPS CRAM CRABS \end{GrilleSutom} \end{example} L'option booléenne \option{Strict} force un style particulier des lettre \textit{en trop}. \begin{example} \begin{GrilleSutom}[Strict]{CRAZE} GRAIL CRAMPS CRAM CRABS \end{GrilleSutom} \end{example} \option[--]{Lignes} Par défaut, l'environnement \keyword{wordle} affiche le nombre de lignes en adéquation avec le nombre de mots donnés. L'option \option{Lignes} permet de modifier le nombre de lignes (évenuellement vides). \begin{example} \begin{GrilleSutom}[Lignes=4]{ANVIL} CRANE NATAL ANVIL \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}[Lignes=2]{ANVIL} CRANE NATAL ANVIL \end{GrilleSutom} \end{example} \option[]{*} Le style des case peut être annulé en ajoutant un astérisque,~\option{*}, en tant que mot. \begin{example} \begin{GrilleSutom}{ANVIL} CRANE NATAL * % annule la mise en forme ANNUL ANVIL \end{GrilleSutom} \end{example} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Sensibilité à la casse} \index{case~sensitive} \index{case~sensitive!lower case} \index{case~sensitive!natural case} \index{case~sensitive!upper case} Par défaut, les lettres peuvent être écrites en majuscule ou en minuscule, comme saisies par l'utilisateur. L'option (voir doc en anglais) \option{case~sensitive} permet de spécifier un paramétrage de la casse. \begin{example} \begin{GrilleSutom}[case sensitive=false]{youth} % par defaut North South Youth \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}[case sensitive]{youth} North South Youth \end{GrilleSutom} \end{example} Les options \textit{fines} \option{natural case} (défaut), \option{lower case}et \option{upper case} permettent de travailler plus finement sur la casse des lettres correctes et/ou mal placées. \begin{example} \begin{GrilleSutom}[lower case]{YOUTH} North South Youth \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}[upper case]{youth} North South Youth \end{GrilleSutom} \end{example} \begin{example} \begin{GrilleSutom}[natural case]{youth} % par defaut North South youth \end{GrilleSutom} \end{example} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Style \ctan{TikZ} complémentaire} \option[]{tikz}[commandes TikZ] \begin{example} % \usetikzlibrary{backgrounds} \begin{GrilleSutom}[ tikz={framed, background rectangle/.style={ double,ultra thick, draw=SteelBlue } }]{youth} North South youth \end{GrilleSutom} \end{example} \pagebreak \option[W]{Nom} \begin{example} \begin{GrilleSutom}[tikz={remember picture}]{CRAZE} TRACE CREAM CRAZE \end{GrilleSutom} \end{example} \begin{example} \tikz[remember picture]\draw[overlay, very thick, opacity=0.5,->,red](0,0)node{Pas de M !!!} to [out=90, in=180](W-2-5); \end{example} \begin{example} \begin{GrilleSutom}[name=M, tikz={arr/.style={red,ultra thick,->}} ]{MACAW} [{ \draw[arr](M-1-3.south)--(M-3-2.north)--(M-4-2.north); \draw[arr](M-1-1.south)--(M-3-5)--(M-4-3.north east); }] CRANE HOTLY BASIC MACAW \end{GrilleSutom} \end{example} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Le code} Le package \keyword{wordle} est écrit en \LaTeX3. Beaucoup de commentaires permettent d'expliciter le fonctionnement du code. La coloration automatique des cases est un exercice amusant en \LaTeX3, motivépar un message issu de \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com}. Le dépôt \href{https://github.com/AndrewMathas/Wordle}{github.com/AndrewMathas/Wordle} est disponible pour signaler tout bug. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \printindex \end{document}