我正在尝试使用算法包在伪代码环境中右对齐注释。所以我更新了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}