生成算法列表时,命令\listofalgorithms
会自动在章节中最后一个算法标题后插入 10pt vspace
。我需要删除这个垂直空间,以便所有章节中的所有算法都垂直对齐。
答案1
这源于\@chapter
对algorithm2e
:
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname @chapter\endcsname\relax\else
\let\algocf@original@chapter=\@chapter%
\def\@chapter[#1]#2{\algocf@original@chapter[#1]{#2}\addtocontents{loa}{\protect\addvspace{10\p@}}}%
\fi
它将其存储\@chapter
然后重新定义为\addvspace{10\p@}
类似于传统方式章节在 LoF/LoT 中的图形/表格之间插入空格。
为了避免这种情况,请algorithm2e
按以下方式加载:
\makeatletter
\let\old@chapter\@chapter% Store \@chapter
\usepackage[<opts>]{algorithm2e}
\let\@chapter\old@chapter% Restore \@chapter
\makeatother
这是一个简单的例子没有上面的代码:
...和和:
\documentclass{report}
\makeatletter
\let\old@chapter\@chapter% Store \@chapter
\usepackage{algorithm2e}
\let\@chapter\old@chapter% Restore \@chapter
\makeatother
\begin{document}
\listofalgorithms
\chapter{First chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\chapter{Second chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\chapter{Last chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\end{document}
注释掉添加的部分并重新编译两次即可在两者之间切换。