复制伪代码格式

复制伪代码格式

我必须在论文中包含算法,它们必须如下所示:

[A]     X ← X-1
        Y ← Y+1
        IF X ≠ 0 GOTO A

所以我试图完全复制这一点,同时探索一些新的包,但不幸的是,我似乎无法掌握它。我发现[A]在语句之前添加标签,然后在下一行添加空格特别困难。有什么格式提示可以遵循,或者有什么包可以包含吗?

编辑:对于作业部分,我很想使用数学模式,主要是因为我必须包含很多数学符号,至于外观,它应该真正呈现为如上所示:左侧的标签,如果存在,如果不存在,应该有一个很好的空间,所有语句必须堆叠和对齐。

答案1

我会对你的需求做一些假设。

  • 标签为文本形式
  • 该行的第二部分处于数学模式
  • 整个东西应该向左齐平

那么,让我们尝试一下:

\documentclass{article}

\usepackage{array}

\newenvironment{algodesc}
  {\begin{flushleft}\begin{tabular}{@{} l @{\hspace{3em}} >{$}l<{$} @{}}}
  {\end{tabular}\end{flushleft}}

\newcommand{\algolabel}[1]{[#1]}
\newcommand{\keyw}[1]{\textup{#1}}
\newcommand{\goto}[1]{\textup{GOTO #1}}

\begin{document}

Some text before the algorithm, explaining what it does
and then the algorithm itself:
\begin{algodesc}
\algolabel{A} & X \gets X-1 \\
              & Y \gets Y+1 \\
              & \keyw{IF}\ X\ne 0\ \goto{A}
\end{algodesc}
and some text after it.

\end{document}

的参数中可以使用语言关键字\keyw;其中特殊的关键字“GOTO”以\goto标签作为参数。

您还可以考虑诸如这样的专门包algpseudocode

在此处输入图片描述

相关内容