algoritmo2e - Error (?) con \SetKwSwitch

algoritmo2e - Error (?) con \SetKwSwitch

El siguiente M(no)WE debería funcionar. ¿Encontré un error?

\documentclass{article}

\usepackage{algorithm2e}

\SetKwSwitch{Switch}{Case}{Other}{Switch}{:}{Case}{Other}{} 

\begin{document}

\begin{algorithm}
    \Switch{X}{
        \Case{1}{A}
        \Other{Other}
    }
\end{algorithm}

\end{document}

Respuesta1

Sin errores: \SetKwSwitchrequierenueveargumentos y solo proporciona ocho de ellos, por lo que el \pargenerado por la línea en blanco se toma como noveno. Y \pares ilegal en el contexto en el que se utiliza el noveno argumento.

\newcommand{\SetKwSwitch}[9]{% #1=\Switch #2=\Case #3=\Other #4=switch #5=do #6=case #7=otherwise #8=endcase #9=endsw
%       \algocf@newcmdside{#1}{3}%
        \algocf@newcmdside@koif{#1}%
                {\KwSty{#4}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#5}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#9} {##4\relax}}%

El manual tiene una descripción donde el último argumento (simbólico) no está entre llaves, por lo que hay un error, pero sólo en la documentación. En la página 39, inicio de la sección 11.6, lees

 \SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endcase}endsw

pero debería ser

\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endcase}{endsw}

Ejemplo fijo:

\documentclass{article}

\usepackage{algorithm2e}

\SetKwSwitch{Switch}{Case}{Other}{Switch}{:}{Case}{Other}{EndCase}{EndSwitch}

\begin{document}

\begin{algorithm}
    \Switch{X}{
        \Case{1}{A}
        \Other{Other}
    }
\end{algorithm}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada