\section{Los tableros de \karu}

\subsection{La primera partida}
\label{tut:primera}

\karu\ está escribiendo un artículo para compartir con sus estudiantes. Le preocupa el peso final de su PDF y ha notado que los \emph{softwares} para diagramar no ofrecen formatos ni resultados satisfactorios. Por ello, decide probar \pgfgoname. Lo primero que quiere mostrar es una partida corta que jugó en clase. La tiene guardada en un archivo SGF, |partida.sgf|: el formato en el que casi todos los programas y servidores de go guardan las partidas.
  
\begin{figure}[H]
	\centering
	\begin{goban}[captures, label = {at = {north, west}}]
		\sgf{partida}
	\end{goban}
\end{figure}

En \pgfgoname, todos los diagramas se dibujan dentro del entorno |goban|, y dentro de él, |\sgf| dibuja la partida del archivo. Para leer archivos SGF hay que compilar con Lua\LaTeX\ (pág.~\pageref{subsec:kernel}). Como va a usar el archivo muchas veces, primero le da un nombre con |\pgfgodefinesgf| (pág.~\pageref{subsec:sgfnombres}): desde ahí lo llama |partida|, y si el archivo cambia de lugar, lo corrige en un solo sitio\footnote{Desgraciadamente lo implement\'e muy avanzada la documentaci\'on.}.

\begin{codeexample}[width=4.8cm]
\pgfgodefinesgf{partida}{partida.sgf}

\begin{goban}
	\sgf{partida}
\end{goban}
\end{codeexample}

Las jugadas aparecen numeradas, como en los libros. Pero con la jugada 7 las negras capturaron la piedra blanca 2, que sigue en el tablero: \pgfgoname\ dibuja lo que se le pide, sin aplicar las reglas. Con la \emph{key} |captures|, el |goban| retira las piedras capturadas (pág.~\pageref{subsec:capturas}). Las opciones del tablero se escriben entre corchetes, después de |\begin{goban}|.

\begin{codeexample}[width=4.8cm]
\begin{goban}[captures]
	\sgf{partida}
\end{goban}
\end{codeexample}

Para comentar la partida en el texto, \karu\ la detiene en la jugada 7 con |to|. El archivo trae un comentario para esa jugada, y |\sgfcomment| lo escribe.

\begin{codeexample}[width=4.8cm]
\begin{goban}[captures]
	\sgf[to = 7]{partida}
\end{goban}

Jugada 7: \sgfcomment{partida}{7}
\end{codeexample}

Esta partida es de $9\times9$, el tamaño que tiene un |goban| por defecto. Para una partida de otro tamaño, |sgf size = partida| toma el tamaño del archivo; así lo hará \karu\ con una partida de $19\times19$ en la pág.~\pageref{tut:partida}. Allí también verá cómo dibujar una partida larga en una serie de diagramas.

\subsection{Una posición a mano}
\label{tut:posicion}

Para la introducción del artículo, \karu\ quiere una posición propia, que no está en ningún archivo: la de la Figura~\ref{fig:primer-ejemplo}. Tiene que dibujarla piedra por piedra.

\begin{figure}[H]
	\centering
	\pgfgoset{profile = pgfgo}
	\begin{goban}[label = {at = {north, west}}]
		\stones[black]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[white]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
	\caption{}
	\label{fig:primer-ejemplo}
\end{figure}

\karu\ empieza por el tablero vacío. Como en el tutorial anterior, todo se dibuja dentro del entorno |goban|, que se encarga del tamaño del tablero, su color, sus coordenadas y todo lo que se dibuja encima.

\begin{codeexample}[width=4.4cm]
\begin{goban}
\end{goban}
\end{codeexample}

El tablero es de $9\times 9$, justo lo que necesita, pero le faltan las coordenadas en los bordes. Las opciones del |goban| van entre corchetes, y las de cada parte del tablero se agrupan en tres \emph{keys}: |grid|, para la cuadrícula; |background|, para el borde y el relleno, y |label|, para las coordenadas (pág.~\pageref{sec:tablero}). Dentro de |label|, |at| dice en qué lados van: |north|, |south|, |east| y |west| (o |above|, |below|, |right| y |left|), |all| o |none|. \karu\ las quiere arriba y a la izquierda.

\begin{codeexample}[width=4.7cm]
\begin{goban}[label = {at = {north, west}}]
\end{goban}
\end{codeexample}

\karu\ nota que las columnas pasan de la |H| a la |J|: como es costumbre en el go, \pgfgoname\ omite la «I», tanto en las coordenadas como en las etiquetas laterales. Si alguna vez la necesita, la \emph{key} |goban/use i| (pág.~\pageref{subsec:usei}) la vuelve a poner.

Ahora sí, las piedras. La más simple es |\stone|, que recibe la intersección, como |D8|, y entre corchetes sus opciones: el jugador, el estilo, una marca. Sin jugador, la piedra es neutral; para las negras, \karu\ escribe |black|, o |b|.

\begin{codeexample}[width=4.8cm]
\begin{goban}[label = {at = {north, west}}]
	\stone[black]{D8}
	\stone[black]{F8}
	\stone[b]{E7}
	\stone[b]{H7}
\end{goban}
\end{codeexample}

\karu\ sospecha que esta no es la mejor opción si necesita añadir 200 piedras o más. Encuentra |\stones|, que recibe una lista de intersecciones separadas por comas y acepta las mismas opciones que |\stone|.\footnote{Entre \texttt{\textbackslash stone\{A1\}} y \texttt{\textbackslash stones\{A1\}}, la primera opción es mucho más rápida. Veremos más adelante que hay muchos procesos involucrados en la lectura del parámetro obligatorio de las macros plurales.}

\begin{codeexample}[width=4.8cm]
\begin{goban}[label = {at = {north, west}}]
	\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
\end{goban}
\end{codeexample}

Las blancas llevan |white|, o |w|. En rigor, |black| y |white| no son colores sino jugadores, el primero y el segundo: cada piedra toma el estilo de su jugador (pág.~\pageref{sec:jugadores}).

\begin{codeexample}[width=4.8cm]
\begin{goban}[label = {at = {north, west}}]
	\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
	\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
\end{goban}
\end{codeexample}

Falta el estilo. En el catálogo (pág.~\pageref{sec:catalogo}), \karu\ encuentra uno que le gusta: el perfil |pgfgo|. Lo aplica con |\pgfgoset{profile = pgfgo}| (pág.~\pageref{subsec:perfiles}), y desde ahí vale para todos los tableros que siguen.

\begin{codeexample}[width=4.8cm]
\pgfgoset{profile = pgfgo}

\begin{goban}[label = {at = {north, west}}]
	\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
	\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
\end{goban}
\end{codeexample}

Las listas de este tutorial son largas, y la paciencia de \karu, corta. En el último tutorial (pág.~\pageref{tut:abreviar}), \karu\ aprende a escribirlas más cortas.

\subsection{Movimientos}
\label{tut:movimientos}

Para explicar cómo empezó una pelea, \karu\ quiere mostrar las piedras en el orden en que se jugaron. Con |\stone|, tendría que indicar el jugador de cada una:

\begin{codeexample}[code only]
\begin{goban}
	\stone[b]{F7}
	\stone[w]{E6}
	\stone[b]{G3}
	\stone[w]{D6}
\end{goban}
\end{codeexample}

Para eso está |\moves| (pág.~\pageref{subsec:movimientos}): recibe una lista como |\stones|, pero juega las intersecciones en el orden en que se escriben, alterna los colores y numera las jugadas.

\begin{codeexample}[width=5cm]
\begin{goban}[label = {at = all}]
	\moves{F7, E6, G3, D6}
\end{goban}
\end{codeexample}

La pelea empezó con una negra en F7, que \karu\ pone con |\stone|. Las jugadas que siguen no las va a comentar: con |numbers = false|, se dibujan sin números. Con |white|, la secuencia empieza con blancas: en |\moves|, |black| y |white| solo dicen quién juega primero.

\begin{codeexample}[width=5cm]
\begin{goban}[label = {at = all}]
	\stone[b] {F7}
	\moves[numbers = false, white]{E6,G3,D6,F5,E7,E2,F8,E6,D8,D3,
		G7,C5,C6,D5,B5,G5,B4,B2,H6,C3,
		J3,J2,J5,H3}
\end{goban}
\end{codeexample}

Las últimas jugadas sí las comenta, así que van con número. La numeración y el turno continúan de un |\moves| al siguiente, aunque las jugadas anteriores no lleven números, y con |from| se elige desde qué número se sigue.

\begin{codeexample}[width=5cm]
\begin{goban}[label = {at = all}]
	\moves[numbers = false, white] {E6,G3,D6,F5,E7,E2,F8,E6,D8,D3,
		G7,C5,C6,D5,B5,G5,B4,B2,H6,C3,
		J3,J2,J5,H3}
	
	\moves[from = 26]{F6,E5,J4,G6}
	\moves{H2} % Es blanca y etiquetada con 30, sin necesidad de expresarlo.
\end{goban}
\end{codeexample}

|H2| va en otro |\moves| y, sin indicarlo, es blanca y lleva el 30: la jugada anterior, |G6|, fue la 29, de negras.

\subsection{Tablero parcial y marcas}
\label{tut:parcial}

Para un ejercicio del artículo, \karu\ quiere mostrar solo una parte del tablero, con dos señales: un círculo en la piedra que está en atari y un «!» en el punto clave.

\begin{figure}[H]
	\centering
	\begin{goban}[partial = B2:E4, background = {line = false}]
		\stones[b] {C2,B3,C4}
		\stones[w] {D4,E3,D2}
		\stone[w, mark = {circle, line = {color = red}}] {C3}
		\mark[custom = {!}] {D3}
	\end{goban}
\end{figure}

Empieza, como siempre, por las piedras.

\begin{codeexample}[width=5cm]
	\begin{goban}
		\stones[b]{C2,B3,C4}
		\stones[w]{D4,E3,D2,C3}
	\end{goban}
\end{codeexample}

Con la \emph{key} |partial|, se indica qué parte del tablero mostrar: dos esquinas opuestas del rectángulo, separadas por dos puntos, como |B2:E4| (pág.~\pageref{subsec:parcial}).

\begin{codeexample}[]
	\begin{goban}[partial = B2:E4]
		\stones[b]{C2,B3,C4}
		\stones[w]{D4,E3,D2,C3}
	\end{goban}
\end{codeexample}

Si \karu\ no quiere buscar las esquinas, con |partial = auto| el tablero elige la parte: la que usa lo que se dibuja, con una línea más alrededor. Un lado que queda a dos líneas o menos del borde llega hasta el borde, como aquí el de abajo y el de la izquierda.

\begin{codeexample}[]
	\begin{goban}[partial = auto]
		\stones[b]{C2,B3,C4}
		\stones[w]{D4,E3,D2,C3}
	\end{goban}
\end{codeexample}

\karu\ prefiere el recorte justo, así que sigue con |B2:E4|. En un tablero parcial, el borde del tablero sobra: lo quita con |line = false| en el |background|.

\begin{codeexample}[]
	\begin{goban}[partial = B2:E4, background = {line = false}]
		\stones[b]{C2,B3,C4}
		\stones[w]{D4,E3,D2,C3}
	\end{goban}
\end{codeexample}

Las marcas se ponen con |\mark|, o con |\marks| para varias intersecciones; hay muchas formas (pág.~\pageref{sec:marcas}). A \karu\ le alcanzan dos: |circle|, el círculo, y |custom|, que pone cualquier texto, como «!». Una marca también puede ir en las opciones de la piedra, con |mark|.

\begin{codeexample}[]
	\begin{goban}[partial = B2:E4, background = {line = false}]
		\stones[b] {C2,B3,C4}
		\stones[w] {D4,E3,D2}
		\mark[custom = {!}] {D3}
		\stone[w, mark = circle] {C3}
	\end{goban}
\end{codeexample}

Para que el círculo se distinga, \karu\ lo pinta de rojo, con |line/color| de la marca.

\begin{codeexample}[]
	\begin{goban}[partial = B2:E4, background = {line = false}]
		\stones[b] {C2,B3,C4}
		\stones[w] {D4,E3,D2}
		\mark[custom = {!}] {D3}
		\stone[w, mark = {circle, line = {color = red}}] {C3}
	\end{goban}
\end{codeexample}

\subsection{Explicar una pelea: flechas, letras y vistas}
\label{tut:pelea}

En la segunda parte del artículo, \karu\ quiere explicar una pelea. Para eso necesita señalar las jugadas posibles con letras, mostrar hacia dónde corre cada grupo y, en el texto, nombrar las piedras sin obligar al lector a buscarlas en el diagrama.

\begin{figure}[H]
	\centering
	\begin{goban}[partial = A1:G7, label = {at = {north, west}}]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\marks[dim]{F3}
		\marks[triangle]{D5}
		\mark[custom = A]{E3}
		\mark[custom = B]{C4}
		\arrow{C5}{C7}
		\arrow[color = red!80!black, bend = 30, shorten = 4pt]{E4}{G5}
		\line[dash = dashed]{A6}{G6}
	\end{goban}
\end{figure}

Empieza, como siempre, por las piedras. Para no ocupar espacio, muestra solo la esquina con |partial|.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[partial = A1:G7, label = {at = {north, west}}]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
	\end{goban}
\end{codeexample}

Las jugadas candidatas se marcan con letras, mediante |custom|, que acepta cualquier texto. La marca |triangle| destaca la piedra de la que habla el texto, y |dim| apaga la piedra blanca de F3, que ya no importa.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[partial = A1:G7, label = {at = {north, west}}]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\marks[dim]{F3}
		\marks[triangle]{D5}
		\mark[custom = A]{E3}
		\mark[custom = B]{C4}
	\end{goban}
\end{codeexample}

Para mostrar hacia dónde corren los grupos, \karu\ usa |\arrow|, que une dos intersecciones (pág.~\pageref{subsec:flechas}). La flecha se dibuja con un halo del color del tablero, para que no se confunda con la cuadrícula. Con |bend|, la flecha es un arco; con |shorten|, no tapa las piedras de sus extremos.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[partial = A1:G7, label = {at = {north, west}}]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\arrow{C5}{C7}
		\arrow[color = red!80!black, bend = 30, shorten = 4pt]{E4}{G5}
	\end{goban}
\end{codeexample}

|\line| es como |\arrow|, pero sin punta, y acepta las mismas \emph{keys} de trazo, como |dash|.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[partial = A1:G7, label = {at = {north, west}}]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\line[dash = dashed]{A6}{G6}
	\end{goban}
\end{codeexample}

Ahora, el texto. \karu\ quiere escribir «la piedra negra de E4» y mostrarla ahí mismo. Para eso, le da un nombre al tablero con |name| y, después, |\pgfgoview| dibuja una parte de ese tablero en medio del párrafo, como quedó al final (pág.~\pageref{subsec:vistas}): un punto o un rectángulo.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[partial = A1:G7, name = pelea]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\marks[triangle]{D5}
		\mark[custom = A]{E3}
	\end{goban}
\end{codeexample}

\begin{codeexample}[code only]
	La negra \pgfgoview{pelea}{E4} está separada de sus compañeras.
	Si juega en A, conecta: \pgfgoview{pelea}{C3:E5}.
	Sin marcas: \pgfgoview[marks = false]{pelea}{C3:E5}.
\end{codeexample}

La negra \pgfgoview{pelea}{E4} está separada de sus compañeras.
Si juega en A, conecta: \pgfgoview{pelea}{C3:E5}.
Sin marcas: \pgfgoview[marks = false]{pelea}{C3:E5}.

La vista tiene el estilo del tablero original, pero cualquier opción de |goban| puede cambiarlo: \karu\ prefiere quitar el fondo y las coordenadas en todas las vistas del artículo.

\begin{codeexample}[code only]
	\pgfgoset{view = {background = false, label = false}}

	La negra \pgfgoview{pelea}{E4} está separada de sus compañeras.
	Si juega en A, conecta: \pgfgoview{pelea}{C3:E5}.
\end{codeexample}

\begingroup
\pgfgoset{view = {background = false, label = false}}

La negra \pgfgoview{pelea}{E4} está separada de sus compañeras.
Si juega en A, conecta: \pgfgoview{pelea}{C3:E5}.
\endgroup

A veces el texto habla de un diagrama que viene después, o de una figura que \LaTeX\ lleva a la página siguiente. Una vista también puede ir antes de su |goban|: como con |\ref|, el |goban| queda en el archivo |.aux| y hay que compilar dos veces. La primera vez, la vista es |??| (pág.~\pageref{subsec:vistas-antes}).

\begin{codeexample}[code only]
	La flecha roja del diagrama de abajo sale de la negra \pgfgoview{flechas}{E4}.

	\begin{goban}[partial = A1:G7, name = flechas]
		\stones[b]{C3, D3, E4, C5}
		\stones[w]{D4, D5, E5, F3}
		\arrow{C5}{C7}
		\arrow[color = red!80!black, bend = 30, shorten = 4pt]{E4}{G5}
	\end{goban}
\end{codeexample}

\begingroup
\pgfgoset{view = {background = false, label = false}}

La flecha roja del diagrama de abajo sale de la negra \pgfgoview{flechas}{E4}.

\begin{goban}[partial = A1:G7, name = flechas]
	\stones[b]{C3, D3, E4, C5}
	\stones[w]{D4, D5, E5, F3}
	\arrow{C5}{C7}
	\arrow[color = red!80!black, bend = 30, shorten = 4pt]{E4}{G5}
\end{goban}
\endgroup

\subsection{Un ko: capturas y notas}
\label{tut:ko}

En el primer tutorial, |captures| retiró una piedra capturada de una partida en SGF. Para explicar un ko, \karu\ necesita lo mismo con jugadas escritas a mano: ponerlas en orden y que \pgfgoname\ retire las piedras capturadas.

\begin{figure}[H]
	\centering
	\begin{goban}[7, captures, notes]
		\stones[b]{B3, C2, C4}
		\stones[w]{C3, D2, D4, E3}
		\moves{D3, G6, G5, C3, A6, A5, D3}
	\end{goban}

	\pgfgomovenotes
\end{figure}

Negras toman el ko en D3 (1), blancas amenazan en otro lado (2), negras responden (3) y blancas retoman (4). Sin más, las jugadas se dibujan unas sobre otras y ninguna piedra se va del tablero.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[7]
		\stones[b]{B3, C2, C4}
		\stones[w]{C3, D2, D4, E3}
		\moves{D3, G6, G5, C3}
	\end{goban}
\end{codeexample}

Con la \emph{key} |captures| (pág.~\pageref{subsec:capturas}), el |goban| lleva la cuenta de las libertades y retira cada grupo que se queda sin ellas. La blanca de C3 desaparece con la jugada 1, y la negra 1, con la 4. |\pgfgoprisoners| dice cuántas piedras capturó cada jugador.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[7, captures]
		\stones[b]{B3, C2, C4}
		\stones[w]{C3, D2, D4, E3}
		\moves{D3, G6, G5, C3}
	\end{goban}

	Negras capturaron \pgfgoprisoners{b},
	blancas \pgfgoprisoners{w}.
\end{codeexample}

Si las piedras capturadas deben seguir viéndose, |captures = fade| las deja como prisioneras.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[7, captures = fade]
		\stones[b]{B3, C2, C4}
		\stones[w]{C3, D2, D4, E3}
		\moves{D3, G6, G5, C3}
	\end{goban}
\end{codeexample}

El ko sigue: negras amenazan (5), blancas responden (6) y negras retoman en D3 (7), donde ya se había jugado la 1. En los libros, esa jugada no se dibuja: debajo del diagrama se escribe «7 en 1». Eso hace la \emph{key} |notes| (pág.~\pageref{subsec:notas}), y |\pgfgomovenotes| escribe las notas.

\begin{codeexample}[width=4.8cm]
	\begin{goban}[7, captures, notes]
		\stones[b]{B3, C2, C4}
		\stones[w]{C3, D2, D4, E3}
		\moves{D3, G6, G5, C3, A6, A5, D3} % Y así hasta que alguien se canse.
	\end{goban}

	\pgfgomovenotes.
\end{codeexample}

\subsection{Una partida entera}
\label{tut:partida}

El artículo también comenta una partida larga: la primera entre Lee Sedol y AlphaGo, de 2016, guardada en |lee.sgf|, que llama |lee|. Como en el primer tutorial (pág.~\pageref{tut:primera}), no hace falta escribir sus 186 jugadas: \pgfgoname\ las lee del archivo (pág.~\pageref{subsec:sgf}).

Lo primero son los datos de la partida, que |\sgfinfo| toma de la raíz del archivo.

\begin{codeexample}[code only]
	\pgfgodefinesgf{lee}{lee.sgf}

	\sgfinfo{lee}{PB} (negras) contra \sgfinfo{lee}{PW} (blancas),
	\sgfinfo{lee}{EV}, \sgfinfo{lee}{RO}, \sgfinfo{lee}{DT}.
	Resultado: \sgfinfo{lee}{RE}.
\end{codeexample}

\sgfinfo{lee}{PB} (negras) contra \sgfinfo{lee}{PW} (blancas),
\sgfinfo{lee}{EV}, \sgfinfo{lee}{RO}, \sgfinfo{lee}{DT}.
Resultado: \sgfinfo{lee}{RE}.

|\sgfinfo| escribe el resultado tal como está en el archivo; más adelante, |\sgfdiagrams| lo escribe en palabras.

La partida es de $19\times19$: |sgf size| le da al tablero el tamaño que dice el archivo. Con |to|, \karu\ la muestra hasta la jugada 30, y con |scale|, achica el tablero.

\begin{codeexample}[]
	\begin{goban}[sgf size = lee, captures, scale = 0.6]
		\sgf[to = 30]{lee}
	\end{goban}
\end{codeexample}

Para comentar un tramo, \karu\ numera solo las jugadas desde la 21 con |from|: las anteriores se dibujan sin número.

\begin{codeexample}[]
	\begin{goban}[sgf size = lee, captures, scale = 0.6]
		\sgf[from = 21, to = 30]{lee}
	\end{goban}
\end{codeexample}

Después, \karu\ quiere la partida entera, como en los libros: un diagrama cada 50 jugadas, cada uno con su epígrafe y sus notas «N en M», y el resultado al final. Eso hace |\sgfdiagrams|, que se usa fuera de |goban|. Con |layout|, los diagramas van en una grilla de dos columnas, y con |fit| se escalan para llenarlas (pág.~\pageref{subsec:disposicion}). Aquí se muestran solo los dos últimos, con |from|.

\begin{codeexample}[code only]
	\sgfdiagrams[step = 50, from = 101, layout = {columns = 2, fit}]{lee}
\end{codeexample}

\sgfdiagrams[step = 50, from = 101, layout = {columns = 2, fit}]{lee}

El epígrafe y el resultado están en castellano porque el documento usa |babel| en castellano (pág.~\pageref{subsec:idiomas}). Algunos libros reinician la numeración en cada diagrama; con |restart|, cada diagrama, desde el segundo, numera desde 1.

\begin{codeexample}[code only]
	\sgfdiagrams[step = 50, from = 51, to = 150, restart,
		goban = {label = {at = {north, west}}}, layout = {columns = 2, fit}]{lee}
\end{codeexample}

\sgfdiagrams[step = 50, from = 51, to = 150, restart,
	goban = {label = {at = {north, west}}}, layout = {columns = 2, fit}]{lee}

\subsection{Variantes: recordar un tablero}
\label{tut:variantes}

En los comentarios, \karu\ suele mostrar qué habría pasado con otra jugada. Copiar la posición en cada diagrama es tedioso y propenso a errores: si cambia una piedra, hay que cambiarla en todos (hablo por experiencia). En la pelea, \karu\ le dio un nombre a un tablero con |name| para mostrarlo en el texto. Ese tablero guarda todo lo que dibuja, y con |resume| otro |goban| empieza con esa posición (pág.~\pageref{subsec:recordar}).

\begin{codeexample}[]
	\pgfgoset{goban = {5, partial = A1:E4}}

	\begin{goban}[name = base]
		\stones[b]{B2, C3, D2}
		\stones[w]{B3, C4, D3}
	\end{goban}

	\begin{goban}[resume = base]
		\moves[b]{C2, E3}
	\end{goban}

	\begin{goban}[resume = base]
		\moves[b]{E3, C2}
	\end{goban}
\end{codeexample}

Las variantes también pueden tener nombre, y seguir desde ellas: con |name| y |resume| en el mismo |goban|, el nuevo nombre guarda lo que trajo más lo suyo. Por defecto, |resume| trae solo las piedras; |numbers| trae también los números.

\begin{codeexample}[]
	\pgfgoset{goban = {5, partial = A1:E4}}

	\begin{goban}[name = base]
		\stones[b]{B2, C3, D2}
		\stones[w]{B3, C4, D3}
	\end{goban}

	\begin{goban}[name = variante, resume = base]
		\moves[b]{E3, C2}
	\end{goban}

	\begin{goban}[resume = {variante, numbers}]
		\moves{E4}
	\end{goban}
\end{codeexample}

Un tablero con nombre también sirve para comparar estilos. Antes de elegir el perfil de su artículo, \karu\ dibuja el mismo tablero con varios perfiles del catálogo (pág.~\pageref{sec:catalogo}). Para ponerlos uno al lado del otro, del mismo ancho, usa el entorno |pgfgolayout| (pág.~\pageref{subsec:disposicion}). Con |marks|, |resume| trae también las marcas.

\begin{codeexample}[code only]
	\begin{goban}[5, name = estilos]
		\stones[b]{B2, C3, D2}
		\stones[w]{B3, C4, D3}
		\marks[circle]{C2}
	\end{goban}

	\begin{pgfgolayout}[columns = 4, fit]
		\begin{goban}[resume = {estilos, marks}, profile = pgfgo] \end{goban}
		\begin{goban}[resume = {estilos, marks}, profile = pgfgosmooth] \end{goban}
		\begin{goban}[resume = {estilos, marks}, profile = wain] \end{goban}
		\begin{goban}[resume = {estilos, marks}, profile = simple] \end{goban}
	\end{pgfgolayout}
\end{codeexample}

\begin{goban}[5, name = estilos]
	\stones[b]{B2, C3, D2}
	\stones[w]{B3, C4, D3}
	\marks[circle]{C2}
\end{goban}

\begin{pgfgolayout}[columns = 4, fit]
	\begin{goban}[resume = {estilos, marks}, profile = pgfgo] \end{goban}
	\begin{goban}[resume = {estilos, marks}, profile = pgfgosmooth] \end{goban}
	\begin{goban}[resume = {estilos, marks}, profile = wain] \end{goban}
	\begin{goban}[resume = {estilos, marks}, profile = simple] \end{goban}
\end{pgfgolayout}

\subsection{El final del juego: territorio}
\label{tut:territorio}

\begin{figure}[H]
	\centering
	\pgfgoset{profile = wain}
	\begin{goban}[label = {at = {above, left}}]
		\stones[b] {A5,A6,B1,B2,B3,B4,B5,C1,C4,D1,D2,D5,D7,E2,E5,E7,E9,F4,F5,F6,F7,F8,F9,G5,G6,G7,H6,H8,J7}
		\stones[w] {A7,B6,B8,C2,C3,C5,C6,C7,C8,D3,D4,D6,D8,D9,E3,E4,E6,E8,F1,F2,F3,G4,H2,H3,H5,J5,J6}
		\prisoners[b]{H1,J1,J2}
		\prisoner[white] {A1}

		\marks[b, t-circle] {A1,A2,A3,A4,G8,G9,H9,J9,J8,H7}
		\marks[w, t-square] {A9,B9,C9,A8,B7,H4,J4,J3,J2,J1,H1,G1,G2,G3}
		\mark[neutral, t-square] {E1}
	\end{goban}
\end{figure}

Para terminar el artículo, \karu\ quiere mostrar cómo se cuenta una partida. Parte de la posición final. Como tiene muchas piedras y va a dibujarla varias veces, la guarda con |name|, como las variantes del tutorial anterior, y los tableros siguientes empiezan con |resume|, sin repetir las coordenadas.

\begin{codeexample}[]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}}, name = final]
		\stones[b] {A5,A6,B1,B2,B3,B4,B5,C1,C4,D1,D2,D5,D7,E2,E5,
			E7,E9,F4,F5,F6,F7,F8,F9,G5,G6,G7,H6,H8,J7}
		\stones[w] {A7,B6,B8,C2,C3,C5,C6,C7,C8,D3,D4,D6,D8,D9,E3,
			E4,E6,E8,F1,F2,F3,G4,H2,H3,H5,J5,J6}
	\end{goban}
