algorithm2e 与 RevTex

algorithm2e 与 RevTex

注:我看过这个问题的先前答案这里但它并不符合我的目的。我怀疑其他人也有同样的情况。

我正在写一篇论文,出版商要求使用 RevTex 4.1。我已经用该algorithm2e软件包编写了几页算法。但当我把它们放到论文中时,所有的缩进都失败了。这是一个最小的工作示例:

\documentclass[aip,jcp]{revtex4-1}

\usepackage[ruled,vlined,linesnumbered,commentsnumbered]{algorithm2e}

\begin{document}

\begin{algorithm}
  \ForEach{i}{
    \ForEach{j}{
      hello world\;
    }
  }
  \caption{This is wrong: no indentation}
\end{algorithm}

\end{document}

这使: 输出

我是否必须用algorithmic语法(或其他东西)重写一页又一页的算法,或者是否有解决此问题的方法?

答案1

一种解决方法是使用预览包创建算法的 pdf,然后使用 将该 pdf 包含在文档中\includegraphics。请注意,您必须使用相同的字体、文本宽度等,以防止算法块的标记与文档其余部分之间出现差异。

以下代码示例创建pdf。

\documentclass{article}
\usepackage[active,tightpage]{preview}
\usepackage{algorithm2e}
\begin{document}
\begin{preview}
  
\begin{algorithm}[H]
% Your algo here 
\end{algorithm}

\end{preview}
\end{document}

添加:

要将算法作为浮点数合并到主 tex 文件中,您可以使用图形环境。但是,在这种情况下,标题会显示“图 X:...”而不是“算法 X:...”。此外,您可能希望对算法和图形使用不同的计数器。为此,请使用以下命令。

\documentclass{article}
\begin{document}

\usepackage{newfloat}
\DeclareFloatingEnvironment[
    name=Algorithm
]{algorithm}
\renewcommand{\thealgorithm}{\Roman{algorithm}}

\begin{algorithm}
  \hrule
  \includegraphics{algo.pdf}
  \hrule
  \caption{\label{alg:myalg} caption}
\end{algorithm}

\end{document}

相关内容