ПРАВКА 1:

ПРАВКА 1:

Я пытаюсь написать алгоритм, содержащий вложенные циклы следующим образом:

\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}

Вот результат: введите описание изображения здесь

... и я получаю следующие ошибки:

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

Я использую онлайн-шаблон IEEE и также проверилэтотвопрос о вложенных циклах for с алгоритмом, безуспешно.


ПРАВКА 1:

Изменил \Endforна \EndFor. Ошибки исчезли, но выдает тот же результат.

решение1

Я предполагаю, что вы компилируете свой документ в «пакетном режиме», который не останавливается на ошибках, а пытается продолжить работу, пропуская проблемы.

В вашем случае полное сообщение об ошибке выглядит так:

! Undefined control sequence.
l.16 \Endfor

Итак, проблема в том, что команда \Endforне распознается, но tex все равно пытается продолжить работу, а затем выдает еще одну ошибку о том, что блоки не закрыты.

Проблема решается путем написания \EndFor(что является правильным написанием этой команды) вместо \Endfor.

Если вы хотите увидеть «end for» в выводе, удалите опцию noendв пакете ;-)

Связанный контент