Archiv

Posts Tagged ‘Latex’

Klickbare DOI-Links mit Bibtex realisieren

Mit Hilfe von Bibtex und einem passenden Style wie Angewandte können in Latex sehr schöne Literaturverzeichnisse erstellt werden. Um dieses aber noch komfortabler zugestalten soll der Titel eines Eintrags verlinkt werden auf die in der .bib-Datei angegebene doi. Wenn diese nicht vorhanden ist, nehme die url, falls angegeben. Nichts leichter als das!

Zuerst müssen die zusätzlichen Felder „doi“ und „url“ deklariert werden, so dass der Style damit umgehen. Die Definition der ENTRYs kann dann wie folgt aussehen:

ENTRY
  { address
    author
    booktitle
    chapter
    doi
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    url
    volume
    year
  }

Als nächstes muss eine neue Funktion, die den Link einfügt definiert werden:

FUNCTION {doiurllink}
{ duplicate$ empty$
   { pop$ "" }
   { doi empty$
         { url empty$
               { skip$ }
               { "\href{" url * "}{" * swap$ * "}" * }
               if$
         }
         { "\href{http://dx.doi.org/" doi * "}{" * swap$ * "}" * }
         if$
   }
   if$
}

DIe Arbeitsweise dieser Funktion ist nicht kompliziert: Ist der oberste Inhalt des Stack beim Aufrufen der Funktion nicht leer, so wird mit „\href“ daraus ein Link, falls doi oder url existieren.

Benutzt wird die Funktion, indem sie bei der Formatierung eines Eintragstyps aufgerufen wird. Das Beispiel zeigt die Verlinkung des Titels eines „articles“.

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  format.btitle "title" output.check
  doiurllink
  crossref missing$
    { journal
      "journal" output.check
      add.blank
      format.vol.num.pages output
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  note output
  fin.entry
}

Edit: Der Befehl „\href“ stammt aus dem Package hyperref, das für korrektes Funktionieren eingebunden werden muss.
Credit: Link

Kategorien:Bibtex, Digitale Aspekte, Latex Schlagwörter: , ,
%d Bloggern gefällt das: