Versuch, das Schlüsselwort „loop“ in Algorithmus2e zu schreiben

Versuch, das Schlüsselwort „loop“ in Algorithmus2e zu schreiben

Ich benutzealgorithm2eund ich muss das loopSchlüsselwort so verwenden, wie es hier erscheint:

[![Bildbeschreibung hier eingeben][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}

Antwort1

Ich entdecke dieses Paket jetzt und in der Dokumentation gibt es Makros, mit denen Sie Ihre eigenen Schlüsselwörter definieren können.

Einige definieren Schleifen, fügen den Stopptest jedoch entweder am Ende oder am Anfang der Schleife hinzu.

Daher habe ich mich für das Makro entschieden, das einen Block definiert, da der Stopptest vor dem Ende der Schleife gegeben ist.\SetKwBlock{Loop}{Loop}{end}

Der erste Parameter definiert den Namen des Makros. Wenn Sie ihn also mit einem Großbuchstaben schreiben {Loop}, müssen Sie beim Aufruf dasselbe tun: \Loop. Wenn Sie ihn mit einem Kleinbuchstaben schreiben {loop}, müssen Sie aufrufen \loop. Der zweite Parameter gibt an, wie das Schlüsselwort im Algorithmus angezeigt wird.

Ich zitiere aus dem Handbuch auf Seite 35:

\SetKwBlock{Beginn}{Beginn}{Ende}definiert ein Makro\Begin{txt}was einen Block bezeichnet. Der Text ist umgeben von den WortenbeginnenUndEndein der Stichworttypografie und nach rechts verschoben (eingerückt). In\VLinie oder \Linie Moduseine gerade vertikale Linie wird hinzugefügt.\Begin(Seitentext){Text}gibt auch Text in einem Block, umgeben vonbeginnenUndEnde, AberSeitentextwenn nach dembeginnenStichwort. Kombiniert mit\tcc*[f] Makro, es ermöglicht Ihnen, Kommentare in die gleiche Zeile zu setzen wiebeginnenSie können auch alternativ\uBegin{txt}die fungiert als\Begin{txt}aber ohneEnde. Nützlich zum Beispiel als Teiltrenner, der nicht unbedingt einenEndeStichwort.

Bildschirmfoto

\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}

verwandte Informationen