图表列表中缺少章节间分隔符

图表列表中缺少章节间分隔符

我正在使用 tufte-book,其中包括(九)个独立章节和一个附录,我将其排版为(带星号的) \chapter*{Appendix}(因为我不想将其编号为章节)。

以下不是 MWE,但给出了我的文档的核心结构:

\documentclass[twoside,symmetric]{tufte-book}
\begin{document}
.
.
.

\include{PaPCh1}  
.
.
.
\include{PaPCh9} 
\include{PaPApp}
.
.
.
\listoffigures
.
.
.

附录源代码 PaPApp.tex 的起始位置为:

\chapter*{Appendix} \addcontentsline{toc}{chapter}{Appendix} 

\renewcommand{\thesection}{\Alph{section}}

\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}

\renewcommand{\thefigure}{A\arabic{figure}}

排版文档的大部分内容都很好,第 1 章中的图正确编号为 1.1、1.2;第 2 章中的图正确编号为 2.1、2.2 等,附录中的图正确编号为 A.1、A.2 等。

在 \listoffigures 的排版中,每个章节的图表列表之间(即第 1 章和第 2 章之间)都有一个空格(这是正确的)。问题是图片列表未能在最后一章(“无星号”)的图表和附录中的图表之间插入空格:

图表列表中第 9 章和附录之间没有空格

如何确保图表列表中最后一章的图表列表和附录中的图表列表之间有空格?

答案1

在附录的开头插入以下行:

\addtocontents{lof}{\vspace{\baselineskip}}

(或根据需要的其他尺寸)。

\enlargethispage可以使用该命令插入修改,例如在条目之间添加空格、分页符、更改页面长度 ( ) \addtocontents。第一个参数指定哪个列表:toc,,loflot第二个参数给出要插入的命令。

如果要应用插入一章,各章为\included,\addtocontents 必须使用该命令将其放置在文件中\chapter,因为\include将推迟这样的命令,直到包含的文件被完全处理为止,结果是添加的材料将比预期的更晚出现。

顺序始终很重要。在本例中,\addtocontents可以在附录中第一个图之前的任何时间插入,但最好将其放在附录(章节)的开头附近,以便以后需要更改时可以轻松找到它。

答案2

调用时会自动添加垂直空间\chapter,从其定义中可以看出book.clsreport.cls

\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
                        \thispagestyle{plain}%
                        \global\@topnum\z@
                        \@afterindentfalse
                        \secdef\@chapter\@schapter}
    \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@}}% <-- Gap in LoF
                        \addtocontents{lot}{\protect\addvspace{10\p@}}% <-- Gap in LoT
                        \if@twocolumn
                          \@topnewpage[\@makechapterhead{#2}]%
                        \else
                          \@makechapterhead{#2}%
                          \@afterheading
                        \fi}

因此,我们应该在附录的开头插入以下代码

\makeatletter
\addtocontents{lof}{\protect\addvspace{10\p@}}% <-- Gap in LoF
\addtocontents{lot}{\protect\addvspace{10\p@}}% <-- Gap in LoT
\makeatother

由于10\p@等同于10pt,因此代码可以简化如下:

\addtocontents{lof}{\protect\addvspace{10pt}}% <-- Gap in LoF
\addtocontents{lot}{\protect\addvspace{10pt}}% <-- Gap in LoT

通过这种方式,我们可以在图表列表中添加与开始列出其他章节的图表之前添加的空格相同的高空格,并且它将自动检查是否在页面的顶部或其他地方添加空格。

相关内容