Comment écrire et représenter des parties d’échecs ?#
1. Du côté de LaTeX#
1.1. Avec chessboard et xskak#
Le package LaTeX chessboard, développé par Ulrike Fischer, est sans doute le package d’échec le plus abouti. Il s’utilise le plus souvent avec xskak, package de la même autrice, qui est une extension de skak (voir section suivante).
chessboard fournit la commande \chessboard[<clé=liste de valeurs>]
permettant
de composer des plateaux et des positions d’échec. Il est extrêmement puissant
et permet de personnaliser l’apparence, d’annoter la position, etc.
On peut construire les positions pièces par pièces ou bien lire le format FEN.
Enfin, si on utilise chessboard conjointement avec xskak
(voir ci-dessous) on pourra représenter les positions issues d’une partie
décrite avec le format PGN.
Un exemple valant souvent bien plus qu’un long discours, voilà comment représenter la dernière position d’une partie décrite à l’aide du format PGN.
\documentclass{article}
\usepackage{xskak}
\usepackage{chessboard}
\begin{document}
\newchessgame
\mainline{1. e4 e5 2. Nf3 Nc6 3. Bb5 a6} % commande fournie par skak
\chessboard
\end{document}
Grâce à xskak, on peut aussi écrire, dans le texte courant, les coups. Les documentations de ces deux packages sont très fournis, et permettent de trouver à coup sûr le code pour faire ce que l’on souhaite.
\documentclass{article}
\usepackage{xskak}
\usepackage{chessboard}
\begin{document}
\newchessgame[id=A,white=John White,
black=Jack Black, result=1--0]
\mainline{1.e4 e5 2.Bc4 Nc6 3. Qh5 Nf6 4.Qxf7#}
\newchessgame % a game between A and the board
\mainline{1.e4}
\setchessboard{shortenend=5pt,color=red}%
\chessboard[lastmoveid=A,setfen=\xskakget{nextfen},
pgfstyle=border,color=red,
markfields={\xskakget{moveto},\xskakget{movefrom}},
pgfstyle=straightmove,
markmove=\xskakget{movefrom}-\xskakget{moveto}]
\end{document}
1.2. Les pionniers#
skak#
L’extension skak a été un pionnier sur la composition des plateaux d’échec et des positions. Ce package a aussi fourni une fonte d’échecs (qui a été étendue avec skaknew).
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a5paper]{geometry}
\usepackage{skak}
\usepackage{babel}
\begin{document}
\begin{itemize}
\item Petit exercice d'entraînement : les blancs jouent et font mat en trois
coups. \fenboard{7k/4K1pp/7N/8/8/8/8/B7 w - - 0 1}
\begin{center}
\showboard
\end{center}
Vous ne voyez pas ? Voici la solution : \mainline{1. Bf6 gxf6 2. Kf8 f5
3. Nf7\mate}
\item À vous de jouer maintenant ! Voici un autre problème où les blancs font
mat en trois coups. \fenboard{7B/8/8/8/8/N7/pp1K4/k7 w - - 0 1}
\begin{center}
\showinverseboard
\end{center}
\end{itemize}
\end{document}
chess#
Une autre extension, chess, est beaucoup plus ancienne et un peu moins souple, mais permet globalement de faire la même chose que skak