如何从标题中删除算法 1 以及如何声明具有其类型的变量

如何从标题中删除算法 1 以及如何声明具有其类型的变量

我正在尝试使用 MikTEX 和 algorithm2e 包编写我的第一个伪代码算法,但至少有两件事我无法理解。下图显示了我想要实现的最终结果。

首先,我不明白如何将函数名称放在第一行。我尝试过\caption和其他方法,但无法摆脱文本“算法 1“。我想学习的第二件事是:如何用其类型声明变量?即RB节点 y

在此处输入图片描述

编辑

试图使问题更清楚:

  1. 如何获取下图中这样的标题(下图的第一行)?我希望两条黑线之间的文本仅包含函数名称和参数列表

答案1

首先,你可以使用以下命令将“算法”一词重命名为任何你想要的名称:

\SetAlgorithmName{Something}{List of Somethings}

但这并不能删除它。因此,您可以提供一个空字符串:

\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
...
\SetAlgorithmName{}{List of Algorithms}
\begin{algorithm}
    RBNode $y \gets x$, right\\
    \caption{rotateLeft (RBNode $x$)}
\end{algorithm}

结果是:

例如1

但数字仍保留在标题中。

您还可以尝试添加figure选项(ruled如果需要,也可以删除),以\usepackage删除包含“算法 1”的整行。但您必须将函数名称写成一行代码,而不是写在标题中(无论如何,这可能更好):

\usepackage[linesnumbered,vlined,figure]{algorithm2e}
\newcommand{\FuncCall}[2]{\texttt{\bfseries #1(#2)}}
\SetKwProg{Function}{function}{}{}
...
\begin{algorithm}
    \Function{rotateLeft(RBNode $x$)}{
        RBNode $y \gets x$, right\\
        more\\
        code\\
        here\\
    }
    \caption{Some caption here}
\end{algorithm}

结果是:

在此处输入图片描述

要获得更多格式化技巧,这个答案是一个很好的起点:https://tex.stackexchange.com/a/534197/49045

algorithm2e 的文档位于https://hal.inria.fr/file/index/docid/680365/filename/algorithm2e.sty

相关内容