EDITAR 1:

EDITAR 1:

Estoy intentando escribir un algoritmo que contenga bucles for anidados de la siguiente manera:

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\title{Algorithm example}

\author{\LaTeX{}}

\date{\today}

\begin{document}
\maketitle

\section{Gibbs sampling Algorithm}

Algorithms can be included using the commands as shown in algorithm \ref{alg:gibbs}.

\begin{algorithm}
\caption{Collapsed Gibbs sampling algorithm for inference}\label{alg:gibbs}
\begin{algorithmic}[1]
\State Choose initial $z$ and $\xi$.
\For{$T$ iterations}
  \For{$D$ Subjects}
    \For{$N_d$ time segments}
      \State do something
    \EndFor
  \EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

\end{document}

Este es el resultado: ingrese la descripción de la imagen aquí

... y me sale los siguientes errores:

Undefined control sequence
Package algorithmicx: Some blocks are not closed!!!

Estoy usando la plantilla en línea de IEEE y también verifiquéestepregunta sobre bucles for anidados con algoritmo, sin suerte.


EDITAR 1:

Cambiado \Endfora \EndFor. Los errores desaparecieron pero me dan el mismo resultado.

Respuesta1

Supongo que estás compilando tu documento en "modo por lotes", que no se detiene ante los errores sino que intenta continuar, saltándose los problemas.

En su caso, el mensaje de error completo dice:

! Undefined control sequence.
l.16 \Endfor

Entonces, el problema es que el comando \Endforno se reconoce, pero tex intenta continuar de todos modos y luego produce otro error acerca de que los bloques no se cierran.

El problema se soluciona escribiendo \EndFor(que es la ortografía correcta de este comando) en lugar de \Endfor.

Si desea ver el "fin de" en el resultado, elimine la noendopción en el paquete ;-)

información relacionada