Text einfügen in das Literaturverzeichnis

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


dumpfschlumpf
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 28. Jun 2021, 21:41

Text einfügen in das Literaturverzeichnis

Beitrag von dumpfschlumpf »

Hallo zusammen,

ich bin Neueinsteiger in LaTeX und habe mich schon so durch einiges durchgewurstet. Ich bin auch hier im Forum schon für ein komplexeres Problem fündig geworden. Eine letzte Formatierung ist allerdings noch übrig, die meine Fähigkeiten einfach übersteigt und wo ich kein Beispiel finde, dass genau zu meiner Problematik passt:

Ich brauche mein Literaturverzeichnis in der Form:

Pindyck, R. S. (2013): Climate change policy: What do the models tell us? in: Journal
of Economic Literature, Jg. 51, Heft 3, 860–872.

Aktuell bekomme ich:

Pindyck, R. S. (2013): Climate change policy: What do the models tell us? Journal
of Economic Literature, 51(3), 860–872.

Es geht also darum, vor volume ein "Jg." und vor number ein "Heft" zu bekommen sowie ein "in:" nach dem Titel.

Dazu ist das 51(3) auch noch kursiv, was ich ebenfalls nicht abgeschaltet bekomme. Ich hätte erwartet, dass das mit \DeclareFieldFormat{number}{#1} (oder {volume})verschwindet, dem ist aber leider nicht so. (Für den Titel habe ich das auf diese Weise gelöst).

Ich arbeite mit texlive2021 und TexStudio unter Win10. Mein grundlegender Code sieht so aus:

\documentclass[12pt,oneside,a4paper]{book}
\usepackage[a4paper]{geometry}
\usepackage[
backend=biber,
style=apa
]{biblatex}
\addbibresource{Literature.bib}
\begin{document}
	
\cite[S.1]{Pindyck2013}
\printbibliography
\end{document}

Es wäre super, wenn mir jemand helfen könnte.

LG

schlumpf


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Text einfügen in das Literaturverzeichnis

Beitrag von MoeWe »

biblatex-apa implementiert den in der siebten Auflage des APA-Manuals beschriebenen Stil für Zitate und das Literaturverzeichnis so gut wie nur in biblatex möglich. Die Aufgabe des Stils ist einzig und allein, den APA-Stil nachzubilden. Es ist weder vorgesehen noch wurde besondere Rücksicht darauf genommen, dass der Stil flexibel ist und für Wünsche über APA-Vorgaben hinaus angepasst werden kann. Daher eignet sich biblatex-apas style=apa, denkbar schlecht als Basis für einen eigenen Stil.

Die Beschreibung Deiner Wünsche klingt schon recht weit von APA-Stil entfernt. Es ist also meiner Meinung nach nicht ratsam, Deinen Stil auf biblatex-apa zu basieren. Die Standardstile (authoryear, authoryear-comp) eignen sich wesentlich besser dazu. Sie sind absichtlich möglichst simpel gehalten und die Idee war immer, dass sie nach Bedarf anpassbar sein sollten.

----

\DeclareFieldFormat{number}{#1} sorgt nicht dafür, dass die number bei einem @article nicht mehr in Klammern steht, da biblatex-apa mit \DeclareFieldFormat[article,periodical,inproceedings]{number}{\mkbibparens{\apanum{#1}}} ein typspezifisches Format für @article vorgibt, das dem generischen Format vorgeht.

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
  journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

geht. Analog natürlich für volume, nur dass es da jourvol schon gibt

\DeclareFieldFormat[article,periodical]{number}{\bibstring{jourvol}~#1}

Für das Komma zwischen den beiden Feldern muss man dann ein bibmacro umdefinieren. Da können wir dann auch gleich das "in" mit einbauen

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{in}%
  \usebibmacro{journal}%
  \setunit*{\addcomma\addspace}%
  \printfield{volume}%
  \setunit{\addcomma\addspace}%
  \printfield{number}%
  \setunit{\addcomma\addspace}%
  \printfield{eid}%
  \newunit\newblock
  \usebibmacro{issuename}%
  \newunit}

Das ist wahrscheinlich noch nicht ganz, was Du gerne hättest. Aber wie gesagt, ich halte es für eine schlechte Idee, einen so sehr von APA abweichenden Stil auf biblatex-apa aufzubauen. Mit dem wenigen, was ich bisher über den Stil weiß, kann ich aber keine alternative Implementation anbieten, die zu diesem Zeitpunkt zufriedenstellend wäre.

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=apa]{biblatex}

\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
  journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{in}%
  \usebibmacro{journal}%
  \setunit*{\addcomma\addspace}%
  \printfield{volume}%
  \setunit{\addcomma\addspace}%
  \printfield{number}%
  \setunit{\addcomma\addspace}%
  \printfield{eid}%
  \newunit\newblock
  \usebibmacro{issuename}%
  \newunit}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380]{sigfridsson}

