autorref no novo teorema

autorref no novo teorema

Quero poder imprimir os nomes dos meus próprios teoremas com autoref. Por exemplo, em

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

\autoref{lemma_foo}

Quero que algo como "Lema 3.2" seja impresso.

Minha abordagem atual é:

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

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

A definição compartilha o contador com o lema, o que se pretende, mas tem o efeito colateral, de que referenciar definições resulta em elas serem chamadas de lemas.

Como faço para corrigir isso?

Responder1

Contanto que os lemmaambientes definitione sejam definidosdepoisos pacotes hyperrefe cleverefsão carregados, usando \crefem vez de \autorefdeve fornecer o que você deseja.

insira a descrição da imagem aqui

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

Responder2

Consegui fazer isso funcionar com \autoref, mas só permitirá que os contadores contem para cada tipo. Então você teria a Definição 1.1 e depois a Definição 1.2 e se você adicionar um lema depois desse Lema 1.1. Pode ser aceitável.

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

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

informação relacionada