Substituir nome autoref para ambiente de equação personalizado

Substituir nome autoref para ambiente de equação personalizado

Não consigo obter referências feitas usando \autorefo hyperrefpacote para um ambiente personalizado com base no equationambiente para usar um nome personalizado. Em vez de usar o nome personalizado, essas referências usam "Equação".

Considere o seguinte exemplo:

\documentclass{article}

\usepackage{hyperref}

% Define a 'query' counter and environment, based on 'equation'
\newcounter{query}
\newenvironment{query}
{\refstepcounter{query}%
\renewcommand\theequation{Q\arabic{query}}\equation}
{\endequation}

% Attempt to override the name autoref uses for the query environment
\newcommand{\queryautorefname}{Query}

\begin{document}

A labelled instance of the query environment can be found below:
%
\begin{query}
    \label{q:my_query}
    Q(x) = ...
\end{query}

A reference to \autoref{q:my_query} using \texttt{autoref} uses the wrong name to refer to the environment (i.e., Equation rather than Query).

\end{document}

Este problema (conforme descrito no exemplo) é que a referência feita desta forma será "Equação Q1" onde eu gostaria que fosse "Consulta Q1". O que posso mudar para conseguir isso?

Estou aberto a uma estratégia diferente para fazer isso funcionar (por exemplo, uma definição diferente de queryambiente), mas é importante que o conteúdo do queryambiente seja definido no modo matemático e que o contador do ambiente seja independente de outros contadores (como o equationcontador). Usar cleverefem vez de hyperrefé problemático neste caso, pois me causou problemas em combinação com a svjour3classe de modelo/documento que devo usar.

Responder1

\documentclass{article}

\usepackage{hyperref}

% Define a 'query' counter and environment, based on 'equation'
\newcounter{query}
\makeatletter
\newenvironment{query}
{\stepcounter{query}%
 \def\Hy@chapterstring{equation}%
 \def\Hy@chapapp{query}%
\renewcommand\theequation{Q\arabic{query}}\equation}
{\endequation}
\makeatother
% Attempt to override the name autoref uses for the query environment
\newcommand{\queryautorefname}{Query}

\begin{document}

A labelled instance of the query environment can be found below:
%
\begin{query}
    \label{q:my_query}
    Q(x) = ...
\end{query}

A reference to \autoref{q:my_query} using \texttt{autoref} uses the wrong name to refer to the environment (i.e., Equation rather than Query).

\end{document}

insira a descrição da imagem aqui

informação relacionada