如何在 algorithmicx 中定义新命令

如何在 algorithmicx 中定义新命令

algorithmicx包定义了两个命令\Require和用于提供初始条件。但是我想要一些自定义命令,\Ensure例如\Assume,,等。目前,我只是将上述两个命令重命名为我想要的名称,例如:\Define\Input

\algrenewcommand\algorithmicrequire{\textbf{Input}}

然而,这并不是一个好的解决方案,因为

  1. 它使算法代码变得混乱,而且我在 LaTeX 中看到的不是输出的内容,如果我忘记阅读序言,这可能会造成混淆。
  2. 当需要的自定义定义的数量多于预定义的数量时,它就没有用了。

如何在algorithmicx包中定义与上述两个命令等效的自定义命令(我正在使用algpseudocode)?文档中的示例似乎涵盖了诸如for ... end等块,而不是单个语句。

答案1

在文档中你可以找到\algnewcommand。关系\Require定义为

\algnewcommand\algorithmicrequire{\textbf{Require:}}

因此你可以这样做:

\algnewcommand\algorithmicinput{\textbf{INPUT:}}
\algnewcommand\INPUT{\item[\algorithmicinput]}

这是一个完整的例子:

\documentclass[a4paper,11pt]{article}
\usepackage{algorithmicx}
\usepackage{algorithm}
\usepackage{algpseudocode}
\algnewcommand\algorithmicinput{\textbf{INPUT:}}
\algnewcommand\INPUT{\item[\algorithmicinput]}
\begin{document}
\begin{algorithmic}[1]
\INPUT foo
\Require $x\ge5$
\Ensure $x\le-5$
\Statex
\While{$x>-5$}
\State $x\gets x-1$
\EndWhile
\end{algorithmic}
\end{document}

在此处输入图片描述

相关内容