Marco Beamer: agregar opciones de usuario

Marco Beamer: agregar opciones de usuario

Me gustaría agregar 2 opciones de usuario más al \framecomando. Sin embargo, al llamar \framecon 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 \framedispara un \setkeysy dispara otro \setkeysmientras el primero no termina. Un experimento simple muestra que \setkeyslos anidados no funcionarán. Por lo tanto, debe cambiar a otros sistemas key-val, como el excelente.

PD. El proyector incluyepor defecto, lo que significa queestá incluido por defecto. No sé por qué Beamer (todavía) usa keyval.

información relacionada