我需要在特定章节标题前添加额外的垂直空间,例如“表格列表”。我想这样做是因为某些章节标题前的空间比其他章节少。我尝试在语句\vspace*{1in}
前添加\listoftables
,但没有成功。任何帮助都将不胜感激。
\documentclass[10pt, letterpaper]{report}
\usepackage{thesis}
\renewcommand\contentsname{TABLE OF CONTENTS}
\usepackage{titlesec}
\renewcommand{\chaptername}{CHAPTER}
\titlespacing*{\chapter}{0pt}{0.45in}{0.3in}
\titleformat{\chapter}[display]
{\normalfont\Large\centering}{\chaptertitlename\ \thechapter}{0pt}{\Large\uppercase}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
\begin{document}
\tableofcontents
\addcontentsline{toc}{chapter}{LIST OF TABLES}
\renewcommand{\listtablename}{LIST OF TABLES}
\listoftables
\addcontentsline{toc}{chapter}{LIST OF FIGURES}
\renewcommand{\listfigurename}{LIST OF FIGURES}
\listoffigures
\chapter{INTRODUCTION}
Lorem ipsum .............
\end{document}
答案1
由于您已在使用titlesec
,使用\titlespacing*
在之前添加额外的空格\listoftables
,然后再次使用该命令恢复默认垂直间距:
\documentclass[10pt, letterpaper]{report}
\usepackage{thesis} % to make the example compilable for everyone
\renewcommand\contentsname{TABLE OF CONTENTS}
\usepackage{titlesec}
\renewcommand{\chaptername}{CHAPTER}
\titlespacing*{\chapter}{0pt}{0.45in}{0.3in}
\titleformat{\chapter}[display]
{\normalfont\Large\centering}{\chaptertitlename\ \thechapter}{0pt}{\Large\uppercase}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
\begin{document}
\tableofcontents
\addcontentsline{toc}{chapter}{LIST OF TABLES}
\renewcommand{\listtablename}{LIST OF TABLES}
\titlespacing*{\chapter}{0pt}{1.45in}{0.3in}% add extra vertical spacing
\listoftables
\titlespacing*{\chapter}{0pt}{0.45in}{0.3in}% restore original vertical spacing
\addcontentsline{toc}{chapter}{LIST OF FIGURES}
\renewcommand{\listfigurename}{LIST OF FIGURES}
\listoffigures
\chapter{INTRODUCTION}
Lorem ipsum .............
\end{document}
答案2
在 ConTeXt 中,你可以实现与 Mico 的方法类似,如下所示:
\definehead[tocchapter][chapter][before={\blank[1in, force]}]
这将定义一个名为 的新标题tocchapter
,它继承了 的所有设置chapter
,然后重新定义章节标题前的空间。force
的参数中的\blank
是强制\vskip
位于页面顶部的。您可以按如下方式使用此命令。
\showframe % To visualize the page frame.
\starttext
\tocchapter{List of Tables}
\placelistoftables[criterium=all]
\chapter {Normal chapter}
\dorecurse{4}
{\startplacetable[title={Table #1}]
\startTABLE
\NC One \NC Two \NC \NR
\NC One \NC Two \NC \NR
\NC One \NC Two \NC \NR
\stopTABLE
\stopplacetable
\input knuth \relax}
\stoptext
请注意,我使用\placelistoftables
“不放置章节标题”而不是“放置章节标题” \completelistoftables
。
答案3
您可以采用两阶段方法:首先,定义一个新的、类似章节的分段命令,指示 LaTeX 在分段线上方和下方留出大于正常量的空白;其次,重新定义\listoftables
和\listoffigures
命令以使用这个特殊的分段命令。
使用report
类作为起点,您可以执行此方法,如下面的 MWE 所示。新命令被调用,有点冗长,\chapterwithextraspace
和\chapterwithextraspace*
,以创建编号和未编号的章节,这些章节具有比“标准”命令更多的垂直空白。当然,您可以自由修改代码以选择更简洁的名称。由于您没有指出要创建多少垂直空白,我只是将此 MWE 的默认数量增加了一倍(从分段线上方的 50pt 到 100pt,从分段线下方的 40pt 到 80pt)。您可能应该调整这些数量以满足您的特定需求。
\documentclass{report}
\usepackage{etoolbox,lipsum} % lipsum for filler text
% Part 1: Define new command \chapterwithextraspace and
% several required auxilliary macros
\makeatletter
\newcommand\chapterwithextraspace{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapterwithextraspace\@schapterwithextraspace}
\def\@chapterwithextraspace[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterwithextraspacehead{#2}]%
\else
\@makechapterwithextraspacehead{#2}%
\@afterheading
\fi}
\def\@makechapterwithextraspacehead#1{%
\vspace*{100\p@}% %default: 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 80\p@ %default: 40\p@
}}
\def\@schapterwithextraspace#1{\if@twocolumn
\@topnewpage[\@makeschapterwithextraspacehead{#1}]%
\else
\@makeschapterwithextraspacehead{#1}%
\@afterheading
\fi}
\def\@makeschapterwithextraspacehead#1{%
\vspace*{100\p@}% %default: 50\p@
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 80\p@ %default: 40\p@
}}
\makeatother
% Part 2: Patch the `\listoffigures` and `\listoftables` commands to use the new,
% spaced-out chapter heading style
\patchcmd{\listoffigures}%
{\chapter*}{\chapterwithextraspace*}{}{}
\patchcmd{\listoftables}%
{\chapter*}{\chapterwithextraspace*}{}{}
\begin{document}
\tableofcontents
\listoftables
\listoffigures
\chapter{Hello} %normal chapter header
\lipsum[1]
\chapterwithextraspace{Goodbye} %chapter header with extra space above and below header lines
\lipsum[2]
\end{document}