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 lemma
und definition
Umgebungen definiert sindnachDie Pakete hyperref
und cleveref
werden geladen. Die Verwendung \cref
anstelle von \autoref
sollte Ihnen das gewünschte Ergebnis liefern.
\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}