\end{codeexample}

Lo siguiente son los prisioneros: las piedras muertas, que se retiran al contar. Se dibujan con |\prisoner| y |\prisoners|, o con la \emph{key} |prisoner| de |\stone| y |\stones| (pág.~\pageref{sec:piedras}). \karu\ guarda también este tablero, con otro nombre: con |name| y |resume| en el mismo |goban|, como en las variantes.

\begin{codeexample}[width=4.75cm]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}},
		resume = final, name = final2]
		\stones[b, prisoner]{H1, J1, J2} % Equivalente a \prisoners[b]{...}
		\prisoner[w] {A1} % Equivalente a \stone[w, prisoner]{...}
	\end{goban}
\end{codeexample}

Ahora, el territorio. Una forma es marcar cada punto con |t-square| o |t-circle|. Estas marcas toman siempre como relleno el color de relleno de la piedra a la que pertenecen y como color y grosor de borde los de la cuadrícula.

\begin{codeexample}[width=4.75cm]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}}, resume = final2]
		\marks[b, t-circle]{A1, A2, A3, A4, G8, G9, H9, J9, J8, H7}
		\marks[w, t-square]{A9, B9, C9, A8, B7, H4, J4, J3, J2, J1,
			H1, G1, G2, G3}
		\marks[t-square, fill = {color = red}] {E1} % No se rellena de rojo, porque toma el color de neutral
	\end{goban}
