我所在大学的论文办公室对目录有这样的规定 -
- 章节标题上下应留有双倍行距
- 副标题应为单倍行距。
为了实现这一点,我在我的乳胶源文件中有这个
\setlength{\cftbeforechapskip}{12pt} % space between whole chapter blocks`
\renewcommand{\cftchapafterpnum}{\vskip 16pt}
% single spaced section and subsection
\renewcommand{\cftsecafterpnum}{\vskip 6pt}
\renewcommand{\cftsubsecafterpnum}{\vskip 6pt}
我遇到的问题是 - 由于前两个命令,我的空间分布不均 - 类似于
ABSTRACT
<28pt>
DEDICATION
<28pt>
.
.
.
.
CHAPTER 1 TITLE
<28pt>
CHAPTER 2
<16pt>
...SUBHEADING 1
...SUBHEADTING 2
<16pt>
CHAPTER 3
<16pt>
.
.
.
我还使用了\cftbeforesubsecskip
和\cftbeforesecskip
。它们在各处引入了空格。
我想要的是 -
ABSTRACT
<16pt>
DEDICATION
<16pt>
.
.
.
<16pt>
CHAPTER 1 TITLE
<16pt>
CHAPTER 2
<16pt>
...SUBHEADING 1
...SUBHEADTING 2
<16pt>
CHAPTER 3
<16pt>
.
.
.
有人能告诉我如何获得均匀间距吗?非常感谢。我对此一无所知…… :(
这就是我得到的 -
答案1
修订的解决方案使流程自动化,同时允许充分利用 中的可选参数\section
。此解决方案修改了\section
定义。如果这是章节的第一节,则在目录中的节名称上方会堆叠一个空白行(使用原始定义的可选参数\section
)。您可能需要调整实际的堆叠间隙(当前设置为 18pt)。
\documentclass{report}
\usepackage[usestackEOL]{stackengine}
\let\svsection\section
\makeatletter
\renewcommand\section[2][]{%
\if0\@arabic\c@section%
\ifx\relax#1\relax\firstsection{#2}\else\firstsection[#1]{#2}\fi%
\else
\ifx\relax#1\relax\svsection{#2}\else\svsection[#1]{#2}\fi%
\fi}
\makeatother
\newcommand\firstsection[2][]{%
\ifx\relax#1\relax\svsection[\Longstack{\\#2}]{#2}\else
\svsection[\Longstack{\\#1}]{#2}\fi
}
\setstackgap{L}{18pt}
\begin{document}
\tableofcontents
\chapter{A Chapter}
\section{A Section}
\section[TOC Section Name]{A Section}
\chapter{A Chapter}
\chapter{A Chapter}
\section[TOC Section Name]{A Section}
\end{document}
原始解决方案:
您可能需要调整实际的堆叠间隙(当前设置为 18pt),但使用每个章节第一节的可选参数将允许您在目录中该节标题上方堆叠一个空白行。
在这里,我将其编码为\firstsection{}
。
\documentclass{report}
\usepackage[usestackEOL]{stackengine}
\newcommand\firstsection[1]{\section[\Longstack{\\#1}]{#1}}
\setstackgap{L}{18pt}
\begin{document}
\tableofcontents
\chapter{A Chapter}
\firstsection{A Section}
\section{A Section}
\chapter{A Chapter}
\chapter{A Chapter}
\firstsection{A Section}
\end{document}