Autoref-Namen für benutzerdefinierte Gleichungsumgebung überschreiben

Autoref-Namen für benutzerdefinierte Gleichungsumgebung überschreiben

\autorefIch kann keine Verweise aus dem hyperrefPaket auf eine benutzerdefinierte Umgebung erhalten, die auf der equationUmgebung basiert, um einen benutzerdefinierten Namen zu verwenden. Anstatt den benutzerdefinierten Namen zu verwenden, verwenden solche Verweise „Gleichung“.

Betrachten Sie das folgende Beispiel:

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

Das Problem (wie im Beispiel beschrieben) besteht darin, dass der so erstellte Verweis „Gleichung Q1“ lautet, obwohl ich ihn gerne „Abfrage Q1“ hätte. Was kann ich ändern, um dies zu erreichen?

Ich bin offen für eine andere Strategie, um dies zum Laufen zu bringen (zum Beispiel eine andere Definition der queryUmgebung), aber es ist wichtig, dass der Inhalt der queryUmgebung auf den Mathematikmodus eingestellt ist und dass der Zähler der Umgebung unabhängig von anderen Zählern (wie dem equationZähler) ist. Die Verwendung von cleverefanstelle von ist in diesem Fall problematisch, da es mir in Kombination mit der Vorlagen-/Dokumentklasse, die ich verwenden muss, hyperrefProbleme bereitet hat .svjour3

Antwort1

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

Bildbeschreibung hier eingeben

verwandte Informationen