部分名称

部分名称

我想要以下内容,但一直无法解决:章节标题应采用以下形式

章节 章节编号。章节标题

(例如第 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}

相关内容