So entfernen Sie \cleardoublepage innerhalb von \mainmatter in KOMA Script

So entfernen Sie \cleardoublepage innerhalb von \mainmatter in KOMA Script

Nach meinem Verständnis \mainmatterenthält der Befehl \cleardoublepage. Ich möchte, dass das erste Kapitel auf der Seite beginnt, die dem Ende von „Intro 2“ folgt, ohne leere Seiten dazwischen. Derzeit sind zwei leere Seiten vorhanden, von denen mindestens eine auf zurückzuführen ist \mainmatter.

Die andere leere Seite scheint zu sein durch

\makeatletter
\@openrightfalse
\makeatother

, die ich verwende, damit "Intro 2" direkt auf "Intro 1" folgt, ohne dass eine leere Seite erscheint. Aber wenn ich dies wieder auf den Normalwert zurücksetze mit

\makeatletter
\@openrighttrue
\makeatother

hilft meinem Problem nicht.

Auch der Befehl von \let\cleardoublepage=\clearpagehat mir nicht geholfen. Ein alternativer Befehl, der keine Seiten löscht, könnte hier hilfreich sein.

Das folgende MWE ergibt zwei leere Seiten zwischen Intro 2 und dem ersten Kapitel. Ich möchte, dass es keine leeren Seiten gibt.

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}

Antwort1

Die ursprüngliche Definition von „ \mainmatterin class“ scrbooklautet

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

\pagenumbering{arabic}setzt den Seitenzähler auf 1 zurück. Dies ist eine ungerade Zahl und ungerade Seitenzahlen müssen auf rechten Seiten stehen. \cleardoubleoddpageWird daher verwendet, um sicherzustellen, dass die Seite mit der ungeraden Seitenzahl 1 eine rechte Seite ist. Es ist also nicht möglich, den Hauptteil mit der Seitenzahl 1 auf einer linken Seite zu beginnen.

Wenn Sie es also in einem zweiseitigen Dokument verwenden möchten \mainmatter, dessen Kapitel auf den linken Seiten beginnen, befindet sich vor dem ersten Kapitel im Hauptteil mindestens eine leere Seite (die rechte Seite mit der ungeraden Nummer 1).


Sie können die \mainmatterVerwendung \clearpagedes Seitennummerierungssystems neu definieren und es nicht ändern:

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

Wenn das Dokument arabische Seitenzahlen enthalten soll, können Sie diese ebenfalls verwenden \frontmatter\pagenumbering{arabic}bzw. neu definieren \frontmatter:

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

Aber brauchen Sie wirklich \frontmatterund \mainmatter?

Beispiel:

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

Man könnte auch neu definieren, \mainmatterdass auf einer geraden Seite begonnen wird. Dann müsste man die Seitenzahl der ersten Seite im Hauptteil auf eine gerade Zahl ändern, z.B. 0 oder 2. Dann gibt es aber eine Seite mit der Nummer 0 oder Seite 1 fehlt ... Hässlich. Daher empfehle ich den folgenden Codeausschnitt nicht

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

verwandte Informationen