如何使用 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}

相关内容