目前,我正在使用algorithmic
和algorithm
包在我的论文中使用该类来生成算法mythesis
。
我尝试过简单地使用\listofalgorithms
,但它没有提供与我的图表/表格列表相同的格式,并且它没有添加到目录中。
我进入类文件并找到了与图表相关的代码:
%
% List of figures
%
\def\textofLoF#1{\gdef\@textofLoF{#1}} \textofLoF{List of Figures}
\def\listoffigures{\chapter*{\@textofLoF\@mkboth{}{}}
\thispagestyle{plain}
\addcontentsline{toc}{chapter}{\protect\@textofLoF}
{\let\footnotemark\relax % in case one is in the title
\@starttoc{lof}
}
}
%
因此我尝试在课堂上复制此操作以获得算法列表:
% List of algorithms
%
\def\textofLoAl#1{\gdef\@textofLoAl{#1}} \textofLoAl{List of Algorithms}
\def\listofalgorithms{\chapter*{\@textofLoAl\@mkboth{}{}}
\thispagestyle{plain}
\addcontentsline{toc}{chapter}{\protect\@textofLoAl}
{\let\footnotemark\relax % in case one is in the title
\@starttoc{loal}
}
}
但现在我得到了错误:
!LaTeX 错误:命令 \listofalgorithms 已定义。 或者名称 \end... 非法,请参阅手册第 192 页。
\listofalgorithms
我认为这是由于某个包中已经定义的冲突造成的。因此,我尝试\listofalgorithms
在前面的代码中用替换\listofalgs
,编译成功,但算法列表为空。
我注意到我的文件目录中,编译后有一个名为的文件Thesis.lof
,其中包含所有图形的列表,还有一个Thesis.loal
,但这个文件是空的。我不知道 TeX 如何填充这个Thesis.lof
文件,有人知道吗?有了这些知识,我应该能够将其复制到算法列表中。
答案1
您的设置存在问题,因为您正在将 添加到\listofalgorithms
。mythesis.cls
这意味着\listofalgorithms
在加载类时会定义
\documentclass[..]{mythesis}
随后你加载algorithm
尝试\listofalgorithms
通过创建\newcommand
,但失败了。
相反,使用
\def\textofLoAl#1{\gdef\@textofLoAl{#1}}
\textofLoAl{List of Algorithms}
\AtBeginDocument{%
\def\listofalgorithms{%
\chapter*{\@textofLoAl}
\@mkboth{}{}%
\thispagestyle{plain}
\addcontentsline{toc}{chapter}{\protect\@textofLoAl}%
{\let\footnotemark\relax % in case one is in the title
\@starttoc{loa}
}%
}}
这应该会将您的\def
开始延迟至\begin{document}
。
请注意,自从包将算法写入文件\@starttoc{loa}
以来,我一直使用,而不是文件。algorithm
\caption
.loa
.loal
理想情况下,不应直接修改.cls
。相反,应将修改写入单独的样式文件中,或作为前言的一部分(可能用\makeatletter
...\makeatother
对包装它)。