Como remover o \cleardoublepage dentro do \mainmatter no KOMA Script

Como remover o \cleardoublepage dentro do \mainmatter no KOMA Script

Meu entendimento é que o \mainmattercomando contém \cleardoublepage. Quero que o primeiro capítulo comece na próxima página após o final da "Introdução 2", sem páginas em branco entre eles. Atualmente, existem duas páginas em branco, pelo menos uma das quais é devido a \mainmatter.

A outra página em branco parece ser devido a

\makeatletter
\@openrightfalse
\makeatother

, que uso para que "Intro 2" siga imediatamente "Intro 1" sem nenhuma página em branco. Mas redefinir isso de volta ao normal com

\makeatletter
\@openrighttrue
\makeatother

não ajuda no meu problema.

O comando de \let\cleardoublepage=\clearpagetambém não me ajudou. Um comando alternativo que não limpa nenhuma página pode ser útil aqui.

O MWE a seguir produz duas páginas em branco entre a Introdução 2 e o Primeiro Capítulo. Quero que haja zero páginas em branco.

MWE:

%XeLaTeX
\documentclass[11pt]{scrbook}
\usepackage[
    inner=0.5in,
    outer=0.5in,
    twoside,
    showframe
    ]{geometry}
\usepackage{scrlayer-scrpage} 
\usepackage{lipsum}

\begin{document}

\frontmatter

\tableofcontents

\addchap{intro 1}
\lipsum[1]

%make chapter open on left-side (or any side)
%reset it before the next chapter
\makeatletter
\@openrightfalse
\makeatother

\addchap{intro 2}
\lipsum[2-14]

%reset to opening chapter on right-side
%\makeatletter
%\@openrighttrue
%\makeatother

%\let\cleardoublepage=\clearpage
\KOMAoptions{open=left}%I need all chapters from now on to start on left page
\mainmatter

\chapter{First Chapter}

\end{document}

Responder1

A definição original de \mainmatterem classe scrbooké

\newcommand*\mainmatter{%
  \if@twoside\cleardoubleoddpage\else\clearpage\fi
  \@mainmattertrue\pagenumbering{arabic}%
}

\pagenumbering{arabic}redefine o contador de páginas para 1. Este é um número ímpar e os números de páginas ímpares devem estar nas páginas certas. Portanto, \cleardoubleoddpageé usado para garantir que a página com o número ímpar 1 seja uma página correta. Portanto, não é possível iniciar o assunto principal com a página número 1 na página esquerda.

Portanto, se você quiser usar \mainmatterum documento frente e verso com capítulos começando nas páginas da esquerda, haverá pelo menos uma página em branco (a página da direita com número ímpar 1) antes do primeiro capítulo do assunto principal.


Você poderia redefinir \mainmatterpara usar \clearpagee não alterar o sistema de numeração de páginas:

\makeatletter
\renewcommand*\mainmatter{%
  \clearpage
  \@mainmattertrue
}
\makeatother

Se houver números de páginas em árabe no documento, você também poderá usar \frontmatter\pagenumbering{arabic}ou redefinir \frontmatter:

\renewcommand*{\frontmatter}{%
  \if@twoside\cleardoubleoddpage\else\clearpage\fi
  \@mainmatterfalse
}

Mas você realmente precisa \frontmattere \mainmatter?

Exemplo:

\documentclass[11pt]{scrbook}
\usepackage[
  inner=0.5in,
  outer=0.5in,
  twoside,
  showframe
  ]{geometry}
\usepackage{scrlayer-scrpage} 
\usepackage{lipsum}

%\makeatletter
%\renewcommand*{\frontmatter}{%
  %\if@twoside\cleardoubleoddpage\else\clearpage\fi
  %\@mainmatterfalse
%}
%\renewcommand*\mainmatter{%
  %\clearpage
  %\@mainmattertrue
%}
%\makeatother

\begin{document}
%\frontmatter
\tableofcontents
\addchap{intro 1}
\lipsum[1]

\KOMAoptions{open=any}% make chapter open on any side
\addchap{intro 2}
\lipsum[2-14]
%\KOMAoptions{open=right}% reset to opening chapter on right-side

\KOMAoptions{open=left}%I need all chapters from now on to start on left page
%\mainmatter
\chapter{First Chapter}
\end{document}

Você também pode redefinir \mainmatterpara começar em uma página par. Então você deve alterar o número da primeira página no assunto principal para um número par, por exemplo, 0 ou 2. Mas então há uma página com o número 0 ou falta a página 1 ... Feio. Portanto, não recomendo o seguinte trecho de código

\makeatletter
\renewcommand*\mainmatter{%
  \cleardoubleevenpage
  \@mainmattertrue\pagenumbering{arabic}%
  \setcounter{page}{0}% or another even page number
}
\makeatother

informação relacionada