LaTeX no es solo para artículos. Escriba una partida de ajedrez en PGN corriente y el diagrama del tablero llega solo; también hay paquetes en CTAN para crucigramas, sudokus, gráficos de punto y árboles genealógicos. Este rincón del ecosistema tiene, eso sí, un peligro propio: el paquete que alguien recomienda en internet bastante a menudo no está en TeX Live. El paquete de go psgo sí se distribuye, pero no funciona bajo pdflatex, y kpsewhich shogi.sty no devolvió nada en absoluto. Por eso cada paquete de abajo se comprobó con kpsewhich y luego se compiló de verdad antes de nombrarlo aquí. Donde algo no funciona, esta página lo dice.
Escribir una partida de ajedrez en PGN: skak, xskak y chessboard
El ajedrez es la afición mejor servida en LaTeX. Cargue \usepackage{xskak}, abra una partida con \newchessgame y escriba las jugadas en PGN puro: \mainline{1. e4 e5 2. Nf3 Nc6 3. Bb5 a6}. Las jugadas se componen, y allí donde ponga \chessboard aparece la posición alcanzada. Lo decisivo es que el paquete mantiene un tablero interno y reproduce realmente las jugadas. El diagrama no puede, pues, desincronizarse de la notación. A diferencia de los diagramas escritos a mano por coordenadas, inserte una jugada en medio y todos los diagramas posteriores la siguen.
\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}Los tres paquetes se reparten el trabajo con nitidez. skak es el cimiento: analiza la notación, mantiene el tablero interno y aporta las fuentes cuyos glifos son las piezas. xskak se apoya encima, añade variantes y varias partidas simultáneas, y carga al mismo tiempo chessboard. El control fino del diagrama corresponde a chessboard: claves como \chessboard[showmover=false] apagan el indicador de turno, y se puede recortar el tablero a una parte de sí mismo o colorear y marcar casillas sueltas. Como la sola línea \usepackage{xskak} trae las tres capas, esa es la línea que hay que escribir ante la duda.
La historia merece un momento. skak es «ajedrez» en danés: el README lo dice sin rodeos. El autor es Torben Hoffmann, y la versión de TeX Live 2024 es la v1.5.3, del 8 de enero de 2018. Según la propia ficha de catálogo de TeX Live, el paquete está construido sobre el trabajo de Piet Tutelaers, y su novedad fue usar PGN como entrada en lugar de la notación por coordenadas: g1f3 pasaba a ser el más legible Nf3. xskak (v1.5, 23 de junio de 2019) y chessboard (v1.9, 1 de noviembre de 2020) son ambos de Ulrike Fischer, a quien los agradecimientos del propio skak también dan las gracias por su trabajo sobre el manejo de fuentes de ese paquete.
El go tiene psgo, el shogi nada, y psgo no funciona bajo pdflatex
Para diagramas de go, TeX Live 2024 sí incluye psgo (v0.17), pero, como dice su nombre, dibuja con PSTricks y por eso no funciona bajo pdflatex. Pasar un \begin{psgoboard} produjo ! Undefined control sequence., que se expande a \c@lor@to@ps ->\PSTricks _Not_Configured_For_This_Format: PSTricks anunciando él mismo que no está configurado para este formato. Curiosamente, \usepackage{psgo} a solas compila bien; la rotura llega en el momento de dibujar realmente un tablero. La salida es la vía latex, luego dvips, luego ps2pdf, o intercalar auto-pst-pdf (presente en TeX Live 2024). La primera dio un PDF de una página en la prueba.
Sobre el shogi, digámoslo con claridad: no hay paquete de shogi en TeX Live 2024. kpsewhich shogi.sty, kpsewhich igo.sty y kpsewhich gochess.sty no devolvieron nada, y buscar shogi bajo /usr/local/texlive/2024 no arrojó ningún archivo correspondiente. Para componer partidas o posiciones de shogi habrá que instalar algo de fuera de CTAN por cuenta propia, o dibujar el tablero en TikZ. En vez de fiarse del recuerdo de haber usado cierto paquete hace años, ejecute primero kpsewhich: en este rincón de LaTeX es el camino más corto.
Crucigramas y sudokus: cwpuzzle y sudoku
Los crucigramas usan cwpuzzle y el sudoku usa sudoku. Ambos se sienten como escribir una tabla: las casillas van en una fila separadas por |. Dentro del entorno Puzzle de cwpuzzle, |[1]T es una casilla con T y numerada 1, |* es una casilla negra, y |. cierra la fila. La numeración y el marco son automáticos, y el entorno PuzzleClues con \Clue{número}{solución}{definición} compone las definiciones aparte, de modo que una misma fuente da la rejilla vacía y la rellena. Un punto de atención: el nombre de archivo y el de distribución difieren. Se carga \usepackage{cwpuzzle}, pero en TeX Live el paquete se distribuye como crossword, v1.11, del 13 de septiembre de 2022. Con tlmgr hay que buscar este último.
\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 exactamente nueve filas; una casilla vacía se escribe | | con un espacio, y |. cierra cada fila. Ambos ejemplos anteriores compilaron sin error en TeX Live 2024: cwpuzzle produjo el marco y la numeración, y sudoku una rejilla con los filetes 3×3 reforzados. De paso, pese a su nombre, cwpuzzle también compone sudokus y kakuros. Si va a componer un libro entero de pasatiempos, concentrarlo todo en él es una decisión razonable.
Componer gráficos de punto: el paquete knitting y dónde está la leyenda
knitting (v3.0, 3 de abril de 2019, de Ariel Barton) aporta las fuentes de símbolos y las órdenes para gráficos de trenzas y calados. Su interfaz es peculiar: los símbolos se teclean como letras normales, así \textknit{kpkp} —k para un punto del derecho, p para uno del revés—, un carácter de teclado por símbolo de punto. Un gráfico cuadriculado se construye con \chart[right]{...}, y aquí acecha una trampa: chart es una orden, no un entorno, y el cuerpo va entre llaves. Escribir \begin{chart} no provoca error alguno y termina con código 0, pero al comparar ambas formas con el mismo contenido, la orden produjo símbolos de puntos y números de vuelta mientras que el entorno imprimió las simples letras kpkpkp. \knitgrid y \knitnogrid activan y desactivan la cuadrícula. A la manera de los paquetes antiguos, funciona tanto bajo Plain TeX como bajo 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 lista de qué letra produce qué punto está en knitkey, que no es un paquete que se cargue. kpsewhich knitkey.sty no devuelve nada; lo real es un documento, en texmf-dist/doc/fonts/knitting/knitkey.pdf. Para abrirlo en local, texdoc knitkey es lo más rápido. El mismo directorio contiene además knitexamples.pdf. Nótese también que TeX Live trae un paquete aparte llamado knittingpattern, destinado a componer las instrucciones escritas en vez del gráfico.
Árboles genealógicos, recetas y calendarios: genealogytree, cooking, termcal
Los árboles genealógicos corresponden a genealogytree (v2.3.0). Está construido sobre TikZ y funciona bajo pdflatex tal cual. Dentro de \begin{genealogypicture} se escriben las relaciones familiares como anidamiento, por ejemplo parent{ g{hijo} p{padre} p{madre} }, y la disposición se calcula sola. template= elige un estilo visual, y signpost es un buen punto de partida. Lo que hace serio a este paquete es que distingue descendencia de matrimonio: el diagrama sigue siendo correcto como genealogía, y no solo como dibujo.
\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}Para recetas está cooking (v0.9b, 24 de junio de 1999, de Axel Reichert). Su edad se nota en un diseño gratamente tajante: \ingredient{...} toma exactamente un argumento —cantidad e ingrediente van juntos— y la frase de instrucción simplemente lo sigue. El resultado es la maquetación familiar de los libros de cocina: los ingredientes alineados a la derecha en una columna izquierda y la elaboración fluyendo a su derecha. TeX Live trae otros dos paquetes con el mismo fin, cuisine (v0.7) y xcookybooky (v1.5), este último bastante moderno como para admitir fotografías y tiempos de cocción. Para un calendario, termcal (v1.8) convierte una fecha de inicio y un número de semanas en un horario de clases.
Ejecute kpsewhich antes de recomendar: qué se incluye y qué no
En este rincón de LaTeX, un paquete citado en un artículo antiguo no está necesariamente aún en su máquina. Comprobarlo cuesta un segundo: teclee kpsewhich elpaquete.sty y volverá una ruta si está, y nada si no. Si no sabe el nombre del archivo, tlmgr info nombre se lo dirá, descripción incluida. La tabla siguiente es el resultado real de esas órdenes al redactar esta página, y usted puede ejecutar las mismas antes de escribir cualquier línea \usepackage.
| Paquete | Estado en TeX Live 2024 | A qué prestar atención |
|---|---|---|
skak / xskak / chessboard | Los tres presentes: v1.5.3 / v1.5 / v1.9 | La sola línea \usepackage{xskak} trae los tres |
psgo | Presente (v0.17) | Depende de PSTricks; bajo pdflatex muere en cuanto se dibuja un tablero |
shogi.sty | No existe | kpsewhich está vacío; igo.sty y gochess.sty también faltan |
cwpuzzle | Presente, v1.11 (13 de septiembre de 2022) | Distribuido en TeX Live como crossword; compone también sudoku y kakuro |
sudoku | Presente (v1.0) | Exige exactamente nueve filas; una casilla vacía es | | con un espacio |
knitting | Presente (v3.0, 3 de abril de 2019) | La leyenda knitkey es un PDF, no un paquete; léala con texdoc knitkey |
genealogytree | Presente (v2.3.0) | Basado en TikZ; funciona bajo pdflatex tal cual |
cooking | Presente (v0.9b, 24 de junio de 1999) | \ingredient toma solo un argumento; cuisine y xcookybooky también están |
termcal | Presente (v1.8) | Construye un calendario de clases a partir de una fecha inicial y un número de semanas |
Una última cosa que esta página deliberadamente no trata: la música. La composición musical tiene página propia, donde se ha medido que LilyPond no viene con TeX Live y que MusiXTeX exige tres pasadas, etex, luego musixflx, luego etex. En todos estos géneros de afición el entregable consiste enteramente en que el dibujo esté bien, así que no se detenga en una compilación limpia: abra el PDF y mire. Si un diagrama de ajedrez coloca una pieza en la casilla equivocada, TeX no dirá ni una palabra.