algorithmicx:如何以正确的方式重新定义 end if

algorithmicx:如何以正确的方式重新定义 end if

我来自俄罗斯,那里的“end if”形式不同于“\algorithmicend \algorithmicif”(凯斯利至少在我的大学里

但是当我尝试按照官方文档的方式重新定义它时:

\newcommand{\algorithmicendif}{\textbf{\underline{кесли}}}

它失败:

  ERROR: LaTeX Error: \algorithmicendif undefined.

自官方文档的上一版以来,命令是否有所改变?

答案1

正如 Jubobs 在评论中所建议的,您应该重新定义 If 块(另请参阅 algorithmicx 包文档):

\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage[russian]{babel}
\usepackage{algpseudocode}
\algnewcommand{\algorithmicendif}{\textbf{\underline{кесли}}}
\algblockdefx[IF]{If}{EndIf}[1]{\algorithmicif\ #1\ \algorithmicthen}{\algorithmicendif}

\begin{document}
    \begin{algorithmic}[1]
        \If{$a = b$}
            \State \Comment $a = b$
        \EndIf
    \end{algorithmic}
\end{document}

相关内容