\printbibliography
\end{document}

dumpfschlumpf
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 28. Jun 2021, 21:41

Re: Text einfügen in das Literaturverzeichnis

Beitrag von dumpfschlumpf »

Hallo! Zunächst mal vielen Dank für die Hilfe.

Ich habe versucht, deine Lösungswege in meinen Code zu integrieren, leider funktioniert das nicht und zerschießt die Ausgabe zu

Pindyck, R. S. (labelyearlabelmonthlabelday). Climate change policy: What do the
models tell us? inJournal of Economic Literature, jourvol 51, journum 3,
860–872. https://doi.org/10.1257/jel.51.3.860

\documentclass[12pt,oneside,a4paper]{book}
\usepackage[a4paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=apa
]{biblatex}

\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
	journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\renewbibmacro{journal+issuetitle}{%
	\usebibmacro{in}%
	\usebibmacro{journal}%
	\setunit{\addcomma\addspace}%
	\printfield{volume}%
	\setunit{\addcomma\addspace}%
	\printfield{number}%
	\setunit{\addcomma\addspace}%
	\printfield{eid}%
	\newunit\newblock
	\usebibmacro{issuename}%
	\newunit}

\addbibresource{Literature.bib}
\begin{document}
	
\cite[S.1]{Pindyck2013}
\printbibliography
\end{document}

Zum Vorschlag einen anderen Stil als apa zu wählen:
Ja, grundsätzlich gern. Ich habe aber einfach null plan, wie ich es mache. Ich habe 15 - 20h Zeit investiert, um mich in diese Anpassungen einzulesen und ich habe effektiv nichts erreicht. Selbst mit den angeblich Guides für Anfänger, von denen ich einige gefunden habe, kam ich keinen Deut weiter.

Ich bin schlicht ratlos.


Grummelgast

Re: Text einfügen in das Literaturverzeichnis

Beitrag von Grummelgast »

Bei dir fehlt die Sprachoption, die am besten, wie von MoeWe gezeigt, als globale Option bei \documentclass anzugeben ist. Mehr kann ich nicht sagen, weil dein Beispiel nicht vollständig und damit nicht lauffähig ist. → Literaturverzeichnis-Hinweis in der Minimalbeispiel-Anleitung


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Text einfügen in das Literaturverzeichnis

Beitrag von MoeWe »

Ja, in Deinem Beispiel fehlt eine Option, die babel sagt, in welcher Sprache Dein Dokument ist. Da Dein Literaturverzeichnis ja ganz offensichtlich auf Deutsch sein soll, ist die Option ngerman angebracht. Man kann diese entweder der Dokumentenklasse als globale Option oder nur dem Paket babel lokal übergeben. Wenn babel geladen, aber keine Sprachoption übergeben wird, dann produzieren biblatex (und csquotes) nicht die gewünschte Ausgabe. Wenn babel gar nicht geladen wird, fallen sie auf Englisch zurück. Lade also babel mit der Option ngerman.

----

Was den Grundstil angeht, funktionieren Dinge für einen leicht anpassbaren Stil wie authoryear von der Idee her genauso wie für apa. Es kann durchaus sein, dass man auf den ersten Blick wesentlich mehr an authoryear basteln muss, um die gewünschte Ausgabe zu bekommen, als an apa, aber ich glaube, dass es letztendlich die bessere Wahl ist.

