我将book
documentclass 用于各种部分。对于某个部分,我希望在同一页上显示部分编号和标题,后面跟着一个段落。目前,我在一个页面上显示部分编号和标题,其余页面为空白,下一页为空白,然后是包含段落的页面。
另外,我正在使用该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,我会发现它很有用;我必须编造一个,但它不一定与您的实际代码有太大关系。