\end{codeexample}

Otra forma es |\territory| (pág.~\pageref{subsec:territorio}). Con un polígono, marca los puntos de esa región que no tienen una piedra viva; con |auto| y el kernel en Lua, busca solo el territorio de cada jugador. |\pgfgoscore| escribe el puntaje.

\begin{codeexample}[width=4.75cm]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}}, resume = final2]
		\territory[dame]{auto}
	\end{goban}

	Negras: \pgfgoscore{black}. Blancas: \pgfgoscore[komi = 6.5]{white}.
\end{codeexample}

Para el artículo, \karu\ prefiere que el territorio se vea como una mancha de color y no punto por punto. Con |draw = region|, el territorio de cada color es un solo polígono, cuyos lados van por las líneas del tablero.

\begin{codeexample}[width=4.75cm]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}}, resume = final2]
		\territory[draw = region]{auto}
	\end{goban}
\end{codeexample}

\subsection{Un cuaderno de problemas}
\label{tut:problemas}

Para sus estudiantes, \karu\ prepara un cuaderno de problemas de vida y muerte. Los problemas suelen guardarse también en SGF: la posición inicial, quién juega y un árbol con cada variante de la solución, correcta o no, con sus comentarios. |\sgfproblem| dibuja todo eso: primero el enunciado y después un diagrama por variante. Si el archivo no dice qué parte del tablero mostrar, se muestra solo la que usa el problema, como con |partial = auto|.

