\section{Presentación}

\subsection{Motivaci\'on}

El siguiente paquete ofrece una colección de macros diseñadas para representar tableros y posiciones de Go. Este proyecto, aunque aún en desarrollo\footnote{Pero, francamente, acabado.}, incorpora funcionalidades que buscan simplificar y agilizar la creación de diagramas relacionados con el juego de Go:
\begin{itemize}
	\item Lectura de partidas en SGF: una partida en un tablero, series de diagramas como en los libros, animaciones con botones y problemas con sus soluciones.
	\item Las reglas del juego, con el kernel en Lua: capturas, notas «N en M» para los kos y cálculo del territorio y del puntaje.
	\item Perfiles visuales para tableros y jugadores, que pueden usar imágenes: madera en el fondo, piedras de pizarra y concha.
	\item Tableros con nombre, para seguir una variante desde una posición guardada o mostrar una parte del tablero en medio de un párrafo.
	\item Marcas, flechas y líneas, y marcas propias.
	\item Una grilla para acomodar diagramas del mismo tamaño.
	\item Los textos del paquete traducidos a varios idiomas, y coordenadas del borde al estilo occidental, japonés o chino.
	\item Carga de múltiples coordenadas simultáneamente mediante una sintaxis que algunos podrían encontrar familiar.
\end{itemize}

El desarrollo de \pgfgoname\ surge de mi frustración en 2021 por no encontrar paquetes que satisficieran mis necesidades. Los paquetes que exploré permiten representar tableros en blanco y negro, adecuados para impresión, pero poco prácticos al combinarlos con tecnolog\'ias como |beamer| o en documentos donde se desea una presentación a color.

Inicialmente, \pgfgoname\ se limitaría a estas tareas; sin embargo, ha evolucionado mucho desde su publicación hace casi dos a\~nos. Antes lo concib\'ia más como una interfaz para gestionar estilos y estados, evitando el uso excesivo del formato directo\footnote{Esto se refleja principalmente en la estructura del árbol de \emph{keys}}. Ahora, con la integraci\'on del kernel en Lua, lo concibo como una suite completa.

En cuanto al nombre: el dibujo está escrito sobre la capa básica de \pgfname, y el cálculo (coordenadas, jugadas, capturas, territorio, lectura de SGF) lo hace un \emph{kernel} escrito en L3 o en Lua (pág.~\pageref{subsec:kernel}). El entorno |goban|, de todos modos, es un |tikzpicture|, para que los usuarios familiarizados con \tikzname\ puedan aprovechar sus macros dentro del tablero (pág.~\pageref{sec:tablero}).

En esta versión, utilicé LLM para traducir al inglés la documentación que escribí en español. Esto me permitió centrarme más en la lengua que mejor manejo. También se utilizaron para dar soporte a otros idiomas en los textos del paquete (como los epígrafes).

\subsection{Primeros pasos}
\label{subsec:primerospasos}

\pgfgoname\ se carga como cualquier paquete. Recomiendo (mucho) compilar con Lua\LaTeX: con los demás motores, el paquete funciona, pero no puede leer archivos SGF, retirar piedras capturadas ni calcular el territorio solo (pág.~\pageref{subsec:kernel}). Obviamente, si tu intenci\'on es crear tableros y disponer posiciones para ense\~nar, puede que no sean caracter\'isticas tan necesarias.

\begin{codeexample}[code only]
	\documentclass{article}
	\usepackage{pgf-go}

	\begin{document}
		\begin{goban}
			\stones[b]{C3, D4}
			\stones[w]{E5}
		\end{goban}
	\end{document}
\end{codeexample}

El paquete se puede cargar con dos opciones: |kernel|, que elige el kernel (pág.~\pageref{subsec:kernel}), y |lang|, el idioma de los textos que escribe (pág.~\pageref{subsec:idiomas}). Todo lo demás se configura con |\pgfgoset| (pág.~\pageref{sec:configuracion}).

\subsection{Cómo leer este manual}
\label{subsec:guia}

El manual tiene tres partes: esta introducción; los tutoriales (parte~\ref{part:tutoriales}), en los que \karu\ prepara un artículo, un cuaderno de problemas y unas clases, y aprende el paquete en el camino; y la referencia (parte~\ref{part:referencia}), con cada comando y cada \emph{key}, ordenada por objeto. Al final, el catálogo muestra los perfiles que trae el paquete.

Mi recomendaci\'on ser\'ia que revisaras primero los tutoriales, de corrido, para tener un pantallazo general de todo. Luego, es sumamente recomendable leer la referencia para ver exactamente todo lo que se puede configurar.

Para algo puntual:
\begin{itemize}
	\item \textbf{Dibujar una partida guardada en SGF}: el tutorial de la pág.~\pageref{tut:primera} y, para la partida entera en diagramas, el de la pág.~\pageref{tut:partida}. La referencia está en la pág.~\pageref{subsec:sgf}.
	\item \textbf{Dibujar una posición a mano}: el tutorial de la pág.~\pageref{tut:posicion}, y las piedras en la pág.~\pageref{sec:piedras}. Para escribir menos coordenadas (filas, rectángulos, caminos), el tutorial de la pág.~\pageref{tut:abreviar} y la sintaxis completa en la pág.~\pageref{subsec:sintaxis-de-coordenadas}.
	\item \textbf{Numerar jugadas}: el tutorial de la pág.~\pageref{tut:movimientos}, y |\moves| en la pág.~\pageref{subsec:movimientos}.
	\item \textbf{Mostrar solo una parte del tablero o marcar puntos}: el tutorial de la pág.~\pageref{tut:parcial}; |partial| en la pág.~\pageref{subsec:parcial}, y las marcas en la pág.~\pageref{sec:marcas}.
	\item \textbf{Flechas, líneas y letras}: el tutorial de la pág.~\pageref{tut:pelea}, y la referencia en la pág.~\pageref{subsec:flechas}.
	\item \textbf{Mostrar una piedra o una parte del tablero dentro del texto}: el final del tutorial de la pág.~\pageref{tut:pelea}, y |\pgfgoview| en la pág.~\pageref{subsec:vistas}. Una piedra sola, sin tablero: |\pgfgostone| (pág.~\pageref{subsec:piedra-texto}). Para una vista antes de su tablero, o de un tablero de otro documento, las págs.~\pageref{subsec:vistas-antes} y~\pageref{subsec:exportar}.
	\item \textbf{Capturas, kos y notas «N en M»}: el tutorial de la pág.~\pageref{tut:ko}, y la referencia en la pág.~\pageref{sec:juego}.
	\item \textbf{Marcar el territorio y contar los puntos}: el tutorial de la pág.~\pageref{tut:territorio}, y |\territory| y |\pgfgoscore| en la pág.~\pageref{subsec:territorio}.
	\item \textbf{Guardar un tablero y seguir desde él, por ejemplo para mostrar variantes}: el tutorial de la pág.~\pageref{tut:variantes}, y |name| y |resume| en la pág.~\pageref{subsec:recordar}.
	\item \textbf{Josekis de un diccionario en SGF}: el tutorial de la pág.~\pageref{tut:josekis}, y |variation| y |variations| en la pág.~\pageref{subsec:sgf}.
	\item \textbf{Problemas (tsumego) con sus soluciones}: el tutorial de la pág.~\pageref{tut:problemas}, y |\sgfproblem| en la pág.~\pageref{subsec:sgfproblemas}.
	\item \textbf{Acomodar varios diagramas en una grilla}: los tutoriales de las págs.~\pageref{tut:partida} y~\pageref{tut:problemas}, y |layout| y |pgfgolayout| en la pág.~\pageref{subsec:disposicion}.
	\item \textbf{Cambiar el estilo de todos los tableros}: el final del tutorial de la pág.~\pageref{tut:posicion} y el catálogo (pág.~\pageref{sec:catalogo}). Para cambiar un detalle, |\pgfgoset| (pág.~\pageref{sec:configuracion}) y las \emph{keys} de cada objeto; para guardar un estilo propio con nombre, los perfiles (pág.~\pageref{subsec:perfiles}).
	\item \textbf{Usar imágenes en el tablero y en las piedras}: el tutorial de la pág.~\pageref{tut:madera}; el fondo y la cuadrícula en la pág.~\pageref{sec:tablero}, y las piedras en la pág.~\pageref{subsec:piedrasimagen}.
	\item \textbf{Diapositivas y animaciones}: el tutorial de la pág.~\pageref{tut:diapositivas}, y |\sgfanimation| en la pág.~\pageref{subsec:sgfanimacion}.
	\item \textbf{Escribir en otro idioma}: el tutorial de la pág.~\pageref{tut:idiomas}, y la referencia en la pág.~\pageref{subsec:idiomas}.
\end{itemize}

Una regla general: las \emph{keys} que prenden o apagan algo (la cuadrícula, el fondo, las sombras, \ldots) se prenden solas o con |true|, se apagan con |false|, y dar solo opciones no las prende (pág.~\pageref{subsec:prender}).
