写入部分封底

写入部分封底

我已经定义(使用 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}

相关内容