
다음과 같이 중첩된 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
패키지에서 옵션을 제거하세요 ;-)