如何删除 \chapter 前的空格

如何删除 \chapter 前的空格

我正在尝试自定义报告类中的章节样式:

  • 删除章节之间生成的空白页:完成包 etoolbox\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
  • 删除“章节编号某物”:完成包titlesec\titleformat{\chapter}[display]{\normalfont\bfseries}}{}{0pt}{\Huge}
  • 这就是我感到困惑的地方,当我想删除章节名称前的空格时。我尝试了,titlesec \titlespacing{\chapter}{0pt}{0pt}{0pt}但章节名称前仍然有空格,我也尝试在第二个花括号中使用负值,但文本本身却在写其他内容。

我希望章节名称位于页面顶部,而其他章节前后的空白空间不要太多。如果顶部边距设置为 2.5 厘米,我希望章节名称位于 2.5 厘米处

在此处输入图片描述

这是我的代码:

\documentclass[12pt,oneside]{report}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}{}
\makeatother

\usepackage{titlesec}
\titleformat{\chapter}[display]
    {\normalfont\bfseries}{}{0pt}{\Huge}

\titlespacing{\chapter}{0pt}{-50pt}{0pt}

\begin{document}

\chapter{My chapter}
lol

\chapter{Another chapter}
lol

\end{document}

答案1

首先,您实际上不需要修补\chapter,因为openright不是 的默认值report。如果您在 所在的位置使用文档类,则可以使用该选项openany来防止章节之间出现空白页。

现在,有几种方法可以解决这个问题:


您可以使用 KOMA-Script,它提供了许多宏,比标准类更容易修改布局:

\documentclass{scrreprt}

% makes the page borders visible
\usepackage{showframe}

\renewcommand*\chapterformat{}
\renewcommand*\chapterheadstartvskip{}

\begin{document}

\chapter{My chapter}
lol

\chapter{Another chapter}
lol


\end{document}

第一个 MWE 输出


如果你喜欢使用reportand titlesec,那么正确的语法\titlespacing

\titlespacing{\chapter}{0pt}{*0}{*0}

或者

\titlespacing*{\chapter}{0pt}{0pt}{0pt}

要删除章节标题上方的部分空格,可以删除 选项display\titleformat但是,如果不对内部命令进行一些修改,我没能删除所有空格。如果我们这样做,那么不用 也可以做到titlesec


您可以重新定义\@makechapterhead章节标题的排版方式。这里我采用了默认定义,并注释掉了所有您不想要的内容。

\documentclass{report}

% makes the page borders visible
\usepackage{showframe}

\makeatletter
    \renewcommand*\@makechapterhead[1]{%
%       \vspace*{50\p@}%
        {%
            \parindent\z@\raggedright\normalfont
%           \ifnum\c@secnumdepth>\m@ne
%               \huge\bfseries\@chapapp\space\thechapter\par
%               \nobreak\vskip 20\p@
%           \fi
%           \interlinepenalty\@M
            \Huge\bfseries
            #1\par
            \nobreak\vskip 40\p@
        }
    }
\makeatother

\begin{document}

\chapter{My chapter}
lol

\chapter{Another chapter}
lol

\end{document}

第二个 MWE 输出

答案2

不确定补丁的作用是什么:其主要作用是在\chapter开始时不会发生分页符。

report除非您传递该openright选项,否则该课程不会出现空白页。

\documentclass[12pt,oneside]{report}
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{lipsum}

\usepackage{titlesec}
\titleformat{\chapter}[display]
  {\normalfont\bfseries\Huge}
  {}
  {0pt}
  {}

\titlespacing{\chapter}
  {0pt}
  {-50pt}
  {0pt}

\begin{document}

\chapter{My chapter}

\lipsum[1-5]

\chapter{Another chapter}

\lipsum[1-5]

\end{document}

在此处输入图片描述

相关内容