\section{Partidas en SGF}
\label{subsec:sgf}

SGF es el formato que usan casi todos los programas de Go para guardar partidas. Con el kernel en Lua (pág.~\pageref{subsec:kernel}), \pgfgoname\ puede leerlas.

En todos los comandos que leen archivos SGF, el nombre puede tener espacios, acentos, paréntesis y otras escrituras. Los caracteres especiales de \TeX\ se escriben con barra: |\sgf{a\&b.sgf}| lee |a&b.sgf|, y lo mismo vale para |\#|, |\%|, |\$|, |\{| y |\}|. Dos espacios seguidos se leen como uno, porque \TeX\ los junta antes de que \pgfgoname\ vea el nombre.

Cada archivo se lee una sola vez en todo el documento, por más comandos que lo usen (si cambia mientras se compila, se vuelve a leer).

\subsection{Nombres para los archivos}
\label{subsec:sgfnombres}

\begin{command}{\pgfgodefinesgf\opt{\oarg{options}}\marg{name}\marg{file}}
	Le da un nombre a una partida: desde ahí, \meta{name} sirve en todos los lugares donde va un archivo SGF (|\sgf|, |\sgfinfo|, |\sgfcomment|, |\sgfdiagrams|, |\sgfproblem|, |\sgfanimation|, |sgf size| y |sgf view|). Así, la ruta del archivo se escribe una sola vez, y lo que dice qué partida es (|game| en una colección, la codificación) también. Un nombre que no está definido es un archivo, como siempre; si un nombre coincide con el de un archivo, vale el nombre. Las opciones de cada comando ganan sobre las del nombre: |\sgfinfo[game = 1]{|\meta{name}|}{PB}| lee la partida 1 aunque el nombre diga otra. Con |kernel = expl3|, el nombre se define pero no se puede usar, como los comandos SGF.

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

		\begin{goban}[sgf size = partida, scale = 0.6]
			\sgf[to = 7]{partida}
		\end{goban}

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

\begin{key}{/pgfgo/define sgf/game = \meta{number} (initially la de cada comando)}
	En una colección, la partida que usan los comandos con este nombre, como |/pgfgo/sgf/game|.

	\begin{codeexample}[code only]
		\pgfgodefinesgf[game = 3]{tercera}{coleccion.sgf}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/define sgf/charset = \meta{charset} (initially la de \texttt{sgf charset})}
	La codificación con la que se lee el archivo si no es UTF-8, como |/pgfgo/sgf charset|, solo para este nombre.

	\begin{codeexample}[code only]
		\pgfgodefinesgf[charset = GBK]{qipu}{partidas/qipu-sin-ca.sgf}
	\end{codeexample}
\end{key}

\subsection{Una partida en un tablero}
\label{subsec:sgftablero}

\begin{command}{\sgf\opt{\oarg{options}}\marg{file}}

	Dibuja en el |goban| la línea principal de la primera partida del archivo: las piedras iniciales (|AB| y |AW|) como con |\stones|, y las jugadas como con |\moves|. Las variantes no se dibujan. Los pases cuentan para la numeración, pero no se dibujan (con |goban/notes| se anotan, «N: pass»). Solo existe dentro de |goban|.
\end{command}

Las piedras que agregan (|AB|, |AW|) o quitan (|AE|) los nodos posteriores a la primera jugada se aplican junto con la jugada anterior. Quitar piedras necesita |captures|; sin |captures|, |\sgf| avisa una vez y no las quita.

Al terminar, la numeración y el turno quedan listos para seguir la partida con |\moves|. |\sgf| funciona con |partial|, |captures|, |name| y |resume|. Si la partida es para un tablero de otro tamaño, se produce una advertencia. Con |kernel = expl3|, |\sgf| produce un error.

En los ejemplos, los archivos se usan por su nombre (pág.~\pageref{subsec:sgfnombres}). |partida| es |partida.sgf|, una partida corta de 9$\times$9:
\begin{verbatim}
(;GM[1]FF[4]SZ[9]PB[Negras]PW[Blancas]C[Una partida corta.]
;B[ee];W[ef];B[df];W[ce];B[ff];W[gd];B[eg]C[Negras capturan.];W[dd];B[cf];W[fd])
\end{verbatim}

\begin{codeexample}[width=5cm]
	\begin{goban}[label = {at = {north, west}}]
		\sgf{partida} % Sin captures, 2 no se retira.
	\end{goban}
\end{codeexample}

\begin{codeexample}[width=5cm]
	\begin{goban}[label = {at = {north, west}}, captures]
		\sgf{partida}
	\end{goban}
\end{codeexample}

\begin{key}{/pgfgo/sgf/from = \meta{number} (initially 1)}

	Número de la primera jugada numerada. Las jugadas anteriores se dibujan sin número.

	\begin{codeexample}[width=5cm]
		\begin{goban}[captures]
			\sgf[from = 7]{partida}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/to = \meta{number} o |last| (initially last)}

	Número de la última jugada que se juega. Las siguientes no se dibujan. Con |last| (o un número negativo), hasta la última.

	\begin{codeexample}[width=5cm]
		\begin{goban}[captures]
			\sgf[to = 6]{partida}
			\moves{F5} % Sigue con la 7 (negras), en otro lugar.
		\end{goban}
	\end{codeexample}
\end{key}


|from| y |to| cuentan las jugadas del archivo. El número que se muestra puede ser otro: la propiedad |MN| del archivo lo cambia (las jugadas siguientes siguen desde ahí), y también |restart|. En los ejemplos que siguen, |variantes| es |variantes.sgf|, una partida de 7$\times$7 con dos bifurcaciones, marcas y |MN[10]| en la cuarta jugada de la línea principal.

