![Autoref-Namen für benutzerdefinierte Gleichungsumgebung überschreiben](https://rvso.com/image/475708/Autoref-Namen%20f%C3%BCr%20benutzerdefinierte%20Gleichungsumgebung%20%C3%BCberschreiben.png)
\autoref
Ich kann keine Verweise aus dem hyperref
Paket auf eine benutzerdefinierte Umgebung erhalten, die auf der equation
Umgebung 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 query
Umgebung), aber es ist wichtig, dass der Inhalt der query
Umgebung auf den Mathematikmodus eingestellt ist und dass der Zähler der Umgebung unabhängig von anderen Zählern (wie dem equation
Zähler) ist. Die Verwendung von cleveref
anstelle von ist in diesem Fall problematisch, da es mir in Kombination mit der Vorlagen-/Dokumentklasse, die ich verwenden muss, hyperref
Probleme 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}