如何删除algorithm2e中的多余空白行

如何删除algorithm2e中的多余空白行

我想在 LaTeX 中\For命令后添加右对齐注释,但它添加了一个不需要的空行。请帮帮我。

代码:

\For(\tcp*[r]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
\If {$i=1$}
{
$currentCenter \gets MEAN(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
$currentSSE \gets SSE(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
}}

快照:

在此处输入图片描述

答案1

使用\tcp*[f]而不是\tcp*[r]。根据algorithm2e文档(部分10.3 评论,第 31 页):

\tcp*[r]右对齐注释,结束行(默认)

\tcp*[f]右对齐注释,没有结束行;例如,与“if-then-else”宏一起使用

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm2e}% http://ctan.org/pkg/algorithm2e
\newcommand{\variable}{\textup}
\newcommand{\func}{\textsf}
\begin{document}
\begin{algorithm}
\For(\tcp*[r]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
  \If {$i=1$}
  {
    $currentCenter \gets MEAN(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
    $currentSSE \gets SSE(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
  }}
\For(\tcp*[f]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
  \If {$i=1$}
  {
    $\variable{currentCenter} \gets \func{MEAN}(x_{R'[2]},\ldots,x_{R'[k_{\min}+1]})$\;
    $\variable{currentSSE} \gets \func{SSE}(x_{R'[2]},\ldots,x_{R'[k_{\min}+1]})$\;
  }}
\end{algorithm}
\end{document}

我还添加了一些其他格式,因为它似乎是有必要的。

相关内容