對以 if 開頭的行進行演算法註釋,並使用揭開/可見

對以 if 開頭的行進行演算法註釋,並使用揭開/可見

我正在嘗試修改這段程式碼,轉化為以下一項:

\documentclass{beamer}
\usepackage[utf8]{inputenc} 
\usepackage[english]{babel}
\usepackage[plain]{algorithm}
\usepackage{algorithmic}
\usepackage{array}
\usepackage{eqparbox}
\renewcommand\algorithmiccomment[1]{%
  \eqparbox{COMMENT}{#1}%
}

\begin{document}
\begin{frame}
\begin{algorithm}[H]
  \begin{algorithmic}[1]
    \STATE $x := 1$ \visible<2->{\COMMENT{$x_1 \in [1;1]$}}
    \WHILE[\visible<2->{\COMMENT{whatever}}]{{$x < 10000$}
      \STATE $x := x+1$     \COMMENT{bla}
      \ENDWHILE
  \end{algorithmic}
\end{algorithm}
\end{frame}

\end{document} 

我只是希望 if 區塊的註解出現在第二張不同的幻燈片上。這就是我使用 的原因\uncover,但這在編譯過程中不被接受pdflatex

錯誤! Undefined control sequence.(如果您願意,我可以貼上日誌)

我怎樣才能改變這個?先致謝

編輯:最好的選擇可能是使用algorithmicx。因此, a 的註釋\While必須被推到同一行的末尾,而不是類似\WHILE[]

答案1

這是有要求的嗎?我不確定,但有時使用命令更好\only

\documentclass{beamer}
\usepackage[utf8]{inputenc} 
\usepackage[english]{babel}
\usepackage[plain]{algorithm}
\usepackage{algorithmic}
\usepackage{array}
\usepackage{eqparbox}
\renewcommand\algorithmiccomment[1]{%
  \eqparbox{COMMENT}{#1}%
}

\begin{document}
\begin{frame}
\begin{algorithm}[H]
  \begin{algorithmic}[1]
    \only<1>{%
      \STATE $x := 1$
      \WHILE[]{$x < 10000$}
      \STATE $x := x+1$     \COMMENT{bla}
      \ENDWHILE
    }%
\only<2->{%
  \STATE $x := 1$ {\COMMENT{$x_1 \in [1;1]$}}
  \WHILE[\COMMENT{whatever}]{$x < 10000$}
  \STATE $x := x+1$     \COMMENT{bla}
  \ENDWHILE
}%
\end{algorithmic}
\end{algorithm}
\end{frame}

\end{document} 

相關內容