算法包中注释的右对齐错误

算法包中注释的右对齐错误

我正在尝试使用算法包在伪代码环境中右对齐注释。所以我更新了algorithmiccomment命令。

有一种不同的方法可以为“普通”语句和预定义语句(例如“for”、“if”等)创建注释。

问题是,“普通”评论和其他评论的右对齐方式不同。如何解决这个问题,以便所有评论都能很好地对齐?

这就是我的意思。

评论不太一致

这是重现我的示例的代码。任何帮助都将不胜感激。

\documentclass[a4paper]{article}
\usepackage{algorithmic}
\renewcommand{\algorithmiccomment}[1]{\hfill \tiny//~#1\normalsize}

\begin{document}
\begin{algorithmic}
\FORALL[This comment is not quite right aligned]{ $a \in B$}
    \STATE X  \COMMENT{This comment is further to the right}
\ENDFOR
\end{algorithmic}
\end{document}

答案1

如果您不介意切换到该algorithmicx包(algpseudocode变体),那么问题就解决了。

请注意,我已加载该compatible选项,因此您可以使用旧算法而无需进行任何更改。

\documentclass[a4paper]{article}
\usepackage[compatible]{algpseudocode} % or \usepackage{algcompatible}
\renewcommand{\algorithmiccomment}[1]{\bgroup\hfill\tiny//~#1\egroup}

\begin{document}
\begin{algorithmic}
\FORALL[This comment is not quite right aligned]{ $a \in B$}
    \STATE X  \COMMENT{This comment is further to the right}
\ENDFOR
\end{algorithmic}
\end{document} 

输出

在此处输入图片描述

使用“正确”的语法应该这样写algorithmicx

\documentclass[a4paper]{article}
\usepackage{algpseudocode}
\renewcommand{\algorithmiccomment}[1]{\bgroup\hfill\tiny//~#1\egroup}

\begin{document}
\begin{algorithmic}
\ForAll{ $a \in B$} \Comment{This comment is not quite right aligned}
    \State X \Comment{This comment is further to the right}
\EndFor
\end{algorithmic}
\end{document}

相关内容