algorithm2e 与回忆录类

algorithm2e 与回忆录类

我使用类memoir,并使用包包含算法algorithm2e。我希望在目录中有一个条目,例如“算法列表”。我在文档中看到algorithm2e我必须使用该dotocloa选项,但是,当我将其与回忆录类一起使用时,我收到以下错误:

! Undefined control sequence.
\listofalgorithms ->\tocfile 
                             {\listalgorithmcfname }{loa}
l.13 \listofalgorithms

重现该错误的最小文档是:

\documentclass{memoir}
\usepackage[dotocloa]{algorithm2e}

\begin{document}
    \tableofcontents
    \pagebreak
    \listofalgorithms
    Test
    \begin{algorithm}
        \caption{Foo}
    \end{algorithm}
\end{document}

如果我将文档类别更改为书籍,它就可以工作...有人知道问题是什么吗?

答案1

消除错误的一个简单方法是定义\tocfile命令。下面给出了一个修复版本:

\documentclass{memoir}

\makeatletter
\newcommand{\tocfile}[2]{%
 \begingroup%
 \chapter*{#1}%
 \addcontentsline{toc}{chapter}{\listalgorithmcfname}%
 \@starttoc{#2}%
 \endgroup%
}
\makeatother

\usepackage[dotocloa]{algorithm2e}
\usepackage{blindtext}

\begin{document}
    \tableofcontents
    \listofalgorithms

\chapter{Test}    

\blindtext

\begin{algorithm}
\caption{Foo}
\end{algorithm}

\blindtext

\end{document}

\tocfile输入两个参数并设置算法列表该宏完成了以下过程:

  1. 第一个参数是要设置的标题\chapter*{}
  2. 包括文件的扩展名,其中算法列表被写入名为的辅助文件\jobname.loa

相关内容