格式化 LaTeX 文档伪代码时出现问题,结束 while 循环

格式化 LaTeX 文档伪代码时出现问题,结束 while 循环

我正在为我编写的一些伪代码编写 LaTeX 文档。我有一堆 while 循环,但 latex 格式化它们的方式看起来像:

while(x)
   while(y)
      while(z)

而我希望它能做到:

while(x)
   while(y)
while(z)

所以我尝试使用\endwhile,并收到以下错误:

Undefined control sequence.
l.44    \ENDWHILE

我在用

\usepackage{algorithm}
\usepackage{program}

使用后wikibooks - 算法与伪代码网站,他们在其中使用\endwhile,所以我想知道我做错了什么。

答案1

嗯,你实际上只需要这两个包中,随便选一个都可以。

例如algorithmic

\documentclass{article}

\usepackage{algorithmic}

\begin{document}
  \begin{algorithmic}
  \WHILE{condition}
    \WHILE{condition}
      \STATE\COMMENT{do something}
    \ENDWHILE
  \ENDWHILE
  \WHILE{condition}
    \STATE\COMMENT{do something else}
  \ENDWHILE
  \end{algorithmic}
\end{document}

例如program

\documentclass{article}

\usepackage{program}

\begin{document}
  \begin{program} 
  \WHILE condition \DO 
    \WHILE condition \DO 
      \COMMENT{do something}
    \OD
  \OD
  \WHILE condition \DO 
    \COMMENT{do something else}
  \OD
  \end{program}
\end{document}

答案2

万一其他人遇到这个问题,你会发现你需要 while-do 语句

while{x} \DO
 a,b,c = z
 while{z} \DO
  z = 1 \OD
\OD
while{y} \DO
 y += 1 \OD

这似乎为我解决了缩进问题。

相关内容