格式:对章节的段落进行编号

格式:对章节的段落进行编号

我在写一篇包含不等式的文章时遇到了一些问题。我想说的是:

现在,它看起来

Cauchy's Inequality

1. Introduction
2. Theorem

Bernoulli's Inequality

3. Introduction
4. Theorem

,我想表现为

Cauchy's Inequality

1. Introduction
2. Theorem

Bernoulli's Inequality

1. Introduction
2. Theorem

我能做什么?我使用的方法:

\documentclass[a4paper,12pt,fullpage,doublespace]{report}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage[usenames,dvipsnames]{color}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{hyperref}

\usepackage{variations}
\usepackage[romanian]{babel}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{graphicx}

\newtheorem{theorem}{Teorema}
\newtheorem{lemma}[theorem]{Lem\u a}

\newtheorem{corollary}[theorem]{Corolar}
\newtheorem{proposition}[theorem]{Not\u a}

\theoremstyle{definition}
\newtheorem{definition}[theorem]{Defini\c{t}ia}

\theoremstyle{remark}
\newtheorem{remark}[theorem]{Consecin\c t\u a}
\newtheorem{example}[theorem]{Exemplul}
\newtheorem*{acknowledgements}{Observa\c{t}ie}

答案1

首先,请注意,我取消了“全页”和“双倍行距”选项。它们是不必要的。(如果您想要双倍行距,只需使用setspace包裹

解决您实际问题的方法是在调用\chapter或时手动重置章节计数器。(由于某种原因失败。)然后,您只需重新定义以获得正确的编号,即从中取消章节编号:\chapter*\@addtoreset\thesection

\documentclass[a4paper,12pt]{report}

\makeatletter
\let\ltx@chapter\chapter
\renewcommand{\chapter}{\setcounter{section}{0}\ltx@chapter}
\renewcommand{\thesection}{\@arabic\c@section}
\makeatother

\begin{document}
\chapter*{Cauchy's Inequality}
\section{Introduction}
\section{Theorem}

\chapter*{Bernoulli's Inequality}
\section{Introduction}
\section{Theorem}
\end{document}

如果您需要目录,上面的代码将无法满足您的需求,正如@egreg 指出的那样。但是,您有很多方法可以解决这个问题。您只需手动添加

\addcontentsline{toc}{chapter}{<chaptername>}

紧接着手稿中特定章节的标记。这可以通过修补\@schapter(标准类中负责标记版本的宏\chapter)在 LaTeX 中轻松自动完成。实际上,这有点奇怪,因为标记版本最初应该绕过目录条目,您必须修补\chapter*以预期方式使用的宏,如其\tableofcontents本身,以规避此行为,即如果您不想为目录设置目录条目。

因此,创建一个具有自己名称的自定义宏可能会更方便,例如\IuliChapter(或其他任何名称:也许是反映此 sectiong 元素含义的名称,例如\subarticle或类似)。该定义与 的重新定义相同\@schapter。请考虑以下测试文件以查看发生了什么:

\documentclass[a4paper,12pt]{report}

\makeatletter
\let\ltx@@schapter=\@schapter
\renewcommand{\@schapter}[1]{%
  \clearpage
  \addcontentsline{toc}{chapter}{#1}
  \setcounter{section}{0}
  \ltx@@schapter{#1}}
\let\ltx@tableofcontents=\tableofcontents
\renewcommand{\tableofcontents}{\begingroup
  \let\@schapter=\ltx@@schapter
  \ltx@tableofcontents
  \endgroup}
\newcommand{\IuliChapter}[1]{%
  \clearpage
  \addcontentsline{toc}{chapter}{#1}
  \setcounter{section}{0}
  \ltx@@schapter{#1}}
\renewcommand{\thesection}{\@arabic\c@section}
\makeatother

\begin{document}

\tableofcontents

\chapter*{Cauchy's Inequality}
\section{Introduction}
\section{Theorem}

\IuliChapter{Bernoulli's Inequality}
\section{Introduction}
\section{Theorem}
\end{document}

如果您决定坚持最后一个选项,解决方案可以简化很多:

...
\makeatletter
\newcommand{\IuliChapter}[1]{%
  \clearpage
  \addcontentsline{toc}{chapter}{#1}
  \setcounter{section}{0}
  \@schapter{#1}}
\renewcommand{\thesection}{\@arabic\c@section}
\makeatother
...

相关内容