如何更改 .cls 文件中 \part 的格式?

如何更改 .cls 文件中 \part 的格式?

我正在使用基于 report.cls 模板的外部文件。我需要更改目录和页面上的.cls顶级部分(即对象)的格式。特别是,\part\part

  • 在目录中,我需要\part条目居中、全大写、没有页码,并以单词“PART”开头,例如“PART I:FOO”,“PART II:BAR”
  • \part文档的页面上,我需要关闭页脚中的页码。

目前,在.cls文件中,\tableofcontents命令是:

\renewcommand{\tableofcontents}{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \normalsize
    \chapter*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    {\hfill \textbf{Page}\par}%
    {\hyphenpenalty=\umthesis@listhyphenpenalty\@starttoc{toc}}%
    \if@restonecol\twocolumn\fi
    }

至于\part格式化,我没有在.cls文件中看到任何相关命令。

我认为这些变化对于 TeX 专家来说是很简单的,但作为一个有最后期限的新手,我没有取得太大的进展。任何帮助都非常感谢!

答案1

如果该类未定义\part并且该命令可用,则在类文件的开头附近的某处就会出现该命令\LoadClass,并且根据您的报告,基类应该是report

因此可以在中找到要修改的定义report.cls;以下内容应该可以满足您的要求:

\makeatletter
\def\@part[#1]#2{%
  \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \addcontentsline{toc}{part}{%
      \MakeUppercase{Part \thepart: #1}}%
  \else
    \addcontentsline{toc}{part}{\MakeUppercase{#1}}%
  \fi
  \markboth{}{}%
  {\centering
   \interlinepenalty \@M
   \normalfont
   \ifnum \c@secnumdepth >-2\relax
     \huge\bfseries \partname\nobreakspace\thepart
     \par
     \vskip 20\p@
   \fi
   \Huge \bfseries #2\par}%
  \@endpart}
\def\@endpart{%
   \thispagestyle{empty}%
   \vfil\newpage
   \if@twoside
     \if@openright
       \null
       \thispagestyle{empty}%
       \newpage
     \fi
   \fi
   \if@tempswa
     \twocolumn
   \fi}
\makeatother

相关内容