EDITAR 1:

EDITAR 1:

Estou tentando escrever um algoritmo que contém loops for aninhados da seguinte maneira:

\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 é o resultado: insira a descrição da imagem aqui

... e recebo os seguintes erros:

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

Estou usando o modelo online do IEEE e também verifiqueiessepergunta sobre loops for aninhados com algoritmo, sem sorte.


EDITAR 1:

Alterado \Endforpara \EndFor. Os erros desapareceram, mas me deram o mesmo resultado.

Responder1

Suponho que você esteja compilando seu documento em "modo batch", que não para nos erros, mas tenta continuar, ignorando os problemas.

No seu caso, a mensagem de erro completa diz:

! Undefined control sequence.
l.16 \Endfor

Então o problema é que o comando \Endfornão é reconhecido, mas o tex tenta continuar mesmo assim, e depois produz outro erro sobre os blocos não terem sido fechados.

O problema é resolvido escrevendo \EndFor(que é a grafia correta deste comando) em vez de \Endfor.

Se você quiser ver o "end for" na saída, remova a noendopção do pacote ;-)

informação relacionada