Cómo eliminar \cleardoublepage dentro de \mainmatter en KOMA Script

Cómo eliminar \cleardoublepage dentro de \mainmatter en KOMA Script

Tengo entendido que el \mainmattercomando contiene \cleardoublepage. Quiero que el primer capítulo comience en la página siguiente al final de la "Introducción 2" sin páginas en blanco entre ellas. Actualmente hay dos páginas en blanco, al menos una de las cuales se debe a \mainmatter.

La otra página en blanco parece deberse a

\makeatletter
\@openrightfalse
\makeatother

, que uso para que la "Introducción 2" siga inmediatamente a la "Introducción 1" sin ninguna página en blanco. Pero restablecer esto a la normalidad con

\makeatletter
\@openrighttrue
\makeatother

no ayuda a mi problema.

El comando de \let\cleardoublepage=\clearpagetampoco me ha ayudado. Un comando alternativo que no borre ninguna página podría resultar útil en este caso.

El siguiente MWE produce dos páginas en blanco entre la Introducción 2 y el Primer Capítulo. Quiero que no haya páginas en blanco.

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}

Respuesta1

La definición original de \mainmatteren clase scrbookes

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

\pagenumbering{arabic}restablece el contador de páginas a 1. Este es un número impar y los números de página impares deben estar en las páginas correctas. Por lo tanto, \cleardoubleoddpagese utiliza para garantizar que la página con el número impar 1 sea la página correcta. Por lo tanto, no es posible comenzar el asunto principal con la página número 1 en la página de la izquierda.

Entonces, si desea utilizar \mainmatterun documento de dos caras con capítulos que comienzan en las páginas de la izquierda, habrá al menos una página en blanco (la página derecha con el número impar 1) antes del primer capítulo en el tema principal.


Podrías redefinir \mainmatterpara usar \clearpagey no cambiar el sistema de numeración de páginas:

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

Si el documento debe tener números de página en árabe, también puede utilizarlos \frontmatter\pagenumbering{arabic}o redefinirlos \frontmatter:

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

¿Pero realmente necesitas \frontmattery \mainmatter?

Ejemplo:

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

También puede redefinir \mainmatterpara comenzar en una página par. Luego debes cambiar el número de página de la primera página en el asunto principal a un número par, por ejemplo 0 o 2. Pero luego hay una página con el número 0 o falta la página 1... Feo. Por eso no recomiendo el siguiente fragmento de código.

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

información relacionada