Как сохранить комментарии на отдельной строке с помощью algorithmicx?

Как сохранить комментарии на отдельной строке с помощью algorithmicx?

Я пытаюсь добавить комментарии на отдельной строке. Поведение по умолчанию \Comment{}— разместить комментарий на той же строке, что и \State. Мой текущий хак — просто сделать

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

Желаемый результат:

выход

Есть ли правильный способ сделать это? А как насчет того, чтобы выделить комментарий курсивом, чтобы он был немного менее навязчивым?

решение1

Я исправил некоторые ошибки в коде:

  • заменил 2 вхождения \[...\]на[...]
  • удалил последний символ]

Я добавил \textitкоманду, чтобы выделить комментарий курсивом.

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

введите описание изображения здесь

Вы также можете определить команду для вашего типа комментария ( \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}

решение2

Переопределите путьalgorithmicxработы \Commentс использованием

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

По умолчанию используется вставка \hfill \(\triangleright\), которая размещает комментарий вровень с правым полем.

введите описание изображения здесь

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

Связанный контент