\section{Configuración}
\label{sec:configuracion}

|\pgfgoset{...}| fija opciones para todo lo que sigue: el aspecto del tablero, de las piedras, de las jugadas, etc. Es equivalente a |\keys_set:nn{pgfgo}{...}|. También sirve como una puerta al formato directo.\footnote{Úsese con discreción\dots no como los pies de página.}

\begin{command}{\pgfgoset\marg{options}}
\end{command}

\begin{key}{/pgfgo/goban = \meta{goban options}}
	Opciones del tablero (pág.~\pageref{sec:tablero}): el tamaño, la cuadrícula, el fondo, las coordenadas, etc.
\end{key}

\begin{key}{/pgfgo/stone = \meta{stone options}}
	Opciones de las piedras de los tres jugadores (pág.~\pageref{sec:piedras}), igual que |players = {all = {stone = {...}}}|.
\end{key}

\begin{key}{/pgfgo/move = \meta{move options}}
	Opciones de las jugadas, como el formato de sus números, igual que |players = {all = {move = {...}}}|, salvo |numbers| (pág.~\pageref{subsec:movimientos}), que vale para todas las jugadas.
\end{key}

\begin{key}{/pgfgo/mark = \meta{mark options}}
	Opciones de las marcas: la forma por defecto de |\marks| (|\pgfgoset{mark = {triangle}}|) y el estilo de las marcas de los tres jugadores (|line|, |fill|, |label|, |sequence| y |scale|): |mark = {scale = 2}| es lo mismo que |players = {all = {mark = {scale = 2}}}|.
\end{key}

\begin{key}{/pgfgo/sgf animation = \meta{sgf animation options}}
	Opciones de todas las |\sgfanimation| del documento (pág.~\pageref{subsec:sgfanimacion}).
\end{key}

\begin{key}{/pgfgo/sgf diagrams = \meta{sgf diagrams options}}
	Opciones de todas las |\sgfdiagrams| del documento (pág.~\pageref{subsec:sgfdiagramas}).
\end{key}

\begin{key}{/pgfgo/sgf problem = \meta{sgf problem options}}
	Opciones de todos los |\sgfproblem| del documento (pág.~\pageref{subsec:sgfproblemas}).
\end{key}

\begin{key}{/pgfgo/sgf comment = \meta{sgf comment options}}
	Opciones de todos los |\sgfcomment| del documento (pág.~\pageref{subsec:sgfdatos}).
\end{key}

\begin{key}{/pgfgo/sgf info = \meta{sgf info options}}
	Opciones de todos los |\sgfinfo| del documento (pág.~\pageref{subsec:sgfdatos}).
\end{key}

\begin{key}{/pgfgo/sgf annotations = \meta{texts}}
	Los textos de las anotaciones de los archivos SGF (pág.~\pageref{subsec:sgfdatos}).
\end{key}

\begin{key}{/pgfgo/arrow = \meta{arrow options}}
	Opciones de todas las flechas del documento (pág.~\pageref{subsec:flechas}).
\end{key}

\begin{key}{/pgfgo/line = \meta{line options}}
	Opciones de todas las líneas del documento (pág.~\pageref{subsec:flechas}).
\end{key}

\begin{key}{/pgfgo/territory = \meta{territory options}}
	Opciones de todos los |\territory| del documento, como |draw = fill| (pág.~\pageref{subsec:territorio}).
\end{key}

\begin{key}{/pgfgo/score = \meta{score options}}
	Opciones de todos los |\pgfgoscore| del documento, como |komi = 6.5| (pág.~\pageref{subsec:territorio}).
\end{key}

\begin{key}{/pgfgo/players = \meta{players options}}
	Opciones de cada jugador: el negro, el blanco y el neutral (pág.~\pageref{sec:jugadores}).
\end{key}

\begin{codeexample}[]
	\pgfgoset{
		goban = {
			background = {
				fill = {color = pgfgo},
				line = false},
			grid = {line = {color = white}}},
		players = {
			black = {
				stone = {
					line = {color = magenta},
					fill = {color = blue!50!black}}},
			white = {
				stone = {line = {color = blue}},
				mark = {line = {color = orange}}
			}				
		}
	}
	
	\begin{goban}[3]
		\stone[black] {A1}
		\stone[white, mark = {triangle}] {A2}
	\end{goban}
	
	\begin{goban}[4]
		\stone[black] {A2}
		\stones[white, mark = {circle}] {B2,A3}
	\end{goban}
\end{codeexample}