\begin{codeexample}[code only]
	\pgfgodefinesgf{problema}{problema.sgf}

	\sgfproblem[title = Problema 1]{problema}
\end{codeexample}

\sgfproblem[title = Problema 1]{problema}

En un cuaderno, las soluciones no van junto al enunciado. \karu\ pone los enunciados en la primera parte, con |solutions = false|, y las soluciones al final, con |statement = false|.

\begin{codeexample}[code only]
	\sgfproblem[title = Problema 1, solutions = false]{problema}
	% ... al final del cuaderno:
	\sgfproblem[statement = false, layout = {columns = 4, fit}]{problema}
\end{codeexample}

\sgfproblem[title = Problema 1, solutions = false]{problema}

\sgfproblem[statement = false, layout = {columns = 4, fit}]{problema}

Algunos problemas no están en ningún archivo, y \karu\ los dibuja a mano, con la misma parte del tablero que muestra |\sgfproblem|. Aquí escribe la parte, |A16:F19|: con |partial = auto|, cada tablero mostraría solo la suya, y no coincidirían. Para que tengan el mismo tamaño que los demás, los pone junto con los de |\sgfproblem| en un mismo |pgfgolayout|, que acomoda en una grilla todos los tableros que contiene.

\begin{codeexample}[code only]
	\begin{pgfgolayout}[columns = 3, fit]
		\sgfproblem[title = Problema 1, solutions = false]{problema}
		\begin{goban}[19, partial = A16:F19]
			\stones[b]{A16, B16, C16, D17, E18, E19}
			\stones[w]{A17, B17, C17, D18, D19}
		\end{goban}
		\begin{goban}[19, partial = A16:F19]
			\stones[b]{A17, B17, C17, D18, D19}
			\stones[w]{A18, B18, C18, C19}
		\end{goban}
	\end{pgfgolayout}
