我使用我们学院提供的基于的文档类来撰写我的学士论文scrbook
。我使用伪代码并将algorithm2e
其放在附录中,因为否则它们会“打断”我引用它们的文本的阅读(它们占了 4 页)。
我的论文有 7 章,不包括参考文献和附录。算法在其标题中编号为7.1
,7.2
等等。我希望它们被编号为1
,,2
...
在谷歌搜索后,我发现了如何添加章节编号到标题,然而,这些都不是我自己写的(至少不是我自己写的)。我怎么知道algorithm2e
不是包括章节编号,因为附录不应该被视为我最后一章的一部分?
由于我使用的文档类中可能已明确启用章节编号:类文件中的哪些命令可能是问题所在?请注意,所有带有标题的浮点数(图形、定理等)都有章节编号(但一般情况下这是可以的,除了附录中的算法)。
我使用以下选项:
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}
答案1
如果没有 MWE 或自定义类,则使用chngcntr
包在最后一章之后重置计数器\algocf@float
(实际上是一个宏)可能会起作用。
\documentclass{scrbook}
\usepackage{algorithm2e}
\usepackage{chngcntr}
\makeatletter
\counterwithin{\algocf@float}{chapter}% maybe part of your custom class
\newcommand*{\algowithoutchap}{%
\counterwithout{\algocf@float}{chapter}%
}
\makeatother
\begin{document}
\chapter{foo}
Some text.
\chapter*{Appendix}
\algowithoutchap
\begin{algorithm}
\uIf{1}{if...}%
\Else{else... \\ \If{1}{if...}}%
\caption{An algorithm}
\end{algorithm}
\end{document}