Is it possible to make \nameref display not only the title of the section but also its number?

\section{First Section}

\subsection*{Unnumbered subsection}


As we defined in section \nameref{sec:some_sec}, yada yada yada, see section \nameref{sec:subsec}

With normal \nameref I get:

"As we defined in section First Section, yada yada yada, see section Unnumbered subsection"

what I want is a combination of numbers (as in \autoref} and section names AND (if possible) unnumbered subsections should inherit the number of the parenting section:

"As we defined in section 1 First Section, yada yada yada, see section 1 Unnumbered subsection"

  • 7
    section~\ref{sec:some_sec} \nameref{sec:some_sec} – egreg Jun 30 '13 at 18:05
  • Welcome to TeX.SX! You can have a look on our starter guide to familiarize yourself further with our format. – Claudio Fiandrino Jun 30 '13 at 18:18
  • 1
    Your label {sec:subsec} has a negative effect. You are using \subsection* and so there is no anchor (number) for any label. – Marco Daniel Jun 30 '13 at 18:55
  • Marco, the answer works as I described above. For un-numbered subsections the number of the parenting section should be used -- and this is the case. Also, when i click the text in the PDF I get to the subsection (as expected). Thats exactly what I wanted ;) – cpt. jazz Jun 30 '13 at 19:02

How about defining a new command \fullref:


% Original definition
% \newcommand\fullref[1]{\autoref{#1} \nameref{#1}} % Two links

% Updated definition, see explanation below
\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}} % One single link


\section{First Section}

\subsection*{Unnumbered subsection}


As we defined in \fullref{sec:some_sec}, yada yada yada, see \fullref{sec:subsec}


enter image description here


The \fullref defined above produces two links, one by \autoref, the other by \nameref. Heiko Oberdiek suggests the following definition that combines the two into one single link:

\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}}
  • 15
    You get a full link in one piece by \newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref{#1}}}. – Heiko Oberdiek Jun 30 '13 at 21:14
  • @HeikoOberdiek: Thanks :-) Your suggestion is incorporated. – Herr K. Jun 30 '13 at 21:31
  • 2
    I have added the star for \nameref that I have forgotten in the comment. The star forms prevent nested double links. – Heiko Oberdiek Jun 30 '13 at 23:32
  • 1
    Don't you need to add \usepackage{nameref} for this to work? – Patrick Favre Jan 13 '15 at 13:29
  • 1
    @HeikoOberdiek if I want to capitalize the first letter, can I use \newcommand*{\fullref}[1]{\hyperref[{#1}]{\Cref*{#1} \nameref*{#1}}} with cleveref package or is there a better way? – Diaa Apr 29 '17 at 7:32

Starting with @herr-k 's answer, I went a step farther and defined four (4) new commands: \secref, \subsecref, \subsubsecref, and \parref.

\newcommand*{\secref}[1]{\hyperref[{#1}]{Specification \thesection, \nameref*{#1}}}
\newcommand*{\subsecref}[1]{\hyperref[{#1}]{Section \thesubsection, \nameref*{#1}}}
\newcommand*{\subsubsecref}[1]{\hyperref[{#1}]{Section \thesubsubsection, \nameref*{#1}}}
\newcommand*{\parref}[1]{\hyperref[{#1}]{Section \theparagraph, \nameref*{#1}}}

Doing so allows me to customize how the hyperlink text displays for each level of my document. In my case, There's not a difference between the \subsecref, \subsubsecref, and \parref other than the number that displays (e.g. 1.1 vs 1.1.1 vs 1.1.1.A), but one can change these commands to suit their needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.