Wie kann man mit Algorithmicx Kommentare in einer eigenen Zeile halten?

Wie kann man mit Algorithmicx Kommentare in einer eigenen Zeile halten?

Ich versuche, Kommentare in einer eigenen Zeile hinzuzufügen. Das Standardverhalten von \Comment{}ist, den Kommentar in derselben Zeile wie a zu platzieren \State. Mein aktueller Hack besteht darin, einfach Folgendes zu tun:

\documentclass{article}
\usepackage{amsmath}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage{algorithm}
\captionsetup\[algorithm\]{labelformat=empty}
\begin{document}
\begin{algorithm}
\caption{Init}
\begin{algorithmic}\[1\]
  \State // Here is a comment the way I want it.
  \State $x \gets y$
  \end{algorithmic}
\end{algorithm}
\end{document}]

Gewünschte Ausgabe:

Ausgabe

Gibt es eine richtige Möglichkeit, dies zu tun? Wie wäre es, den Kommentar kursiv zu setzen, damit er etwas weniger aufdringlich ist?

Antwort1

Ich habe einige Fehler im Code behoben:

  • ersetzte die 2 Vorkommen von \[...\]durch[...]
  • das letzte Zeichen wurde gelöscht]

Ich habe den \textitBefehl hinzugefügt, um den Kommentar kursiv darzustellen.

\documentclass{article}
\usepackage{amsmath}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage{algorithm}
\captionsetup[algorithm]{labelformat=empty}

\begin{document}
    \begin{algorithm}
        \caption{Init}
        \begin{algorithmic}[1]
            \State // \textit{Here is a comment the way I want it.}
            \State $x \gets y$
        \end{algorithmic}
    \end{algorithm}
\end{document}

Bildbeschreibung hier eingeben

Sie können auch einen Befehl für Ihren Kommentartyp definieren ( \CommentLine):

\documentclass{article}
\usepackage{amsmath}
\usepackage{caption}
\usepackage{algpseudocode}
\usepackage{algorithm}
\captionsetup[algorithm]{labelformat=empty}

\newcommand{\CommentLine}[1]{
    \State // \textit{#1}
}

\begin{document}
    \begin{algorithm}
        \caption{Init}
        \begin{algorithmic}[1]
            \CommentLine{Here is a comment the way I want it.}
            \State $x \gets y$
        \end{algorithmic}
    \end{algorithm}
\end{document}

Antwort2

Definieren Sie den Weg neualgorithmicx's \CommentWerke mit

\algrenewcommand\algorithmiccomment[1]{// {\itshape #1}}

Das Standardverhalten ist das Einfügen \hfill \(\triangleright\), wodurch der Kommentar bündig mit dem rechten Rand eingefügt wird.

Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{algpseudocode,algorithm}

\usepackage{caption}
\captionsetup[algorithm]{labelformat=empty}

\algrenewcommand\algorithmiccomment[1]{// {\itshape #1}}

\begin{document}

\begin{algorithm}
  \caption{Init}
  \begin{algorithmic}[1]
    \State // Here is a comment the way I want it.
    \State $x \gets y$
    \State \Comment{Here is a comment the way I want it.}
    \end{algorithmic}
  \end{algorithm}

\end{document}

verwandte Informationen