Глава в мемуарах не отображается правильно в оглавлении

Глава в мемуарах не отображается правильно в оглавлении

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

Я могу сделать это так:

\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}

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