algorithm - 在 LaTeX 算法环境中格式化注释

标签 algorithm latex formatting

我想在 LaTeX 中排版一个算法。我正在使用算法包和环境来这样做。一切都很好,除了当我添加注释(使用\COMMENT)时,它们会在语句之后立即输出。我希望所有评论都保持一致(并从声明中偏移)。有没有简单的方法来做到这一点?

在 HTML 的 pre 中“复制”PDF 输出,我想要:

if condition then
   something         # comment 1
else
   something else    # comment 2

而不是

if condition then
   something  # comment 1
else
   something else  # comment 2

最佳答案

我会这样做:

\usepackage{eqparbox}
\renewcommand{\algorithmiccomment}[1]{\hfill\eqparbox{COMMENT}{\# #1}}

注1:需要两次文档编译才能确定注释的最大宽度。

注2:显然,这只适用于不太长的单行注释。


根据这个想法,这里有一个相同方式的完整示例,但也提供了一个命令来让评论分行:

\documentclass{amsbook}
\usepackage{algorithmic,eqparbox,array}
\renewcommand\algorithmiccomment[1]{%
  \hfill\#\ \eqparbox{COMMENT}{#1}%
}
\newcommand\LONGCOMMENT[1]{%
  \hfill\#\ \begin{minipage}[t]{\eqboxwidth{COMMENT}}#1\strut\end{minipage}%
}
\begin{document}
\begin{algorithmic} 
\STATE do nothing \COMMENT{huh?} 
\end{algorithmic}
\begin{algorithmic} 
\STATE do something \LONGCOMMENT{this is a comment broken over lines} 
\end{algorithmic}
\begin{algorithmic} 
\STATE do something else \COMMENT{this is another comment} 
\end{algorithmic}
\end{document}

关于algorithm - 在 LaTeX 算法环境中格式化注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744197/

相关文章:

mysql - 在 mysql 中用 %name%+(num) 递增字符串

performance - 高效光线追踪的数据结构/方法

latex - 缩放方程以适合精确的页面宽度

latex - 高级 LaTeX 教程/书籍

java - 需要有关 String.format 的一些帮助

javascript - 如何确定 Javascript 中项目网格中选择范围之间的重叠

android - 用今天、昨天、明天等字符串格式化日期的正确方法

html - org 模式将反斜杠导出到 Latex 和 html

html - Excel 不应用 HTML 中的 mso 数字格式

ios - iOS 推送通知中的 header (粗体)和正文