我正在使用杜克大学的 LaTeX 模板撰写硕士论文,该模板打印章节标题如下:
第1章
章节名称
但我想按如下方式打印
第一章:章节名称
我使用旧样式打印“章节”一词,欢迎提出任何建议
%-------------------------------------------------------------------------
% Chapter format:
%-------------------------------------------------------------------------
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
% Done with frontmatter?
\if@frontmatter
\@frontmatterfalse
\pagenumbering{arabic}
\setcounter{page}{1}
\fi
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\@makechapterhead{#2}%
\@afterheading
\normalbaselines
\@textspace % double-spaced chapter text
}
% Format for normal chapters (and appendicies)
\ifthenelse{\boolean{oldstyle}}{ }
{%
\def\@makechapterhead#1{%
\vspace*{1in} % Leave space at top of page
{
\parindent \z@ \raggedright \normalfont
\if@inappendix
% Include the word 'Appendix'
\makebox[\textwidth][r]{\Huge\bfseries \@chapapp\space\thechapter}
\else
% Don't include the word 'Chapter'
\makebox[\textwidth][r]{\Huge\bfseries \thechapter}
\fi
\par\nobreak
\vskip 10\p@
\interlinepenalty\@M
% Title format
\parbox{\textwidth}{ \flushright{%
\normalbaselines \LARGE #1 \par\nobreak }}
\vskip 40\p@
}%
\vspace*{50\p@}%
}
}
答案1
在下面oldstyle
文档类别选项下,杜克研究生院 LaTeX 模板使用默认report
班级章节设置。这是什么样子的?好吧,让我们看看\@makechapterhead
,负责设置章节标题的宏:
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
标题包括\huge\bfseries
CHAPTER ( \@chapapp
),然后是章节号,接着是垂直间隙,然后是\Huge\bfseries
章节标题。我们可以将其调整为以下内容:
\usepackage{fmtcount}
\makeatletter
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\huge\bfseries \@chapapp\space \NUMBERstring{chapter}: %\huge\bfseries \@chapapp\space \thechapter
%\par\nobreak
%\vskip 20\p@
\fi
\interlinepenalty\@M
\huge \bfseries #1\par\nobreak%\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
添加fmtcount
允许我们将章节计数器表示格式化为\NUMBERstring
- 输出代表计数器数字的字符串。
需要类似的东西\@makeschapterhead
- 负责设置带星号的章节标题的宏 - 以便在章节标题中具有相同的字体大小:
\makeatletter
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\huge \bfseries #1\par\nobreak%\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
将上述两个代码段添加到序言中,代表对带星号章节和普通章节的修改。输出现在应该类似于
如果使用\numberstring
而不是\NUMBERstring
,则输出类似于
查看fmtcount
文档以获得更多选项。