TransWikia.com

Problem with numbering theorem by section

TeX - LaTeX Asked by Jung Lim. Koo on February 15, 2021

I am having a problem with the numbering of the theorems (by section) in a paper. My problem is that I want to number my theorems and propositions such that they appear as something like:

Theorem 3.1, Proposition 3.1 etc.

However, using the current list of commands I have, I am getting the following:

Theorem 31, Proposition 31 etc.

It seems like at least for the theorem command that I have put in, it is the usual command to call when trying to number theorems by section, so I am a little stumped why I am getting this error.

Here is my list of packages and commands:

documentclass[smallextended,referee]{svjour3} 

smartqed 

usepackage{graphicx}
usepackage{epstopdf}% To incorporate .eps illustrations using PDFLaTeX, etc.
usepackage{subfigure}% Support for small, `sub' figures and tables
usepackage{amsmath}
usepackage{amssymb}
usepackage{amscd}
usepackage{epsfig}
usepackage{amsfonts}
usepackage{amsthm}
usepackage{color}

theoremstyle{plain}
newtheorem{thm}{Theorem}[section]
newtheorem{cor}[theorem]{Corollary}
newtheorem{lem}[theorem]{Lemma}
newtheorem{ntn}{Notations}[section]
newtheorem{pro}{Proposition}[section]
newtheorem{dfn}{Definition}[section]
newtheorem{as}{Assumption}[section]
newtheorem{rem}{Remark}[section]
newtheorem{ob}{Observation}[section]

renewcommand{thefigure}{arabic{section}.arabic{figure}}
renewcommand{theequation}{arabic{section}.arabic{equation}}
defdiv{mathop{rm div}}
defD{mathop{bf rm D}}
defFP{mathop{rm p}}
defSpan{mathop{rm Span}}
defboldalpha{mbox{boldmath $alpha$}}
defboldpi{mbox{boldmath $pi$}}
defboldzeta{mbox{boldmath $zeta$}}
defboldtheta{mbox{boldmath $theta$}}


begin{document}

section{Solution}label{Solution}

begin{lem}label{conditions}
 Words for lemma
end{lem}

begin{thm}label{mainthm}
 Words for theorem
end{thm}

begin{rem}label{remone}
Words for remark
end{rem}

section{Analysis}label{Analysis}

begin{pro}label{observation}
Words for proposition
end{pro}

begin{rem}label{remtwo}
Words for remark
end{rem}

begin{thm}label{secondthm}
Words for remark
end{thm}

begin{pro}label{proposition}
Words for proposition
end{pro}

end{document}

3 Answers

Theorem-like environments should be defined, with the svjour3 class, by using

spnewtheorem

and not newtheorem. Here's how you should do:

documentclass[smallextended,referee,envcountsect]{svjour3}

usepackage{amsmath}
usepackage{bm}

smartqed
journalname{foo}

% Theorem-like environments are defined with spnewtheorem
%
% Usage:
%
%     spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
% or  spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
% or  spnewtheorem*{env_nam}{caption}{cap_font}{body_font}

spnewtheorem{thm}{Theorem}[section]{bfseries}{itshape}
spnewtheorem{cor}[theorem]{Corollary}{bfseries}{itshape}
spnewtheorem{lem}[theorem]{Lemma}{bfseries}{itshape}
spnewtheorem{ntn}{Notations}[section]{bfseries}{itshape}
spnewtheorem{pro}{Proposition}[section]{bfseries}{itshape}
spnewtheorem{dfn}{Definition}[section]{bfseries}{itshape}% maybe upshape?
spnewtheorem{as}{Assumption}[section]{bfseries}{itshape}
spnewtheorem{rem}{Remark}[section]{bfseries}{itshape}
spnewtheorem{ob}{Observation}[section]{bfseries}{itshape}

DeclareMathOperator{Div}{div} % div is already defined
DeclareMathOperator{D}{mathbf{D}}
DeclareMathOperator{FP}{p}
DeclareMathOperator{Span}{Span}

newcommand{boldalpha}{bm{alpha}}
newcommand{boldpi}{bm{pi}}
newcommand{boldzeta}{bm{zeta}}
newcommandboldtheta{bm{theta}}


begin{document}

section{Solution}label{Solution}

begin{lem}label{conditions}
 Words for lemma
end{lem}

begin{thm}label{mainthm}
 Words for theorem
end{thm}

begin{rem}label{remone}
Words for remark
end{rem}

section{Analysis}label{Analysis}

begin{pro}label{observation}
Words for proposition
end{pro}

begin{rem}label{remtwo}
Words for remark
end{rem}

begin{thm}label{secondthm}
Words for remark
end{thm}

begin{pro}label{proposition}
Words for proposition
end{pro}

end{document}

enter image description here

Note that I left only the packages necessary for the example to run. Note also how I redefined your personal commands, in the correct way: in particular, don't redefine commands you don't know about (div, in this case).

About the packages you load in the example:

  • amsfonts is already loaded by amssymb
  • amsthm is not compatible with svjour3
  • epsfig must not be loaded in new document (it's just for back compatibility)
  • subfigure has been obsolete for 10+ years, call

    usepackage[caption=false]{subfig}
    

    instead; the subfigure command becomes subfloat.

About the theorem numbering: having separate counters for all kinds of statements is unnecessarily confusing for the reader, who will have hard times in finding the statements when referenced at: is lemma 1.1 before or after proposition 1.1?

Correct answer by egreg on February 15, 2021

Actually I have tried the solution of egreg's, and then find out that you don't need to create the command spnewtheorem{xx}{XX}[section]

It is the option envcountsect in the svjour3 class that really helps.

documentclass[envcountsect]{svjour3}

If you look into the file svjour.cls, and seach spnewtheorem{theorem}{Theorem}, around line 888, you would find things like @envcntsect is prerequisite of the numbering by section.

And then, you just use

begin{theorem}
    your theorem here.
end{theorem}

to wrap your theorem. Proof, lemma, definition, case... are likewise.

Answered by LanternD on February 15, 2021

You should use documentclass[natbib,smallextended, envcountsect]{svjour3}

Answered by user223793 on February 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP