\listofalgorithms
我在文档中使用\documentclass{amsbook}
。由于某种原因,两者似乎发生冲突。当我运行 时pdflatex
,我收到以下错误消息:
(./main.loa
! Undefined control sequence.
\@dottedtocline ... \hbox {$\m@th \mkern \@dotsep
mu\hbox {.}\mkern \@dotsep...
l.1 ...uction algorithm.\relax }}{11}{algorithm.1}
?
下面是产生错误代码的最小片段。如果注释掉\listofalgorithms
代码,在 下编译就没问题pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
。哦,我在 第二次运行 pdflatex 时也遇到了错误,那是在 之后LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
。
\documentclass[12pt,a4paper]{amsbook}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\title{Example}
\begin{document}
\maketitle
\listofalgorithms
\chapter{Introduction}
This is about homotopy theory.
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{ComputeY}{$X$}
\State \Return $Y$
\EndProcedure
\end{algorithmic}
\caption{Algorithm.}
\label{algo:algo1}
\end{algorithm}
\end{document}
您知道可能是什么问题吗?
答案1
ams 文档类将“任意”列表与基本文档类中的定义区别对待,因此一些附加包(比如用于算法的包)遵循该类的方法book
。
如果您将这些定义添加到序言中,算法列表的形式应该与amsbook
做事的方式兼容。
\makeatletter
\renewcommand{\listofalgorithms}{\@starttoc{loa}{List of Algorithms}}
\let\l@algorithm=\l@figure
\makeatother