Genauso wie Du hier Hinweise bekommen hast, was Du mit style=apa, machen kannst, bekommst Du hier auch Hinweise, wie Du mit style=authoryear, vorgehen kannst. Du musst uns nur verraten, wie die Ausgabe aussehen soll. Wenn Du Deine Vorgabe mit uns teilen kannst (oder, wenn das aus irgendwelchen Gründen nicht geht, zumindest die gewünschte Ausgabe systematisch erklären kannst), sehe ich es mir gerne an und versuche, eine erste Annäherung an den Stil hinzubekommen.


dumpfschlumpf
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 28. Jun 2021, 21:41

Re: Text einfügen in das Literaturverzeichnis

Beitrag von dumpfschlumpf »

Hallo zusammen,

noch mal ganz herzlichen Dank für die Hilfe.
Ich hab etwas Zeit gebraucht, um selbst noch einmal an meinen Einstellungen rumzubasteln. Es funktioniert jetzt grundsätzlich wie es soll.

@MoeWe Dein Code funktioniert jetzt bei mir und macht fast exakt das, was ich haben wollte. Ganz, ganz lieben Dank dafür!
Es ist nur noch das "In" übrig, dass mir Kopfzerbrechen macht.
Ich habe es bereits auf "In:" angepasst, also definitiv die richtige Zeile gefunden. Es bleibt er groß.

Ich brauche

Pindyck, R. S. (2013): Climate Change Policy: What Do the Models Tell Us? in:
Journal of Economic Literature, Jg. 51, Heft 3, 860–872

Bekomme aber

Pindyck, R. S. (2013): Climate Change Policy: What Do the Models Tell Us? In:
Journal of Economic Literature, Jg. 51, Heft 3, 860–872

Wenn sich das noch lösen lässt, habe ich exakt das, was ich brauche. Eventuell muss ich das ganze nochmal für unterschiedliche Quellen anpassen, aber das sehe ich übers Wochenende.

LG
Schlumpf


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Text einfügen in das Literaturverzeichnis

Beitrag von MoeWe »

Um die Lösung zu erklären, ist es vielleicht sinnvoll, etwas weiter auszuholen. biblatex führt die Zeichensetzung zwischen Feldern (und anderem von biblatex generierten Text) asynchron mittels eines Zeichensetzungs-Buffers durch. An verschiedensten stellen können Macros ein Zeichen in den Zeichensetzungspuffer schreiben (es ist dort immer nur ein Zeichen vorhanden). Der Puffer wird genutzt, sobald ein Befehl das nächste mal Text ausgibt. Das verhindert sehr einfach, dass es zwischen fehlenden Feldern zu ungewollter mehrfacher Zeichensetzung kommt. biblatexs Zeichensetzungscode ist auch in weiterer Hinsicht clever, es kann in vielen Situationen sogar Zeichensetzung innerhalb von Feldern (die dann nicht über den Buffer lief) detektieren und dann reagieren.

Standardmäßig setzen biblatex-Stile zwischen den meisten Einheiten im Literaturverzeichnis mittels \newunit das Zeichen, das in \newunitpunct gespeichert ist. In biblatex-apa ist das ein Punkt und ein Leerzeichen. Das heißt, standardmäßig siehst Du Punkte zwischen den Elementen im Literaturverzeichnis. Natürlich gibt es viele Stellen, an denen etwas anderes gefordert oder sinnvoll ist, und dort wird dann explizit ein anderes Zeichen gesetzt (z.B. mit \setunit{\addcomma\addspace} zwischen volume und number bei @article jetzt eben ein Komma und ein Leerzeichen).

Das erklärt, warum in meinem Beispiel sich

Sigfridsson, E. & Ryde, U. (1998). Comparison of methods for deriving atomic
charges from the electrostatic potential and moments. In Journal of Computational Chemistry, Jg. 19, Heft 4, 377–395.

mit einem Punkt vor dem "In" ergibt. Das "In" wird dann nach einem Punkt auch korrekterweise großgeschrieben.

In Deinem Beispiel treffen nun zwei Effekte zusammen. Nach den Regeln des Stils solltest Du

*Pindyck, R. S. (2013). Climate Change Policy: What Do the Models Tell Us?.
In Journal of Economic Literature, Jg. 51, 860–872.

Mit einem Punkt zwischen Titel und "In" bekommen. Da der Titel aber schon auf ein Fragezeichen endet und es die Kombination "?." klassischerweise nicht gibt, wird der Punkt unterdrückt und nur das Fragezeichen bleibt.