Los |goban| que siguen heredan estas opciones, y cada uno puede cambiarlas. Las opciones de un |goban| aceptan, además de las del tablero, las de |\pgfgoset|, que valen solo para ese tablero: |\begin{goban}[9, stone = {radius = 4pt}, mark = {line = {color = red}}]|.

\label{subsec:prender}Muchas \emph{keys} prenden o apagan algo: la cuadrícula, el fondo, las coordenadas, el borde y el relleno de las piedras, sus sombras y sus brillos, etc. Todas siguen la misma regla:
\begin{itemize}
	\item la \emph{key} sola, o con |true|, lo prende: |shine|, |shine = true|;
	\item con |false| lo apaga: |shine = false|;
	\item dar opciones no lo prende: |shine = {angle = 45}| cambia el ángulo, pero el brillo sigue como estaba. Para prenderlo y cambiarlo a la vez, |shine = {true, angle = 45}|.
\end{itemize}
Las excepciones son las \emph{keys} cuyo valor es el contenido mismo, como |partial| (la parte del tablero) y |sequence| (desde dónde se numera).
\subsection{El kernel de cálculo}
\label{subsec:kernel}

\pgfgoname\ separa el cálculo del dibujo. El cálculo (leer las coordenadas, saber qué parte del tablero es visible, numerar las jugadas y llevar el turno, recordar los tableros, etc.) lo hace un \emph{kernel}. El dibujo, las \emph{keys} y los perfiles son siempre los mismos. Hay dos kernels:
\begin{itemize}
	\item |lua|: escrito en Lua. Necesita Lua\LaTeX, y es el que se usa por defecto con Lua\LaTeX.
	\item |expl3|: escrito en L3. Funciona con cualquier motor, y es el que se usa por defecto con los demás.
\end{itemize}

Ambos producen exactamente los mismos diagramas\footnote{O eso dicen los tests.}. El kernel en Lua, además, sabe hacer tres cosas que el otro no: las capturas (pág.~\pageref{subsec:capturas}), el cálculo del territorio con |\territory{auto}| (pág.~\pageref{subsec:territorio}) y la lectura de partidas en SGF (pág.~\pageref{subsec:sgf}). Este manual está compilado con el kernel en Lua.

\begin{key}{/pgfgo/package/kernel = \meta{expl3 o lua} (initially lua con Lua\LaTeX, expl3 con los demás motores)}
	Opción del paquete que elige el kernel. Solo hace falta para usar |expl3| con Lua\LaTeX. Solo puede darse al cargar \pgfgoname; no se puede cambiar con |\pgfgoset|. Si se pide |kernel = lua| con pdf\LaTeX, el paquete avisa y usa |expl3|. Con |expl3|, |captures|, |\territory{auto}| y |\sgf| producen un error.

	\begin{codeexample}[code only]
		\usepackage[kernel = expl3]{pgf-go}
	\end{codeexample}
\end{key}

\subsection{Idiomas}
\label{subsec:idiomas}

Algunos textos los escribe el propio paquete: los epígrafes de |\sgfdiagrams| y |\sgfproblem|, el resultado de la partida, las anotaciones de los comentarios (|/pgfgo/sgf annotations|) la palabra de las notas «N en M» y la «y» entre varias vistas. Están traducidos al inglés (|en|), español (|es|), francés (|fr|), alemán (|de|), portugués (|pt|), italiano (|it|), esperanto (|eo|), japonés (|ja|), chino (|zh|) y coreano (|ko|). Para el japonés, el chino y el coreano hace falta una fuente con esos caracteres.

Por defecto, los textos están en el idioma que fijan babel o polyglossia, y lo siguen si cambia dentro del documento (|\selectlanguage|, |otherlanguage|). Sin babel ni polyglossia, o en un idioma sin traducción, están en inglés. Cada texto puede cambiarse con su \emph{key} (por ejemplo, |/pgfgo/sgf diagrams/title|); lo que se fija así vale en cualquier idioma.

\begin{key}{/pgfgo/lang = \meta{idioma} (initially auto)}
	Idioma de los textos: |auto| (el de babel o polyglossia), el código de un idioma (|fr|) o el nombre que le dan babel o polyglossia (|french|). Si el idioma no se conoce, el paquete avisa y usa el inglés.

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

\begin{key}{/pgfgo/package/lang = \meta{idioma} (initially auto)}
	Lo mismo, como opción del paquete: |\usepackage[lang = fr]{pgf-go}|.
\end{key}

