\nlset
我可以使用命令(与 一起)在 algorithm2e 环境中手动设置行号\LinesNotNumbered
。但是,我不知道如何对带有end
或else
语句的行进行相同的操作,如下图所示:
答案1
这是一个使用的解决方案
- 一种特殊的
if-then-else
构造称为\nlIf
- 包装宏
\nlsetend
在本地重新定义 this\nlIf
(在它之前调用),以添加自定义行号
\documentclass[margin=5mm]{standalone}
\usepackage{algorithm2e,amsmath}
\newcommand{\nlsetend}[1]{%
\SetKwIF{nlIf}{ElseIf}{Else}{if}{then}{else if}{else}{\nlset{#1}end}
}
\begin{document}
\begin{algorithm}[H]
\eIf{$\hdots$}{
\eIf{$rank \neq \hdots$}{
send\;
send\;
}{
$\hdots$
}
}{
$\hdots$\;
}
\eIf{$\hdots$}{
\nlsetend{test}
\enlIf{$rank \neq \hdots$}{
send\;
send\;
}{
$\hdots$
}
}{
$\hdots$\;
}
\end{algorithm}
\end{document}