
私の理解では、\mainmatter
コマンドには が含まれています\cleardoublepage
。第 1 章を「Intro 2」の終わりの次のページから開始し、間に空白ページがないようにしたいのですが、現在 2 つの空白ページがあり、そのうち少なくとも 1 つは によるものです\mainmatter
。
もう1つの空白ページは、
\makeatletter
\@openrightfalse
\makeatother
、私は「イントロ2」が「イントロ1」の直後に空白ページなしで続くように使用しています。しかし、これを通常の状態に戻すと、
\makeatletter
\@openrighttrue
\makeatother
私の問題は解決しません。
コマンド\let\cleardoublepage=\clearpage
も役に立ちませんでした。ページをクリアしない代替コマンドが役立つかもしれません。
次の MWE では、Intro 2 と最初の章の間に 2 つの空白ページが生成されます。空白ページをゼロにしたいです。
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}
答え1
\mainmatter
本来のin classの定義scrbook
は
\newcommand*\mainmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@mainmattertrue\pagenumbering{arabic}%
}
\pagenumbering{arabic}
ページ カウンターを 1 にリセットします。これは奇数であり、奇数ページ番号は右ページになければなりません。したがって、\cleardoubleoddpage
奇数ページ番号 1 のページが右ページであることを確認するために使用されます。したがって、メイン マターを左ページでページ番号 1 から開始することはできません。
したがって、左ページから章が始まる両面文書で使用する場合\mainmatter
、本文の最初の章の前に少なくとも 1 ページの空白ページ (奇数番号 1 の右ページ) が存在します。
ページ番号付けシステムを変更せず\mainmatter
に使用するように再定義できます。\clearpage
\makeatletter
\renewcommand*\mainmatter{%
\clearpage
\@mainmattertrue
}
\makeatother
文書にアラビア語のページ番号が必要な場合は、以下を使用し\frontmatter\pagenumbering{arabic}
たり再定義したりする\frontmatter
こともできます。
\renewcommand*{\frontmatter}{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
\@mainmatterfalse
}
しかし、本当に と\frontmatter
が必要ですか\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 に変更する必要があります。しかし、その場合、ページ番号 0 のページがあったり、ページ 1 が欠落したりします... 見苦しいです。そのため、次のコード スニペットはお勧めしません。
\makeatletter
\renewcommand*\mainmatter{%
\cleardoubleevenpage
\@mainmattertrue\pagenumbering{arabic}%
\setcounter{page}{0}% or another even page number
}
\makeatother