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}

関連情報