如何实现章节编号的自动增加?

如何实现章节编号的自动增加?

正如标题所述,我希望跳过部分内容,特别是其他部分。最简单的手动方式是使用

\setcounter{section}{#}
\addtocounter{section}{1}
\section

这样我就可以得到所有偶数/奇数部分等。但是,每次我都必须手动添加一个增量。有没有自动化的流程可以做到这一点?例如,更改部分的计数器,使其每次都增加 2,而不是 1?

答案1

一种方法是将计数器的打印格式设为基础值的两倍。

在此处输入图片描述

\documentclass{article}

\renewcommand\thesection{\the\numexpr2*\value{section}-1\relax}
\begin{document}

\section{zzz}
z
\section{zzzz}
z
\section{zzzz}
z

\end{document}

答案2

这里有一种通过“重新定义”部分的方法(要清楚并没有重新定义这一点,但你可以通过只改变定义\def\msection来实现\def\section)...

一切正如预期的那样进行......

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{fancyhdr}
\let\oldsection\section
\makeatletter
\def\msection{%
\@ifstar{\@Starred}{\@nonStarred}%
}
\def\@Starred{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have optional parameters. I am going to ignore them!}\@StarredWith}%
{\@StarredWithout}%
}      
\def\@StarredWith[#1]#2{%
\oldsection*{#2}%
}
\def\@StarredWithout#1{
\oldsection*{#1}%
}
\def\@nonStarred{%
\@ifnextchar[%
{\@nonStarredWith}%
{\@nonStarredWithout}%
}
\def\@nonStarredWith[#1]#2{%
\addtocounter{section}{1}
\oldsection[#1]{#2}%
}
\def\@nonStarredWithout#1{%
\addtocounter{section}{1}
\oldsection{#1}%
}
\makeatother 

\begin{document}
\pagestyle{fancy}

\msection{Introduction}

\msection{First}

\msection{Second}

\msection*{Third}
\lipsum


\msection[Fourth]{long Forth}

\end{document}

抱歉(我的电脑上现在没有屏幕截图...我可以稍后添加)

附言:来自我的旧答案。

相关内容