Marcando algumas linhas de um algoritmo com um asterisco, por que nem sempre funciona?

Marcando algumas linhas de um algoritmo com um asterisco, por que nem sempre funciona?

Estou trabalhando com o pacote IEEEtran e algoritmo2e. Eu tenho um algoritmo com linhas numeradas. Estou marcando algumas linhas com um asterisco antes da linha da seguinte forma:

\documentclass[conference]{IEEEtran}
\usepackage[ruled,linesnumbered]{algorithm2e}

% *** MATH PACKAGES ***
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}

\begin{algorithm}

\nlset{1}$x=1$\;
\nlset{*2}\For{$i=1$ \emph{\KwTo} $10$}{
\nlset{*3}$x=x+1$\;
\nlset{*4}}
\end{algorithm}

\end{document}

O problema é que não consigo produzir um asterisco na linha “end” do loop for: em vez disso, o código acima gera uma nova linha antes da linha “end” e a marca com o asterisco. Há alguma saída?

Obrigado.

Responder1

Você pode usar \SetNlSty{}{}{}em vez disso e colocá-lo em um grupo com as linhas às quais deseja adicionar uma estrela.

\documentclass[conference]{IEEEtran}
\usepackage[ruled,linesnumbered]{algorithm2e}

\begin{document}
\begin{algorithm}
$x=1$\;
{% star group begin 
    \SetNlSty{textbf}{*}{}
    \For{$i=1$ \emph{\KwTo} $10$}{
    $x=x+1$\;
    }
}% star group end
$x=2$
\end{algorithm}
\end{document}

Saída:

algoritmo2e

informação relacionada