在下面的结果中
来自 MWE
\documentclass[12pt]{book}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@chapter}% <cmd>
{\chaptermark{#1}}% <search>
{\chaptermark{#1}%
\addtocontents{loa}{\protect\addvspace{10\p@}}}% replace
{}{}% <success><failure>
\makeatother
\usepackage[chapter]{algorithm}% http://ctan.org/pkg/algorithms
\begin{document}
\tableofcontents
\listofalgorithms
\chapter{A chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\chapter{A chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\end{document}
(图和 MWE 均来自https://tex.stackexchange.com/a/88563/11886) 我希望项目 1.1 和 1.2(位于同一章/节)以及项目 2.1 和 2.2(位于同一章/节,但与前一个不同)之间留出更多空间。我不希望文档中其他任何地方的行距发生变化。
答案1
如果每个环境只有一个\caption
用途,algorithm
则需要额外的
\addtocontents{loa}{\protect\addvspace{\insanelyhugespacebetweenalgorithms}}
\AtEndEnvironment
在环境末尾插入会在条目algorithm
之间添加更多空间loa
。
为了更容易地改变空间,我为此定义了两种长度:
\newlength\insanelyhugespacebetweenchapters
\newlength\insanelyhugespacebetweenalgorithms
\setlength{\insanelyhugespacebetweenchapters}{15pt}
\setlength{\insanelyhugespacebetweenalgorithms}{5pt}
当然,当前值是可以改变的。
照这样下去,最后一条loa
记录将添加一个额外的空格,但是,这可能会导致分页符List of Algorithms
。通常,无论如何都会有分页符,所以这不是什么大问题。
\documentclass[12pt]{book}
\usepackage{etoolbox}
\newlength\insanelyhugespacebetweenchapters
\newlength\insanelyhugespacebetweenalgorithms
\setlength{\insanelyhugespacebetweenchapters}{15pt}
\setlength{\insanelyhugespacebetweenalgorithms}{5pt}
\makeatletter
\patchcmd{\@chapter}% <cmd>
{\chaptermark{#1}}% <search>
{\chaptermark{#1}%
\addtocontents{loa}{\protect\addvspace{\insanelyhugespacebetweenchapters}}}% replace
{}{}% <success><failure>
\makeatother
\AtEndEnvironment{algorithm}{%
\addtocontents{loa}{\protect\addvspace{\insanelyhugespacebetweenalgorithms}}%
}
\usepackage[chapter]{algorithm}% http://ctan.org/pkg/algorithms
\begin{document}
\tableofcontents
\listofalgorithms
\chapter{A chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\chapter{A chapter}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\begin{algorithm}\caption{An algorithm}\end{algorithm}
\end{document}