我想要以下内容,但一直无法解决:章节标题应采用以下形式
章节 章节编号。章节标题
(例如第 1 节关于欧拉定理。)
我尝试了一些原始的方法\renewcommand
,但失败了,因为我只希望 Section 出现在章节标题中,但不出现在定理编号等中。
\documentclass[12pt]{amsproc}
\begin{document}
\section{Preliminaries.}
\end{document}
答案1
您可以更新部分计数器的格式/打印方式。这可以通过宏完成\@seccntformat
:
\documentclass[12pt]{amsproc}% http://ctan.org/pkg/amsproc
\makeatletter
\def\@seccntformat#1{%
Section~\protect\textup{\protect\@secnumfont
\csname the#1\endcsname
\protect\@secnumpunct
}%
}
\makeatother
\begin{document}
\tableofcontents
\section{Preliminaries}\label{sec:prelim}
See Section~\ref{sec:prelim}.
\end{document}
的定义\@seccntformat
逐字取自amsclass.dtx
加上Section~
。
请注意,上述变化将影响全部部分。因此,even\subsection
将以 为前缀Section
。但是, 的参数\@seccntformat
恰好是<type>
部分单元的参数。因此,我们可以定义一组\<type>@name
(比如说)包含部分单元类型的宏来获取特定于单元的前缀:
\makeatletter
\newcommand{\section@name}{Section}
\newcommand{\subsection@name}{Subsection}
\newcommand{\subsubsection@name}{Subsubsection}
\def\@seccntformat#1{%
\csname #1@name\endcsname~\protect\textup{\protect\@secnumfont
\csname the#1\endcsname
\protect\@secnumpunct
}%
}
\makeatother
答案2
使用 titlesec 包应该可以做到这一点。只需尝试以下代码:
\documentclass[12pt]{amsproc}% http://ctan.org/pkg/amsproc
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{titlesec}
\usepackage[dotinlabels]{titletoc}
\titleformat{\section}[block]{\bfseries\large\filcenter}{Section \thesection.}{0.4em}{}
\titlespacing*{\section}{0pt}{2\baselineskip}{2\baselineskip}
\titlecontents{section}[4em]{}{\contentslabel{1.5em}}{}{}%
\begin{document}
\tableofcontents
\section{Preliminaries}\label{sec:prelim}
\section{Another section}
See Section~\ref{sec:prelim}.
\end{document}