Verlinkungen der Zitierungen funktionieren nur mit dem Jahr

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


buster65
Forum-Anfänger
Forum-Anfänger
Beiträge: 49
Registriert: Sa 19. Mai 2018, 20:40

Verlinkungen der Zitierungen funktionieren nur mit dem Jahr

Beitrag von buster65 »

Hallo community,

folgendes merkwürdiges Verhalten habe ich bei meinen Verlinkungen der Zitierungen (Autor Jahr) in das Literaturverzeichnis festgestellt:

Der Mauszeiger formt sich nur dann zu einer zeigenden Hand wenn er über das Jahr fährt, aber nicht über den Autor. Und so funktionieren die Verlinkungen auch nur mit dem Jahr. Ich kann mir nicht vorstellen, daß das normal ist. :?

Ich habe das Problem mit der Datei biblatex-examples.bib soweit heruntergebrochen, daß es so aussieht, daß das Verhalten offenbar vom Eintrag der jeweiligen Quellen in der biblatex-examples.bib (oder der jeweiligen *.bib-Datei) abhängt(?)

Im folgenden min. Bsp. macht das Zitat für (aristotle 1968) das beschriebene Verhalten, während die Verlinkung des Zitates für (CTAN 2006) einwandfrei funktioniert:
\documentclass[]{scrreprt}
\usepackage[hidelinks]{hyperref}

\usepackage[style=authoryear-icomp]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}

\autocite{aristotle:poetics}    \autocite{ctan}

\printbibliography

\end{document}
Gibt es eine Möglichkeit, dafür zu sorgen, daß die Verlinkungen aller Zitate mit Autor und Jahr funktionieren oder muß man das so hinnehmen?

Vielen Dank für jeden Hinweis!




Grüße aus dem Rheinland

Gast

Beitrag von Gast »

Ohne hidelinks und mit ein paar anderen Beispielen sieht man deutlicher, dass in der Tat normalerweise nur das Jahr verlinkt ist. Das ist eigentlich für alle Einträge der Fall. ctan ist die Ausnahme, da er durch label erzeugt wird. Auf den ersten Blick hat mich die Verlinkung von "CTAN" überrascht, aber sie ist nicht ganz unsinnig, da es gut sein kann, dass es gar kein Jahr zu sehen gibt, wenn label ausgeführt wird.

Warum wird aber normalerweise nur das Jahr und nicht auch der Autor verlinkt?
Das kann ich Dir nicht genau sagen. Die aktuelle Annahme ist, dass der ursprüngliche Autor Philipp Lehman sich etwas dabei gedacht hat, daher ist man vorsichtig, daran zu rütteln. Besonders bei \textcite mit mehreren Einträgen in comp-Stilen könnte es etwas unglücklich erscheinen, dass der Name vor der Klammer automatisch zum ersten Eintrag verlinkt, denn der ist nicht wichtiger als die anderen...

Nicht durchgehende Links wie bei ctan (das Leerzeichen ist nicht verlinkt) wären ohne sehr großen Aufwand weitestgehend möglich. Durchgehende Links sind aber in einigen Stilen sehr kompliziert zu implementieren, da die Mechanismen, die dort hineinspielen, recht komplex sind.
\documentclass{article}
\usepackage{hyperref}

\usepackage[style=authoryear-icomp]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
          {\usebibmacro{cite:label}%
           \setunit{\printdelim{nonameyeardelim}}%
           \usebibmacro{cite:labeldate+extradate}%
           \usebibmacro{cite:reinit}}
          {\iffieldequals{namehash}{\cbx@lasthash}
             {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
                          \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
                {\setunit{\addcomma}%
                 \usebibmacro{cite:extradate}}
                {\setunit{\compcitedelim}%
                 \usebibmacro{cite:labeldate+extradate}%
                 \savefield{labelyear}{\cbx@lastyear}}}
             {\usebibmacro{cite:labelname}%
              \setunit{\printdelim{nameyeardelim}}%
              \usebibmacro{cite:labeldate+extradate}%
              \savefield{namehash}{\cbx@lasthash}%
              \savefield{labelyear}{\cbx@lastyear}}}}}
    {\usebibmacro{cite:shorthand}%
     \usebibmacro{cite:reinit}}%
  \setunit{\multicitedelim}}
  
