使用 algorithm2e 枚举的自定义算法环境,出现在目录中

使用 algorithm2e 枚举的自定义算法环境,出现在目录中

我希望两个环境共享一个计数器并出现在同一个列表中。其中一个环境是 algorithm2e,另一个是一个简单的框架,用于保存我想以另一种方式排版的算法。以下代码使两个环境出现在同一个算法列表中,但它们的编号不匹配,并且算法列表中每行的格式也不匹配。

这是我目前拥有的代码:

\documentclass{book}
\usepackage[lined,vlined,linesnumbered,algochapter,ruled]{algorithm2e} 
\newcommand{\listofalgorithmes}{\tocfile{\listalgorithmcfname}{loa}}
\usepackage{float}
\newfloat{framealgorithm}{tbp}{loa}[chapter]
\floatname{framealgorithm}{Algorithm}
\makeatletter
\let\c@foo\c@algorithm
\renewcommand{\fnum@framealgorithm}{{\bf  Algorithm~\theframealgorithm}\linespacing{1}}
\newcommand{\l@framealgorithm}{\@dottedtocline{1}{1.5em}{2.3em}}
\makeatother

\begin{document}
\listofalgorithms
\begin{algorithm}
Hello world!
\caption{Algorithm}
\end{algorithm}

\begin{framealgorithm}
Hello world from a Frame
\caption{Frame Algorithm}
\end{framealgorithm}

\end{document}

这是输出 代码输出

答案1

aliascnt包用于将其中一个计数器设为另一个计数器的别名。由于 algorithm2e 使用

\newcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}%

那么你必须对你的浮点数使用相同的设置

\newcommand\l@framealgorithm{\@dottedtocline{1}{1em}{2.3em}}

或者\l@algocf改用1.5em

完整示例:

\documentclass{book}
\usepackage{aliascnt}
\usepackage[lined,vlined,linesnumbered,algochapter,ruled]{algorithm2e} 
\usepackage{float}

\newcommand\listofalgorithmes{%
  \tocfile{\listalgorithmcfname}{loa}}

\newfloat{framealgorithm}{thbp}{loa}[chapter]
\floatname{framealgorithm}{Algorithm}

\makeatletter
\renewcommand\fnum@framealgorithm{%
  {\bfseries  Algorithm~\theframealgorithm}}
\newcommand\l@framealgorithm{\@dottedtocline{1}{1em}{2.3em}}
\let\c@framealgorithm\relax
\newaliascnt{framealgorithm}{\algocf@float}
\makeatother

\begin{document}
\listofalgorithms

\begin{algorithm}
Hello world!
\caption{Algorithm}
\end{algorithm}

\begin{framealgorithm}
Hello world from a Frame
\caption{Frame Algorithm}
\end{framealgorithm}

\begin{algorithm}
Hello world!
\caption{Algorithm two}
\end{algorithm}

\begin{framealgorithm}
Hello world from a Frame
\caption{Another frame Algorithm}
\end{framealgorithm}

\end{document}

第一页的图片:

在此处输入图片描述

相关内容