我定义了 a\newtheoremstyle
并且希望它从 0 而不是 1 开始计数。我该怎么做?
答案1
两个都amsthm
和ntheorem
定义\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
用于提供虚拟文本乱码风格。