如何While
使用algorithm
和重命名循环algpseudocode
?
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm*}
\caption{bar baz}
\label{alg:interesting}
\begin{algorithmic}[1]
\While{foo bar}
\EndWhile
\end{algorithmic}
\end{algorithm*}
\end{document}
它打印出来为
While foo bar do
end while
我希望它能
Until foo bar repeat
end while
我如何仅更改 while 循环的第一部分。
答案1
while 块的原始定义algpseudocode.sty
是
\algdef{SE}[WHILE]{While}{EndWhile}[1]{\algorithmicwhile\ #1\ \algorithmicdo}%
{\algorithmicend\ \algorithmicwhile}%
然后,您可以\algorithmicwhile
用替换\algorithmicuntil
,并\algorithmicdo
用 替换\algorithmicrepeat
;完整的示例:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\algdef{SE}[WHILE]{While}{EndWhile}[1]{\algorithmicuntil\ #1\ \algorithmicrepeat}{\algorithmicend\ \algorithmicwhile}%
\begin{document}
\begin{algorithm*}
\caption{bar baz}
\label{alg:interesting}
\begin{algorithmic}[1]
\While{foo bar}
\EndWhile
\end{algorithmic}
\end{algorithm*}
\end{document}
我只按照问题的要求替换了第一次出现的\algorithmicwhile
;也许最好同时更改两者。
也许,正如埃格尔在评论中建议,更好的选择是定义一个新的Until
块;以下是如何做到这一点:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\algdef{SE}[UNTIL]{Until}{EndUntil}[1]{\algorithmicuntil\ #1\ \algorithmicrepeat}{\algorithmicend\ \algorithmicuntil}%
\begin{document}
\begin{algorithm*}
\caption{bar baz}
\label{alg:interesting}
\begin{algorithmic}[1]
\Until{foo bar}
\EndUntil
\end{algorithmic}
\end{algorithm*}
\end{document}