我想在我的文档中包含三个部分,但我希望部分编号分别为 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}