Cross Referencing Captions Hungarian – Figure Ref, Switch Number and Figure Caption

captionscross-referencinghungarian

When I am using \autoref{fig:lion} the the output look like this: Ábra 1 (this is a hungarian document and it means Figure 1). And when I am hovering over the reference text, the text (Ábra 1) shines yellow (I am using overleaf editor).

Is there a way to switch from Ábra 1 into 1. ábra, when I am referencing a figure, the whole reference text should shine yellow, when I am hovering over the reference text.

Sometimes the reference output should look like this: 1. ábrán, cuz sometimes we are using suffix after a word, so this case, the reference text should look like this 1. ábrán, and when I am hovering over the reference text, the text (1. ábrán) should shine yellow.

If I am using \ref{fig:lion} then the output looks like this 1, so I have to use \ref{fig:lion}. ábra or \ref{fig:lion}. ábrán, but when I am hovering over the text, only the number shines yellow. I want the whole reference text to shine yellow when I am hovering over the reference text.

I hope that makes sense.

The only solution is that I can think of is \hyperref[fig:lion]{1. ábra}, but I do not know how to build a custome figure ref counter.

By the way, in the document I am referencing a figure several time, sometimes in a different section.

Other thing is that, there are multiple suffixes in Hungarian language, 1. ábrán is just one of them.

UPDATE

\documentclass[12pt,a4paper]{report}

\usepackage{t1enc}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumerate}
\usepackage[thmmarks,amsmath]{ntheorem}
\usepackage{graphics}
\usepackage{epsfig}
\usepackage{listingsutf8}
\usepackage{color}
%\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{anysize}
\usepackage[magyar]{babel}
\selectlanguage{magyar}
\usepackage{sectsty}
\usepackage{setspace}
\usepackage[hang]{caption}
\usepackage{hyperref}
\usepackage{float}
\usepackage[euler]{textgreek}
\usepackage{booktabs}

\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\marginsize{2.5cm}{2.5cm}{1.0cm}{1.0cm} % anysize package

\hypersetup{
    bookmarks=true,        
    unicode=false,           
    pdftitle={...},       
    pdfauthor={...},   
    pdfsubject={...}, 
    pdfcreator={...},   
    pdfproducer={Producer},   
    pdfkeywords={keywords},  
    pdfnewwindow=true,     
    colorlinks=true,          
    linkcolor=black,          
    citecolor=black,
    filecolor=black,
    urlcolor=black
}

\begin{document}

\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{lion.jpg}   
  \caption{Lion}
  \label{fig:lion}
\end{figure}

\autoref{fig:lion}

\end{document}

Best Answer

You can use the cleveref package.

\documentclass[12pt,a4paper,magyar]{report}

\usepackage{t1enc}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumerate}
\usepackage[thmmarks,amsmath]{ntheorem}
\usepackage{graphics}
\usepackage{epsfig}
\usepackage{listingsutf8}
\usepackage{color}
%\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{anysize}
\usepackage{babel}
\selectlanguage{magyar}
\usepackage{sectsty}
\usepackage{setspace}
\usepackage[hang]{caption}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{float}
\usepackage[euler]{textgreek}
\usepackage{booktabs}

\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\marginsize{2.5cm}{2.5cm}{1.0cm}{1.0cm} % anysize package

\hypersetup{
    bookmarks=true,        
    unicode=false,           
    pdftitle={...},       
    pdfauthor={...},   
    pdfsubject={...}, 
    pdfcreator={...},   
    pdfproducer={Producer},   
    pdfkeywords={keywords},  
    pdfnewwindow=true,     
    colorlinks=true,          
    linkcolor=black,          
    citecolor=black,
    filecolor=black,
    urlcolor=black
}

\crefformat{figure}{#2#1.~ábra#3}

\begin{document}

\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{lion.jpg}   
  \caption{Lion}
  \label{fig:lion}
\end{figure}

\cref{fig:lion}

\end{document}

Note that i moved the magyar option to the class declaration, as it is recommended to do so by the cleveref manual when using babel.

Here is another approach, but i don't know how robust it is. You can define a new command using \hyperref in the following way:

\documentclass[12pt,a4paper]{report}

\usepackage{t1enc}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumerate}
\usepackage[thmmarks,amsmath]{ntheorem}
\usepackage{graphics}
\usepackage{epsfig}
\usepackage{listingsutf8}
\usepackage{color}
%\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{anysize}
\usepackage[magyar]{babel}
\selectlanguage{magyar}
\usepackage{sectsty}
\usepackage{setspace}
\usepackage[hang]{caption}
\usepackage{hyperref}
\usepackage{float}
\usepackage[euler]{textgreek}
\usepackage{booktabs}

\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\marginsize{2.5cm}{2.5cm}{1.0cm}{1.0cm} % anysize package

\hypersetup{
    bookmarks=true,        
    unicode=false,           
    pdftitle={...},       
    pdfauthor={...},   
    pdfsubject={...}, 
    pdfcreator={...},   
    pdfproducer={Producer},   
    pdfkeywords={keywords},  
    pdfnewwindow=true,     
    colorlinks=true,          
    linkcolor=black,          
    citecolor=black,
    filecolor=black,
    urlcolor=black
}

\newcommand*\myref[2][ábra]{\hyperref[#2]{\ref*{#2}.~#1}}

\begin{document}
    
    \begin{figure}[H]
        \centering
        \includegraphics[width=0.8\textwidth]{example-image}   
        \caption{Lion}
        \label{fig:lion}
    \end{figure}
    
    \myref{fig:lion}
    
    \myref[ábrán]{fig:lion}
    
\end{document}
Related Question