我在论文中使用大学提供的样式文件,但它们太旧了(eethesis 文档类)。在我的 PDF 输出中,目录中主要标题前后的垂直空间不一致。
我想在章节标题和其第一节之间插入一个垂直空格(参考:相关问题) 但前提是该章节包含任何章节。目前,eethesis.cls 中的定义l@chapter
如下
\def\l@chapter#1#2{\pagebreak[3]
\vskip 0.75em plus 1pt % space above chapter line
{\leftskip 2em\relax \rightskip \@tocrmarg \parfillskip -\rightskip
\parindent 2em\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima 4em\relax % width of box holding chapter number
\advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
\uppercase{#1}\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
\@dotsep mu$}\hfill \nobreak \hbox to\@pnumwidth{\hfil\rm #2}\par}
\vskip 0em} % space below chapter line
@chapter
eethe12.sty 中的定义是
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}
\typeout{\@chapapp\space\thechapter.}
\addcontentsline{toc}{chapter}{\protect
\numberline{\thechapter}\uppercase{#1}}
\else\addcontentsline{toc}{chapter}{#1}\fi
\chaptermark{#1}
% \addtocontents{toc}{\protect\vskip{0.75em plus 1pt}} % Add vertical space line
\if@twocolumn % Tests for two-column mode.
\@topnewpage[\@makechapterhead{#2}]
\else \@makechapterhead{\uppercase{#2}}
\@afterheading % Routine called after chapter and
\fi} % section heading.
取消注释上述定义中的行 - 添加垂直空间行 - 确实会在章节标题和第一节之间添加垂直空间,但它也会增加没有节的章节之间的空间。
为了使所有章节标题前后的间距保持一致,需要做哪些更改?
答案1
这是一个可能的解决方案,使用重新定义 \section 来测试是否必须添加空格(我使用了文件论文集和自定义快捷方式.sty在提供的链接中找到);您可以根据需要通过更改标有以下内容的行中的参数\addvspace
(我选择10pt
的示例)来调整垂直空间% change here
:
\documentclass[phdthesis]{eethesis}
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\sectiontitlefont%
\ifnum\value{section}>1
\else
\addtocontents{toc}{\protect\addvspace{10pt}}% change here
\fi}}
\makeatother
\title{The Title}
\author{The Author}
\begin{document}
\tableofcontents
\chapter{Test Chapter With Sections}
\section{Test Section One One}
\section{Test Section One Two}
\chapter{Test Chapter Without Sections}
\chapter{Another Test Chapter Without Sections}
\chapter{Another Test Chapter With Sections}
\section{Test Section Three One}
\section{Test Section Three Two}
\end{document}