Die Lösung ist also zumindest zweiteilig.

  • Mit \setunit{\addspace}% vor dem \usebibmacro{in}% sorgen wir dafür, dass vor dem "in" von biblatex kein Punkt mehr eingefügt wird. Das sieht allerdings sehr unglücklich aus, da der Titel dort ohne andere Formatierung und Zeichensetzung direkt in das "In" übergeht.
  • Ferner forciert biblatex-apa unabhängig von der umgebenden Zeichensetzung immer eine Großschreibung des "In"s, indem es \bibcpstring nutzt. Das müssen wir ihm austreiben. Der Standardbefehl \bibstring würde nach einem Fragezeichen auch groß schreiben (also wäre der Eintrag sigfridsson wie gewünscht, aber pindyck nicht). Das wollen wir aber nicht, daher forcieren wir mit \bibncpstring immer Kleinschreibung.
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=apa]{biblatex}

\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
  journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\renewbibmacro*{in}{%
  \ifbool{bbx:in}%
    {}%
    {\global\booltrue{bbx:in}%
     \bibncpstring{in}\setunit{\space}}}

\renewbibmacro*{journal+issuetitle}{%
  \setunit{\addspace}%
  \usebibmacro{in}%
  \usebibmacro{journal}%
  \setunit*{\addcomma\addspace}%
  \printfield{volume}%
  \setunit{\addcomma\addspace}%
  \printfield{number}%
  \setunit{\addcomma\addspace}%
  \printfield{eid}%
  \newunit\newblock
  \usebibmacro{issuename}%
  \newunit}

\begin{filecontents}{\jobname.bib}
@article{pindyck,
  author    = {Pindyck, R. S.},
  title     = {Climate Change Policy: What Do the Models Tell Us?},
  journal   = {Journal of Economic Literature},
  year      = {2013},
  volume    = {51},
  numbe     = {3},
  pages     = {860–872},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380]{sigfridsson}
ipsum \autocite[1]{pindyck}

\printbibliography
\end{document}

Man beachte, dass es das "S." im optionalen Argument von \autocite für die Seitenzahl nicht braucht. biblatex erkennt von allein, ob es sich um eine Seitenzahl handelt, und fügt dann selbständig ein Seitenpräfix ein (das ist gerade im Englischen sehr praktisch, da biblatex erkennt, ob "p." oder "pp." angebracht ist).


dumpfschlumpf
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 28. Jun 2021, 21:41

Re: Text einfügen in das Literaturverzeichnis

Beitrag von dumpfschlumpf »

Vielen lieben Dank für die Hilfe! Ich bin da allein total aufgeschmissen.

Ich habe die Änderungen jetzt in meiner Abschlussarbeit eingebaut und dabei sind mir noch ein paar Sachen aufgefallen, die ich glattbügeln muss. Ich hab jetzt ein paar Stunden damit verbracht, eine Lösung zu suchen, komme aber nicht weiter.

  1. Mir ist bisher ein Detail entgangen: Am Ende der Zitate steht ein ".", und der muss grundsätzlich, egal ob Artikel oder Buch, weg. Also nicht:

    Pindyck, R. S. (2013): Climate Change Policy: What Do the Models Tell Us? in:
    Journal of Economic Literature, Jg. 51, Heft 3, 860–872.

  2. Ich bekomme vor dem letzten Autor ein "&" angezeigt, dieses soll aber ein Komma sein. Also

    Allen, M. R., Frame, D. J. (2007), Call Off the Quest in: Science, Jg. 318, Heft 5850,
    582–583

    statt

    Allen, M. R. & Frame, D. J. (2007), Call Off the Quest in: Science, Jg. 318, Heft 5850,
    582–583.

  3. Ich habe eine Institution, die ich zitiere. Es handelt sich um ein Buch. Es lautet

    on Climate Change, I. P. (2014), Climate Change 2013 - The Physical Science Basis.
    Cambridge University Press.

    sollte aber sein

Intergovernmental Panel on Climate Change (2014), Climate Change 2013 - The Physical Science Basis, Cambridge University Press

, also Namensreihenfolge plus Komma nach dem Titel.

