目录和正文中的节标题采用不同的样式

目录和正文中的节标题采用不同的样式

我希望我的章节标题根据其是否列在目录中或正文中而具有不同的“样式”(不确定这是否是正确的词)。这可能不太清楚,所以让我演示一下。

在正文中,我想看到:

Article I. Intro 
....
Article II. Methods
....

但在目录中我希望看到

I. Intro .......... 5
II. Methods ........10

没有“文章”部分。

现在,我正在使用它来设置章节标题:

\renewcommand{\thesection}{Article \Roman{section}.}

我应该提到我正在使用这个article课程。

答案1

titlesec包用于在章节编号前添加“文章”,并在编号后添加点。该tocloft包用于在目录条目中的编号后添加点,并增加为编号保留的空间:

\documentclass{article}
\usepackage{titlesec}
\usepackage{tocloft}

\renewcommand\thesection{\Roman{section}}
\titleformat{\section}
  {\normalfont\Large\bfseries}{Article~\thesection.}{1em}{}
\renewcommand\cftsecaftersnum{.}
\addtolength\cftsecnumwidth{1em}

\begin{document}

\tableofcontents
\section{Introduction}
\section{Methods}

\end{document}

在此处输入图片描述

答案2

您可以使用“The LaTeX Companion”第 26f 页中描述的方法生成以下输出:

在此处输入图片描述

\documentclass{article}
\renewcommand{\thesection}{\Roman{section}}
\makeatletter
%% The "\@seccntformat" command is an auxiliary command
%% (see pp. 26f. of 'The LaTeX Companion,' 2nd. ed.)
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
  {\csname the#1\endcsname\ }%   default
  {\csname #1@cntformat\endcsname}% enable individual control
}
%% Put everything together by defining the macros 
%% '\...@seccntformat', where ... can be 'section', 
%% 'subsection', etc.
\newcommand{\section@cntformat}{Article \thesection. }
\makeatother

\begin{document}
\tableofcontents
\section{Intro}
\section{Methods}
\end{document}

附录:你可能已经注意到,这种方法不是在目录中的罗马章节编号后插入一个句号。(我不喜欢不必要地提供标点符号……)如果你需要目录中罗马数字后面的点,请确保加载tocloft包并发出命令\renewcommand\cftsecaftersnum{.}(当然是在序言中)。并且,如果您需要目录样式的章节标题和相关页码之间的点线,则应\renewcommand\cftsecleader{\cftdotfill{\cftdotsep}}在加载tocloft包后发出命令。

相关内容