我可以为章节编号赋予预定义值吗?

我可以为章节编号赋予预定义值吗?

我想在我的文档中包含三个部分,但我希望部分编号分别为 3、5 和 6。我可以以某种方式为部分提供预定义值吗?

\documentclass[11pt]{article}
\begin{document}

\section{Third}
\section{Fifth}
\section{Sixth}

\end{document}

上述代码将照常创建 3 个部分,编号为 1、2、3。有什么办法可以改变它们吗?

答案1

使用几个\setcounter指令,对名为的计数器变量进行操作section

在此处输入图片描述

\documentclass[11pt]{article}
\begin{document}

\setcounter{section}{2} % so that the next section is numbered "3"
\section{Third}

\setcounter{section}{4} % so that the next section is numbered "5"
\section{Fifth}
\section{Sixth} % no need to set the 'section' counter variable for this section 

\end{document}

答案2

根据您的需要扩展它并\or<number>根据需要添加更多位。

\documentclass{article}

\makeatletter
\newcommand{\fancynumbering}[1]{\expandafter\@fancynumbering\csname c@#1\endcsname}
\newcommand{\@fancynumbering}[1]{%
  \ifcase#1\or3\or5\or6\else\@ctrerr\fi
}
\makeatother

\renewcommand{\thesection}{\fancynumbering{section}}

\begin{document}

\section{Third}
\section{Fifth}
\section{Sixth}

\end{document}

在此处输入图片描述

可能更简洁的界面:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\setupfancycounter}{mm}
 {
  \clist_const:cn { c_typos_#1_clist } { #2 }
 }
\DeclareExpandableDocumentCommand{\fancynumbering}{mm}
 {
  \int_compare:nTF
   { \int_use:c { c@#2 } > \clist_count:c { c_typos_#1_clist } }
   { \use:c { @ctrerr } }
   { \clist_item:cn { c_typos_#1_clist } { \int_use:c { c@#2 } } }
 }
\ExplSyntaxOff

\setupfancycounter{fancynumbers}{3,5,6}
\renewcommand{\thesection}{\fancynumbering{fancynumbers}{section}}

\begin{document}

\section{Third}
\section{Fifth}
\section{Sixth}
\section{Oops}

\end{document}

最后部分将会引发错误。

有一种更简单的方法,但是上述方法具有使用标准标记的优势。

\documentclass{article}

\newcommand{\fixedsection}[1]{%
  \setcounter{section}{#1}%
  \addtocounter{section}{-1}%
  \section
}

\begin{document}

\fixedsection{3}{Second}

\fixedsection{5}{Third}

\fixedsection{6}{Sixth}

\end{document}

相关内容