Como manter os comentários em sua própria linha com o algoritmo x?

Como manter os comentários em sua própria linha com o algoritmo x?

Estou tentando adicionar comentários em sua própria linha. o comportamento padrão de \Comment{}é colocar o comentário na mesma linha que um arquivo \State. Meu hack atual é apenas fazer

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

Saída desejada:

saída

Existe uma maneira adequada de fazer isso? Que tal colocar o comentário em itálico para que seja um pouco menos intrusivo?

Responder1

Corrigi alguns erros no código:

  • substituiu as 2 ocorrências de \[...\]por[...]
  • excluiu o último caractere]

Adicionei o \textitcomando para colocar o comentário em itálico.

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

insira a descrição da imagem aqui

Você também pode definir um comando para o seu tipo de comentário ( \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}

Responder2

Redefinir o caminhoalgorithmicxfunciona \Commentusando

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

O comportamento padrão é insert \hfill \(\triangleright\), que coloca o comentário alinhado com a margem direita.

insira a descrição da imagem aqui

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

informação relacionada