章节和目录前的空格

章节和目录前的空格

我正在使用 LaTeX 撰写我的论文,我发现在目录和每个章节页面上,LaTeX 留下了很多空白。

我的意思是,假设在第 1 章开始的页面上,从页面顶部到章节标题的垂直空间比其他任何页面都要大得多。第 2 章等也是如此……目录页也是如此。

有人能帮我删除那个空格吗?我的代码有什么错误吗?这是 LaTeX 的默认设置吗?

序言是

\documentclass[12pt,twoside]{report}
\pagestyle{plain}
\usepackage{a4paper}
\usepackage{setspace}
\doublespacing 
\usepackage{amssymb}
\usepackage{amsmath} 

我尝试过下面的方法,但都不起作用。

答案1

Werner 回答了标准课程的问题。如果您使用scrbookscrreprt(KOMA 脚本),则章节标题前后的空格由\chapterheadstartvskip和给出\chapterheadendvskip。这些“长度”不是定义为长度,而是定义为命令。要更改设置,您必须使用renewcommand

\renewcommand*{\chapterheadstartvskip}{\vspace*{1cm}}
\renewcommand*{\chapterheadendvskip}{\vspace{2cm}}

在 KOMA-script 3.16 版中,引入了一个新界面来更改分段命令(包括章节)的外观。现在您可以执行如下操作

\RedeclareSectionCommand[beforeskip=0pt,
afterskip=2cm]{chapter}

答案2

\chapter这是 for (和\chapter*)的默认行为bookreport文档类,所以你没有做错什么。此默认长度为50pt

您可以使用etoolbox包裹删除(或修改)章节标题上方的间距。以下是适用于或book文档report类的最小示例:

在此处输入图片描述

\documentclass{book}
\usepackage{showframe}% http://ctan.org/pkg/showframe
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\@makechapterhead}{\vspace*{50\p@}}{}{}{}% Removes space above \chapter head
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{}{}{}% Removes space above \chapter* head
\makeatother
\begin{document}
\chapter{A chapter}
\chapter*{Another chapter}
\end{document}

\patchcmd在和\vspace*{50\p@}中搜索并用空字符替换它,从而删除空格。如果您想添加一点空格,可以插入其他内容作为替换文本。例如\@makechapterhead\@makeschapterhead

\patchcmd{\@makechapterhead}{\vspace*{50\p@}}{\vspace*{20pt}}{}{}%
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{\vspace*{20pt}}{}{}%

将插入20pt而不是默认的50pt

showframe被添加来显示文本块的框架并且仅用于说明目的 - 您可以将其删除。


另一种方法是使用titlesec包裹。但是,为了修改\chapter间距(via \titlespacing{\chapter}...),您还需要修改\chapter格式(via \titleformat{\chapter}...)。请参阅titlesec文档了解更多信息。

答案3

LaTeX 书籍类的默认样式对于页面上的空白相当宽容——您的代码可能没有任何问题。

更改标题行为的一种方法是使用标题安全包,它允许您对所有级别的标题的显示方式进行细粒度控制。例如,文档序言中的以下代码将删除章节标题上方的空格:

\usepackage{titlesec}

\titleformat{\chapter}[display]
    {\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}

在最后一行中,四个测量值分别是标题周围的左间距、上间距和下间距。第二个测量值通常为 50pt;此处将其更改为 0pt,以完全删除章节标题上方的空白。

答案4

在本report类中,章节标题前的空间为 50pt。更改它的最简单方法是修补两个相关命令:

\documentclass[a4paper,12pt,twoside]{report}
\usepackage{amssymb}
\usepackage{amsmath}

\usepackage{setspace}
\doublespacing 

%\pagestyle{plain} % default for report

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}{50\p@}{0pt}{}{}
\patchcmd{\@makeschapterhead}{50\p@}{0pt}{}{}
\makeatother

<rest of the preamble>

\begin{document}

<the document>

\end{document}

你可以玩弄数字:0pt你可以放置任何你想要的尺寸。

请注意 a4paper包;要获取适合 ISO A4 纸张的页面参数,您需要将其指定a4paper为选项\documentclass

相关内容