\begin{key}{/pgfgo/sgf/variation = \meta{números o jugadas} (initially la línea principal)}
	Elige una variante: en cada bifurcación de la partida se toma, en orden, la variante indicada (1 es la principal). Por ejemplo, |variation = 2.1| toma la segunda variante en la primera bifurcación y la primera en la segunda.

	En un archivo con muchas bifurcaciones, como un diccionario de josekis, es más cómodo dar las jugadas de la línea desde la primera, separadas por comas o espacios: |variation = {R16, P17, Q15}|. En cada bifurcación se toma la variante que juega la siguiente; un pase se escribe |pass|. Cada intersección es una letra mayúscula y un número, como en |\stone|.

	En los dos casos, cuando la lista se termina, se sigue por la primera variante. Si una variante (o una jugada) no existe, se produce una advertencia y se sigue por la primera desde ahí.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[variation = 2]{variantes}
		\end{goban}

		\begin{goban}[sgf size = variantes]
			\sgf[variation = 1.2]{variantes}
		\end{goban}

		\begin{goban}[sgf size = variantes]
			\sgf[variation = {C5, C3}]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/marks = \meta{boolean} (default true, initially true)}
	Dibuja las marcas del archivo (|TR|, |SQ|, |CR|, |MA|, |SL| y las etiquetas de |LB|), las flechas (|AR|) y las líneas (|LN|) del último nodo que se muestra, y atenúa los puntos de |DD| (que siguen atenuados hasta el próximo |DD|; pág.~\pageref{subsec:flechas}). Cada marca toma el color de la piedra que hay en ese punto, para que se vea, y reemplaza al número de la jugada. Las etiquetas son la excepción: no tapan un número, así que sobre una piedra numerada no se dibujan. El territorio del archivo (|TB| y |TW|) se dibuja como el de |\territory| (pág.~\pageref{subsec:territorio}) y cuenta para |\pgfgoscore|.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[to = 2]{variantes}
		\end{goban}

		\begin{goban}[sgf size = variantes]
			\sgf[to = 2, marks = false]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/step = \meta{number} o \meta{list of numbers} (initially 100)}
	El tamaño de los tramos en que |restart| reinicia la numeración. Con una lista, cada número es el tamaño de un tramo, y el último se repite: con |step = {50, 100}|, el primer tramo tiene 50 jugadas y los demás 100. Es la misma \emph{key} que |/pgfgo/sgf diagrams/step|, donde cada tramo es un diagrama.
\end{key}

\begin{key}{/pgfgo/sgf/restart = \meta{restart options} (default true)}
	Desde el segundo tramo de |step| jugadas, cada uno numera desde 1 (o desde |restart/from|), como en los libros: con |step = 100, restart|, la jugada 101 se muestra como 1. El primer tramo conserva los números de la partida. Las mismas opciones tienen |\sgfanimation| y |\sgfdiagrams|.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[]{variantes}
		\end{goban}

		\begin{goban}[sgf size = variantes]
			\sgf[step = 3, restart]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/restart/true}
	Reinicia la numeración en cada tramo.
\end{key}

\begin{key}{/pgfgo/sgf/restart/false}
	No la reinicia: las jugadas llevan los números de la partida (con |MN|).
\end{key}

\begin{key}{/pgfgo/sgf/restart/auto}
	Hace lo que pide el archivo con |PM|: con |PM[2]|, la numeración se reinicia cada 100 jugadas, sin importar |step| (la 101 se muestra como 1); si no, no se reinicia. Es el valor inicial.
\end{key}

\begin{key}{/pgfgo/sgf/restart/from = \meta{number} (initially 1)}
	El número de la primera jugada de cada tramo, desde el segundo. También prende |restart|. Con |step = 99| y |restart = {from = 0}|, la jugada 100 se muestra como 0, la 101 como 1, y así.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[step = 3, restart = {from = 0}]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/numbers = \meta{true, false o auto} (default true, initially auto)}
	Con |false|, las jugadas se dibujan sin número. Con |auto|, hace lo que pide el archivo con |PM|: con |PM[0]|, no se numeran. |\sgfdiagrams| tiene su propia \emph{key} |numbers|, y |\sgfproblem| numera siempre.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[numbers = false]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/last mark = \meta{mark options} o |false| (initially false)}
	Marca la última jugada que se muestra, con las opciones de una marca (|circle|, |triangle|, |custom = ...|, etc.). Un pase no se marca, y tampoco un punto que el archivo ya marca ni una jugada con número (el número ya dice cuál es la última): en la práctica, marca algo con |numbers = false|.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[numbers = false, last mark = circle]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf/game = \meta{number} (initially 1)}
	Un archivo SGF puede tener varias partidas (una colección). Elige cuál se lee; si no existe, se lee la primera con un aviso. También vale para |\sgfanimation|, |\sgfdiagrams|, |\sgfcomment|, |\sgfinfo| y |sgf size|, que tienen su propia \emph{key} |game|; para todo el documento, |\pgfgoset{sgf = {game = 2}}|.
\end{key}

\begin{key}{/pgfgo/sgf/variations = \meta{none, children, siblings o auto} (default auto, initially none)}
	Marca con letras las variantes de la última jugada que se muestra: con |children|, las jugadas que pueden seguir; con |siblings|, las alternativas a esa jugada (la letra reemplaza a su número). |auto| hace lo que pide el archivo con |ST|. Solo se marcan si hay más de una.

	\begin{codeexample}[]
		\begin{goban}[sgf size = variantes]
			\sgf[to = 1, marks = false, variations = children]{variantes}
		\end{goban}
	\end{codeexample}
\end{key}

|\sgf| también lee |PL| (quién juega después: |\moves| sigue con ese color) y |CA| (la codificación del archivo; ver |sgf charset|).

\begin{key}{/pgfgo/sgf charset = \meta{charset} (initially auto)}
	Codificación de los archivos SGF que no están en UTF-8, para todos los comandos que leen archivos. Con |auto|, es la que dice el archivo con |CA| o, si no dice ninguna, Latin-1 (la de SGF por defecto). Se leen |Latin-1|, |GBK| (y |GB2312|), |Big5|, |Shift_JIS|, |EUC-JP| y |EUC-KR|; los nombres no distinguen mayúsculas ni signos (|shift-jis| y |EUC_KR| también valen). Un archivo que es UTF-8 válido se lee siempre como UTF-8, aunque |CA| diga otra cosa; uno en UTF-16 (con la marca de orden de bytes al principio) también se lee.

	Muchos archivos de servidores asiáticos no dicen su codificación; para leerlos, por ejemplo, |\pgfgoset{sgf charset = GBK}|. Si un archivo sin |CA| parece estar en una de esas codificaciones, se produce un aviso que lo recuerda. Con otra codificación se produce un aviso y el archivo se lee como Latin-1: hay que convertirlo antes a UTF-8, por ejemplo con |iconv -f KOI8-R -t UTF-8 partida.sgf > partida-utf8.sgf|.

	Para escribir los comentarios en chino, japonés o coreano hace falta además el paquete de ese idioma: |ctex|, |luatexja| o |luatexko|. Los ejemplos 14, 18 y 19 de |doc/examples| muestran una partida comentada en cada uno. Sin él, LaTeX solo anota los caracteres que faltan en el |.log|; por eso, si la fuente con la que se escribe un comentario o un |\sgfinfo| no tiene algún carácter chino, japonés o coreano, se produce un aviso, una vez por fuente. Con esos paquetes (o |xeCJK|) no se mira: escriben esos caracteres con otra fuente.
\end{key}

\begin{key}{/pgfgo/sgf = \meta{sgf options}}
	Opciones de todos los |\sgf| del documento, por ejemplo |\pgfgoset{sgf = {variations}}|.
\end{key}

\subsection{Datos y comentarios}
\label{subsec:sgfdatos}

