删除 \part 后的 \pagebreak

删除 \part 后的 \pagebreak

我将bookdocumentclass 用于各种部分。对于某个部分,我希望在同一页上显示部分编号和标题,后面跟着一个段落。目前,我在一个页面上显示部分编号和标题,其余页面为空白,下一页为空白,然后是包含段落的页面。

另外,我正在使用该titlesec包来重新格式化它们并意识到命令中有空格\titleformat,但似乎无法控制间距以删除分页符。

我也尝试过精炼\@endpart,但没有成功。我想知道这是否与titlesec包冲突。

编辑如下

根据以下答案,这里对带有\titleformat定义的代码进行了修改,表明重新定义\@endpart似乎不起作用:

\documentclass{book}
\usepackage{titlesec}
\usepackage{lipsum}

\titleformat{\part}
  {\huge\sffamily\slshape}
  {Part~\thepart:}{1em}{}

\begin{document}

\makeatletter
\renewcommand{\@endpart}{}
\makeatother

\part{A part}
\vspace{2\baselineskip}
\lipsum[1]

\cleardoublepage
\lipsum[2]

\end{document}

答案1

titlesec包在标题后硬连线新页面,而不使用该\@endpart机制。

这是一个补丁:

\documentclass{book}
\usepackage{titlesec}
\usepackage{etoolbox}
\usepackage{lipsum}

\makeatletter
\patchcmd{\ttl@page@ii}{\newpage\if@twoside}{\iffalse}{}{}
\makeatother

\titleformat{\part}
  {\huge\sffamily\slshape}
  {Part~\thepart:}{1em}{}

\begin{document}

\part{A part}
\vspace{2\baselineskip}
\lipsum[1]

\cleardoublepage
\lipsum[2]

\end{document}

在此处输入图片描述

答案2

这对我有用

% partpageprob.tex  SE 553544
\documentclass{book}
\usepackage{titlesec}
\usepackage{lipsum}

\begin{document}

\makeatletter
\renewcommand{\@endpart}{}
\makeatother

\part{A part}
\vspace{2\baselineskip}
\lipsum[1]

\cleardoublepage
\lipsum[2]

\end{document}

如果您使用了两列,并且可能使用了某些页面样式,则可能需要修改的定义\@endpart,而不仅仅是取消其效果。

如果您提供了 MWE,我会发现它很有用;我必须编造一个,但它不一定与您的实际代码有太大关系。

相关内容