章节和目录在 scrreprt 中的格式不同

章节和目录在 scrreprt 中的格式不同

我正在使用 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}

相关内容