我正在使用 LaTeX 撰写我的论文,我发现在目录和每个章节页面上,LaTeX 留下了很多空白。
我的意思是,假设在第 1 章开始的页面上,从页面顶部到章节标题的垂直空间比其他任何页面都要大得多。第 2 章等也是如此……目录页也是如此。
有人能帮我删除那个空格吗?我的代码有什么错误吗?这是 LaTeX 的默认设置吗?
序言是
\documentclass[12pt,twoside]{report}
\pagestyle{plain}
\usepackage{a4paper}
\usepackage{setspace}
\doublespacing
\usepackage{amssymb}
\usepackage{amsmath}
我尝试过下面的方法,但都不起作用。
答案1
Werner 回答了标准课程的问题。如果您使用scrbook
或scrreprt
(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*
)的默认行为book
和report
文档类,所以你没有做错什么。此默认长度为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
。