![Marco Beamer: agregar opciones de usuario](https://rvso.com/image/298792/Marco%20Beamer%3A%20agregar%20opciones%20de%20usuario.png)
Me gustaría agregar 2 opciones de usuario más al \frame
comando. Sin embargo, al llamar \frame
con ambos parámetros al mismo tiempo en un orden específico (el que tiene valor implícito primero), genera un error. Aquí hay un MWE
:
\documentclass{beamer}
\usepackage{etoolbox}
\makeatletter
\define@key{beamerframe}{oneparam}[true]{%
\setbeamercolor{background canvas}{bg=black}
}
\define@key{beamerframe}{twoparam}{%
\color{#1}
}
% Default framestyle
\pretocmd{\beamer@@@@frame}
{
\setbeamercolor{background canvas}{bg=white}
\setbeamertemplate{background}{}
}
{}{}
\makeatother
\begin{document}
\frame[oneparam]{
Works
}
\frame[twoparam=red]{
Works
}
\frame[oneparam, twoparam=green]{
Fail
}
\frame[twoparam=green, oneparam]{
Works
}
\end{document}
Mensaje de error:
Error de valor de clave del paquete: twoparam indefinido \frame[oneparam, twoparam=red]
Respuesta1
Esto se debe a que \frame
dispara un \setkeys
y dispara otro \setkeys
mientras el primero no termina. Un experimento simple muestra que \setkeys
los anidados no funcionarán. Por lo tanto, debe cambiar a otros sistemas key-val, como el excelenteclavespgf.
PD. El proyector incluyepgfpor defecto, lo que significa queclavespgfestá incluido por defecto. No sé por qué Beamer (todavía) usa keyval
.