Newtheoremstyle:从 0 开始计数

Newtheoremstyle:从 0 开始计数

我定义了 a\newtheoremstyle并且希望它从 0 而不是 1 开始计数。我该怎么做?

答案1

两个都amsthmntheorem定义\newtheoremstyle来声明一个新的定理样式,每个样式都有非常不同的接口。但是,两者都以类似的方式定义与新定理环境相关的计数器。在这两种情况下,在-1声明之后但在第一次使用之前或在文档序言中将计数器设置为,会将其初始化为从开始0

amsthm

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{amsthm}% http://ctan.org/pkg/amsthm

\newtheoremstyle{lemmastyle}% <name>
  {3pt}% <Space above>
  {3pt}% <Space below>
  {}% <Body font>
  {}% <Indent amount>
  {\itshape}% <Theorem head font>
  {:}% <Punctuation after theorem head>
  {.5em}% <Space after theorem head>
  {}% <Theorem head spec (can be left empty, meaning `normal')>
\theoremstyle{lemmastyle}
\newtheorem{lemma}{Lemma} \setcounter{lemma}{-1}

\begin{document}
\lipsum[1]
\begin{lemma}
\lipsum[2]
\end{lemma}
\end{document}

ntheorem

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{ntheorem}% http://ctan.org/pkg/ntheorem
\makeatletter
\newtheoremstyle{lemmastyle}%
  {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}% no optional argument
  {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3)\theorem@separator]}% optional argument
\makeatother
\theoremstyle{lemmastyle}
\newtheorem{lemma}{Lemma} \setcounter{lemma}{-1}
\begin{document}
\lipsum[1]
\begin{lemma}
\lipsum[2]
\end{lemma}
\end{document}​

但是,如果您新定义的定理与另一个计数器(主计数器)(的从属)同步,例如(比如说)\chapter\section,那么需要做更多的工作才能在每次主计数器递增时将其重置为-1(而不是)。0

在这两种情况下lipsum用于提供虚拟文本乱码风格。

相关内容