@Article{Allen2007,
  author    = {Myles R. Allen and David J. Frame},
  journal   = {Science},
  title     = {Call Off the Quest},
  year      = {2007},
  number    = {5850},
  pages     = {582--583},
  volume    = {318},
  publisher = {American Association for the Advancement of Science ({AAAS})},
  
@Book{ClimateChange2014, author = {Intergovernmental Panel on Climate Change}, publisher = {Cambridge University Press}, title = {Climate Change 2013 - The Physical Science Basis}, year = {2014}, isbn = {110766182X}, ean = {9781107661820}, pagetotal = {1552}, }

Ich weiß nicht wieso, aber ich krieg leider kein Beispiel mehr zum Laufen, obwohl ich deinen Code einfach kopiert habe. In meiner Abschlussarbeit funktioniert allerdings alles.


MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Text einfügen in das Literaturverzeichnis

Beitrag von MoeWe »

Je mehr ich lese, desto weniger bin ich überzeugt, dass biblatex-apa eine gute Basis ist. Du änderst ja nun fast alles, was den Stil ausmacht.

  1. Für die Zeichensetzung am Ende des Eintrags ist \finentrypunct zuständig.

  2. In einer aktuellen Version von biblatex-apa muss man dafür finalnamedelim und finalnamedelim:apa:family-given umdefinieren.

  3. Wenn Du einen Namen, der kein Personenname (mit Vor- und Nachname) ist, in ein Namensfeld schreiben möchtest, dann musst Du ihn in geschweifte Klammern setzen, um zu verhindern, dass BibTeX oder Biber versucht, Vor- und Nachnamen zu identifizieren. Siehe auch https://tex.stackexchange.com/q/10808/35864 und §2.3.3 Corporate Authors and Editors der biblatex-Dokumentation.

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=apa]{biblatex}

\DeclareDelimAlias[bib,biblist]{finalnamedelim}{multinamedelim}
\DeclareDelimAlias[bib,biblist]{finalnamedelim:apa:family-given}{multinamedelim}

\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
  journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\renewbibmacro*{in}{%
  \ifbool{bbx:in}%
    {}%
    {\global\booltrue{bbx:in}%
     \bibncpstring{in}\setunit{\space}}}

\renewbibmacro*{journal+issuetitle}{%
  \setunit{\addspace}%
  \usebibmacro{in}%
  \usebibmacro{journal}%
  \setunit*{\addcomma\addspace}%
  \printfield{volume}%
  \setunit{\addcomma\addspace}%
  \printfield{number}%
  \setunit{\addcomma\addspace}%
  \printfield{eid}%
  \newunit\newblock
  \usebibmacro{issuename}%
  \newunit}

\renewcommand*{\finentrypunct}{}

\begin{filecontents}{\jobname.bib}
@article{pindyck,
  author    = {Pindyck, R. S.},
  title     = {Climate Change Policy: What Do the Models Tell Us?},
  journal   = {Journal of Economic Literature},
  year      = {2013},
  volume    = {51},
  numbe     = {3},
  pages     = {860–872},
}
@article{Allen2007,
  author    = {Myles R. Allen and David J. Frame},
  journal   = {Science},
  title     = {Call Off the Quest},
  year      = {2007},
  number    = {5850},
  pages     = {582--583},
  volume    = {318},
}
@book{ClimateChange2014,
  author    = {{Intergovernmental Panel on Climate Change}},
  publisher = {Cambridge University Press},
  title     = {Climate Change 2013 -- The Physical Science Basis},
  year      = {2014},
  isbn      = {110766182X},
  ean       = {9781107661820},
  pagetotal = {1552},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380]{sigfridsson}
ipsum \autocite[1]{pindyck}
ipsum \autocite[582]{Allen2007}
ipsum \autocite[529]{ClimateChange2014}

\printbibliography
\end{document}

Hier mal eine Version, die eine ähnliche Ausgabe gibt, aber eben mit einem einfach konfigurierbaren Grundstil (aus meinem biblatex-ext-Paket) statt mit APA

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[
  backend=biber,
  style=ext-authoryear,
  giveninits=true,
]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareNameAlias{sortname}{family-given}
\DeclareDelimAlias[bib,biblist]{finalnamedelim}{multinamedelim}

\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}

\newbibmacro*{in:}{%
  \setunit{\addspace}%
  \bibncpstring{in}%
  \printunit{\intitlepunct}}

