[Tex/LaTex] biblatex+hyperref: citetitle/citeauthor and get hyperlink

biblatexhyperref

I find myself frequently using the \citetitle and \citeauthor commands of biblatex. They are great commands, but they don't provide a hyperlink to the entry in the bibliography. TO overcome this, I have to use \citetitle{Knuth} \cite{Knuth} to get

The Art of Computer Programming [1]

where the [1] is hyperlinked to the bibliography. That doesn't look as nice as I would like.

What must I do to get a hyperlink to the bibliography by just using the \citetitle (or '\citeauthor`) command?

PS. I'm also using the hyperref package, but I think that's obvious.

Best Answer

Both of these citations commands are defined in biblatex.def. To add links, you can redefine them in your document preamble or configuration file. A linked variant of \citeauthor is already addressed in this previous question. The \citetitle command can be revised similarly, although note that you may wish to swap the order of the bibhyperref and citetitle formats.

\DeclareCiteCommand{\citetitle}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexfield{indextitle}}
     {}%
   \printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}