У меня небольшая проблема с пользовательским стилем главы в классе мемуаров. Я хочу, чтобы названия глав вели себя как части, т. е. чтобы заголовок был на отдельной странице.
Я могу сделать это так:
\makechapterstyle{emmanuel}{%
\chapterstyle{ger}
\renewcommand{\afterchaptertitle}{\cleardoublepage}
}
Проблема в том, что в оглавлении номер страницы, отображаемый для главы, соответствует номеру следующей страницы. Я так понимаю, это из-за того, что глава на самом деле начинается прямо перед страницей (n+2), но я бы хотел, чтобы она начиналась с заголовка страницы (т.е. n)
Надеюсь, это достаточно ясно.
решение1
Вы можете переопределить внутреннюю \@chapter
команду, чтобы включить \cleardoublepage
ее в соответствующее место (если вы сделаете это слишком рано, для оглавления будет выбран неправильный номер страницы):
\documentclass{memoir}
\usepackage{hyperref}
\usepackage{lipsum}% just to generate text for the example
\makeatletter
\newcommand\chapterclear{
\gdef\@chapter[##1]##2{%
\m@mpn@new@chaptrue%
\m@mpn@new@schapfalse%
\def\f@rbdy{##2}%
\ifx\ch@pt@c\@empty % no optional args
\def\f@rtoc{##2}%
\def\f@rhdr{##2}%
\else % at least one opt arg
\let\f@rtoc\ch@pt@c
\ifx\@empty##1\@empty
\let\f@rhdr\ch@pt@c
\else
\def\f@rhdr{##1}%
\fi
\fi
\m@m@Andfalse
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\m@m@Andtrue
\fi
\fi
\ifm@m@And
\refstepcounter{chapter}%
\fi
\ifartopt
\@makechapterhead{##2}%
\@afterheading
\chaptermark{\f@rhdr}%
\else
\chaptermark{\f@rhdr}
\insertchapterspace
\if@twocolumn
\@topnewpage[\@makechapterhead{##2}]%
\else
\@makechapterhead{##2}%
\fi
\@afterheading
\fi
\ifm@m@And
\ifanappendix
\addcontentsline{toc}{appendix}{%
\protect\chapternumberline{\thechapter}\f@rtoc}%
\memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{##2}%
\else
\addcontentsline{toc}{chapter}{%
\protect\chapternumberline{\thechapter}\f@rtoc}%
\memchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{##2}%
\fi
\else
\addcontentsline{toc}{chapter}{\f@rtoc}%
\ifanappendix
\memappchapinfo{}{\f@rtoc}{\f@rhdr}{##2}%
\else
\memchapinfo{}{\f@rtoc}{\f@rhdr}{##2}%
\fi
\fi
\ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi
\cleardoublepage}%
}
\makeatother
\makechapterstyle{emmanuel}{
\chapterstyle{ger}
\chapterclear
}
\begin{document}
\tableofcontents
\chapterstyle{emmanuel}
\chapter{Test}
\lipsum[1-10]
\chapter{Test}
\lipsum[1-10]
\end{document}