Ich möchte in Literaturverzeichniseinträgen, die aus mehreren Quellen bestehen und mittels [1] E. H. Lieb, „Density Functionals for Coulomb Systems“ in Physics as Natural Philosophy: Essays in Honor of Laszlo Tisza on His 75th Birthday (Eds.: A. Shimony, H. Feshbach), MIT Press, Cambridge, MA, 1982, pp. 111–149; eine überarbeitete Version erschien in E. H. Lieb, Int. J. Quantum Chem. 1983, 24, 243. Ich habe diese Frage bereits einmal bei TeX.SX gestellt (Add additional text to grouped bibliography entries with biblatex), damals allerdings eher einen "hack" als eine richtige Lösung erhalten. Allerdings gab es in einem Kommentar den Hinweis, dass eine zukünftige Version von P.S. Der Titel ist wahrscheinlich suboptimal. Mir ist leider kein klarerer eingefallen, also wenn jemand einen besseren Vorschlag hat, wäre ich dankbar. Edit: Entschuldigung, dass bisher kein MWE dabei war. Ich hatte gedacht, dass es auf Grund der Art der Frage, wenig hilfreich sein dürfte. Aber da Marco danach gefragt hat, stelle ich natürlich gern eines bereit. Open in writeLaTeX
\documentclass{article} \usepackage{filecontents} \begin{filecontents}{testbibfile.bib} @article {Lieb_1983_Int.J.Quantum.Chem._24_p.243, author = {Lieb, Elliott H.}, title = {Density Functionals for Coulomb Systems}, journal = {Int. J. Quantum Chem.}, volume = {24}, number = {3}, publisher = {John Wiley & Sons, Inc.}, issn = {1097-461X}, url = {http://dx.doi.org/10.1002/qua.560240302}, doi = {10.1002/qua.560240302}, pages = {243--277}, year = {1983} } @incollection{Lieb_1982_InBook_Physics.as.Natural.Philosophy_p.111, author = {Lieb, Elliott H.}, editor = {Shimony, Abner and Feshbach, Herman}, booktitle = {Physics as Natural Philosophy: Essays in Honor of Laszlo Tisza on His Seventy-Fifth Birthday}, title = {Density Functionals for Coulomb Systems}, year = {1982}, publisher = {MIT Press}, address = {Cambridge, MA}, pages = {111--149} } \end{filecontents} \usepackage[ backend=biber, language=german, style=chem-angew, pageranges=false, articletitle=true ]{biblatex} \bibliography{testbibfile.bib} \defbibentryset{Lieb_constrained_search}{Lieb_1982_InBook_Physics.as.Natural.Philosophy_p.111,Lieb_1983_Int.J.Quantum.Chem._24_p.243} \begin{document} Die ``constrained search'' Formulierung der Dichtefunktionaltheorie stammt von Levy und Lieb\cite{Lieb_constrained_search}. \printbibliography \end{document}
Ergebnis 5 von 8
show 3 more comments
|
Ich will die Antwort in mehrere Schritte untergliedern, um so einzelne Fähigkeiten von 1. Text zwischen zwei Titel einer entry set einfügen:Wenn es lediglich darum geht, zwischen die Titel jeder entry set den Text »
ergibt: 2. Sprachabhängigen Terminus für den eingefügten Text verwenden:Schöner wäre natürlich, wenn man einen neuen sprachabhängigen Terminus definieren und diesen verwenden würde, um bei Einträgen in unterschiedlichen Sprachen ggf. einen Text in der jeweiligen Sprache zu haben. Dazu muss man eine eigene
Näheres zu 3. Revisionen als eigene Spezialform von entry sets:Das ist leider etwas aufwändiger. Am einfachsten wäre, wenn man für ein entry set einfach eine neue Option revised setzen könnte. Während für normale Einträge ins Literaturverzeichnis eine Option einfach über das Als erstes muss also die Möglichkeit geschaffen werden, trotzdem eine Option zu setzen. Dazu muss man etwas tiefer in
Diese neue Anweisung wird mit denselben Parametern aufgerufen wie Zusätzlich wird der Befehl zur Verarbeitung von Einträgen
Das erste Argument dieses Befehls ist wieder der Name des Eintrags, also im Falle einer entry set der Name der entry set. Die Änderung besteht nun darin, dass unmittelbar nach dem initialen Damit ist schon einmal sichergestellt, dass für alle revised entry sets die Option
Dabei ist Zum Schluss muss
Die zusätzlichen Klammern um Alles zusammen ergibt nun also beispielsweise:
Mit der Ausgabe: Dass ich zur Demonstration nur auf zwei Literaturdatenbankeinträge zurückgegriffen habe, hat seine Ursache darin, dass ich den Beispielcode klein halten wollte. Natürlich ergibt es keinen Sinn, die gleiche Menge zweimal als entry set und zweimal als revised entry set zu definieren. Das diente lediglich der Demonstration. Selbstverständlich geht es auch mit ganz unterschiedlichen Mengen, von denen einige entry sets und einige revised entry sets sind. Näheres zu den Befehlen zum Patchen und zu toggles ist der Anleitung zu Letztlich ist das ganze zwar ein Hack – immerhin werden interne Makros von beantwortet 26 Aug '13, 11:35 saputello +1 Sehr gute Idee. Allerdings verändert deine Methode sämtliche
(26 Aug '13, 21:24)
carlton87
@carlton87 Ich hatte Deine Frage so verstanden, dass die entrysets entsprechend dargestellt werden sollen. Das nur auf einige davon zu beschränken dürfte schwierig werden, weil ja nicht
leider nicht funktionieren. Aber es gibt vielleicht eine andere Lösung (siehe oben).
(27 Aug '13, 07:37)
saputello
Vielen, vielen Dank für den hohen Aufwand. Leider bekomme ich immer noch nicht ganz das Verhalten, das ich mir wünschen würde. Sollte das daran liegen, dass ich mich in meiner Frage oder meinen Kommentaren unklar ausgedrückt habe, tut mir das sehr Leid. Mit der momentan von Dir vorgeschlagenen Lösung kann ich entweder nur gepatchte oder nur ungepatchte entrysets im Dokument haben (ich habe ein Beispiel mit zwei entrysets zu meiner Frage hinzugefügt. Ich würde jedoch gerne beides nebeneinander haben können, da man die gepatchte Version ja nur für spezielle Fälle benötigt.
(27 Aug '13, 17:35)
carlton87
@carlton87: Grml, was ich nicht wusste:
(27 Aug '13, 19:23)
saputello
Nochmals danke, dass du Dir so viel Mühe machst. Ich selbst hätte nicht das Wissen um TeX Manipulationen auf diesem Level hinzubekommen.
(27 Aug '13, 19:49)
carlton87
@carlton87 Irgendwie hatte ich aber ein Brett vor dem Kopf. Nachdem ich mich etwas tiefer in den Code von
(28 Aug '13, 19:29)
saputello
So ein Brett hätt ich auch gern mal vor dem Kopf :). Deine Lösung "works like a charm", wie der Lateiner sagt :). Deine Stunden waren definitiv nicht verloren. Ich hatte zunächst einen Schreck bekommen, als es in meinem Hauptdokument fehlschlug, aber das hat sich (Gott sei Dank) schnell geklärt: man muss anscheinend darauf achten die entry sets in der Präambel und nicht innerhalb des documents zu definieren. Leider hab ich nicht genug Reputation um dir einen angemessenen Punktebonus für diese vorzügliche Antwort zu geben. Aber meine Dankbarkeit und Bonuspunkte für dein Karma sind dir gewiss.
(28 Aug '13, 20:20)
carlton87
@carlton87 Mach Dir keinen Kopf wegen der Punkte, davon habe ich mehr als genug. Mir ist wichtiger, dass Du eine Lösung hast, mit der Du arbeiten kannst. Und wenn Du dann noch ansatzweise verstehen würdest, was ich da eigentlich tue, dann wäre das natürlich das Sahnetüpfelchen. BTW: Ein Lob für die Mühe, die Du Dir inzwischen mit den Beispielen in der Fragestellung gemacht hast. Wenn ich das zweite Beispiel früher gesehen hätte, hätte ich es vielleicht sogar verwendet. Da war ich aber zu sehr mit der Problemlösung beschäftigt.
(28 Aug '13, 20:53)
saputello
Jetzt bricht mir ein wenig das Herz, wenn ich Dir mitteilen muss, dass es doch noch ein Problem gibt, dass mir zunächst gar nicht aufgefallen ist. Es zeigt sich sogar in deinem Beispieloutput: Am Ende der gruppierten Einträge, die durch P.S.: Ich hoffe ich war nicht zu voreilig mit dem Löschen meines zweiten Beispiels. Da dieses Problem ja gelöst war, dachte ich es wäre nicht mehr nötig.
(28 Aug '13, 21:05)
carlton87
@carlton87 Außer Punkten ist der beste Dank, weitere so interessante Fragen zu posten. ;-) Generiert weiteres Karma und, viel wesentlicher, bringt interessante Problemstellungen und mehr Wissen.
(28 Aug '13, 21:06)
stefan ♦♦
@stefan Da Wissen ja bekanntlich Macht ist, will ich gern versuchen dabei zu helfen, dass diese Seite die Mächtigste des ganzen Internets wird :) (naja, nach Tolkien Wiki vielleicht, der Eine Ring ist schwer zu schlagen...)
(28 Aug '13, 21:25)
carlton87
@carlton87 Da fehlten schlicht Argumentklammern. War in wenigen Minuten gefunden und behoben. Ein Gutes hat es, dass die Antwort immer wieder angefasst werden muss: In der Zahl der Ansichten und bei den aktiven Themen schiebt sich sich das Thema immer weiter nach vorn. ;)
(29 Aug '13, 09:01)
saputello
Dann sollten wir den Dialog hier fortsetzen bis mindestens 10 upvotes zu Stande gekommen sind ;) Freut mich, dass das Problem leicht zu beheben war. Deine Lösung funktioniert jetzt einwandfrei. Ich kann mich gar nicht oft genug bedanken.
(29 Aug '13, 14:27)
carlton87
@carlton87 Ich fände es toll, wenn Du weiter so gute und gut ausgeführte Fragen stellen würdest. Leider kann man für gute Fragen offenbar keine Punkte verschenken, wie für Antworten. Übrigens ist damit zu rechnen, dass @stefan irgendwann die überflüssig gewordenen Kommentare – diesen beispielsweise – abräumt.
(29 Aug '13, 16:49)
saputello
Ich würd mal sagen, die beste Belohnung für gute Fragen sind gute Antworten ;)
(29 Aug '13, 20:12)
carlton87
Ergebnis 5 von 15
show 10 more comments
|
Dein Link funktioniert nicht. Zudem wäre ein komplettes Minimalbeispiel hilfreich.
@Marco der Link ist sehr versteckt: http://tex.stackexchange.com/questions/24565/add-additional-text-to-grouped-bibliography-entries-with-biblatex
@Marco Daniel Ich habe ein MWE hinzugefügt. Das mit dem Link war ein Versehen von mir: Ich wusste nicht, dass ein Hyperlink, der sich auf zwei Wörter bezieht, offenbar nicht wie gewünscht funktioniert. Ich hab es in meiner Frage ausgebessert.
Der von die angegebene Abschnitt zeigt nur, welche Wörter in verschiedenen Sprachen existieren. Diese können dann mittels
\bibstring
aufgerufen werden. Was du scheinbar möchtest, ist ein neues Feld im Literaturverzeichnis (also in der bib-Datei), welches dann durch biber bearbeitet wird. Das kannst du mit\DeclareDatamodelEntrytypes
tun, welches aber dann von dir selbst bearbeitet werden muss. Ich könnte mir also ein Eintrag mit dem Namenrevised={}
vorstellen. Ist es das was du möchtest?@Marco Daniel Idealerweise hätte ich gerne die Möglichkeit die bib-Datei nur soweit zu verändern, dass der Zusatztext nur erscheint, wenn ich sie in gruppierter Form (also über
\defbibentryset
) nutze, nicht aber wenn ich sie als Einzelquelle verwende. Allerdings habe ich keine Einschätzung davon, ob das illusorisch ist oder nicht. Ein neues Feld in der bib-Datei wär also absolut in Ordnung bzw. sogar ideal, wenn sich damit das eben Beschriebene umsetzen ließe. Es wäre mir nur wichtig, dass die Änderung an der bib-Datei nicht so "invasiv" ist, wie in der Antwort auf TeX.SE.@Marco Daniel Alternativ schwebte mir eine eventuelle Lösung durch eine abgewandelte Form des
\defbibentryset
-Befehls vor, in welcher man spezifizieren kann, welcher Eintrag mit einem entsprechenden Zusatztext am Beginn oder Ende zu versehen ist. Dies hätte den Vorteil, dass ich an der bib-Datei nichts ändern müsste. Auch hier fehlt mir jedoch das Wissen, um einzuschätzen wie schwierig so etwas ist.@carlton87: Der Weg über die .bib bzw. über die erzeugte .bbl-Datei geht nur, wenn man ein Feld wie "revised" vorsieht und dazu noch die "biblatex.bst" ergänzt - schon etwas aufwendiger.
Dein zuletzt genannter Weg sollte aber einfacher sein. Der Zusatztext wird ja mit dem Cite-Key assoziiert. Wenn die bibentry-Einträge gesetzt werden, wird dies abgefragt und dann beim passenden Cite-Key der assoziierte Text ergänzt. Der Text könnte dann auch wiederum ein cite enthalten - führte dann nur dazu, dass man noch 1-2 Kompilierdurchgänge mehr benötigt.
@bernd Mit mehr Kompilierdurchgängen könnt ich leben :)