\end{codeexample}

\begin{pgfgolayout}[columns = 3, fit]
	\sgfproblem[title = Problema 1, solutions = false]{problema}
	\begin{goban}[19, partial = A16:F19]
		\stones[b]{A16, B16, C16, D17, E18, E19}
		\stones[w]{A17, B17, C17, D18, D19}
	\end{goban}
	\begin{goban}[19, partial = A16:F19]
		\stones[b]{A17, B17, C17, D18, D19}
		\stones[w]{A18, B18, C18, C19}
	\end{goban}
\end{pgfgolayout}

\subsection{Un tablero de madera: un perfil con imágenes}
\label{tut:madera}

Para la portada del cuaderno, \karu\ quiere un tablero que se parezca a uno de verdad, ya que el presupuesto no da para uno de kaya: madera, piedras con volumen y blancas con vetas. Los perfiles del catálogo dibujan las piedras como círculos; para esto hacen falta imágenes (PNG, JPG o PDF). \pgfgoname\ trae algunas, junto a sus archivos |.sty|, y \karu\ empieza con ellas: una foto de madera, |pgfgo-board.jpg|, una piedra negra de pizarra, |pgfgo-shell-black.png|, y cinco blancas de concha, |pgfgo-shell-white-1.png| a |pgfgo-shell-white-5.png|. Se usan por su nombre, desde cualquier documento; las imágenes propias se usan igual, como con |\includegraphics|.

