Tentando escrever a palavra-chave `loop` no algoritmo2e

Tentando escrever a palavra-chave `loop` no algoritmo2e

estou a usaralgoritmo2ee preciso usar a looppalavra-chave como aparece aqui:

[![insira a descrição da imagem aqui][1]][1]

MWE

documentclass{article}
\usepackage{xcolor}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}



%%% Coloring the comment as blue
\newcommand\mycommfont[1]{\footnotesize\ttfamily\textcolor{blue}{#1}}
\SetCommentSty{mycommfont}

\SetKwInput{KwInput}{Input}                % Set the Input
\SetKwInput{KwOutput}{Output}              % set the Output


\begin{document}
\maketitle

\begin{algorithm}[H]
\DontPrintSemicolon
  
  \KwInput{Your Input}
  \KwOutput{Your output}
  \KwData{Testing set $x$}
  $\sum_{i=1}^{\infty} := 0$ \tcp*{this is a comment}
  \tcc{Now this is an if...else conditional loop}
  \If{Condition 1}
    {
        Do something    \tcp*{this is another comment}
        \If{sub-Condition}
        {Do a lot}
    }
    \ElseIf{Condition 2}
    {
        Do Otherwise \;
        \tcc{Now this is a for loop}
        \For{sequence}    
        { 
            loop instructions
        }
    }
    \Else
    {
        Do the rest
    }
    
    \tcc{Now this is a While loop}
   \While{Condition}
   {
        Do something\;
   }

\caption{Example code}
\end{algorithm}

\end{document}

Responder1

Agora estou descobrindo este pacote e na documentação existem macros que permitem definir suas próprias palavras-chave.

Existem alguns que definem loops, mas adicionam o teste de parada no final ou no início do loop.

Então optei pela macro que define um bloco, já que o teste de parada é dado antes do final do loop.\SetKwBlock{Loop}{Loop}{end}

O primeiro parâmetro define o nome da macro, portanto se você escrevê-la com letra maiúscula {Loop}, deve fazer o mesmo ao chamar: \Loop. Se você escrever com letras minúsculas {loop}, deverá chamar \loop. O segundo parâmetro é como a palavra-chave será exibida no algoritmo.

Cito o manual na página 35:

\SetKwBlock{Início}{início}{fim}define uma macro\Begin{txt}que denota um bloco. O texto está rodeado pelas palavrascomeçarefimna tipografia de palavras-chave e deslocado para a direita (recuado). Em\Vline ou \Linha modouma linha vertical reta é adicionada.\Begin(texto lateral){texto}fornece também texto em um bloco cercado porcomeçarefim, mastexto lateralse colocado depois docomeçarpalavra-chave. Combinado com\tcc*[f] macro, permite colocar comentários na mesma linha quecomeçar. Você também pode usar alternativas\uComeçar{txt}que atua como\Begin{txt}mas semfim. Útil, por exemplo, como separador de peças que não necessita necessariamente de umfimpalavra-chave.

captura de tela

\documentclass{article}
\usepackage{xcolor}
\usepackage[linesnumbered,boxruled,ruled,noline]{algorithm2e}



%%% Coloring the comment as blue
\newcommand\mycommfont[1]{\footnotesize\ttfamily\textcolor{blue}{#1}}
\SetCommentSty{mycommfont}

\SetKwInput{KwInput}{Input}                % Set the Input
\SetKwInput{KwOutput}{Output}              % set the Output
\SetKwBlock{Loop}{Loop}{end}
\begin{document}
%\maketitle

\begin{algorithm}[H]
\DontPrintSemicolon

  \KwInput{Your Input}
  \KwOutput{Your output}
  \KwData{Testing set $x$}
  \Loop ( until the terminal condition is met. One epoch:)
  {n=n+1

  $\sum_{i=1}^{\infty} := 0$ \tcp*{this is a comment}
  \tcc{Now this is an if...else conditional loop}
  \If{Condition 1}
    {
        Do something    \tcp*{this is another comment}
        \If{sub-Condition}
        {Do a lot}
    }

   terminal condition: RMSE on \dots
}
\caption{Example code}
\end{algorithm}

\end{document}

informação relacionada