我在写论文时使用了 Koma-Script,目前正在寻找一种解决方案来控制目录、图表、表格和参考书目前的间距。具体来说,我希望水平标题行和索引标题之间的间距为 5 厘米。
我看到有建议更改章节命令,但是,我不希望每个章节都有这种间距,而只希望目录、图表等有这种间距。您有什么想法吗?
非常感谢您的支持! :-)
我的 MWE 如下所示:
\documentclass[12pt, tocindentauto, bibliography=totoc, listof=totoc, final]{scrbook}
\begin{document}
\tableofcontents
\cleardoublepage
\listoffigures
\cleardoublepage
\listoftables
\cleardoublepage
\part{part}
\chapter{chapter}
\section{section}
\begin{figure}
\caption{test}
\label{testfigure}
\end{figure}
\end{document}
答案1
您可以通过例如更改章节标题前的跳过。
\RedeclareSectionCommand[beforeskip=\dimexpr5cm-\headsep\relax]{chapter}
如果此更改仅影响 ToC、LoF、LoT 和其他受包控制的列表,tocbasic
则可以将其用作 的参数\BeforeTOCHead
。
不幸的是,您的 MWE 中没有参考书目。所以我猜你使用biblatex
:
\documentclass[12pt,bibliography=totoc,listof=totoc]{scrbook}
\newcommand*\specialchapterbeforeskip{%
\RedeclareSectionCommand[beforeskip=\dimexpr5cm-\headsep\relax]{chapter}%
}
\BeforeTOCHead{\specialchapterbeforeskip}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\defbibheading{bibliography}[\bibname]{\specialchapterbeforeskip\addchap{#1}}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\part{part}
\chapter{chapter}
\section{section}
\cite{companion}
\begin{figure}
\caption{test}
\label{testfigure}
\end{figure}
\printbibliography
\end{document}
带包的示例natbib
(请参阅我的答案下面的评论)
\documentclass[12pt,bibliography=totoc,listof=totoc]{scrbook}
\newcommand*\specialchapterbeforeskip{%
\RedeclareSectionCommand[beforeskip=\dimexpr5cm-\headsep\relax]{chapter}%
}
\BeforeTOCHead{\specialchapterbeforeskip}
\usepackage{natbib}
\bibliographystyle{plainnat}
\renewcommand\bibsection{%
\specialchapterbeforeskip
\addchap{\bibname}%
\markright{\bibname}%
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\part{part}
\chapter{chapter}
\section{section}
\cite{companion}
\begin{figure}
\caption{test}
\label{testfigure}
\end{figure}
\bibliography{biblatex-examples}
First bibliography page
\clearpage
Second bibliography page
\clearpage
Third bibliography page
\end{document}
结果:
您还可以修补\chapterheadstartvskip
:
\documentclass[12pt,bibliography=totoc,listof=totoc]{scrbook}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\chapterheadstartvskip
{\@tempskipa}
{\ifspecialchapter 5cm \else \@tempskipa\fi}
{}{\chapterheadstartvskipPatchFailed}
\makeatother
\newif\ifspecialchapter
\BeforeTOCHead{\specialchaptertrue}
\usepackage{natbib}
\bibliographystyle{plainnat}
\xpretocmd\bibsection{\specialchaptertrue}{}{\bibsectionPatchFailed}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\part{part}
\chapter{chapter}
\section{section}
\cite{companion}
\begin{figure}
\caption{test}
\label{testfigure}
\end{figure}
\bibliography{biblatex-examples}
First bibliography page
\clearpage
Second bibliography page
\clearpage
Third bibliography page
\end{document}
然后您也可以使用它来更改其他章节之前的空格:
\specialchaptertrue
\chapter{Abstract}
\chapter{Introduction}
\specialchapterfalse