Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am trying to number my theorems as follows:

Theorem 1.A. First part of a theorem.

Theorem 1.B. Second part of the theorem.

Theorem 2. A theorem with no parts.

The following almost works:

\newtheorem{theorem}{Theorem}
\newtheorem{theorempart}{Theorem}[theorem]

But it does not increment the theorem counter as I want, so that

\begin{theorempart}First part of a theorem.
\end{theorempart}

\begin{theorempart}Second part of the theorem.
\end{theorempart}

\begin{theorem}A theorem with no parts.
\end{theorem}

gives:

Theorem 0.1. First part of a theorem.

Theorem 0.2. Second part of the theorem.

Theorem 1. A theorem with no parts.

Also, I don't know how to get the part-number to be a letter instead of a number.

I am using MiKTeX.

share|improve this question

1 Answer 1

up vote 14 down vote accepted

The model I used is that of the subequations environment in amsmath:

\documentclass{article}

\makeatletter
\newenvironment{subtheorem}[1]{%
  \def\subtheoremcounter{#1}%
  \refstepcounter{#1}%
  \protected@edef\theparentnumber{\csname the#1\endcsname}%
  \setcounter{parentnumber}{\value{#1}}%
  \setcounter{#1}{0}%
  \expandafter\def\csname the#1\endcsname{\theparentnumber.\Alph{#1}}%
  \ignorespaces
}{%
  \setcounter{\subtheoremcounter}{\value{parentnumber}}%
  \ignorespacesafterend
}
\makeatother
\newcounter{parentnumber}

\newtheorem{thm}{Theorem}

\begin{document}

\begin{thm}\label{thm:one}
One
\end{thm}

\begin{subtheorem}{thm}\label{thm:two}
\begin{thm}\label{thm:twoA}
Two, first part
\end{thm}

\begin{thm}\label{thm:twoB}
Two, second part
\end{thm}
\end{subtheorem}

\begin{thm}\label{thm:three}
Three
\end{thm}

\ref{thm:one}, \ref{thm:two}, \ref{thm:twoA}, \ref{thm:twoB}, \ref{thm:three}.

\end{document}

You enclose the part in which the theorems have to be "subnumbered" in the subtheorem environment, which takes as argument the name of the theorem-like environment you want to affect.

The \label commands are not mandatory, but you can see that you can also set a "global" label for the subnumbered theorem.

share|improve this answer
    
Cool, thank you very much :) –  Herman Tulleken Feb 4 '12 at 0:30

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.