\begin{command}{\sgfinfo\opt{\oarg{options}}\marg{file}\marg{property}}
	Escribe una propiedad de la raíz de la partida, por ejemplo |PB| y |PW| (los jugadores), |RE| (el resultado), |KM| (el komi) o |DT| (la fecha), o con |move| la de una jugada. Si no está, no escribe nada. Se puede usar fuera de |goban|.

	\begin{codeexample}[]
		\sgfinfo{variantes}{PB} (negras) contra
		\sgfinfo{variantes}{PW} (blancas),
		komi \sgfinfo{variantes}{KM}.
		Resultado: \sgfinfo{variantes}{RE}.
	\end{codeexample}

	El valor se escribe tal como está en el archivo (con los caracteres escapados ya resueltos y en la codificación de |CA|): |RE| queda como |B+R|, no en palabras. Las propiedades con datos de la partida, según el formato SGF, son:

	\begin{center}
		\small
		\begin{tabular}{lp{6.5cm}l}
			\emph{Propiedad} & \emph{Qué es} & \emph{Ejemplo} \\[2pt]
			|PB|, |PW| & El nombre de Negras y el de Blancas. & |Lee Sedol| \\
			|BR|, |WR| & El rango de Negras y el de Blancas. & |9p| \\
			|BT|, |WT| & El equipo de Negras y el de Blancas. & \\
			|RE| & El resultado: |B+| o |W+| y los puntos, |R| (abandono), |T| (tiempo) o |F| (falta); |0| o |Draw|, empate; |Void|, sin resultado; |?|, desconocido. & |W+3.5| \\
			|KM| & El komi. & |6.5| \\
			|HA| & El hándicap: cuántas piedras. & |2| \\
			|DT| & La fecha, |AAAA-MM-DD| (o varias, separadas por comas). & |2016-03-09| \\
			|EV| & El torneo o evento. & |Meijin| \\
			|RO| & La ronda. & |3 (final)| \\
			|PC| & El lugar. & |Tokio| \\
			|GN| & El nombre de la partida. & \\
			|GC| & Un comentario sobre la partida: los antecedentes, los jugadores. & \\
			|ON| & La apertura (fuseki). & |chinese| \\
			|RU| & Las reglas. & |Japanese| \\
			|TM| & El tiempo de cada jugador, en segundos. & |7200| \\
			|OT| & El tiempo extra (byo-yomi). & |5x30 byo-yomi| \\
			|SO| & La fuente: un libro, una revista. & \\
			|AN| & Quién comentó la partida. & \\
			|US| & Quién escribió el archivo. & \\
			|CP| & El copyright. & \\
			|AP| & El programa que escribió el archivo y su versión. & |CGoban:3| \\
			|SZ| & El tamaño del tablero (|19|, o |19:13| si no es cuadrado). & |19| \\
			|CA| & La codificación del archivo. & |UTF-8| \\
			|FF|, |GM| & La versión del formato y el juego (|1|: go). & |4| \\
		\end{tabular}
	\end{center}

	Sirve cualquier otra propiedad de la raíz (o de la jugada, con |move|). Si tiene varios valores, se escriben separados por comas: |\sgfinfo{partida}{AB}| escribe las piedras negras puestas antes de empezar en coordenadas SGF, |dd, pp|. Los nombres largos de las versiones viejas del formato (|PlayerBlack|) se leen como su abreviatura: se piden con |PB|.
\end{command}

\begin{command}{\sgfcomment\opt{\oarg{options}}\marg{file}\marg{move}}
	Escribe el comentario de una jugada del archivo (|0|: el de antes de la primera jugada): el nombre del nodo (|N|), en negrita; las anotaciones de la jugada (|TE|, |BM|, |DO|, |IT|) y de la posición (|GB|, |GW|, |DM|, |UC|); y el comentario (|C|). Las anotaciones se escriben con los textos de |/pgfgo/sgf annotations|. Los valores (|V|) y los puntos calientes (|HO|), que sirven para el árbol de la partida, no se escriben. Se puede usar fuera de |goban|. |\sgfanimation| y |\sgfdiagrams| escriben los comentarios de la misma forma.

	\begin{codeexample}[]
		Jugada 7: \sgfcomment{partida}{7}
	\end{codeexample}
\end{command}

\begin{key}{/pgfgo/sgf info/game = \meta{number} (initially 1)}
	Como |/pgfgo/sgf/game|, para |\sgfinfo|.
\end{key}

\begin{key}{/pgfgo/sgf info/move = \meta{number} (initially 0)}
	La propiedad de esa jugada: la de su nodo y la de los nodos sin jugada que lo siguen. Con |0|, la de la raíz (y los nodos anteriores a la primera jugada). Por ejemplo, el tiempo que le queda a Blancas en la jugada 120 de una partida de KGS u OGS (|WL|, en segundos): |\sgfinfo[move = 120]{partida}{WL}|.
\end{key}

\begin{key}{/pgfgo/sgf info/variation = \meta{números} (initially la línea principal)}
	Con |move|, la línea de la jugada, como |/pgfgo/sgf/variation|.
\end{key}

\begin{key}{/pgfgo/sgf comment/game = \meta{number} (initially 1)}
	Como |/pgfgo/sgf/game|.
\end{key}

\begin{key}{/pgfgo/sgf comment/variation = \meta{números} (initially la línea principal)}
	Como |/pgfgo/sgf/variation|.

	\begin{codeexample}[]
		\sgfcomment[variation = 2]{problema}{1}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf comment/annotations = \meta{boolean} (default true, initially true)}
	Escribe el nombre y las anotaciones. Con |false|, solo el comentario.

	\begin{codeexample}[]
		Con: \sgfcomment{partida}{7}
		\quad Sin: \sgfcomment[annotations = false]{partida}{7}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf comment/chat = \meta{boolean} (default true, initially true)}
	Con |false|, quita del comentario el chat de los servidores: en OGS, todo lo que sigue a la línea «|-- chat --|» (lo de antes es el comentario del que revisa la partida); en KGS, las líneas «|nombre [rango]: ...|» y, si hay alguna, también las «|nombre: ...|» del mismo comentario (las de los que no tienen rango). Si no queda nada, la jugada no tiene comentario.
\end{key}

Los textos de las anotaciones están en el idioma del documento (pág.~\pageref{subsec:idiomas}), y pueden cambiarse para todo el documento con |\pgfgoset{sgf annotations = {...}}|, por ejemplo |bad move = Mala jugada|. Las anotaciones enfatizadas de |DM| y |UC| usan el mismo texto.

