我使用类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
输入两个参数并设置算法列表该宏完成了以下过程:
- 第一个参数是要设置的标题
\chapter*{}
。 - 包括文件的扩展名,其中算法列表被写入名为的辅助文件
\jobname.loa
。