删除新页面顶部章节标题前的空白区域

删除新页面顶部章节标题前的空白区域

我希望报告类中的章节从3em上一章的末尾开始。为此,我\chapter使用titlesec和修补命令etoolbox。但是,这会在章节名称上方添加空白,即使它位于新页面的顶部,这也是我不希望的。如果章节从新页面的顶部开始,我该如何删除间距?我想要第六章标题,如下面的右侧图所示,而不是左侧的标题。

实际产量和预期产量

\documentclass[12pt,a4paper]{report}

\usepackage{lipsum}  
\usepackage{titlesec}  
\usepackage{etoolbox}

\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}%
    {\par\vspace{\baselineskip}}{}{}
\makeatother
\titlespacing*{\chapter}{0mm}{3em}{1em}

\begin{document}

\chapter*{First chapter}
\lipsum[1-4]
\chapter*{Second chapter}
\lipsum[1-2]
\chapter*{Third chapter}
\lipsum[2]
\chapter*{Fourth chapter}
\lipsum[1-3]
\chapter*{Fifth chapter}
\lipsum[2]
\chapter*{Sixth chapter}
\lipsum[1-2]

\end{document}

答案1

titlesec插入“传统”强制v垂直线space作为设置章节标题页眉的一部分。您还需要将其更改\vspace*\vspace在页面开头占用空间:

在此处输入图片描述

\documentclass[a4paper]{report}

\usepackage{lipsum}  
\usepackage{titlesec}  
\usepackage{etoolbox}

\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}%
    {\par\addvspace{\baselineskip}}{}{}
\titlespacing*{\chapter}{0mm}{3em}{1em}
\patchcmd{\ttl@save@mkschap}{*}{}{}{}
\makeatother

\begin{document}

\chapter*{First chapter}
\lipsum[1-4]
\chapter*{Second chapter}
\lipsum[1-2]
\chapter*{Third chapter}
\lipsum[2]
\chapter*{Fourth chapter}
\lipsum[1-3]
\chapter*{Fifth chapter}
\lipsum[2]
\chapter*{Sixth chapter}
\lipsum[1-2]

\end{document}

答案2

你不需要修补任何东西。只需将class\chapter 更改为straight

\documentclass[12pt,a4paper]{report}

\usepackage[showframe]{geometry}
\usepackage{lipsum}
\usepackage{titlesec}

\titleclass{\chapter}{straight}
\titleformat{\chapter}{\bfseries\huge}{\thechapter}{0.4em}{}
\titlespacing*{\chapter}{0mm}{3em}{1em}

\begin{document}

\chapter*{First chapter}
\lipsum[1-4]
\chapter*{Second chapter}
\lipsum[1-2]
\chapter*{Third chapter}
\lipsum[2]
\chapter*{Fourth chapter}
\lipsum[1-3]
\chapter*{Fifth chapter}
\lipsum[2]
\chapter*{Sixth chapter}
\lipsum[1-2]

\end{document} 

在此处输入图片描述

相关内容