authortitle-dw: \citetitle mit hyperref

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

authortitle-dw: \citetitle mit hyperref

Beitrag von iTob »

Guten Abend,

ich hätte gerne, dass \citetitle auch zu einem Link ins Literaturverzeichnis führt, genau wie der Titel bei \cite ja auch einen Link erhält.

Hier mein Beispiel:
\documentclass[11pt,a4paper,ngerman]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{test,
    author = {Mustermann, H.},
    year = {2010},
    title = {Test},
}
\end{filecontents}

\usepackage[%
	hyperref=true,
	style=authortitle-dw,
]{biblatex}
\usepackage[babel,german=quotes]{csquotes}
\bibliography{\jobname}

% Erfolgloser Versuch:
\renewbibmacro*{citetitle}{%
  \global\boolfalse{cbx:loccit}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\printtext[bibhyperref]{%
                \printfield[citetitle]{labeltitle}}}
       {\printtext[bibhyperref]{%
                \printfield[citetitle]{labeltitle}}}}%
    {\printtext[bibhyperref]{\usebibmacro{cite:shorthand}}}}

\usepackage{hyperref}

\begin{document}
Test \texttt{cite}: \cite{test} (Titel bekommt Link, sehr gut)

Test \texttt{citeauthor}: \citeauthor{test} (Autor ohne Link, noch o.\,k. \dots)

Test \texttt{citetitle}: \citetitle{test} (Titel ohne Link, nicht o.\,k.)

\printbibliography
\end{document}
Soweit ich das verstanden habe, sorgt printtext[bibhyperref]{…} für einen Link, aber in meinem Versuch nicht. Was mache ich also falsch?

Was muss ich tun, damit auch der Autor einen Link bekommt (bei \citeauthor)?

Und muss ich mit Problemem rechnen, wenn ich Werke mit dem selbsten Titel habe bzw. vom gleichen Autor (bei \citeauthor)? Verhakelt sich hyperref dann mit uneindeutigen Links?

Vielen Dank und
liebe Grüße!
Tobi

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Dass mit deinem Code kein Link erzeugt wird, liegt daran, dass der Befehl
\citetitle das bibmacro citetitle gar nicht aufruft. Du musst also stattdessen
den Befehl \citetitle umdefinieren:
\DeclareCiteCommand{\citetitle}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexfield{indextitle}}
     {}%
   \printtext[bibhyperref]{%
    \printfield[citetitle]{labeltitle}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
Gruß,
Dominik.-

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Wusste ich doch, dass das nicht so schwer sein kann :) Danke dir sehr!

Hab ich denn irgendwas zu befürchten, wenn ich Werke mit dem gleichen Titel habe?

Tobi

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Na ja, \citetitle ist ja für Fälle gedacht wie etwa:
Wie schon \citeauthor{iTob2011} in seinem Werk \citetitle{iTob2011} schrieb, …
\citetitle gibt nur das title-Feld des Werkes wieder, bzw. das shorttitle-Feld,
sofern eins vorhanden ist. Ggf. kannst du also zur Unterscheidung shorttitle
heranziehen.

Gruß,
Dominik.-

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Ja wozu es gedacht war ist klar …
Es ging mir auch nicht darum, ob ein Leser Probleme mit der Eindeutigkeit hätte sondern eher, ob es technische Problem, also zum Beispiel mit hyperref.

Ich verwende es auch in dem von dir genannten Zusammenhang, hätte nur eben gerne, dass ein (PDF-)Leser auf den Titel klicken kann, um den Eintrag im Verzeichnis zu finden, in dem ein weiterführender Link steht.

Antworten