\begin{figure}[H]
	\centering
	\pgfgodefineprofile[from = default]{madera}{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		all = {stone = {shadow = {true, offset = 0.75pt, angle = -45}}},
		black = {stone = {image = {file = pgfgo-shell-black.png}}},
		white = {stone = {image = {file = {
			pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
			pgfgo-shell-white-4.png, pgfgo-shell-white-5.png}}}}}
	\begin{goban}[profile = madera, label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{figure}

Parte del primer tablero del artículo. La madera va en el fondo del tablero, con |background/fill/image| (pág.~\pageref{sec:tablero}). Por defecto, la imagen cubre todo el tablero, recortada si hace falta; con |fit|, puede estirarse o repetirse en baldosas.

\begin{codeexample}[width=4.8cm]
	\pgfgoset{goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}}}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{codeexample}

Las piedras de un jugador se dibujan con una imagen mediante |stone/image| (pág.~\pageref{subsec:piedrasimagen}), en las opciones de ese jugador. La imagen ocupa el lugar del círculo: no se dibujan el relleno ni el borde.

\begin{codeexample}[width=4.8cm]
	\pgfgoset{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		players = {
			black = {stone = {image = {file = pgfgo-shell-black.png}}},
			white = {stone = {image = {file = pgfgo-shell-white-1.png}}}}}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{codeexample}

Las negras se ven bien, pero las blancas son todas iguales, y en un tablero de verdad cada piedra de concha tiene sus vetas. Con varios archivos en |file|, cada piedra usa uno de ellos, elegido por su posición: una piedra en un punto muestra siempre la misma imagen, en todos los diagramas.

\begin{codeexample}[width=4.8cm]
	\pgfgoset{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		players = {
			black = {stone = {image = {file = pgfgo-shell-black.png}}},
			white = {stone = {image = {file = {
				pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
				pgfgo-shell-white-4.png, pgfgo-shell-white-5.png}}}}}}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{codeexample}

Para que las piedras parezcan apoyadas sobre la madera, falta una sombra. |shadow| la dibuja con la forma de la imagen (si la imagen tiene transparencia, como estos PNG). Como es la misma para los dos jugadores, va en |all|. Cada archivo se guarda una sola vez en el PDF, por más piedras que lo usen.

\begin{codeexample}[width=4.8cm]
	\pgfgoset{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		players = {
			all = {stone = {shadow = {true, offset = 0.75pt, angle = -45}}},
			black = {stone = {image = {file = pgfgo-shell-black.png}}},
			white = {stone = {image = {file = {
				pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
				pgfgo-shell-white-4.png, pgfgo-shell-white-5.png}}}}}}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{codeexample}

Con cinco imágenes, todavía puede verse alguna repetida. |rotate| gira cada piedra un ángulo distinto, elegido también por su posición. Estas piedras tienen la luz arriba a la izquierda, así que \karu\ las gira poco, entre $-15$ y $15$ grados; la sombra gira con la imagen, pero sigue cayendo hacia el mismo lado.

\begin{codeexample}[width=4.8cm]
	\pgfgoset{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		players = {
			all = {stone = {shadow = {true, offset = 0.75pt, angle = -45}}},
			black = {stone = {image = {file = pgfgo-shell-black.png}}},
			white = {stone = {image = {file = {
				pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
				pgfgo-shell-white-4.png, pgfgo-shell-white-5.png},
				rotate = -15:15}}}}}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2,E2,J2,C3,D3,G3,H3,C5,D5,E5,F5,G5,E6,G6}
		\stones[w]{D8,F8,E7,H7,C6,D6,F6,H6,B5,J5,B4,E4,J4,J3,H2}
	\end{goban}