\begin{key}{/pgfgo/sgf annotations/tesuji = \meta{text} (initially Tesuji o su traducción)}
	Texto de |TE|.

	\begin{codeexample}[]
		\pgfgoset{sgf annotations = {tesuji = Buena jugada}}
		\sgfcomment{partida}{7}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf annotations/very good tesuji = \meta{text} (initially Very good tesuji o su traducción)}
	Texto de |TE[2]|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/bad move = \meta{text} (initially Bad move o su traducción)}
	Texto de |BM|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/very bad move = \meta{text} (initially Very bad move o su traducción)}
	Texto de |BM[2]|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/doubtful = \meta{text} (initially Doubtful move o su traducción)}
	Texto de |DO|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/interesting = \meta{text} (initially Interesting move o su traducción)}
	Texto de |IT|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/good for black = \meta{text} (initially Good for Black o su traducción)}
	Texto de |GB|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/very good for black = \meta{text} (initially Very good for Black o su traducción)}
	Texto de |GB[2]|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/good for white = \meta{text} (initially Good for White o su traducción)}
	Texto de |GW|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/very good for white = \meta{text} (initially Very good for White o su traducción)}
	Texto de |GW[2]|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/even = \meta{text} (initially Even position o su traducción)}
	Texto de |DM|.
\end{key}

\begin{key}{/pgfgo/sgf annotations/unclear = \meta{text} (initially Unclear position o su traducción)}
	Texto de |UC|.
\end{key}

\subsection{Animaciones}
\label{subsec:sgfanimacion}

\begin{command}{\sgfanimation\opt{\oarg{options}}\marg{file}}

	Recorre la partida con el paquete |animate|: dibuja un |goban| por jugada, y los botones de |animate| permiten avanzar, retroceder o reproducirla. El cuadro $k$ muestra la posición después de la jugada $k$; el cuadro 0, la posición antes de la primera jugada. Se usa fuera de |goban|. Los tableros tienen el tamaño de la partida (|SZ|), salvo que |goban| indique otro. Necesita |\usepackage{animate}| y dos compilaciones.
\end{command}

Las animaciones de |animate| funcionan en Acrobat Reader y en algunos otros visores (Foxit, PDF-XChange). En los demás se ve solo el primer cuadro. Estas opciones pueden fijarse para todo el documento con |\pgfgoset{sgf animation = {...}}|.

\begin{codeexample}[width=5cm]
	\sgfanimation[comments, goban = {captures}]{partida}
\end{codeexample}

\begin{key}{/pgfgo/sgf animation/from = \meta{number} (initially 0)}
	Primer cuadro.
\end{key}

\begin{key}{/pgfgo/sgf animation/to = \meta{number} o |last| (initially last)}
	Último cuadro. Con |last| (o |-1|), el de la última jugada.
\end{key}

\begin{key}{/pgfgo/sgf animation/fps = \meta{number} (initially 1)}
	Cuadros por segundo al reproducir.
\end{key}

\begin{key}{/pgfgo/sgf animation/goban = \meta{goban options}}
	Opciones de cada tablero, como en |\begin{goban}[...]|.
\end{key}

\begin{key}{/pgfgo/sgf animation/animate = \meta{animate options} (initially controls)}
	Opciones del entorno |animateinline| de |animate|, por ejemplo |controls, loop|.
\end{key}

\begin{key}{/pgfgo/sgf animation/numbers = \meta{boolean} (default true, initially false)}
	Numera todas las jugadas, como |\sgf|. Sin |numbers|, las jugadas no tienen número y se marca la última.

	\begin{codeexample}[width=5cm]
		\sgfanimation[from = 6, to = 8, numbers, goban = {captures}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf animation/last mark = \meta{mark options o false} (initially circle)}
	Marca de la última jugada, con el color de quien jugó. Con |false|, la última jugada no se marca. No se usa con |numbers|, ni cuando el archivo ya marca ese punto.

	\begin{codeexample}[width=5cm]
		\sgfanimation[from = 5, to = 7, last mark = triangle, fps = 2,
			animate = {controls, loop}, goban = {captures}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf animation/comments = \meta{comments options} (default true)}
	Muestra debajo del tablero el comentario (|C|) de la jugada. El del cuadro 0 es el de los nodos anteriores a la primera jugada. Se prende con |comments| o |comments = true| y se apaga con |false| (es el valor inicial); |height| y |font| no la prenden: |comments = {true, height = 6em}|.
\end{key}

\begin{stylekey}{/pgfgo/sgf animation/comments/true}
	Muestra los comentarios.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf animation/comments/false}
	No muestra los comentarios. Es el valor inicial.
\end{stylekey}

\begin{key}{/pgfgo/sgf animation/comments/height = \meta{dimension} (initially 4em)}
	Alto del espacio para los comentarios. Es el mismo en todos los cuadros, para que no cambien de tamaño.
\end{key}

\begin{key}{/pgfgo/sgf animation/comments/font = \meta{font commands} (initially \texttt{\string\small})}
	Fuente de los comentarios.

	\begin{codeexample}[width=5cm]
		\sgfanimation[from = 7, to = 9, goban = {captures},
			comments = {true, height = 2.5em, font = \itshape}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf animation/variation = \meta{números} (initially la línea principal)}
	Como |/pgfgo/sgf/variation|: la animación recorre la línea que lleva a esa variante.

	\begin{codeexample}[width=5cm]
		\sgfanimation[variation = 2, numbers]{variantes}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf animation/marks = \meta{boolean} (default true, initially true)}
	Como |/pgfgo/sgf/marks|: cada cuadro muestra las marcas de su jugada.
\end{key}

\begin{key}{/pgfgo/sgf animation/step = \meta{number} o \meta{list of numbers} (initially 100)}
	Como |/pgfgo/sgf/step|.
\end{key}

\begin{key}{/pgfgo/sgf animation/restart = \meta{restart options} (default true)}
	Como |/pgfgo/sgf/restart|.
\end{key}

\begin{key}{/pgfgo/sgf animation/restart/true}
	Como |/pgfgo/sgf/restart/true|.
\end{key}

\begin{key}{/pgfgo/sgf animation/restart/false}
	Como |/pgfgo/sgf/restart/false|.
\end{key}

\begin{key}{/pgfgo/sgf animation/restart/auto}
	Como |/pgfgo/sgf/restart/auto|. Es el valor inicial.
\end{key}

\begin{key}{/pgfgo/sgf animation/restart/from = \meta{number} (initially 1)}
	Como |/pgfgo/sgf/restart/from|.
\end{key}

\begin{key}{/pgfgo/sgf animation/annotations = \meta{boolean} (default true, initially true)}
	Con |comments|, escribe también el nombre y las anotaciones de cada jugada, como |\sgfcomment|.
\end{key}

\begin{key}{/pgfgo/sgf animation/chat = \meta{boolean} (default true, initially true)}
	Con |comments|, como |/pgfgo/sgf comment/chat|: con |false|, sin el chat de KGS y OGS.
\end{key}

