
Я использую 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. Проблема в том, чтосписок рисунковне вставляет пробел между рисунками в последней («неотмеченной») главе и рисунками в Приложении:
Как мне обеспечить наличие пробела между списком рисунков в последней главе и списком рисунков в Приложении в listoffigures?
решение1
В начале приложения вставьте следующую строку:
\addtocontents{lof}{\vspace{\baselineskip}}
(или другой размер по желанию).
Изменения, такие как добавление пробелов между записями, разрывы страниц, изменения длины страницы ( \enlargethispage
), могут быть вставлены с помощью \addtocontents
команды. Первый аргумент указываеткоторыйсписок: toc
, lof
, lot
. Второй аргумент задает команду(ы), которую нужно вставить.
Если вставка должна быть примененадоглава, а главы - это \include
d,\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
Таким образом, мы могли бы добавить такой же высокий пробел, как пробелы, добавленные перед началом списка рисунков других глав в Списке рисунков, и он автоматически проверит, следует ли добавлять пробелы вверху или в других местах страницы.