[Tex/LaTex] Name of current section/figure

cross-referencing

I'm looking for a LaTeX command, say \foo, which expands to the type of section I'm in. In the following, the first \foo should expand to "Section", the second to "Subsection", and the third one to "Figure":

\section{aaa}
Hello \foo

\subsection{bbb}
Hello \foo

\begin{figure}
  whatever
  \caption{bla \foo}
\end{figure}

I'd like to have this to build a labeling package which knows where the label comes from, i.e., a \label{R4wmVP} inside a figure would make \ref{R4wmVP} print "Figure \thefigure". The benefit is that after making a section a subsection (or chapter), all references change automatically.

Best Answer

You can use the package hyperref with the commands autoref and nameref

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\section{aaa}\label{sec:1}
Hello \autoref{sec:1}\qquad\nameref{sec:1}

\subsection{bbb}\label{subsec:1}
Hello \autoref{subsec:1}\qquad\nameref{subsec:1}

\begin{figure}[!ht]
 whatever
 \caption{bla}\label{fig:1}
 \end{figure}

 \autoref{fig:1}\qquad\nameref{fig:1}

\end{document}

The code above produce the following result:

In relation to the comments here an example without hyperref by using nameref and cleveref

\documentclass{article}
\usepackage{nameref}
\usepackage{cleveref}

\begin{document}
\section{aaa}\label{sec:1}
Hello \nameref{sec:1}\qquad\cref{sec:1}\qquad\namecref{sec:1}

\subsection{bbb}\label{subsec:1}
Hello \nameref{subsec:1}\qquad\cref{subsec:1}\qquad\namecref{subsec:1}

\begin{figure}[!ht]
 whatever
 \caption{bla}\label{fig:1}
 \end{figure}

\nameref{fig:1}\qquad\cref{fig:1}\qquad\namecref{fig:1}
\end{document}