\begin{key}{/pgfgo/sgf animation/game = \meta{number} (initially 1)}
	Como |/pgfgo/sgf/game|.
\end{key}

\begin{key}{/pgfgo/sgf animation/view = \meta{boolean} (default true, initially true)}
	Si el archivo tiene vista (|VW|), los tableros muestran solo esa parte, como |sgf view|. Todos los cuadros tienen el mismo tablero: si la vista cambia durante la partida, el tablero abarca las vistas de todos los cuadros (y si en alguno se ve todo el tablero, se ve todo).
\end{key}

\begin{key}{/pgfgo/sgf animation/partial = \meta{auto o false} (initially false)}
	Con |auto|, donde no hay vista del archivo, los tableros muestran solo la parte que usa la línea que se anima (la de |variation|), como en |\sgfdiagrams|. Todos los cuadros tienen el mismo tablero.
\end{key}

\begin{key}{/pgfgo/sgf animation/layers = \meta{boolean} (default true, initially true)}
	Arma la animación por capas: el tablero se dibuja una sola vez, y cada piedra también, en una lámina que |animate| muestra mientras la piedra sigue en el tablero (con la opción |timeline| de |animate|). Lo único que se dibuja en cada cuadro es lo que cambia: la marca de la última jugada, las marcas del archivo y el comentario. Así, el PDF crece con la cantidad de jugadas y no con su cuadrado: una partida de 200 jugadas ocupa menos de 1~MB, en lugar de más de 10~MB, y además compila más rápido. Con |layers = false|, cada cuadro es un |goban| entero. El |timeline| se guarda en un archivo auxiliar, |<jobname>-pgfgo-<n>.tln|.
\end{key}

\subsection{Diagramas como en los libros}
\label{subsec:sgfdiagramas}

\begin{command}{\sgfdiagrams\opt{\oarg{options}}\marg{file}}
	Dibuja la partida como en los libros: un diagrama cada |step| jugadas (1--50, 51--100, etc.). Cada diagrama parte de la posición real, con las jugadas anteriores sin número y sus capturas; las piedras capturadas dentro del diagrama no se quitan (se quitan en el siguiente). Debajo de cada uno van su epígrafe y sus notas «N en M» (pág.~\pageref{subsec:notas}). Se usa fuera de |goban|. Las opciones pueden fijarse para todo el documento con |\pgfgoset{sgf diagrams = {...}}|.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 5, title = Diagrama]{partida}
	\end{codeexample}
\end{command}

\sgfdiagrams[step = 5, title = Diagrama]{partida}

\begin{key}{/pgfgo/sgf diagrams/step = \meta{number} o \meta{list of numbers} (initially 50)}
	Cantidad de jugadas de cada diagrama. Con una lista, el primer diagrama tiene tantas jugadas como dice el primer número, el segundo como dice el segundo, y así; el último número se repite: con |step = {5, 10, 3}|, los diagramas tienen 5, 10, 3, 3, 3... jugadas.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/from = \meta{number} (initially 1)}
	Primera jugada. Los diagramas son los mismos que sin |from|, con el mismo número: solo se dibujan los que tienen jugadas desde |from|, y el primero empieza en |from|. Con |step = 50| y |from = 120|, el primero es «Diagrama 3 (120--150)».
\end{key}

\begin{key}{/pgfgo/sgf diagrams/to = \meta{number} o |last| (initially last)}
	Última jugada. Con |last| (o |-1|), la última de la partida.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/numbers = \meta{boolean} (default true, initially true)}
	Con |false|, las jugadas de cada diagrama se dibujan sin número (las notas «N at M» siguen usando los números de la partida).
\end{key}

\begin{key}{/pgfgo/sgf diagrams/last mark = \meta{mark options} o |false| (initially false)}
	Como |/pgfgo/sgf/last mark|, en cada diagrama.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 5, to = 10, numbers = false, last mark = circle]{partida}
	\end{codeexample}

	\sgfdiagrams[step = 5, to = 10, numbers = false, last mark = circle]{partida}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/restart = \meta{restart options} (default true)}
	Como |/pgfgo/sgf/restart|, con un diagrama por tramo: desde el segundo diagrama, cada uno numera desde 1 (o desde |restart/from|), como algunos libros. El primer diagrama conserva los números de la partida.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = {2, 3}, restart = {from = 0}]{partida}
	\end{codeexample}
\end{key}

\sgfdiagrams[step = {2, 3}, to = 8, restart = {from = 0}, title = Diagrama]{partida}

\begin{key}{/pgfgo/sgf diagrams/restart/true}
	Reinicia la numeración en cada diagrama.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/restart/false}
	No la reinicia: las jugadas llevan los números de la partida.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/restart/auto}
	Como |/pgfgo/sgf/restart/auto|: con |PM[2]|, cada 100 jugadas, sin importar los diagramas. Es el valor inicial.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/restart/from = \meta{number} (initially 1)}
	El número de la primera jugada de cada diagrama, desde el segundo. También prende |restart|. Con |step = 99| y |restart = {from = 0}|, el primer diagrama va de 1 a 99, y en el segundo la jugada 100 se muestra como 0, la 101 como 1, y así.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/marks = \meta{boolean} (default true, initially true)}
	Como |/pgfgo/sgf/marks|: cada diagrama muestra las marcas, flechas y líneas de su última jugada. Con |marks = false| no se dibujan.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/notes = \meta{boolean} (default true, initially true)}
	Escribe debajo de cada diagrama sus notas: «N en M» y los pases, «N: pasa».
\end{key}

\begin{key}{/pgfgo/sgf diagrams/title = \meta{text} (initially Diagram o su traducción)}
	Palabra del epígrafe: «Diagrama 2 (51--100)».
\end{key}

