增加同一章节算法列表中不同算法之间的间距

增加同一章节算法列表中不同算法之间的间距

在下面的结果中

在此处输入图片描述

来自 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}

在此处输入图片描述

相关内容