章节编号不带数字

章节编号不带数字

我想添加一个没有编号的部分,但 \section* 也会将其从编号中排除,因此如果有这个

\section*{Section 1}
\subsection{Subsection}
\subsection{Subsection 2}
\section*{Section 2}
\subsection{Subsection 3}

我得到了我想要的直到第 2 部分的内容,但我希望第 3 小节编号为“2.1”,但它一直编号为“1.3”。

有什么命令可以解决这个问题吗?

答案1

这是一个可自定义的版本;\prefix@subsection例如,通过定义,您还可以向子节编号添加一些前缀。请注意,您使用\section而不是\section*

\documentclass{article}
\makeatletter
% we use \prefix@<level> only if it is defined
\renewcommand{\@seccntformat}[1]{%
  \ifcsname prefix@#1\endcsname
    \csname prefix@#1\endcsname
  \else
    \csname the#1\endcsname\quad
  \fi}
% define \prefix@section
\newcommand\prefix@section{Section \thesection: }
\makeatother

\begin{document}
\section{Hello}
\subsection{Subsection}
\subsection{Subsection 2}
\section{Go on}
\subsection{Subsection 3}
\end{document}

在此处输入图片描述

另一个应用:

\documentclass{article}
\makeatletter
% we use \prefix@<level> only if it is defined
\renewcommand{\@seccntformat}[1]{%
  \ifcsname prefix@#1\endcsname
    \csname prefix@#1\endcsname
  \else
    \csname the#1\endcsname\quad
  \fi}
% define \prefix@section
\newcommand\prefix@section{}
\newcommand{\prefix@subsection}{\thesubsection\ - }
\newcommand{\prefix@subsubsection}{\thesubsubsection\ - }
\renewcommand{\thesubsection}{\arabic{subsection}}
\makeatother

\begin{document}
\section{A section}
\section{Another section}
\section{A third section}
\subsection{A subsection}
\subsubsection{A subsubsection}
\subsubsection{Another subsubsection}

\end{document}

在此处输入图片描述

答案2

您不想要未编号的部分,您只想修改样式以不显示数字:

在此处输入图片描述

\documentclass{article}

\makeatletter
\def\@seccntformat#1{%
  \expandafter\ifx\csname c@#1\endcsname\c@section\else
  \csname the#1\endcsname\quad
  \fi}
\makeatother

\begin{document}
\section{Section aa}
\subsection{Subsection}
\subsection{Subsection bbb}
\section{Section zzz}
\subsection{Subsection jjj}

\end{document}

或者正如你在评论中澄清的那样想要数字,但前缀为Section

在此处输入图片描述

\documentclass{article}

\makeatletter
\def\@seccntformat#1{%
  \expandafter\ifx\csname c@#1\endcsname\c@section
  Section \thesection:
  \else
  \csname the#1\endcsname\quad
  \fi}
\makeatother

\begin{document}
\section{aa}
\subsection{Subsection}
\subsection{Subsection bbb}
\section{zzz}
\subsection{Subsection jjj}

\end{document}

答案3

考虑使用titlesec包,它会为您完成繁重的工作。请注意,此解决方案要求您决定部分的外观。由于样式在 的定义中是硬编码的\section,因此我认为没有“好”的方法来访问它。

\documentclass{article}
\usepackage{titlesec}

\titleformat{\section}
  {\normalfont\Large\bfseries}   % The style of the section title
  {}                             % a prefix
  {0pt}                          % How much space exists between the prefix and the title
  {Section \thesection:\quad}    % How the section is represented

% Starred variant
\titleformat{name=\section,numberless}
  {\normalfont\Large\bfseries}
  {}
  {0pt}
  {}

\begin{document}
\section{Animals}
\subsection{Vertebrates}
\subsection{Invertebrates}
\section{Plants}
\subsection{Fruit-Bearing}
\subsection{Carnivorous}
\section*{Unnumbered Section}
\end{document}

输出

(感谢@egreg 指出numberless变体的必要性。)

相关内容