\renewcommand*{\jourvoldelim}{\addcomma\space}
\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}
\renewcommand*{\volnumdelim}{\addcomma\space}
\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
  journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\DeclareFieldFormat[article,periodical]{pages}{#1}

\renewcommand*{\finentrypunct}{}

\begin{filecontents}{\jobname.bib}
@article{pindyck,
  author    = {Pindyck, R. S.},
  title     = {Climate Change Policy: What Do the Models Tell Us?},
  journal   = {Journal of Economic Literature},
  year      = {2013},
  volume    = {51},
  numbe     = {3},
  pages     = {860–872},
}
@article{Allen2007,
  author    = {Myles R. Allen and David J. Frame},
  journal   = {Science},
  title     = {Call Off the Quest},
  year      = {2007},
  number    = {5850},
  pages     = {582--583},
  volume    = {318},
}
@book{ClimateChange2014,
  author    = {{Intergovernmental Panel on Climate Change}},
  publisher = {Cambridge University Press},
  title     = {Climate Change 2013 -- The Physical Science Basis},
  year      = {2014},
  isbn      = {110766182X},
  ean       = {9781107661820},
  pagetotal = {1552},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380]{sigfridsson}
ipsum \autocite[1]{pindyck}
ipsum \autocite[582]{Allen2007}
ipsum \autocite[529]{ClimateChange2014}

\printbibliography
\end{document}
dumpfschlumpf hat geschrieben:
Sa 3. Jul 2021, 15:37

Ich weiß nicht wieso, aber ich krieg leider kein Beispiel mehr zum Laufen, obwohl ich deinen Code einfach kopiert habe. In meiner Abschlussarbeit funktioniert allerdings alles.

Wie genau äußert es sich denn, dass kein Beispiel mehr läuft? Wenn Du immer in einer Datei desselben Namens arbeitest, dann musst Du beachten, dass filecontents in der bis jetzt in den Beispielen genutzten Einstellung die vorhandene .bib-Datei (mit demselben Namen wie die .tex-Datei) nicht automatisch überschreibt. Es kann also sein, dass bestimmte .bib-Einträge dann fehlen, wenn Du die Datei erneut kompilierst. Zum Testen kannst Du die .bib-Datei ja löschen. Oder Du gehst in einen neuen Ordner oder gibst der Datei einen neuen Namen. Wenn Du das Minimalbeispiel in einem eigenen Order laufen lässt, in dem sich sonst keine weiteren Dokumente und Dateien befinden (insbesondere keine wichtigen Dateien), dann kannst Du statt \begin{filecontents}{\jobname.bib} auch \begin{filecontents}[force]{\jobname.bib} nehmen, dann wird die .bib-Datei ohne Vorwarnung in jedem LaTeX-Lauf überschrieben.


dumpfschlumpf
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 28. Jun 2021, 21:41

Re: Text einfügen in das Literaturverzeichnis

Beitrag von dumpfschlumpf »

Also, jetzt wirds ziemlich wirr. Ich versuch das mal zu sortieren.

  1. Die Sache mit der Schweifklammer kannte ich. Sie funktioniert nur in meiner Abschlussarbeit nicht.

  2. Deine Anpassungen machen exakt was sie sollen. Ich finde den authoryear-Stil optisch ansprechender, deswegen habe ich versucht, den in meine Präambel einzubauen.

  3. versucht, weil das Literaturverzeichnis dabei komplett verschwindet.

Ich vermute, dass irgendwas mit der Literature.bib nicht stimmt.
Denn, wenn ich die Präambel in ein neues Dokument kopiere (nennen wir es "Neu") und Literaturquellen über den \begin{filecontents}-Befehl einfüge, habe ich eine perfekte und funktionable Darstellung.

Jetzt hab ich drei Sachen gemacht, um diese These zu checken.

  1. Ich habe ein neues Literaturverzeichnis erstellt und mit \addbibresource geladen. Das Literaturverzeichnis wird nicht erstellt.

  2. Dann habe ich einfach mal den meine gesamte Präambel gelöscht und dafür den funktionierenden Code aus der Datei "Neu" kopiert. Und siehe da - es funktioniert wieder nicht.

  3. Habe ich eine Kopie meiner kompletten Arbeit gemacht, die Präambel aus dem Ordner gelöscht und die funktionierende Datei "Neu" als Präambel in diesen Ordner gespeichert. Dazu habe ich das Literaturverzeichnis neu und über Latex (statt wie bisher mit Jabref) erstellt. Das Literaturverzeichnis funktioniert immer noch nicht.

Ich habe keine Ahnung, was ich falsch mache. Folgender Code klappt nicht:

\documentclass[12pt,oneside,a4paper]{book}
\mathsurround=2pt 
\parindent=0pt		
\parskip=12pt			
\renewcommand*{\baselinestretch}{1.5}
\textheight 22.5cm \textwidth 15.1cm \oddsidemargin=30pt 
\evensidemargin=10pt \textwidth=412pt \lineskip=3pt 
\columnsep=10pt \raggedbottom \setlength{\topmargin}{-1pt} 
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{amssymb}	
\usepackage{amsmath}	
\usepackage{makeidx}
\usepackage{fancyhdr}	
\usepackage{wrapfig}	
\usepackage[a4paper, left=2cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}
\pagestyle{headings}
\usepackage[utf8]{inputenc} 
\usepackage{remreset}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=ext-authoryear,
giveninits=true,
]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\DeclareNameAlias{sortname}{family-given}
\DeclareDelimAlias[bib,biblist]{finalnamedelim}{multinamedelim}

