Autoreferenz bei Newtheorem

Autoreferenz bei Newtheorem

Ich möchte die Namen meiner eigenen Theoreme mit autoref drucken können. Zum Beispiel auf

\begin{lemma}
\label{lemma_foo}
  Some lemma
\end{lemma}

\autoref{lemma_foo}

Ich möchte, dass etwas wie „Lemma 3.2“ ausgedruckt wird.

Mein aktueller Ansatz ist:

\newtheorem{lemma}{Lemma}[chapter]
\newcommand{\lemmaautorefname}{Lemma}

\newtheorem{definition}[lemma]{Definition}
\newcommand{\definitionautorefname}{Definition}

Die Definition teilt den Zähler mit dem Lemma, was beabsichtigt ist, hat jedoch den Nebeneffekt, dass das Verweisen auf Definitionen dazu führt, dass diese als Lemmata bezeichnet werden.

Wie behebe ich das?

Antwort1

Solange die lemmaund definitionUmgebungen definiert sindnachDie Pakete hyperrefund cleverefwerden geladen. Die Verwendung \crefanstelle von \autorefsollte Ihnen das gewünschte Ergebnis liefern.

Bildbeschreibung hier eingeben

\documentclass{report} % or 'book'?
\usepackage{ntheorem}  % or 'amsthm'?
\usepackage[colorlinks]{hyperref}
\usepackage[capitalize,nameinlink,noabbrev]{cleveref} % to emulate \autoref style

\newtheorem{lemma}{Lemma}[chapter]
\newcommand{\lemmaautorefname}{Lemma}
\newtheorem{definition}[lemma]{Definition}
\newcommand{\definitionautorefname}{Definition}

\setcounter{chapter}{1} % just for this example

\begin{document}
\begin{lemma}
\label{lemma_foo}
  Some lemma
\end{lemma}
\autoref{lemma_foo}  (correct) and \cref{lemma_foo} (correct) \dots

\begin{definition}
\label{definition_bar}
  A definition
\end{definition}
\autoref{definition_bar} (incorrect) and \cref{definition_bar} (correct) \dots

\end{document}

Antwort2

Ich habe es geschafft, dies mit \autoref zum Laufen zu bringen, aber es erlaubt nur das Zählen der Zähler für jeden Typ. Sie hätten also Definition 1.1, dann Definition 1.2 und wenn Sie danach ein Lemma hinzufügen, Lemma 1.1. Das könnte akzeptabel sein.

\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]

\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\definitionautorefname}{Definition}

verwandte Informationen