如何在 KOMA 腳本中刪除 \mainmatter 中的 \cleardoublepage

如何在 KOMA 腳本中刪除 \mainmatter 中的 \cleardoublepage

我的理解是該\mainmatter命令包含\cleardoublepage.我希望第一章從「簡介 2」結束後的下一頁開始,中間沒有空白頁,目前有兩頁空白頁,至少其中一頁是由於\mainmatter.

另一個空白頁似乎是由於

\makeatletter
\@openrightfalse
\makeatother

,我使用它,以便“Intro 2”緊跟在“Intro 1”之後,沒有空白頁。但將其重置回正常狀態

\makeatletter
\@openrighttrue
\makeatother

對我的問題沒有幫助。

命令\let\cleardoublepage=\clearpage也沒有幫助我。不清除任何頁面的備用命令在這裡可能會有所幫助。

以下 MWE 在介紹 2 和第一章之間產生了兩個空白頁。我希望空白頁為零。

微量元素:

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

答案1

\mainmatterin class的原始定義scrbook

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

\pagenumbering{arabic}將頁計數器重設為 1。因此\cleardoubleoddpage用來確保奇數頁號為1的頁是正確的頁。因此不可能從左頁的第 1 頁開始正文。

因此,如果您想\mainmatter在雙面文件中使用章節從左頁開始的內容,則在主要內容的第一章之前至少有一個空白頁(奇數1的右頁)。


您可以重新定義\mainmatter以使用\clearpage而不更改頁碼系統:

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

如果文件中應該有阿拉伯文頁碼,那麼您也可以使用\frontmatter\pagenumbering{arabic}或重新定義\frontmatter

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

但你真的需要\frontmatterand\mainmatter嗎?

例子:

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

您也可以重新定義\mainmatter從偶數頁開始。然後你必須將主要內容中第一頁的頁碼更改為偶數,例如0或2。所以我不推薦下面的程式碼片段

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

相關內容