\begin{key}{/pgfgo/sgf diagrams/caption = \meta{caption options}}
	Opciones del epígrafe y de las notas.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/caption/font = \meta{font commands} (initially \texttt{\string\small})}
	Fuente del epígrafe y de las notas: |caption = {font = \itshape}|.

	\begin{codeexample}[code only]
		\sgfdiagrams[from = 6, title = Figura, caption = {font = \itshape},
			goban = {label = {at = {north, west}}}]{partida}
	\end{codeexample}

	\sgfdiagrams[from = 6, title = Figura, caption = {font = \itshape},
		goban = {label = {at = {north, west}}}]{partida}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/caption/min width = \meta{dimension} (initially 8em)}
	Con |layout = {columns = auto}|, un epígrafe más ancho que su tablero se corta en líneas al ancho del tablero. Si el tablero es más angosto que esta medida (en la fuente del epígrafe), se corta a esta medida; nunca se corta más angosto que su palabra más larga, ni se ensancha más allá de su ancho en una línea. En la grilla, el epígrafe se corta al ancho de la celda.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/goban = \meta{goban options}}
	Opciones de cada tablero. Por defecto, los tableros tienen el tamaño de la partida y usan |captures| y |notes|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/layout = \meta{layout options}}
	Cómo se disponen los diagramas: opciones de |/pgfgo/layout| (pág.~\pageref{subsec:disposicion}) solo para |\sgfdiagrams|. Por ejemplo, |layout = {columns = 3}|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/variation = \meta{números} (initially la línea principal)}
	Como |/pgfgo/sgf/variation|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/variations = \meta{variations options} (default commented)}
	Dibuja también las variantes de la partida, cada una en su diagrama, después del diagrama donde nace su primera jugada: «Diagrama 3a», «Diagrama 3b»... Las jugadas de cada variante se numeran desde 1, y el epígrafe dice qué jugada reemplaza la primera (|variation title|). Las anteriores se ven sin número, como estaban. Las opciones dicen cuáles se dibujan, y se suman: |variations = {commented, 5}|. Además de las de abajo, cualquier otra cosa es el camino de una variante, como en |variation| (|2|, |2.3.1|, o sus jugadas entre llaves y separadas por espacios: |{R16 P17 Q15}|): esa se dibuja siempre, a cualquier profundidad. Los |1| del final no cambian la línea: |2.3.1| es la misma que |2.3|. Si el archivo no la tiene, se produce un aviso. Sus comentarios y notas se escriben como los de los demás diagramas. Con |variation|, las variantes son las que se apartan de esa línea (también la principal).

	\begin{codeexample}[]
		\sgfdiagrams[step = 2, to = 3, variations = all, goban = {scale = 0.5}]{variantes}
	\end{codeexample}
\end{key}

\begin{stylekey}{/pgfgo/sgf diagrams/variations/none}
	Ninguna. Es el valor inicial, y borra lo anterior.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf diagrams/variations/commented}
	Las que tienen algún comentario (|C|) en sus jugadas propias. Es lo que hace |variations| a secas.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf diagrams/variations/all}
	Todas.
\end{stylekey}

\begin{key}{/pgfgo/sgf diagrams/variations/depth = \meta{number} (initially 1)}
	Hasta qué profundidad dibujan |commented| y |all|: |1|, solo las que salen de la línea que se dibuja (la principal, o la de |variation|); |2|, también las variantes de esas, y así. Las de una variante van después de ella, y su epígrafe dice qué jugada de ella reemplazan.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/variations/from = \meta{number} (initially 1)}
	Desde qué jugada dibujan |commented| y |all|: solo las variantes que nacen en esa jugada o después.

	\begin{codeexample}[code only]
		\sgfdiagrams[variation = {Q16, R14}, variations = {commented, from = 3}]{josekis}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/variation title = \meta{text} (initially «variation at» y el número, o su traducción)}
	Lo que va entre paréntesis en el epígrafe de una variante: «Diagrama 3a (variante en 26)». |\pgfgovariationmove| es el número de la jugada que reemplaza.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments = \meta{comments options} (default true)}
	Escribe debajo de cada diagrama los comentarios de sus jugadas, como |\sgfcomment|, cada uno con el número de la jugada. Se prende con |comments| o |comments = true| y se apaga con |false| (es el valor inicial); las demás opciones no la prenden: |comments = {true, align = justify}|. Así, |\pgfgoset{sgf diagrams = {comments = {font = \itshape}}}| fija el estilo de todo el documento sin prender los comentarios.
\end{key}

\begin{stylekey}{/pgfgo/sgf diagrams/comments/true}
	Escribe los comentarios.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf diagrams/comments/false}
	No escribe los comentarios. Es el valor inicial.
\end{stylekey}

\begin{key}{/pgfgo/sgf diagrams/comments/font = \meta{font commands} (initially la del epígrafe)}
	Fuente de los comentarios. Sin esta opción, la de |caption/font|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/align = \meta{left, right, center o justify} (initially left)}
	Alineación de los comentarios en el ancho del diagrama. Con |justify|, en un diagrama angosto quedan espacios grandes entre las palabras.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/root = \meta{boolean} (default true, initially false)}
	Escribe también el comentario de la raíz (el de los nodos anteriores a la primera jugada), sin número, antes de los del diagrama que empieza en la jugada 1.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 10, comments = {true, root, font = \itshape}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/number = \meta{text} (initially \texttt{\string\textbf\{\#1\}:\string~})}
	Lo que va delante de cada comentario; |#1| es el número de la jugada, el que se ve en el tablero (con |restart|, el reiniciado). Por ejemplo, |number = {Jugada~#1.~}|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/separator = \meta{text} (initially un párrafo por comentario)}
	Lo que va entre los comentarios. Con el valor inicial, cada uno va en su párrafo; con |separator = {\quad}|, van seguidos.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 10, comments = {true, number = {\textbf{#1}.~}, separator = {~}}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/position = \meta{below, right, left o after} (initially below)}
	Dónde van los comentarios: debajo del epígrafe, al costado del diagrama, como en los libros de partidas comentadas, o con |after| todos juntos después de los diagramas, a lo ancho de la página, cada grupo con el epígrafe de su diagrama como encabezado (se pueden cortar entre páginas). Al costado empiezan a la altura del borde de arriba del tablero; el epígrafe, las notas y el resultado siguen debajo del tablero.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 10, comments = {true, position = right}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/width = \meta{dimension} o auto (initially auto)}
	Ancho de los comentarios al costado. Con |auto|, lo que queda: fuera de la grilla, el resto de la línea (cada diagrama va en su línea); en la grilla (|layout = {columns = ...}|), el resto de la celda, y con |fit| el tablero ocupa la mitad de la celda y los comentarios la otra mitad. Con una dimensión, en la grilla el tablero ocupa lo que queda de la celda.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/sep = \meta{dimension} (initially 1em)}
	Espacio entre el diagrama y los comentarios al costado.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 10, layout = {columns = 2, fit},
			comments = {true, position = left, sep = 2em}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/comments/height = \meta{dimension} o none (initially none)}
	Altura máxima de los comentarios de un diagrama, debajo o al costado. Lo que no entra va después de los diagramas, como con |after|, con el epígrafe del diagrama como encabezado.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 30, layout = {columns = 2},
			comments = {true, height = 6\baselineskip}]{partida}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/annotations = \meta{boolean} (default true, initially true)}
	Con |comments|, escribe también el nombre y las anotaciones de cada jugada.

	\begin{codeexample}[code only]
		\sgfdiagrams[step = 10, comments]{partida}
		\sgfdiagrams[step = 10, comments, annotations = false]{partida}
	\end{codeexample}

	\sgfdiagrams[step = 10, comments]{partida}
	\sgfdiagrams[step = 10, comments, annotations = false]{partida}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/chat = \meta{boolean} (default true, initially true)}
	Con |comments|, como |/pgfgo/sgf comment/chat|: con |false|, sin el chat de KGS y OGS. Una jugada a la que solo le quedaba chat no aparece.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/figures = \meta{boolean} (default true, initially true)}
	Si el archivo marca figuras (|FG|), cada figura es un diagrama, con su nombre como epígrafe, en lugar de uno cada |step| jugadas.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/view = \meta{boolean} (default true, initially true)}
	Si el archivo tiene vista (|VW|), cada diagrama muestra solo esa parte, como |sgf view|. Si la vista cambia durante la partida, cada diagrama abarca las vistas de sus jugadas.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/partial = \meta{auto o false} (initially false)}
	Con |auto|, donde no hay vista del archivo, cada diagrama muestra solo la parte del tablero que usan las líneas que se dibujan (la de |variation| y las de |variations|), como |/pgfgo/goban/partial = auto|. Es la misma en todos los diagramas, también en los de las variantes.

	\begin{codeexample}[code only]
		\sgfdiagrams[partial = auto, variations]{josekis}
		\sgfdiagrams[partial = auto, variation = {Q16, R14},
			variations = {commented, from = 3}, marks = false]{josekis}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf diagrams/game = \meta{number} (initially 1)}
	Como |/pgfgo/sgf/game|.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/result = \meta{result options} (default true)}
	Escribe debajo del último diagrama, si llega al final de la partida, el resultado (|RE|) y, si el archivo marca el territorio (|TB|, |TW|), el puntaje de cada jugador: «Resultado: Ganan Negras por 0.5 puntos (Negras 6, Blancas 5.5)». El puntaje se cuenta como con |\pgfgoscore| (pág.~\pageref{subsec:territorio}), con el komi del archivo (|KM|). Se apaga con |result = false|; |title| y |format| no lo prenden.
