我正在写论文,我有几个算法(使用 algorithm2e)想列在附录中,但我不想另起一页。此外,我的 listoffigures 目前创建的是部分,而不是章节,我的参考书目也是如此。
因此我想对 listofalgorithms 做同样的事情,但我无法正确地更改它。这是图列表的更改方式:
\renewcommand{\listoffigures}{%
\@cfttocstart
\par
\begingroup
\parindent\z@ \parskip\cftparskip
\section{\listfigurename}
\@starttoc{lof}%
\endgroup
\@cfttocfinish%
}%
我曾尝试不将其从章节更改为章节,而是将章节的布局更改为章节,但我无法完美地做到这一点,因为我无法更改标题后的跳过距离。
这几乎看起来是正确的:
\renewcommand\listalgorithmcfname{\thesection\hspace{3mm}List of Algorithms}
\begingroup
\let\cleardoublepage\relax % book
\let\clearpage\relax % report
\titleformat{\chapter} [hang] {\Large\bfseries\sffamily} {\thesection} {1em} {}
\listofalgorithms
\endgroup
我尝试了类似线程的建议,但他们使用其他算法包,所以我认为 algorithm2e 以不同的方式处理事情。
任何帮助都将受到赞赏。
编辑:@Werner:我无法告诉你原因,但它不起作用。也许它实际上没有使用章节,我不确定。它从新页面开始,缩进与章节标题相同。
这是一个 MWE:
\documentclass{report}
\usepackage{algorithm2e}
\begin{document}
\begin{algorithm}
\caption{Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}
答案1
我遇到了同样的问题,但在网上找不到解决方案,所以我打开algorithm2e.sty
并深入研究。实际上有一个未记录的功能可以做到这一点。
我只是想C-s在整个文件中寻找“章节”,直到我发现一些有趣的东西,然后我就这么做了:
\ifx\l@chapter\undefined\let\algocf@seclistalgo=\section\else\let\algocf@seclistalgo=\chapter\fi
% /!\ this is not part of the solution, it just explains how I found it.
所以这意味着写作
\makeatletter
\let\l@chapter=\undefined
\makeatother
在打电话之前\usepackage[…]{algorithm2e}
就可以很好地完成这个任务:)。
另一种解决方案是直接调用\@starttoc
,知道算法列表是 toc loa
:
\section*{List of Algorithms} % or whatever is preferred
\makeatletter
\@starttoc{loa}
\makeatother
答案2
最简单的就是让它\chapter
等同于\section
:
\begingroup
\let\chapter\section% Make \chapter equivalent to \section
\listofalgorithms
\endgroup
更新\chapter
是暂时的,直到\listofalgorithms
完成为止。