章节标题和算法如何正确书写?

章节标题和算法如何正确书写?

\usepackage[ruled]{algorithm2e}我正在 overleaf 上撰写博士论文,但每当我插入算法包时,章节标题就会消失,并且算法会以良好的格式显示。每当我删除包时\usepackage[ruled]{algorithm2e},算法就会以错误的格式显示,而标题会以良好的格式显示。

任何有此链接的人都可以编辑此项目 https://www.overleaf.com/9127796831jszrmzbxmfyn 任何有此链接的人都可以查看此项目 https://www.overleaf.com/read/zswrfmqdbpft

您可以通过上面的链接访问背面的文件。请转到conclusion.tex查看第 3 章中的更改并转到main.tex软件包更改的文件。

答案1

您的设置目前存在的问题是类\@chapter内部的重新定义book.cls。通常\@chapter定义为采用参数 - 第一个是可选的,第二个是强制的(取自book.cls):

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                       \else
                         \addcontentsline{toc}{chapter}{#1}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}

您的课程已修改,\@chapter以便参数:

\def\@chapter[#1]#2#3{\ifnum \c@secnumdepth >\m@ne %%%Changed by Rajarshi
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#2}%
                       \else
                         \addcontentsline{toc}{chapter}{#2}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#2}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#1}]%
                    \else
                      \@makechapterhead{#3}%
                      \@afterheading
                    \fi}

Rajarshi 肯定有什么想法...:)

algorithm2e利用\@chapter算法列表 (LoA) 插入内容,但不会保留-参数定义\@chapter。这是里面的定义algorithm2e.sty

\def\@chapter[#1]#2{\algocf@original@chapter[#1]{#2}\addtocontents{loa}{\protect\addvspace{10\p@}}}% 

这必须改为

\def\@chapter[#1]#2#3{\algocf@original@chapter[#1]{#2}{#3}\addtocontents{loa}{\protect\addvspace{10\p@}}}% 

这样就可以正确捕获第三个参数。

还有更多问题,但这至少解决了\chapters 的问题。

相关内容