\end{key}

\begin{stylekey}{/pgfgo/sgf diagrams/result/true}
	Escribe el resultado. Es el valor inicial.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf diagrams/result/false}
	No escribe el resultado.
\end{stylekey}

\begin{key}{/pgfgo/sgf diagrams/result/title = \meta{text} (initially Result o su traducción)}
	Palabra que precede al resultado.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/result/format = \meta{text o raw} (initially text)}
	Cómo se escribe el resultado. |text|: en palabras, en el idioma del documento (pág.~\pageref{subsec:idiomas}), «Ganan Negras por abandono»; |raw|: como está en el archivo, «B+R». Con |text| se entienden |0| o |Draw| (empate), |Void| (sin resultado), |?| (desconocido) y |B+| o |W+| seguido de nada, de la diferencia, de |R| o |Resign|, de |T| o |Time|, o de |F| o |Forfeit|. Otro resultado se escribe como está.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/black name = \meta{text} (initially Black o su traducción)}
	Nombre de las negras en el puntaje y en el resultado.
\end{key}

\begin{key}{/pgfgo/sgf diagrams/white name = \meta{text} (initially White o su traducción)}
	Nombre de las blancas en el puntaje y en el resultado.

	\begin{codeexample}[code only]
		\sgfdiagrams[result = {title = Final, format = raw}]{variantes}
		\sgfdiagrams[black name = Ana, white name = Bruno]{variantes}
	\end{codeexample}

	\sgfdiagrams[result = {title = Final, format = raw}]{variantes}
	\sgfdiagrams[black name = Ana, white name = Bruno]{variantes}
\end{key}

\begin{command}{\pgfgowinner}
	En los textos del resultado (|\pgfgodefinelanguage|), el nombre del ganador: |black name| o |white name|.
\end{command}

\begin{command}{\pgfgovariationmove}
	En el epígrafe de una variante (|variation title|) y en su texto en cada idioma (|variation at|), el número de la jugada que reemplaza.
\end{command}

\begin{command}{\pgfgopoints}
	En los textos del resultado, la diferencia de puntos, como está en el archivo.
\end{command}

\subsection{Problemas}
\label{subsec:sgfproblemas}

\begin{command}{\sgfproblem\opt{\oarg{options}}\marg{file}}
	Dibuja un problema (tsumego). Primero, el enunciado: la posición inicial con sus marcas, quién juega (|PL|, o el color de la primera jugada) y el comentario del principio. Después, un diagrama por cada línea del árbol del archivo (cada variante de la solución, correcta o no), numerada desde 1, con sus notas «N en M» y los comentarios y anotaciones de sus jugadas, que suelen decir si la variante es correcta. Los diagramas se dibujan como los de |\sgfdiagrams|. Si el archivo no tiene vista (|VW|), se muestra solo la parte del tablero que usa el problema. Se usa fuera de |goban|. Las opciones pueden fijarse para todo el documento con |\pgfgoset{sgf problem = {...}}|. En los ejemplos, |problema| es |problema.sgf|, un problema de vida y muerte: la jugada correcta y dos equivocadas, con sus comentarios.

	\begin{codeexample}[code only]
		\sgfproblem[title = Problema 1, variation title = Variante,
			black to play = Juegan negras]{problema}
	\end{codeexample}
\end{command}

\sgfproblem[title = Problema 1, variation title = Variante,
	black to play = Juegan negras]{problema}

\begin{key}{/pgfgo/sgf problem/statement = \meta{true, false o alone} (default true, initially true)}
	Dibuja el enunciado. Con |alone|, el enunciado va solo en su fila, centrado, y las variantes debajo.
\end{key}

\begin{key}{/pgfgo/sgf problem/solutions = \meta{boolean} (default true, initially true)}
	Dibuja las variantes. Con |solutions = false|, queda solo el enunciado; las soluciones van en otro lugar, con |statement = false|.

	\begin{codeexample}[code only]
		\sgfproblem[solutions = false, title = Problema 2]{problema}
	\end{codeexample}

	\sgfproblem[solutions = false, title = Problema 2]{problema}
\end{key}

\begin{key}{/pgfgo/sgf problem/title = \meta{text} (initially vacío)}
	Comienzo del epígrafe del enunciado: «Problema 1: Juegan negras». Con varias partidas (|game = 1:20|), va seguido del número de cada una; vacío, es |Problem| o su traducción: «Problema 7: Juegan negras». Las soluciones dicen también de qué problema son: «Problema 7: Variante 1».
\end{key}

\begin{key}{/pgfgo/sgf problem/to play = \meta{auto, black, white o none} (initially auto)}
	Quién juega, para el epígrafe del enunciado. Con |auto|, lo que dice |PL| o, si no está, el color de la primera jugada; si no hay ninguna de las dos, no se dice. Muchas colecciones no lo dicen en el archivo: |to play = black|. Con |none|, el epígrafe no lo dice.
\end{key}

