編集1:

編集1:

次のようにネストされた for ループを含むアルゴリズムを記述しようとしています。

\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パッケージ内のオプションを削除してください ;-)

関連情報