\end{codeexample}

\karu\ va a usar este estilo en todo el cuaderno, y quizás en otros documentos. En lugar de repetir el |\pgfgoset|, lo guarda como un perfil con |\pgfgodefineprofile| (pág.~\pageref{subsec:perfiles}): |goban| son las opciones del tablero; |all|, las de los tres jugadores, y |black| y |white|, las de cada uno. Con |from = default|, cada parte empieza con el perfil |default|. Después, el perfil se usa como cualquier otro, con la \emph{key} |profile|.

\begin{codeexample}[code only]
	\pgfgodefineprofile[from = default]{madera}{
		goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
		all = {stone = {shadow = {true, offset = 0.75pt, angle = -45}}},
		black = {stone = {image = {file = pgfgo-shell-black.png}}},
		white = {stone = {image = {file = {
			pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
			pgfgo-shell-white-4.png, pgfgo-shell-white-5.png}}}}}

	\pgfgoset{profile = madera}
\end{codeexample}

\pgfgodefineprofile[from = default]{madera}{
	goban = {background = {fill = {image = {file = pgfgo-board.jpg}}}},
	all = {stone = {shadow = {true, offset = 0.75pt, angle = -45}}},
	black = {stone = {image = {file = pgfgo-shell-black.png}}},
	white = {stone = {image = {file = {
		pgfgo-shell-white-1.png, pgfgo-shell-white-2.png, pgfgo-shell-white-3.png,
		pgfgo-shell-white-4.png, pgfgo-shell-white-5.png}}}}}

Un perfil casi igual, con una sombra difusa y sin el borde del tablero, viene con \pgfgoname: |shell| (pág.~\pageref{subsec:perfilshell}); con |profile = shell| no hace falta definir nada. También está |yunzi|, con piedras mates. Sus definiciones están en el catálogo.

Un perfil vale para todo lo que dibuja \pgfgoname, también para los diagramas de un SGF. Así queda la partida de Lee Sedol y AlphaGo en madera, con un diagrama cada 50 jugadas y la numeración reiniciada en cada uno.

\begin{codeexample}[code only]
	\pgfgoset{profile = madera}

	\sgfdiagrams[step = 50, restart, layout = {columns = 2, fit}]{lee}
\end{codeexample}

\begingroup
\pgfgoset{profile = madera}

\sgfdiagrams[step = 50, restart, layout = {columns = 2, fit}]{lee}
\endgroup

\subsection{Diapositivas y animaciones}
\label{tut:diapositivas}

\karu\ también da clases con diapositivas. Un |goban| funciona dentro de un |frame| de |beamer| como en cualquier otro lugar, y |\sgf| con |to| permite mostrar la partida jugada por jugada, una diapositiva por jugada, con su comentario al lado.

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

	\begin{document}
		\begin{frame}[t]{Una partida corta}
			\begin{columns}[T]
				\column{0.5\textwidth}
					\foreach \k in {1, ..., 10} {
						\only<\k>{
							\begin{goban}[sgf size = partida, captures, scale = 1.5]
								\sgf[to = \k]{partida}
							\end{goban}}}
				\column{0.45\textwidth}
					\foreach \k in {1, ..., 10} {
						\only<\k>{\small\sgfcomment{partida}{\k}}}
			\end{columns}
		\end{frame}
	\end{document}
\end{codeexample}

Para repasar la partida entera, en cambio, le alcanzan los diagramas de Lee Sedol y AlphaGo del artículo (pág.~\pageref{tut:partida}), uno por diapositiva. Con |per frame|, |\sgfdiagrams| pone cada diagrama en su propia diapositiva del |frame|, con su epígrafe (pág.~\pageref{subsec:disposicion}). Fuera de |beamer|, |per page| hace lo mismo con las páginas.

\begin{codeexample}[code only]
	\begin{frame}{Lee Sedol contra AlphaGo}
		\centering
		\sgfdiagrams[step = 50, goban = {scale = 0.6}, layout = {per frame}]{lee}
	\end{frame}
\end{codeexample}

Las diapositivas son otro documento, pero \karu\ no quiere copiar los tableros del artículo. En el artículo, agrega |export| al |goban| de la pelea, que queda en el archivo |pelea.pgfgo|. En las diapositivas, lo trae con |\pgfgoimport|, con su nombre y su estilo, y lo usa como si lo hubiera dibujado ahí: con |\pgfgoview| o con |resume| (pág.~\pageref{subsec:exportar}).

\begin{codeexample}[code only]
	% En el artículo:
	\begin{goban}[partial = A1:G7, name = pelea, export = pelea]
		...
	\end{goban}

	% En las diapositivas:
	\pgfgoimport{pelea}
	...
	\begin{frame}{Si negras conectan}
		\begin{goban}[resume = {pelea, marks}, partial = auto]
			\moves{E3}
		\end{goban}
	\end{frame}
\end{codeexample}

En un PDF para leer en pantalla, en cambio, prefiere una animación: |\sgfanimation| dibuja un tablero por jugada con el paquete |animate|, y sus botones permiten avanzar, retroceder o reproducir la partida (pág.~\pageref{subsec:sgf}). El perfil también vale aquí. La animación se ve en Acrobat Reader y en algunos otros visores; en los demás, solo el primer cuadro.

\begin{codeexample}[code only]
	\pgfgoset{profile = madera}

	\sgfanimation[to = 40, fps = 4, goban = {captures, scale = 0.5},
		animate = {controls, loop}]{lee}
\end{codeexample}

\begin{center}
	\pgfgoset{profile = madera}
	\sgfanimation[to = 40, fps = 4, goban = {captures, scale = 0.5},
		animate = {controls, loop}]{lee}
\end{center}

\subsection{Un diccionario de josekis}
\label{tut:josekis}

Para otra clase, \karu\ quiere explicar las respuestas a la aproximación baja al punto 4-4. Las secuencias conocidas de la apertura en una esquina, los \emph{josekis}\footnote{Aprenderlos es fácil; olvidarlos, como pide el proverbio, cuesta más.}, suelen guardarse en un SGF con forma de diccionario: un árbol con una rama por cada jugada posible, comentarios en las que importan y letras en las jugadas que pueden seguir. \karu\ arma uno pequeño, |josekis.sgf|, y lo llama |josekis|.

