我的代码的相关部分如下:
\documentclass[a4paper, 12pt, twoside]{report}
\usepackage{fancyhdr}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\sffamily\huge\bfseries}
{\thechapter}{20pt}{\Huge}
\titleformat{\section}
{\sffamily\Large\bfseries}
{\thesection}{1em}{}
\titleformat{\subsection}[block]
{\large\bfseries\sffamily}%
{\thesubsection}{5mm}{}
\titleformat{\subsubsection}[block]
{\sffamily\bfseries}
{\thesubsubsection}{1em}{}
% abbreviations package
\renewcommand{\glsnamefont}[1]{\textsf{#1}} %Change acronym name font
% \makenomenclature
\usepackage[acronym, nopostdot]{glossaries}
\newacronym{eg}{e.g.}{example abbreviation}
\makeglossaries
\usepackage[a4paper,
left=30mm, right=30mm,
top=20mm, bottom=20mm]{geometry}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{10\p@}%
{\parindent \z@ \raggedright \normalfont
\interlinepenalty\@M
\LARGE \bfseries \sffamily
\ifnum \c@secnumdepth >\m@ne
\thechapter.\nobreakspace
\fi
#1\par\nobreak
\vskip 20\p@
}}
\makeatother
\begin{document}
\sffamily
\tableofcontents
\addcontentsline{toc}{chapter}{List of Contents}
\listoffigures
\addcontentsline{toc}{chapter}{List of Figures}
\listoftables
\addcontentsline{toc}{chapter}{List of Tables}
\printglossary[type=\acronymtype,title=Abbreviations,nonumberlist]
\addcontentsline{toc}{chapter}{Abbreviations}
\include{Introduction/Introduction}
\include{main/main}
\emergencystretch=1em
\addcontentsline{toc}{chapter}{Bibliography}
\printbibliography
\end{document}
我希望所有字体都为 \sffamily,就像现在一样。我还希望主标题(例如目录和表格列表)上方的空间更小(与我为章节设置的(10pt + 边距)相匹配)。
我试过
\usepackage{etoolbox}
\patchcmd{\tableofcontents}{\@starttoc}{\vspace{-1cm}\@starttoc}{}{}
但这对我的缩写不起作用,只移动了内容而不是标题(也就是说,它减少了标题后的空间,我想减少空间前)
我也尝试添加
\usepackage[titles]{tocloft}
\titleformat{\chapter}[hang]{\huge\bfseries\sffamily}{\thechapter.}{1em}{}
\titlespacing*{\chapter}{10pt}{-1.5em}{1.1\parskip}
\titlelabel{\thetitle\quad}
这对于间距来说是完美的,但将一些字体改回了默认设置(例如,在目录页中,不是章节标题而是所有副标题)。
有没有办法获得我想要的间距并保留我的字体?谢谢
答案1
在书籍类中,当我使用 \usepackage{tocloft,etoolbox}% 而不是 \usepackage{etoolbox} 时,很多事情发生了变化。然后我插入
\renewcommand{\cftbeforetoctitleskip}{-0.25in} % Title is 1in from top
和
\renewcommand{\cftaftertoctitleskip}{1.0\baselineskip}% 1 double space after title
对于“lot”(而不是“toc”)也同样如此。
在标题格式中我重复了所需的字体:
\titleformat{\chapter}[hang]{\Large\bf}{\thechapter{.~}}{0pt}{\Large\bf\lineskiplimit=-\maxdimen}%
这也许对报告课也有帮助。
答案2
目录等标题通过命令设置\chapter*
。您已重新定义了代码\chapter
因此您还需要重新定义\chapter*
代码。
此后,您可以使用tocloft
如下命令
\addtolength{\cftbeforetoctitleskip}{-30pt}
将目录标题向上移动。