\begin{key}{/pgfgo/sgf problem/verdict = \meta{boolean} (default true, initially false)}
	El epígrafe de cada solución dice si es correcta o incorrecta («Variante 2 (incorrecta)»), con los textos |correct| y |wrong| del idioma. Se decide con las anotaciones de la línea: el último |GB| o |GW| (la posición es buena para negras o para blancas), según quién juega; si no hay, la primera jugada con |TE| o |BM| (las jugadas impares son de quien juega: un |BM| suyo es un error, uno del rival no); si no, la palabra |RIGHT| en un comentario, como en los archivos de goproblems.com. Si no hay nada de eso, no dice nada.

	\begin{codeexample}[]
		\sgfproblem[verdict, statement = false, comments = false,
			goban = {scale = 0.5}]{problema}
	\end{codeexample}
\end{key}

\begin{key}{/pgfgo/sgf problem/variation title = \meta{text} (initially Variation o su traducción)}
	Palabra del epígrafe de cada variante: «Variante 2».
\end{key}

\begin{key}{/pgfgo/sgf problem/black to play = \meta{text} (initially Black to play o su traducción)}
	Texto del enunciado cuando juegan las negras.
\end{key}

\begin{key}{/pgfgo/sgf problem/white to play = \meta{text} (initially White to play o su traducción)}
	Texto del enunciado cuando juegan las blancas.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments = \meta{comments options} (default true)}
	Escribe el comentario del principio debajo del enunciado y los de cada variante debajo de su diagrama, como |/pgfgo/sgf diagrams/comments|. Acá están prendidos al empezar; se apagan con |comments = false|. Las opciones son |true|, |false|, |font|, |align|, |number|, |separator|, |position|, |width|, |sep| y |height|, como en |\sgfdiagrams|; |font| y |align| valen también para el comentario del enunciado.
\end{key}

\begin{stylekey}{/pgfgo/sgf problem/comments/true}
	Escribe los comentarios. Es el valor inicial.
\end{stylekey}

\begin{stylekey}{/pgfgo/sgf problem/comments/false}
	No escribe los comentarios.
\end{stylekey}

\begin{key}{/pgfgo/sgf problem/comments/font = \meta{font commands} (initially la del epígrafe)}
	Como |/pgfgo/sgf diagrams/comments/font|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/align = \meta{left, right, center o justify} (initially left)}
	Como |/pgfgo/sgf diagrams/comments/align|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/number = \meta{text} (initially \texttt{\string\textbf\{\#1\}:\string~})}
	Como |/pgfgo/sgf diagrams/comments/number|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/separator = \meta{text} (initially un párrafo por comentario)}
	Como |/pgfgo/sgf diagrams/comments/separator|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/position = \meta{below, right, left o after} (initially below)}
	Como |/pgfgo/sgf diagrams/comments/position|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/width = \meta{dimension} o auto (initially auto)}
	Como |/pgfgo/sgf diagrams/comments/width|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/sep = \meta{dimension} (initially 1em)}
	Como |/pgfgo/sgf diagrams/comments/sep|.
\end{key}

\begin{key}{/pgfgo/sgf problem/comments/height = \meta{dimension} o none (initially none)}
	Como |/pgfgo/sgf diagrams/comments/height|.
\end{key}

\begin{key}{/pgfgo/sgf problem/annotations = \meta{boolean} (default true, initially true)}
	Con |comments|, escribe también el nombre y las anotaciones de cada jugada (|TE|, |BM|, etc.).
\end{key}

\begin{key}{/pgfgo/sgf problem/chat = \meta{boolean} (default true, initially true)}
	Con |comments|, como |/pgfgo/sgf comment/chat|: con |false|, sin el chat de KGS y OGS.
\end{key}

\begin{key}{/pgfgo/sgf problem/notes = \meta{boolean} (default true, initially true)}
	Escribe las notas «N en M» de cada variante.
\end{key}

\begin{key}{/pgfgo/sgf problem/caption = \meta{caption options}}
	Opciones de los epígrafes, las notas y los comentarios.
\end{key}

\begin{key}{/pgfgo/sgf problem/caption/font = \meta{font commands} (initially \texttt{\string\small})}
	Fuente de los epígrafes, las notas y los comentarios.

	\begin{codeexample}[code only]
		\sgfproblem[statement = alone, comments = false, notes = false,
			caption = {font = \itshape}]{problema}
	\end{codeexample}

	\sgfproblem[statement = alone, comments = false, notes = false,
		caption = {font = \itshape}]{problema}
\end{key}

\begin{key}{/pgfgo/sgf problem/caption/min width = \meta{dimension} (initially 8em)}
	Como en |\sgfdiagrams|: con |columns = auto|, el ancho mínimo al que se corta un epígrafe más ancho que su tablero («Problema 3: Juegan Blancas» debajo de una esquina chica).
\end{key}

\begin{key}{/pgfgo/sgf problem/goban = \meta{goban options}}
	Opciones de cada tablero, como |/pgfgo/sgf diagrams/goban|.
\end{key}

\begin{key}{/pgfgo/sgf problem/layout = \meta{layout options}}
	Cómo se disponen el enunciado y las variantes: opciones de |/pgfgo/layout| (pág.~\pageref{subsec:disposicion}) solo para |\sgfproblem|.
\end{key}

\begin{key}{/pgfgo/sgf problem/view = \meta{boolean} (default true, initially true)}
	Si el archivo tiene vista (|VW|) al principio, todos los diagramas muestran esa parte.
\end{key}

\begin{key}{/pgfgo/sgf problem/partial = \meta{auto o false} (initially auto)}
	Con |auto|, si no se usa la vista del archivo, muestra solo la parte del tablero donde hay piedras, jugadas, marcas, flechas o líneas en alguna línea del problema, como |/pgfgo/goban/partial = auto|. Es la misma en todos los diagramas. Las líneas que se agregan alrededor se cambian con |goban = {partial margin = ...}|. Con |false|, se ve todo el tablero.

	\begin{codeexample}[code only]
		\sgfproblem[solutions = false, goban = {partial margin = 3}]{problema}
	\end{codeexample}

	\sgfproblem[solutions = false, goban = {partial margin = 3}]{problema}
\end{key}

\begin{key}{/pgfgo/sgf problem/game = \meta{numbers} (initially 1)}
	Como |/pgfgo/sgf/game|: en una colección, el problema que se dibuja. También varios, con números y rangos como los de las coordenadas: |game = 1:20| o |game = {1:4, 9}|. Entonces van primero todos los enunciados, numerados (|title|), y después las soluciones de los que las tienen. Así se arma una hoja de problemas:

	\begin{codeexample}[code only]
		\sgfproblem[game = 1:24, to play = black, comments = false,
			layout = {columns = 6, fit}]{coleccion.sgf}
	\end{codeexample}
\end{key}
