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

預設行為是 insert \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}

相關內容