\begin{command}{\pgfgotext\marg{texto}}
	Escribe uno de los textos en el idioma actual. Los textos, con su valor en inglés y en español, son:

	\begin{center}
		\small
		\begin{tabular}{lll}
			|tesuji| & Tesuji & Tesuji \\
			|very good tesuji| & Very good tesuji & Muy buen tesuji \\
			|bad move| & Bad move & Mala jugada \\
			|very bad move| & Very bad move & Muy mala jugada \\
			|doubtful| & Doubtful move & Jugada dudosa \\
			|interesting| & Interesting move & Jugada interesante \\
			|good for black| & Good for Black & Bueno para Negro \\
			|very good for black| & Very good for Black & Muy bueno para Negro \\
			|good for white| & Good for White & Bueno para Blanco \\
			|very good for white| & Very good for White & Muy bueno para Blanco \\
			|even| & Even position & Posición pareja \\
			|unclear| & Unclear position & Posición incierta \\
			|diagram| & Diagram & Diagrama \\
			|variation| & Variation & Variante \\
			|black to play| & Black to play & Juega Negro \\
			|white to play| & White to play & Juega Blanco \\
			|at| & at & en \\
			|and| & and & y \\
			|result| & Result & Resultado \\
			|black| & Black & Negro \\
			|white| & White & Blanco \\
			|win| & \meta{ganador} wins & Gana \meta{ganador} \\
			|win by points| & \meta{ganador} wins by \meta{puntos} points & Gana \meta{ganador} por \meta{puntos} puntos \\
			|win by resignation| & \meta{ganador} wins by resignation & Gana \meta{ganador} por abandono \\
			|win on time| & \meta{ganador} wins on time & Gana \meta{ganador} por tiempo \\
			|win by forfeit| & \meta{ganador} wins by forfeit & Gana \meta{ganador} por incomparecencia \\
			|draw| & Draw (jigo) & Empate (jigo) \\
			|void| & No result & Sin resultado \\
			|unknown result| & Unknown result & Resultado desconocido \\
		\end{tabular}
	\end{center}

	\begin{codeexample}[]
		\pgfgotext{black to play}. \pgfgotext{tesuji}.

		\pgfgoset{lang = fr}
		\pgfgotext{black to play}.
	\end{codeexample}
\end{command}

\begin{command}{\pgfgodefinelanguage\marg{idioma}\marg{textos}}
	Agrega un idioma, o cambia textos de uno que ya existe. Los textos que falten se toman del inglés. En los textos del resultado, |\pgfgowinner| es el nombre del ganador y |\pgfgopoints| la diferencia (pág.~\pageref{subsec:sgfdiagramas}).

	\begin{codeexample}[code only]
		\pgfgodefinelanguage{es}{black = Negro, white = Blanco,
			win by points = Gana \pgfgowinner{} por \pgfgopoints{} puntos}
	\end{codeexample}
\end{command}

\begin{command}{\pgfgolanguagealias\marg{nombre}\marg{idioma}}
	Otro nombre para un idioma, por ejemplo el que le dan babel o polyglossia, si \pgfgoname\ no lo conoce.

	\begin{codeexample}[code only]
		\pgfgolanguagealias{castellano}{es}
	\end{codeexample}
\end{command}

\subsection{Un tablero por página}
\label{subsec:paginas}

Con la opción |pages|, el documento sale con un |goban| por página, cada una del tamaño de su tablero, y nada más: el texto, los epígrafes y las notas no salen. Las vistas en el texto (|\pgfgoview|) y las animaciones tampoco. Así, los tableros de un documento se pueden usar en otro programa (un procesador de textos, un libro electrónico, una página web) sin copiar su código.

Al terminar, el paquete escribe además |<documento>-pages.lua|, que pasa cada página a un archivo en la carpeta |<documento>-pages|. El archivo se llama como el |goban| (|name|; solo letras, números, |.|, |_| y |-|), o |diagram-| y el número de la página si no tiene nombre. Se ejecuta con |texlua|:

\begin{codeexample}[code only]
texlua libro-pages.lua          % SVG, con pdftocairo o dvisvgm
texlua libro-pages.lua png 600  % PNG a 600 ppp (300 si no se dice), con pdftocairo o pdftoppm
texlua libro-pages.lua pdf      % un PDF por tablero, con pdftocairo o pdfseparate
\end{codeexample}

\begin{key}{/pgfgo/package/pages = \meta{boolean} (default true, initially false)}
	Opción del paquete: un |goban| por página. Necesita Lua\LaTeX{} y |kernel = lua|; si no, el paquete avisa y el documento sale como siempre.

	\begin{codeexample}[code only]
		\usepackage[pages]{pgf-go}
	\end{codeexample}
\end{key}
