LaTeX ne sert pas qu'aux articles. Écrivez une partie d'échecs en PGN ordinaire et le diagramme de l'échiquier suit tout seul ; il existe aussi sur le CTAN des packages pour les mots croisés, le sudoku, les grilles de tricot et les arbres généalogiques. Ce coin de l'écosystème comporte toutefois un risque particulier : le package recommandé en ligne n'est assez souvent pas dans TeX Live. Le package de go psgo est bien fourni, mais il ne tourne pas sous pdflatex, et kpsewhich shogi.sty n'a rien renvoyé du tout. Chaque package ci-dessous a donc été vérifié par kpsewhich puis réellement compilé avant d'être nommé ici. Là où quelque chose ne marche pas, cette page le dit.
Écrire une partie d'échecs en PGN : skak, xskak et chessboard
Les échecs sont le loisir le mieux servi en LaTeX. Chargez \usepackage{xskak}, ouvrez une partie par \newchessgame et écrivez les coups en PGN brut : \mainline{1. e4 e5 2. Nf3 Nc6 3. Bb5 a6}. Les coups sont composés, et là où vous placez \chessboard apparaît la position atteinte. L'essentiel est que le package tienne un échiquier interne et rejoue effectivement les coups. Le diagramme ne peut donc pas se désynchroniser de la notation. Contrairement aux diagrammes saisis à la main par coordonnées, insérez un coup au milieu et tous les diagrammes suivants suivent.
\documentclass{article}
\usepackage{xskak} % loads skak and chessboard
\begin{document}
\newchessgame
\mainline{1. e4 e5 2. Nf3 Nc6 3. Bb5 a6}
\chessboard
% the shortest possible loss, in four plies
\newchessgame
\mainline{1. f3 e5 2. g4 Qh4#}
\chessboard[showmover=false]
\end{document}Les trois packages se répartissent proprement le travail. skak est le socle : il analyse la notation, tient l'échiquier interne et fournit les fontes dont les glyphes sont les pièces. xskak se pose par-dessus, ajoute les variantes et plusieurs parties simultanées, et charge en même temps chessboard. Le réglage fin du diagramme revient à chessboard : des clés comme \chessboard[showmover=false] suppriment l'indication du trait, et l'on peut recadrer l'échiquier sur une partie de lui-même ou colorer et marquer des cases. Puisque la seule ligne \usepackage{xskak} amène les trois couches, c'est elle qu'il faut écrire en cas de doute.
L'histoire mérite un instant. skak signifie « échecs » en danois — le README le dit franchement. L'auteur est Torben Hoffmann, et la version de TeX Live 2024 est la v1.5.3, datée du 8 janvier 2018. D'après la notice de catalogue de TeX Live, le package est bâti sur les travaux de Piet Tutelaers, et sa nouveauté a été d'utiliser le PGN en entrée plutôt que la notation par coordonnées : g1f3 devenant le plus lisible Nf3. xskak (v1.5, 23 juin 2019) et chessboard (v1.9, 1er novembre 2020) sont tous deux d'Ulrike Fischer, également remerciée dans les remerciements de skak pour son travail sur la gestion des fontes de ce package.
Le go a psgo, le shogi rien, et psgo ne tourne pas sous pdflatex
Pour les diagrammes de go, TeX Live 2024 fournit bien psgo (v0.17) — mais, comme son nom l'indique, il dessine avec PSTricks et ne fonctionne donc pas sous pdflatex. Passer un \begin{psgoboard} a produit ! Undefined control sequence., développé en \c@lor@to@ps ->\PSTricks _Not_Configured_For_This_Format : PSTricks annonce lui-même qu'il n'est pas configuré pour ce format. Curieusement, \usepackage{psgo} seul compile très bien ; la casse survient au moment où l'on dessine réellement un goban. L'issue est la voie latex, puis dvips, puis ps2pdf, ou l'interposition d'auto-pst-pdf (présent dans TeX Live 2024). La première a donné un PDF d'une page à l'essai.
Pour le shogi, disons-le nettement : il n'y a pas de package de shogi dans TeX Live 2024. kpsewhich shogi.sty, kpsewhich igo.sty et kpsewhich gochess.sty n'ont rien renvoyé, et une recherche de shogi sous /usr/local/texlive/2024 n'a produit aucun fichier correspondant. Pour composer des parties ou des positions de shogi, il faudra installer soi-même quelque chose hors du CTAN, ou dessiner le plateau en TikZ. Plutôt que de se fier au souvenir d'un package employé jadis, lancez d'abord kpsewhich — dans ce coin de LaTeX, c'est le chemin le plus court.
Mots croisés et sudoku : cwpuzzle et sudoku
Les mots croisés utilisent cwpuzzle et le sudoku sudoku. Les deux donnent l'impression d'écrire un tableau : les cases se suivent sur une ligne, séparées par |. Dans l'environnement Puzzle de cwpuzzle, |[1]T est une case contenant T et numérotée 1, |* une case noire, et |. clôt la ligne. La numérotation et le cadre sont automatiques, et l'environnement PuzzleClues avec \Clue{numéro}{solution}{définition} compose les définitions à part, de sorte qu'une même source donne la grille vide et la grille remplie. Un point de vigilance : le nom de fichier et le nom de distribution diffèrent. On charge \usepackage{cwpuzzle}, mais sur TeX Live le package est distribué sous le nom crossword, en v1.11, datée du 13 septembre 2022. C'est ce dernier qu'il faut chercher avec tlmgr.
\usepackage{cwpuzzle} % distributed on TeX Live under the name "crossword"
\usepackage{sudoku}
% ...
\begin{Puzzle}{5}{5}%
|[1]T|[2]E|[3]X |* |* |.
|E |* |E |* |* |.
|[4]X|* |X |* |* |.
|* |* |* |* |* |.
|* |* |* |* |* |.
\end{Puzzle}
\begin{PuzzleClues}{\textbf{Across}}
\Clue{1}{TEX}{A typesetting system}
\end{PuzzleClues}
\begin{sudoku}
|2| | |6| |7| | |1|.
| |8| | | | | |5| |.
| | |6| |3| |4| | |.
| | |9| | | |8| | |.
|5| | |1| |4| | |2|.
| | |3| | | |7| | |.
| | |4| |6| |1| | |.
| |7| | | | | |3| |.
|9| | |2| |8| | |4|.
\end{sudoku}sudoku (v1.0) exige exactement neuf lignes ; une case vide s'écrit | | avec une espace, et |. clôt chaque ligne. Les deux exemples ci-dessus ont compilé sans erreur sur TeX Live 2024 — cwpuzzle a produit le cadre et la numérotation, sudoku une grille avec les filets 3×3 renforcés. Au passage, malgré son nom, cwpuzzle compose aussi le sudoku et le kakuro. Pour un recueil entier de jeux, tout regrouper sur lui est un choix raisonnable.
Composer des grilles de tricot : le package knitting et où trouver la légende
knitting (v3.0, 3 avril 2019, d'Ariel Barton) fournit les fontes de symboles et les commandes pour les grilles de torsades et de dentelle. Son interface est singulière : on tape les symboles comme des lettres ordinaires, ainsi \textknit{kpkp} — k pour une maille endroit, p pour une maille envers, un caractère du clavier par symbole de maille. Une grille quadrillée se construit avec \chart[right]{...}, et un piège guette ici : chart est une commande, pas un environnement, et le corps se met entre accolades. Écrire \begin{chart} ne déclenche aucune erreur et se termine par le code 0, mais en comparant les deux formes sur un contenu identique, la commande a produit symboles de mailles et numéros de rangs tandis que l'environnement imprimait les simples lettres kpkpkp. \knitgrid et \knitnogrid activent ou désactivent le quadrillage. À la manière des anciens packages, il fonctionne sous Plain TeX comme sous LaTeX.
\usepackage{knitting}
% ...
\textknit{kpkpkp} % symbols are typed as ordinary letters
\knitgrid % draw the grid; \knitnogrid for a chart without one
% \chart is a COMMAND taking a braced body -- not a "chart" environment.
\chart[right]{
kpkpkp
pkpkpk
}La liste indiquant quelle lettre donne quelle maille se trouve dans knitkey — qui n'est pas un package à charger. kpsewhich knitkey.sty ne renvoie rien ; il s'agit en réalité d'un document, à texmf-dist/doc/fonts/knitting/knitkey.pdf. Pour l'ouvrir localement, texdoc knitkey est le plus rapide. Le même répertoire contient aussi knitexamples.pdf. Notez encore que TeX Live fournit un package distinct nommé knittingpattern, destiné à composer les explications rédigées plutôt que la grille.
Arbres généalogiques, recettes et calendriers : genealogytree, cooking, termcal
Les arbres généalogiques relèvent de genealogytree (v2.3.0). Bâti sur TikZ, il tourne tel quel sous pdflatex. À l'intérieur de \begin{genealogypicture}, on écrit les relations familiales sous forme d'imbrication, comme parent{ g{enfant} p{père} p{mère} }, et la disposition est calculée pour vous. template= choisit un style visuel, et signpost est un point de départ raisonnable. Ce qui rend ce package sérieux, c'est qu'il distingue filiation et mariage : le diagramme reste juste en tant que généalogie, et pas seulement en tant qu'image.
\usepackage[all]{genealogytree}
\usepackage{cooking}
% ...
\begin{genealogypicture}[template=signpost]
parent{
g{Child}
p{Father}
p{Mother}
}
\end{genealogypicture}
\pagestyle{recipe}
\begin{recipe}{Pancakes (serves 4)}
\ingredient{200\,g flour} sift into a bowl.
\ingredient{2 eggs}
\ingredient{300\,ml milk} whisk in until smooth.
\end{recipe}Pour les recettes, il y a cooking (v0.9b, 24 juin 1999, d'Axel Reichert). Son âge se voit dans une conception agréablement tranchée : \ingredient{...} ne prend qu'un seul argument — quantité et ingrédient y vont ensemble — et la phrase d'instruction suit simplement. On obtient la mise en page familière des livres de cuisine : les ingrédients ferrés à droite dans une colonne de gauche, la préparation coulant à leur droite. TeX Live fournit deux autres packages de même visée, cuisine (v0.7) et xcookybooky (v1.5), ce dernier assez moderne pour accueillir photos et temps de cuisson. Pour un calendrier, termcal (v1.8) transforme une date de début et un nombre de semaines en emploi du temps.
Lancer kpsewhich avant de recommander : ce qui est fourni et ce qui ne l'est pas
Dans ce coin de LaTeX, un package cité dans un vieil article n'est pas forcément encore sur votre machine. La vérification coûte une seconde : tapez kpsewhich lepackage.sty ; un chemin revient s'il est là, rien sinon. Si vous ignorez le nom du fichier, tlmgr info nom vous le dira, description comprise. Le tableau ci-dessous est le résultat réel de ces commandes lancées en rédigeant cette page — et vous pouvez lancer les mêmes avant d'écrire la moindre ligne \usepackage.
| Package | État dans TeX Live 2024 | Points de vigilance |
|---|---|---|
skak / xskak / chessboard | Les trois présents : v1.5.3 / v1.5 / v1.9 | La seule ligne \usepackage{xskak} amène les trois |
psgo | Présent (v0.17) | Dépend de PSTricks ; sous pdflatex, il meurt dès qu'on dessine un goban |
shogi.sty | N'existe pas | kpsewhich est vide ; igo.sty et gochess.sty manquent aussi |
cwpuzzle | Présent, v1.11 (13 septembre 2022) | Distribué sur TeX Live sous le nom crossword ; compose aussi sudoku et kakuro |
sudoku | Présent (v1.0) | Exige exactement neuf lignes ; une case vide s'écrit | | avec une espace |
knitting | Présent (v3.0, 3 avril 2019) | La légende knitkey est un PDF, pas un package ; à lire avec texdoc knitkey |
genealogytree | Présent (v2.3.0) | Fondé sur TikZ ; tourne tel quel sous pdflatex |
cooking | Présent (v0.9b, 24 juin 1999) | \ingredient ne prend qu'un argument ; cuisine et xcookybooky sont aussi fournis |
termcal | Présent (v1.8) | Construit un calendrier de cours à partir d'une date de début et d'un nombre de semaines |
Une dernière chose que cette page ne traite délibérément pas : la musique. La composition musicale a sa propre page, où il est mesuré que LilyPond n'est pas livré avec TeX Live et que MusiXTeX exige trois passes, etex puis musixflx puis etex. Dans tous ces genres de loisir, le livrable tient entièrement à ce que l'image soit juste : ne vous arrêtez donc pas à une compilation propre, ouvrez le PDF et regardez. Si un diagramme d'échecs place une pièce sur la mauvaise case, TeX n'en dira pas un mot.