我已经定义(使用 koma-script),章节只从右侧开始。部分页面也是如此。到目前为止,这没问题。
但现在我想titletoc
在部分页面的背面(左侧)插入一个目录列表(使用)。它只列出章节,因此不会跨越多页。
但默认情况下下一个打开的页面\part
在右侧。
有一些方法可以解决这个问题(发现这里)
\makeatletter\@openrightfalse\makeatother
\part{Part Name}
This is the text I put on the back side of the part page
\makeatletter\@openrighttrue\makeatother
但我希望在序言中配置这一点,并在文档中有一个干净的代码。这可以吗?
编辑:从之前的评论中我发现,\renewcommand{\partheademptypage}{}
直到我使用 titlesec 重新格式化部分页面,它才有效。
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\part}[frame]
{\usekomafont{part}\Large\color{black}\centering} % format
% label: PART I
{\enspace \LARGE\MakeUppercase{\partname}%
\centering \Huge~\thepart \enspace }%
% sep (from partnumber)
{1.5\baselineskip}
% (before chaptertitle and after)
{\color{black}\filcenter}
\begin{document}
\mainmatter
\newcommand{\PartialToc}{%
\startcontents[part]
\section*{Contents}
\printcontents[part]{}{0}{\setcounter{tocdepth}{0}}
}
\renewcommand{\partheademptypage}{}%
\part{Part Heading}
\PartialToc
\chapter{first}
\chapter{second}
\end{document}
答案1
这应该再次表明了最小示例的重要性。如果您使用 重新格式化零件页面titlesec
,那么您将覆盖\part
通常由 使用的命令scrbook
,因此重新定义\partheademptypage
不会有任何好处。
使用,有关发出 的titlesec
控制权被传递给,它被所有“部分”类分段命令使用,因此它对文档的其余部分来说应该不是问题。对其进行修补以使相关测试无效很容易;但由于出现两次,我们搜索,将其更改为这将忽略匹配 之前的所有标记。\cleardoublepage
\part
\ttl@page@ii
\if@openright
\if@openright
\if@openright\null
\iffalse
\fi
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\part}[frame]
{\usekomafont{part}\Large\color{black}\centering} % format
% label: PART I
{\enspace \LARGE\MakeUppercase{\partname}%
\centering \Huge~\thepart \enspace }%
% sep (from partnumber)
{1.5\baselineskip}
% (before chaptertitle and after)
{\color{black}\filcenter}
\newcommand{\PartialToc}{%
\startcontents[part]
\section*{Contents}
\printcontents[part]{}{0}{\setcounter{tocdepth}{0}}
}
\usepackage{etoolbox}
\makeatletter
\patchcmd\ttl@page@ii{\if@openright\null}{\iffalse}{}{}
\makeatother
\begin{document}
\mainmatter
\part{Part Heading}
\PartialToc
\chapter{first}
\chapter{second}
\end{document}
答案2
如果我理解正确的话,您想在双页右侧打开的部分的背面排版一些内容吗?这\renewcommand{\partheademptypage}{}
可能会对您有所帮助:
\documentclass{scrbook}
\title{hello world}
\renewcommand{\partheademptypage}{}
\begin{document}
\maketitle
\part{eins}
This is the text I put on the back side of the part page
\chapter{un}
\chapter{deux}
\chapter{trois}
\part{zweit}
This is some other text I put on the back side of the part page
\chapter{uno}
\chapter{due}
\chapter{tre}
\end{document}