\newbibmacro{cite:labelname}{%
  \ifnameundef{labelname}
    {}
    {\printtext[bibhyperref]{\printnames{labelname}}}}
\makeatother

\begin{document}
\autocite{ctan}

\autocite{sigfridsson}

\autocite{knuth:ct:a,knuth:ct:b,knuth:ct:c}

\printbibliography
\end{document}
Siehe https://tex.stackexchange.com/q/15951/35864 sowie https://github.com/plk/biblatex/issues/428 und alles, was da irgendwie verlinkt ist.

Gast

Beitrag von Gast »

Tipp am Rande: Wenn Du Option hidelinks weglässt, kannst Du die Links auch sehen, ohne erst mit der Maus drüber fahren zu müssen.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Das Problem ist, dass Zitate auch zwei Quellen des selben Authors aber mit unterschiedlichem Jahr enthalten können. Wenn dann dort steht "(Muster, 2002, 2006)" auf welches der Werke soll dann Muster verweisen? Und warum?

Ein Vorstellung diverser Varianten und Code, um die Links zu ändern gibt es hier:

https://tex.stackexchange.com/questions ... latex-1-4b

(Ich weiß nicht, ob er immer noch funktioniert. aber ich denke so vor zwei Jahren ging er noch.)

buster65
Forum-Anfänger
Forum-Anfänger
Beiträge: 49
Registriert: Sa 19. Mai 2018, 20:40

Beitrag von buster65 »

Hallo Gast,

danke für die Erklärungen und das Code-Bsp.!

Ich habe das in meine Vorlage übernommen und es löst das Problem. Super! Das hätte ich allein nicht hinbekommen, da ich erst ein paar Wochen überhaupt mit LaTex zu tun habe. Mit der Sichtbarmachung der Links wollte ich mich beschäftigen, wenn die anderen Links (zu Abb. und Tabellen) auch drin sind. Diese bunten Kästen sehen nicht so toll aus und so will ich versuchen die Schift der Links dann irgendwie zu färben.


Hallo Frau Fischer,

danke für den Link zu stackexchange.com!

Das Code-Bsp. dort funktioniert auch bei mir aber es generiert eine Leerseite vorn im Dokument vor dem Titelblatt. So habe ich den Code von Gast genommen, der das Problem löst.

Ohne solche Foren wie golatex.de und stackexchange.com kann man als Anfänger viele Probleme nicht lösen, schon gar nicht unter Zeitdruck.

Wenn ich fachlich noch nichts beitragen kann, würde ich aber gern etwas zum Erhalt der Plattform spenden, finde jedoch keinen Donate-Button hier.

@Alle: Danke Euch für die schnelle Unterstutzung hier!



Grüße aus dem Rheinland

Gast

Beitrag von Gast »

Ich gehe davon aus, dass die ursprüngliche Frage damit beantwortet ist, und setzen den Status entsprechend.

Wegen Spende wendest du dich am besten per E-Mail an Stefan (Adresse siehe Impressum).

Statt der bunten Kästchen kann man auch bunte Unterstreichung wählen.

Die Kästen/Unterstriche haben den Vorteil, dass sie zwar am Bildschirm zu sehen sind, im Ausdruck aber verschwinden. Eingefärbte Links werden dagegen auch farbig ausgedruckt (bzw. grau bei einem s/w-Drucker). Was besser ist, hängt also auch davon ab, wie das Dokument verwendet werden soll.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

buster65 hat geschrieben:Wenn ich fachlich noch nichts beitragen kann, würde ich aber gern etwas zum Erhalt der Plattform spenden, finde jedoch keinen Donate-Button hier.
Eventuell is auch eine Dante-Mitgliedschaft für dich interessant. Dieses Forum und weitere Partnerseiten werden von DANTE e.V. finanziell gefördert.

Hinter TeX.Stackexchange steckt übrigens ein Multimillionenunternehmen.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Antworten