Quiero poder imprimir los nombres de mis propios teoremas con autoref. Por ejemplo, en
\begin{lemma}
\label{lemma_foo}
Some lemma
\end{lemma}
\autoref{lemma_foo}
Quiero que se imprima algo como "Lema 3.2".
Mi enfoque actual es:
\newtheorem{lemma}{Lemma}[chapter]
\newcommand{\lemmaautorefname}{Lemma}
\newtheorem{definition}[lemma]{Definition}
\newcommand{\definitionautorefname}{Definition}
La definición comparte el contador con el lema, lo cual tiene como objetivo, sin embargo, tiene el efecto secundario, que hacer referencia a definiciones da como resultado que se les llame lemas.
¿Cómo puedo solucionar esto?
Respuesta1
Siempre que los entornos lemma
y definition
estén definidosdespuésLos paquetes hyperref
y cleveref
están cargados, usarlos \cref
en lugar de \autoref
debería darle lo que desea.
\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}
Respuesta2
Logré que esto funcionara con \autoref, pero solo permitirá que los contadores cuenten para cada tipo. Entonces tendrías la Definición 1.1, luego la Definición 1.2 y si agregas un lema después de ese Lema 1.1. Podría ser aceptable.
\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]
\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\definitionautorefname}{Definition}