7

I have two definitions defined as follows:

\newtheorem{definition_1}{Definition 1}[chapter]
\begin{definition_1}
    \label{def:def_1}
    Definition 1 text here.
\end{definition_1}

\newtheorem{definition_2}{Definition 2}[chapter]
\begin{definition_2}
    \label{def:def_2}
    Definition 2 text here.
\end{definition_2}

With references to them as

Definition~\ref{def:def_1}
Definition~\ref{def:def_2}

Both give me the same definition number (3.1). I have enabled the associated package:

\usepackage{amsthm}

How do I fix this?

1 Answer 1

12

You needn't define a new environment at each use:

\documentclass[a4paper]{book}
\usepackage{amsthm}
\newtheorem{definition}{Definition}[chapter]

\begin{document}
\mainmatter
\chapter{Definitions}

\begin{definition}\label{defa}
Text of the definition
\end{definition}

\begin{definition}\label{defb}
Text of the second definition
\end{definition}

\ref{defa} and \ref{defb}
\end{document}

All theorem-like environment are declared before \begin{document}.

5
  • How to make this compatible with \Cref ? Sep 28, 2018 at 15:05
  • @Sari Isn't it out of the box?
    – egreg
    Sep 28, 2018 at 15:13
  • No, it shows ??? NUMBER. Sep 28, 2018 at 15:18
  • 1
    @Sari I added \usepackage{cleveref} after \usepackage{amsthm} and changed \ref into \Cref. This picture (click) shows the expected output.
    – egreg
    Sep 28, 2018 at 15:36
  • Great, my cleverref was before amsthm. It worked, thank :) Sep 28, 2018 at 15:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .