我希望报告类中的章节从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}