我的理解是该\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
\mainmatter
in 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
}
但你真的需要\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