我想确保1
无论是否指定了章节,章节编号始终从 开始。例如,以下代码片段将生成子章节编号为0.1
。目标是生成子1.1
章节编号,并遵循子章节编号、图表/表格编号等。
\documentclass[12pt]{article}
\begin{document}
% \section{The beginning}
\subsection{Getting Started}
Some text
\end{document}
答案1
要从任意级别的节开始,并进行任意计数,您必须更改该节级别的计数器(以及每个更高级别,如果有的话)。图表和表格可以以相同的方式操作。
根据您的具体需求,您可以使用 将计数器设置为固定数字,\setcounter
或者使用 将某个数字添加到计数器 x 次(求和)\addtocounter
。示例:
\documentclass{article}
\begin{document}
\section{Whatever}
\addtocounter{section}{1}
\setcounter{subsection}{5}
\setcounter{subsubsection}{8}
\subsubsection{Getting finished}
Some text
\end{document}
这会产生2.5.9
但在该设置之前添加部分,计数器将为3.5.9
,4.5.9
依此类推。
答案2
(在原帖者阐明了他/她想要实现的目标后,我重写了我的答案。)
如果有是
\section
第一个命令之前的指令,\subsection
必须注意“不要做任何特殊的事情” - 特别是不要增加计数器section
。相反,如果有不
\section
第一个\subsection
命令之前的指令,section
柜台设置为。因此,即使没有执行任何指令1
,分配给第一个子节级标题的编号也是 。根据设计,这不仅会影响子节的编号,还会影响和环境的标题编号。LaTeX 将第一个“真实”节标题的编号设置为。1.1
\section
figure
table
2
\section
请注意,尽管此时尚未发出任何指令,但以下屏幕截图中的小节级标题和两个标题的编号为“1.1” 。
\documentclass{article}
\counterwithin{table}{section} % per the OP's write-up
\counterwithin{figure}{section}
\usepackage{xpatch} % for '\pretocmd' macro
\pretocmd{\subsection}{\ifnum\value{section}=0\stepcounter{section}\fi}{}{}
\pretocmd{\caption}{\ifnum\value{section}=0\stepcounter{section}\fi}{}{}
\begin{document}
%\section{The beginning} % <-- uncomment to revert to standard setup
\subsection{Getting started}
\begin{figure}[h] \caption{First figure} \end{figure}
\begin{table}[h] \caption{First table} \end{table}
\section{The end}
\subsection{Leaving}
\begin{figure}[h] \caption{Second figure} \end{figure}
\begin{table}[h!] \caption{Second table} \end{table}
\end{document}