Primero, la posición: las dos primeras jugadas, con las letras de las respuestas. El tablero es de $19\times19$, pero todo pasa en una esquina; con |partial = auto| (pág.~\pageref{tut:parcial}), el |goban| muestra solo la parte que usa lo que dibuja, también las letras.

\begin{codeexample}[]
	\pgfgodefinesgf{josekis}{josekis.sgf}

	\begin{goban}[sgf size = josekis, partial = auto]
		\sgf[to = 2]{josekis}
	\end{goban}
\end{codeexample}

Para las respuestas, \karu\ elige la línea con |variation|. En un diccionario hay tantas ramas que es más cómodo dar las jugadas de la línea, desde la primera, que buscar su número: |variation = {Q16, R14}| (pág.~\pageref{subsec:sgf}). Con |variations|, |\sgfdiagrams| dibuja además, cada una en su diagrama, las variantes con comentarios que se apartan de esa línea, y con |from = 3|, solo las que nacen en la jugada 3 o después: las respuestas, y no la invasión en el 3-3, que es otra jugada 2. Con |partial = auto|, todos los diagramas muestran la misma parte del tablero.

\begin{codeexample}[code only]
	\sgfdiagrams[variation = {Q16, R14}, variations = {commented, from = 3},
		partial = auto, comments, layout = {columns = 3, fit}]{josekis}
\end{codeexample}

\sgfdiagrams[variation = {Q16, R14}, variations = {commented, from = 3},
	partial = auto, comments, layout = {columns = 3, fit}]{josekis}

El primer diagrama es la línea elegida, hasta el final. Las jugadas de cada variante se numeran desde 1, y el epígrafe dice en qué jugada se aparta. En un diccionario grande, cada jugada trae letras en las que pueden seguir; con |marks = false|, los diagramas no las dibujan.

\subsection{Otros idiomas}
\label{tut:idiomas}

Un colega de \karu\ quiere traducir el cuaderno al francés. Los textos que escribe \pgfgoname\ (los epígrafes, el resultado, las notas «N en M» y las anotaciones de los comentarios) siguen el idioma de |babel| o |polyglossia|, también si cambia dentro del documento: con |\selectlanguage{french}| se traducen solos. También se puede elegir el idioma con la \emph{key} |lang| (pág.~\pageref{subsec:idiomas}).

\begin{codeexample}[code only]
	\pgfgoset{lang = fr}

	\sgfdiagrams[step = 5, layout = {columns = 2}]{partida}
	\sgfproblem[solutions = false]{problema}
\end{codeexample}

\begingroup
\pgfgoset{lang = fr}

\sgfdiagrams[step = 5, layout = {columns = 2}]{partida}
\sgfproblem[solutions = false]{problema}
\endgroup

El comentario del problema, «Negras matan.», no se traduce: está escrito así en el archivo. Cada texto del paquete puede cambiarse, además, con su propia \emph{key}, en cualquier idioma: por ejemplo, el epígrafe de los diagramas, con |title|.

\begin{codeexample}[code only]
	\pgfgoset{sgf diagrams = {title = Figura}}
\end{codeexample}

\subsection{Escribir menos: la sintaxis de coordenadas}
\label{tut:abreviar}

En todos los tutoriales, \karu\ escribió las piedras una por una. Cuando son muchas, \pgfgoname\ permite abreviar las listas de |\stones|, |\marks| y |\prisoners| (pág.~\pageref{subsec:sintaxis-de-coordenadas}). Las formas más útiles son los tramos de una fila o de una columna: |C:G5| es la fila 5, de C a G, y |J3:5| es la columna J, de 3 a 5. Con ellas, el primer tablero del artículo queda así:

\begin{codeexample}[width=4.8cm]
	\pgfgoset{profile = pgfgo}

	\begin{goban}[label = {at = {north, west}}]
		\stones[b]{B2, E2, J2, C3, D3, G3, H3, C:G5, E6, G6}
		\stones[w]{D8, F8, E7, H7, C6, D6, F6, H6, B5, B4, E4, H2, J3:5}
	\end{goban}
\end{codeexample}

Para grupos más grandes, hay caminos que doblan en ángulo recto. \verb+A6 |- B5+ va de A6 hacia abajo hasta la fila 5 y después hacia la derecha hasta B5: son las piedras A6, A5 y B5. \verb+E9 -| F4+ va primero hacia la derecha y después hacia abajo. \verb+D5 -- D7+ es una línea recta. Los caminos pueden encadenarse, y con ellos la posición final del tutorial de territorio (pág.~\pageref{tut:territorio}) cabe en dos líneas:

\begin{codeexample}[width=4.75cm]
	\pgfgoset{profile = wain}

	\begin{goban}[label = {at = {above, left}}]
		\stones[b] {A6|-B5|-D1|-E2, C4, E9-|F4, D5-|G7--D7, H6, H8, J7}
		\stones[w] {E8-|C5, B:E6, A7, B8, D9, J6|-H5, H2:3, F1|-C3, C2, D:E4, G4}
		\prisoners[b]{H1-|J2}
		\prisoner[w] {A1}
		\territory[dame]{auto}
	\end{goban}
\end{codeexample}

Entre dos intersecciones que no están en la misma fila ni en la misma columna, |--| es una línea inclinada: \verb+D5 -- F7+ son D5, E6 y F7. Esas piedras se tocan solo por las esquinas; para una cadena conectada, \verb+-|-+ rellena cada escalón, primero hacia el costado y después hacia arriba o hacia abajo: \verb+D4 -|- F6+ son D4, E4, E5, F5 y F6 (\verb+|-|+ empieza por la columna). Con eso, una escalera (\emph{shicho}) se escribe con sus extremos:

\begin{codeexample}[width=4.8cm]
	\begin{goban}[label = {at = {north, west}}]
		\stones[w]{D4 -|- F6 -- G6}
		\stones[b]{C4, D3, D5 -- F7, E3 -- G5}
		\arrow{G6}{J8} % Blancas corren. No por mucho.
	\end{goban}
\end{codeexample}

Hay más: rectángulos llenos (|A1:C3|) o solo su borde (|A1 r C3|), columnas y filas enteras (|D|, |4|), todo el tablero (|*|) y, después de un |;|, piedras que se quitan de la lista. Todo está en la referencia, en la pág.~\pageref{subsec:sintaxis-de-coordenadas}.