\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}

\newbibmacro*{in:}{%
	\setunit{\addspace}%
	\bibncpstring{in}%
	\printunit{\intitlepunct}}

\renewcommand{\jourvoldelim}{\addcomma\space}
\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}
\renewcommand{\volnumdelim}{\addcomma\space}
\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
	journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\DeclareFieldFormat[article,periodical]{pages}{#1}

\renewcommand*{\finentrypunct}{}
%Nachname, V. Z.

\renewcommand*{\multinamedelim}{\addnbspace\komma\space}
\DeclareNameFormat{labelname}{
	\ifnum\value{uniquename}<2
	\ifuseprefix
	{\usebibmacro{name:family-given}
		{\namepartfamily}
		{\namepartgiveni}
		{\namepartprefixi}
		{\namepartsuffixi}}
	\fi
	\usebibmacro{name:andothers}}

%%% Zitationsstil - \footcite{•} %%%
\DeclareCiteCommand{\xfootcite}[\mkbibfootnote] 
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}
	\setunit{\addnbspace}
	\printnames{labelname}
	\printfield[parens]{year}
	\setunit{\addcolon\space}
	\printfield[citetitle]{title}
	\newunit}
{\addsemicolon\space}
{\usebibmacro{postnote}}


\renewcommand*{\labelnamepunct}{\addcomma\space}
%Italic weg
\DeclareFieldFormat[article, book]{title}{#1}
\DeclareFieldFormat{journaltitle}{#1}

\addbibresource{literatur.bib}


%------------------------
\pagestyle{fancy} \lhead{{\em\nouppercase\rightmark}} \chead{}
\rhead{\thepage} \setlength{\topskip}{0pt}	
\cfoot{} \rfoot{} \lfoot{}	
\renewcommand{\footrulewidth}{0pt}	
\renewcommand{\headrulewidth}{0.4pt}	
\allowdisplaybreaks 	
%------------------------
\newcounter{aux}


Wenn ich eine neue Datei öffne, den Code von oben einfüge, dazu

\begin{filecontents}{\jobname.bib}
@article{pindyck,
  author    = {Pindyck, R. S.},
  title     = {Climate Change Policy: What Do the Models Tell Us?},
  journal   = {Journal of Economic Literature},
  year      = {2013},
  volume    = {51},
  numbe     = {3},
  pages     = {860–872},
}
@article{Allen2007,
  author    = {Myles R. Allen and David J. Frame},
  journal   = {Science},
  title     = {Call Off the Quest},
  year      = {2007},
  number    = {5850},
  pages     = {582--583},
  volume    = {318},
}
@book{ClimateChange2014,
  author    = {{Intergovernmental Panel on Climate Change}},
  publisher = {Cambridge University Press},
  title     = {Climate Change 2013 -- The Physical Science Basis},
  year      = {2014},
  isbn      = {110766182X},
  ean       = {9781107661820},
  pagetotal = {1552},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite[380]{sigfridsson}
ipsum \autocite[1]{pindyck}
ipsum \autocite[582]{Allen2007}
ipsum \autocite[529]{ClimateChange2014}

\printbibliography
\end{document}

ergänze, habe ich (mit Ausnahmen der Fußnoten) genau die Lösung, die ich brauuche.
Daraufhin habe ich versucht, mein ganzes Literaturverzeichnis auf diese Weise einzufügen und - literaturverzeichnis ist weg.

Und noch ein Nachtrag: Wenn ich deine apa-Version verwende, klappt alles perfekt bis auf den Eintrag für das Intergovernmental Panel, dort tritt einfach keine Änderung ein. Ansonsten funktioniert sie allerdings in meiner Präambel.

\documentclass[12pt,oneside,a4paper]{book}
\mathsurround=2pt 
\parindent=0pt		
\parskip=12pt			
\renewcommand*{\baselinestretch}{1.5}
\textheight 22.5cm \textwidth 15.1cm \oddsidemargin=30pt 
\evensidemargin=10pt \textwidth=412pt \lineskip=3pt 
\columnsep=10pt \raggedbottom \setlength{\topmargin}{-1pt} 
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{amssymb}	
\usepackage{amsmath}	
\usepackage{makeidx}
\usepackage{fancyhdr}	
\usepackage{wrapfig}	
\usepackage[a4paper, left=2cm, right=4cm, top=2.5cm, bottom=2.5cm]{geometry}
\pagestyle{headings}
\usepackage[utf8]{inputenc} 
\usepackage{remreset}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[
backend=biber,
style=apa
]{biblatex}
\DeclareDelimAlias[bib,biblist]{finalnamedelim}{multinamedelim}
\DeclareDelimAlias[bib,biblist]{finalnamedelim:apa:family-given}{multinamedelim}

\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}

\NewBibliographyString{journum}
\DefineBibliographyStrings{german}{
	journum = {Heft},
}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{journum}~#1}

\renewbibmacro*{in}{%
	\ifbool{bbx:in}%
	{}%
	{\global\booltrue{bbx:in}%
		\bibncpstring{in}\setunit{\space}}}

\renewbibmacro{journal+issuetitle}{%
	\setunit{\addspace}%
	\usebibmacro{in}%
	\usebibmacro{journal}%
	\setunit{\addcomma\addspace}%
	\printfield{volume}%
	\setunit{\addcomma\addspace}%
	\printfield{number}%
	\setunit{\addcomma\addspace}%
	\printfield{eid}%
	\newunit\newblock
	\usebibmacro{issuename}%
	\newunit}

\renewcommand*{\finentrypunct}{}
%Nachname, V. Z.

\renewcommand*{\multinamedelim}{\addnbspace\komma\space}
\DeclareNameFormat{labelname}{
	\ifnum\value{uniquename}<2
	\ifuseprefix
	{\usebibmacro{name:family-given}
		{\namepartfamily}
		{\namepartgiveni}
		{\namepartprefixi}
		{\namepartsuffixi}}
	\fi
	\usebibmacro{name:andothers}}

%%% Zitationsstil - \footcite{•} %%%
\DeclareCiteCommand{\xfootcite}[\mkbibfootnote] 
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}
	\setunit{\addnbspace}
	\printnames{labelname}
	\printfield[parens]{year}
	\setunit{\addcolon\space}
	\printfield[citetitle]{title}
	\newunit}
{\addsemicolon\space}
{\usebibmacro{postnote}}


\renewcommand*{\labelnamepunct}{\addcomma\space}
%Italic weg
\DeclareFieldFormat[article, book]{title}{#1}
\DeclareFieldFormat{journaltitle}{#1}

\addbibresource{sources.bib}

%------------------------
\pagestyle{fancy} \lhead{{\em\nouppercase\rightmark}} \chead{}
\rhead{\thepage} \setlength{\topskip}{0pt}	
\cfoot{} \rfoot{} \lfoot{}	
\renewcommand{\footrulewidth}{0pt}	
\renewcommand{\headrulewidth}{0.4pt}	
\allowdisplaybreaks 	
%------------------------
\newcounter{aux}

Antworten