\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|) y la palabra de las notas «N en M». 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 Negras \\
			|very good for black| & Very good for Black & Muy bueno para Negras \\
			|good for white| & Good for White & Bueno para Blancas \\
			|very good for white| & Very good for White & Muy bueno para Blancas \\
			|even| & Even position & Posición pareja \\
			|unclear| & Unclear position & Posición incierta \\
			|diagram| & Diagram & Diagrama \\
			|variation| & Variation & Variante \\
			|black to play| & Black to play & Juegan Negras \\
			|white to play| & White to play & Juegan Blancas \\
			|at| & at & en \\
			|result| & Result & Resultado \\
			|black| & Black & Negras \\
			|white| & White & Blancas \\
			|win| & \meta{ganador} wins & Ganan \meta{ganador} \\
			|win by points| & \meta{ganador} wins by \meta{puntos} points & Ganan \meta{ganador} por \meta{puntos} puntos \\
			|win by resignation| & \meta{ganador} wins by resignation & Ganan \meta{ganador} por abandono \\
			|win on time| & \meta{ganador} wins on time & Ganan \meta{ganador} por tiempo \\
			|win by forfeit| & \meta{ganador} wins by forfeit & Ganan \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}
