Literaturverzeichnis-Einträge mit URL verlinken

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Literaturverzeichnis-Einträge mit URL verlinken

von iTob » Mo 10. Okt 2011, 14:47

Das sieht doch schonmal gut aus!


Du könntest die Macros, die "Journal of Testing 12 (2011), S. 3456-7890" erzeugen, rauswerfen (aus dem BibliographyDriver) und ein neues schreiben, das dann den Link erzeugt und alle Felder ausgibt ...
Ich glaube, dass sollte keine unerwünschten Seiteneffekte haben.


Viele Grüße
Tobi

von henge321 » Mo 10. Okt 2011, 14:14

OK. Ich hab es jetzt soweit, dass der Titel der zitierten Paper mit dem Link unterlegt wird. Nicht ganz, was ich eigentlich wollte, aber schon mal nah dran. Hier mal ein (Minimal?)beispiel wie es jetzt aussieht:

main.tex
\documentclass[a4paper,ngerman]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{hyperref}
\usepackage[style=numeric-comp,sorting=none,url=false]{biblatex}
\bibliography{literature.bib}

\newbibmacro{string+url}[1]{%
  \iffieldundef{url}{#1}{\href{\thefield{url}}{#1}}}
\DeclareFieldFormat[article]{title}{%
\usebibmacro{string+url}{\mkbibquote{#1\isdot}}}

\begin{document}
Text mit Verweis auf \cite{test01}.

\printbibliography
\end{document}
literature.bib
@article{test01,
  author = {Mustermann, M. and Musterfrau, K.},
  title = {Testartikel Titel},
  journal = {Journal of Testing},
  volume = {12},
  pages = {3456--7890},
  url = {http://de.wikipedia.org/wiki/Test},
  year = {2011}
}
Eigentlich wollte ich den Link hier hinter die Angabe "Journal of Testing 12 (2011), S. 3456-7890" platziert haben, weiß aber nicht wie ich das hinkriegen sollte, da diese Angabe (soweit ich das verstehe) in biblatex aus mehreren Feldern zusammengesetzt ist (journaltitle, volume, pages...)

von Mechanicus » Sa 8. Okt 2011, 12:26

Hi,

bitte erstelle ein komplettes Minimalbeispiel.

was du zuerst machen musst.

Nutze die Option url=false, doi=false und Redefiniere mittels DeclareFieldFormat die entsprechenden Einträge.

Gruß
Marco

von iTob » Sa 8. Okt 2011, 12:20

Hallo,

ich habe leider gerade wenig Zeit, daher hier kein Code sondern nur meine Ideen.
  • Dei Ausgabe der URL unterdürcken, in dem man das Bibmacro url (oder so ähnlich) umdefiniert, bzw. leer macht, so dass es zu keiner Ausgabe führt.
  • Dann das Macro, dass den Titel ausgibt anpassen:
  • MIt \iffieldundef prüfen, ob überhaupt einer URL angeben ist
  • Wenn ja dann diese und den Tietl mit \printfield in \href ausgeben
  • Eventuell muss man die URL zuerst mit \urldef (oder so, siehe url.sty-Doku) zwischenspeichern.
Ich hoffe, du kannst damit ein Bisschen was Anfangen. Wenn nicht musst du dich einfach noch ein Bisschen gedulden ;-)

von henge321 » Do 6. Okt 2011, 15:00

Danke schonmal für die Antworten!

Ich hab mir jetzt mal biblatex angeschaut und bin damit jetzt in etwa da, wo ich vorher mit bibtex auch schon war.
Ich binde biblatex folgendermaßen ein:
\usepackage[style=numeric-comp,sorting=none]{biblatex}
\bibliography{literature.bib}
Wenn ich in der literature.bib jetzt bei einem Artikel einen URL oder DOI angebe, wird dieser verbatim und als anklickbarer Link in das Literaturverzeichnis gedruckt.
Ich hätte aber nach wie vor gerne, dass URL/DOI nicht gedruckt erscheinen, sondern nur hinter der Angabe "Journal, Ausgabe, Seiten, Jahr..." im fertigen PDF der entsprechende Link "versteckt" ist (wie oben beschrieben).

Das biblatex Handbuch ist ja verdammt umfangreich... :(

von cliffhanger » Mi 5. Okt 2011, 09:55

Hi Henge,

um sich das Abtippen kryptischer Links zu ersparen, gibt es doch die DOIs. Wieder ein Grund mehr, auf Biblatex umzusteigen:dort werden DOIs automatisch mit Hyperlink versehen, wenn ich mich recht erinnere. Falls ich mich nicht mehr recht erinnere, dann hab ich mir einen Code-Fetzen selbst geschrieben, der das erledigt. Diesen würde ich dir bei Interesse selbstverständlich zur Verfügung stellen.

Grüße
Benedikt

von iTob » Di 4. Okt 2011, 18:26

Ich weiß nicht, was deinen Stil ausmacht, aber wenn er nicht allzu speziell ist würde ich dir zu einem Wechsel auf biblatex raten. Wenn du das in erwägung ziehen könntest, würde ich mir gedanken zur Umsetzung des URL-Problems machen. Das dürfte nicht allzu schwer sein, aber ich mag jetzt nicht viel Code für nix zaubern müssen ;-)

Grüße
Tobi

Literaturverzeichnis-Einträge mit URL verlinken

von henge321 » Di 4. Okt 2011, 17:44

Hallo TeXer!

Ich schreibe gerade an meiner Diss. Für die Bibliografie verwende ich BibTeX und den Stil unsrtdin. Das sieht so weit auch ganz schick aus, nur hätte ich gerne, dass in der per pdflatex erstellten PDF eine Angabe wie zB.

Phys. Rev. Lett., 12:1234-5678, 2011

mit dem zugehörigen anklickbaren Link versehen wird.

Angabe einer URL in der bib-Datei und Einbinden des hyperref Pakets führt dazu, dass die URL anklickbar hinter dieser Angabe erscheint, was ich für wenig sinnvoll halte, da aus der gedruckten Version wohl niemand die kryptischen Links zu solchen Artikeln abtippen würde:

Phys. Rev. Lett., 12:1234-5678, 2011. URL http://prl.aps.org

Ich kann natürlich in der erstellten bbl-Datei manuell bei jedem Eintrag die URL an der entsprechenden Stelle mit dem hyperref-Makro \href{URL}{text} eintragen, aber das wird auf Dauer doch etwas mühsam.

Wie ich die unsrtdin.bst ändern müsste um das gewünschte zu erreichen ist mir völlig schleierhaft - da müsste ich wohl erstmal die Syntax lernen.

Gibt es evtl. schon einen Stil, der das tut, was ich möchte? Oder weiß jemand eine elegante Art, wie ich hier an mein Ziel kommen könnte?

Danke schonmal im Voraus!

Nach oben