我想添加一个没有编号的部分,但 \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
变体的必要性。)