如何向 mythesis.cls 添加算法列表?

如何向 mythesis.cls 添加算法列表?

目前,我正在使用algorithmicalgorithm包在我的论文中使用该类来生成算法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

您的设置存在问题,因为您正在将 添加到\listofalgorithmsmythesis.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对包装它)。

相关内容