
Я пишу большую книгу, использую minitoc, чтобы разместить небольшое оглавление в начале каждой главы. Но выглядит ужасно.
Вместо этого я хотел бы разместить мини-документ на следующей странице.допервая страница главы. Например, если Глава 9 начинается на странице 503, то я бы хотел, чтобы мини-руководство для Главы 9 появилось на странице 502.
Я знаю, как очистить до четной страницы. Вопрос в том, что мне использовать вместо того, чтобы \minitoc
получить миниток дляследующийглаву, а не текущую?
Сопутствующий вопрос:Как разместить рисунок на титульном листе главы с правильной нумерацией?
решение1
Вы можете использоватьэтокдля этого используется механизм меток/ссылок для tocs.
\documentclass{book}
\usepackage{etoc}
\usepackage{blindtext}
\makeatletter
\newcommand*\cleartoevenpage {%
\clearpage
\if@twoside \ifodd \c@page \hbox {}\newpage
\if@twocolumn \hbox {}\newpage \fi
\fi \fi }
\makeatother
\begin{document}
\tableofcontents
% switch to article like style for table of contents
% (else they will start like chapters on odd numbered pages)
% would need adjustment in two-column mode
\etocarticlestyle
\renewcommand*\etocbeforetitlehook {\cleartoevenpage}
\tableofcontents\ref{toc:first}
\chapter{First}
\invisiblelocaltableofcontents\label{toc:first}
\section{Foo}
\blindtext[2]
\subsection{FooFoo}
\blindtext[5]
\subsubsection{FooFooFoo}
\blindtext[5]
\section{Foo2}
\blindtext[3]
\subsection{FooFoo2}
\blindtext[7]
\subsubsection{FooFooFoo2}
\blindtext[7]
\tableofcontents\ref{toc:bar}
\chapter{Bar}
\invisiblelocaltableofcontents\label{toc:bar}
\section{Bar}
\blindtext[2]
\subsection{BarBar}
\blindtext[5]
\subsubsection{BarBarBar}
\blindtext[5]
\tableofcontents\ref{toc:ear}
\chapter{Ear}
\invisiblelocaltableofcontents\label{toc:ear}
\section{Ear}
\blindtext[2]
\subsection{EarEar}
\blindtext[5]
\subsubsection{EarEarEar}
\blindtext[5]
\section{Ear2}
\blindtext[3]
\subsection{EarEar2}
\blindtext[7]
\subsubsection{EarEarEar2}
\blindtext[7]
\tableofcontents\ref{toc:fur}
\chapter{Fur}
\invisiblelocaltableofcontents\label{toc:fur}
\section{Fur}
\blindtext[2]
\subsection{FurFur}
\blindtext[5]
\subsubsection{FurFurFur}
\blindtext[5]
\end{document}
Скриншоты:
решение2
Ну, это несколько скрытая функция, но minitoc
она обеспечивает команду \adjustmtc
, которая предназначена для отмеченных звездочкой глав и т. д., т. е. для случая, когда счетчик mtc отключился на единицу.
Эту команду можно «неправильно» использовать для предоставления мини-документа для следующей главы.
Команда \adjustmtc[n]
описана на странице 34 текущего руководства minitoc
. Необязательный аргумент содержит число для minitocs
увеличения (по умолчанию n=1
)
\documentclass{book}
\usepackage{minitoc}
\usepackage{blindtext}
\setcounter{minitocdepth}{3}
\setcounter{secnumdepth}{3}
\dominitoc
\begin{document}
\tableofcontents
\markboth{}{}
\clearpage
\adjustmtc
\minitoc
\chapter{First}
\section{Foo}
\blindtext[2]
\subsection{FooFoo}
\blindtext[5]
\subsubsection{FooFooFoo}
\blindtext[5]
\chapter{Foobar}
\end{document}
Обратите внимание: \setcounter...
операторы предназначены только для заполнения minitoc
и т. д. определенного количества записей — они не важны для функциональности.
Обновлять(с частью \cleartoevenpage
кода из ответа `jfbu!)
Теперь это работает автоматически, т.е. \chapter
добавляется minitoc
на четную страницу раньше.
\documentclass{book}
\usepackage{xparse}
\usepackage{minitoc}
\setcounter{tocdepth}{5}
\usepackage{blindtext}
\setcounter{minitocdepth}{3}
\setcounter{secnumdepth}{3}
\makeatletter
\let\latex@chapter\chapter
\newcommand*\cleartoevenpage {%
\clearpage
\if@twoside \ifodd \c@page \hbox {}\newpage
\if@twocolumn \hbox {}\newpage \fi
\fi \fi
}
% Automatic addition of minitoc
\RenewDocumentCommand{\chapter}{som}{%
\def\@@chaptertitlefortoc{#3}%
\IfValueTF{#2}{%
\def\@@chaptertitlefortoc{#2}%
}%
\IfBooleanTF{#1}{%
\latex@chapter*{#3}
}{%
\cleartoevenpage
\markboth{}{}%
\ifnum\value{chapter} = 0
\adjustmtc
\fi
\minitoc
\latex@chapter[\@@chaptertitlefortoc]{#3}
}
}
\makeatother
\dominitoc
\begin{document}
\tableofcontents
\chapter{First}
\section{Foo}
\blindtext[2]
\subsection{FooFoo}
\blindtext[5]
\subsubsection{FooFooFoo}
\blindtext[5]
\chapter{Foobar}
\blindtext[5]
\section{Foo}
\blindtext[5]
\chapter{Foobar other}
\blindtext[5]
\section{Other Foo}
\blindtext[5]
\end{document}