覆盖 cls 文件中的值的问题

覆盖 cls 文件中的值的问题

我正在写一篇论文,我想让目录单倍行距。这个问题之前有人问过,我在我的.tex文件中尝试了以下解决方案:

\begin{singlespace}
\tableofcontents
\end{singlespace}

但它不起作用(一切都编译得很好,但目录仍然是双倍行距)。我查看了.cls我使用的文件 -iitthesis.cls- 不想改变;我发现了这一点:

% \ssp : single-spacing
% \dsp : double-spacing
% \tsp : triple-spacing
\renewcommand{\normalsize}{\@normalsize}
\def\ssp{\def\baselinestretch{1.0}\large\normalsize}
\def\dsp{\def\baselinestretch{1.66}\large\normalsize}
\def\tsp{\def\baselinestretch{2.6}\large\normalsize}
...
\def\tableofcontents{
 \begin{center}
 \dsp{TABLE OF CONTENTS\\}
 \end{center}
 \ssp
\hfill Page\@starttoc{toc}} 

\dsp{TABLE OF CONTENTS\\}那么,这是覆盖的情况吗\begin{singlespace}?如果是,我该如何解决这个问题?我是否应该\tableofcontents.tex文件中定义为一个新命令来覆盖.cls文件中的命令?

答案1

我认为问题出在 的定义上\Chapter。(“双倍间距”是设计使然。)这似乎是一个非常奇怪的.cls文件,而且我不确定您遇到的问题的确切性质,但以下内容可能是您正在寻找的修复方法:

\renewcommand{\Chapter}[1]{%
  \clearpage  
  \noindent 
  \refstepcounter{chapter} 
  \begin{center}   
    \dsp{CHAPTER\space\thechapter\\} 
    \vspace{10pt}       
     \ssp\uppercase{#1}     
     \vspace{-5pt}    
     \end{center}             
  \addtocontents{toc}{\protect%\vspace*{3pt}%  <--- commented out 
} 
  \addcontentsline{toc}{chapter}{\protect
     \makebox[0.75in][r]{\thechapter.}\hspace*{3pt} \uppercase{#1}}
  \addtocontents{toc}{\protect%\vspace*{10pt}%  <--- commented out
}
}

不管怎么说,这似乎是一种非常不靠谱的方式来启动和运行章节命令。如果可能的话,您可能要考虑使用更新的(并且更灵活)文档类 --- 尽管这可能超出您的控制范围。

相关内容