Error de paquete de algoritmo en Beamer

Error de paquete de algoritmo en Beamer

Tengo el siguiente ejemplo trivial que simplemente no puedo compilar.

\documentclass{beamer}

\mode<presentation> {
\usetheme{Madrid}
\usecolortheme[RGB={0,0,0}]{structure}
}

\usepackage{amsmath,amsfonts,graphicx}
\usepackage{algpseudocode}
\usepackage{tikz, nth}
\usepackage{tkz-graph}

\begin{document}

\begin{frame}
\begin{algorithmic}
\Function{deleteMax}{}{
\State{$P \gets$ \Call{Skip-Search}{$L$, Max}}
}
\EndFunction
\end{algorithmic}
\end{frame}

\end{document}

Esto produce el error

 ! Falta \endcsname insertado. \ALG@bloqueactual@2

del que simplemente no puedo deshacerme. Por extraño que parezca, si agrego una declaración if, no aparece ningún error.

Nota: Puedo poner cualquier cantidad de \Statedeclaraciones sin el cuerpo \Function, por lo que el error parece estar relacionado con eso de alguna manera.

Respuesta1

El problema aquí es su interpretación de las macros involucradas en la algorithmicconstrucción. La \Statemacro no acepta argumentos. Entonces, usa

\State <state content>

y no

\State{<state content>}

De manera similar, piensa \Functionque toma tres argumentos, el último de los cuales es el cuerpo de la función. Esto no es cierto, ya que el inicio y el final de la función están dados por \Functiony \EndFunction, respectivamente (ver sección3.1.6. el bloque de funcionesdelalgorithmicx documentación). Entonces, usa

\Function{<name>}{<parms>}
  <body>
\EndFunction

y no

\Function{<name>}{<parms>}{
  <body>
}
\EndFunction

Aquí hay un ejemplo mínimo que proporciona lo que describí anteriormente:

ingrese la descripción de la imagen aquí

\documentclass{beamer}

\usepackage{algpseudocode}

\begin{document}

\begin{frame}
  \begin{algorithmic}
    \Function{deleteMax}{}
      \State $P \gets$ \Call{Skip-Search}{$L$, Max}
    \EndFunction
  \end{algorithmic}
\end{frame}

\end{document}

información relacionada