Отсутствие разрыва между главами в списке рисунков

Отсутствие разрыва между главами в списке рисунков

Я использую tufte-book и включаю (девять) отдельных глав и Приложение, которое я набираю как (помечено звездочкой) \chapter*{Приложение} (потому что я не хочу, чтобы оно было пронумеровано как глава).

Ниже приведен не 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.2 в Главе 1; 2.1, 2.2 в Главе 2 и т. д., а также A.1, A.2 и т. д. в Приложении.

В наборе \listoffigures есть (правильно) пробел между списком рисунков в каждой отдельной главе, т. е. между Главой 1 и Главой 2. Проблема в том, чтосписок рисунковне вставляет пробел между рисунками в последней («неотмеченной») главе и рисунками в Приложении:

нет пробела между Главой 9 и Приложением в списке рисунков

Как мне обеспечить наличие пробела между списком рисунков в последней главе и списком рисунков в Приложении в listoffigures?

решение1

В начале приложения вставьте следующую строку:

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

(или другой размер по желанию).

Изменения, такие как добавление пробелов между записями, разрывы страниц, изменения длины страницы ( \enlargethispage), могут быть вставлены с помощью \addtocontentsкоманды. Первый аргумент указываеткоторыйсписок: toc, lof, lot. Второй аргумент задает команду(ы), которую нужно вставить.

Если вставка должна быть примененадоглава, а главы - это \included,\addtocontents долженбыть помещены в файл с \chapterкомандой, поскольку \includeотложат такую ​​команду до тех пор, пока включенный файл не будет полностью обработан, в результате чего добавленный материал появится позже, чем предполагалось.

Порядок всегда важен. В данном случае \addtocontentsможет быть вставлен в любое время перед первым рисунком в приложении, но лучше всего поместить его в начале приложения (главы), чтобы его можно было легко найти, если позже потребуется внести изменения.

решение2

Вертикальный пробел автоматически добавляется при вызове \chapter, как видно из его определения вbook.clsиreport.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

Таким образом, мы могли бы добавить такой же высокий пробел, как пробелы, добавленные перед началом списка рисунков других глав в Списке рисунков, и он автоматически проверит, следует ли добавлять пробелы вверху или в других местах страницы.

Связанный контент