如何将页面顶部与目录、图表和表格之间的距离设置为2.5cm

如何将页面顶部与目录、图表和表格之间的距离设置为2.5cm

我尝试使用以下代码将页面顶部与目录、图表和表格之间的距离设置为 2.5 厘米,但不起作用。我需要帮助进行调整,但不能影响除这些之外的章节的正常间距。这是我使用过但不起作用的代码。


\documentclass{article}
\begin{document}
{\vspace{-2.5cm} \tableofcontents}
{\vspace{-2.5cm} \listofigures}
{\vspace{-2.5cm} \listoftables}
\end{document}

答案1

(在收到 OP 的评论后,我大大重写了这个答案,这表明——与 OP 的代码片段所造成的印象相反——兴趣在于report类,不是文档article类。

我了解到顶部页面边距(可能还有其他一些页面边距)等于 2.5 厘米。我还了解到目录、图片列表和表格列表的标题——但不是“常规”章节级条目的标题应该排版在文本块的最顶部,即没有任何空格。

如果这些印象是正确的,我建议您将以下说明添加到文档的序言中。

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{}{}{}
\makeatother

如果您猜测该\patchcmd指令\vspace*{50\p@}从宏定义中删除“插入 50pt(约 17.5 毫米)的垂直空白” \@makeschapterhead,那么您是对的。(该\@makeschapterhead宏由文档类定义report。)


在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

\documentclass{report}
\usepackage[a4paper, vmargin=2.5cm, hmargin=3.7cm,
            nomarginpar,nohead,showframe % remove these options in your real doc.
           ]{geometry}
\usepackage{lipsum} % filler text

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{}{}{}
\makeatother

\begin{document}

% front matter
\pagenumbering{roman}
\tableofcontents
\listoftables
\listoffigures

% main matter
\clearpage
\pagenumbering{arabic} % <-- switch to arabic numerals

\chapter{Hello World}

\lipsum[1] % one paragraph of filler text

\begin{figure}[h]\caption{Good Morning}\end{figure}

\begin{table}[h]\caption{Good Evening}\end{table}

\end{document}

相关内容