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?

11

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}.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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