我正在使用 KOMA-script 的 scrreprt 撰写论文。
我使用了该文章中提出的方法来调整章节标题前的间距:
也就是说,我使用以下命令:
% Format chapter headings
\addtokomafont{disposition}{\mytitlefont}
\renewcommand*{\chapterheadstartvskip}{\vskip-40pt}
但是,出于某种原因,这不会修改目录标题前的间距。它只会修改章节。
这是我的完整样式文件:
% Style file for packages
\ProvidesPackage{style}
% Packages
% Package to set page dimensions and margins
\usepackage[letterpaper, lmargin=1in, rmargin=1in]{geometry}
% Graphics package
\usepackage{graphicx}
% Maths typesetting packages
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsbsy}
\usepackage{bm}
% Package to format table of contents, list of figures, and list of table
\usepackage{tocloft}
% Package to format captions
\usepackage{caption}
% Package to format footnotes
\usepackage{scrextend}
% Package to align table columns on decimal point
\usepackage{dcolumn}
% Package to format custom dates
\usepackage{datetime}
% Package for line spacing
\usepackage{setspace}
\onehalfspacing
% Package for citation formatting
\usepackage{cite}
% Custom fonts
\newcommand{\mytitlefont}{\normalcolor \sffamily \bfseries}
\renewcommand{\familydefault}{\rmdefault}
% Format dates
\newdateformat{monthyeardate}{\monthname[\THEMONTH], \THEYEAR}
\newdateformat{yeardate}{\THEYEAR}
% Format chapter headings
\addtokomafont{disposition}{\mytitlefont}
\renewcommand*{\chapterheadstartvskip}{\vskip-40pt}
% Format table of contents, list of figures, and list of tables
\renewcommand{\listfigurename}{Figures}
\renewcommand{\listtablename}{Tables}
\renewcommand{\cftfignumwidth}{6em}
\renewcommand{\cftfigpresnum}{\mytitlefont Figure }
\renewcommand{\cfttabnumwidth}{6em}
\renewcommand{\cfttabpresnum}{\mytitlefont Table }
% Format captions
\captionsetup{format=plain}
\addtokomafont{caption}{\small}
\addtokomafont{captionlabel}{\small\mytitlefont}
% Package to format footnotes
\deffootnote[1.5em]{1.5em}{1em}{\thefootnotemark.\space}
现在,每个问这个问题的人似乎都被重定向回上面提到的链接。但对我来说,它根本不影响目录。只有章节。有人能看出原因吗?
为了便于理解,这里是主要 tex 文件的开头:
% Write the thesis in report format
\documentclass[12pt,letterpaper]{scrreprt}
% Insert packages
\usepackage{style}
\usepackage[hidelinks]{hyperref}
% Insert preamble
\input{./tex/preamble}
% Begin the thesis
\begin{document}
% Insert title
\input{./tex/title}
% Insert epigraph
\pagenumbering{gobble}
\input{./tex/epigraph}
% Insert abstract in english
\pagenumbering{gobble}
\input{./tex/abstract_en}
% Insert abstract in french
\pagenumbering{gobble}
\input{./tex/abstract_fr}
% Change the page numbering to roman
\pagenumbering{roman}
% Insert the preface
\clearpage
\addcontentsline{toc}{chapter}{Preface}
\input{./tex/preface}
% Insert the acknowledgments
\clearpage
\addcontentsline{toc}{chapter}{Acknowledgments}
\input{./tex/acknowledgments}
% Insert table of contents, figures, and tables
\tableofcontents
\listoffigures
本
答案1
此包tocloft
破坏了 KOMA-Script 的某些功能。因此,请勿将此包与 KOMA-Script 类一起使用。
以下建议需要 KOMA-Script 版本 3.20 或更新版本(当前版本为 3.22):
\documentclass[
12pt,
letterpaper,
listof=entryprefix
]{scrreprt}[2016/05/10]
\usepackage[lmargin=1in, rmargin=1in]{geometry}
\usepackage{setspace}
\onehalfspacing
\renewcommand*{\chapterheadstartvskip}{\vspace*{-40pt}}
% Format lists without an additional package
\renewcommand{\listfigurename}{Figures}
\renewcommand{\listtablename}{Tables}
\newcommand\listentrynumber[1]{{\usekomafont{disposition}{#1}}}
\DeclareTOCStyleEntry[entrynumberformat=\listentrynumber]{tocline}{table}% needs version 3.20
\DeclareTOCStyleEntry[entrynumberformat=\listentrynumber]{tocline}{figure}% needs version 3.20
% Format captions without an additional package
\setcapindent{0pt}
\addtokomafont{caption}{\small}
\addtokomafont{captionlabel}{\usekomafont{disposition}}
\deffootnote[1.5em]{1.5em}{1em}{\thefootnotemark.\space}
\usepackage[hidelinks]{hyperref}
\usepackage{blindtext}% for dummy text
\begin{document}
\tableofcontents
\listoftables
\chapter{A chapter}
\captionof{table}{A table}
\captionof{table}{\blindtext}
\end{document}
补充说明:
此包scrextend
允许将某些 KOMA-Script 功能与其他类一起使用。因此,请勿使用 KOMA-Script 加载此包。
无需加载包来caption
像在代码中那样更改字幕的格式。
注意
\renewcommand*{\chapterheadstartvskip}{\vspace*{-40pt}}
将章节标题移出文本区域。也许你想使用
\RedeclareSectionCommand[beforeskip=-1sp]{chapter}
而是。您可以使用showframe
包的选项geometry
来可视化页面布局。
如果你真的想要/必须使用包tocloft
,然后使用选项加载此包titles
:
\usepackage[titles]{tocloft}