Literaturverzeichnis mit natbib individualisieren Thema ist als GELÖST markiert

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


Tobias_D

Literaturverzeichnis mit natbib individualisieren

Beitrag von Tobias_D »

Hallo,

ich erzeuge mein Literaturverzeichnis mit natbib auf die folgende Art:
\documentclass[a4paper, 12pt, twoside]{scrartcl}
\usepackage{natbib}
\begin{document}
....
\cite{AnyKey}
....
\bibliographystyle{chicago}
\bibliography{Literature}
\end{document}
Ich hätte es nun gerne, dass die Namen der Autoren im Literaturverzeichnis (nicht im Text) in Kapitälchen dargestellt werden. Wie schaffe ich das? Folgendes hat leider nicht funktioniert (Undefined Control Sequence \AtBeginBibliography):
\AtBeginBibliography{\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}}
  \AtBeginBibliography{\renewcommand*{\mkbibnamefirst}[1]{\textsc{#1}}}
Außerdem würde ich es gerne abstellen, dass beim Zitieren eines Articles das Jounal kursiv gedruckt erscheint und dass beim Zitieren eines Books der Titel kursiv gedruckt wird.

Vielen Dank schon mal vorab.

Grüße

Gast

Beitrag von Gast »

Die Befehle, die Du probiert hast, sind biblatex-Befehle und funktionieren daher mit natbib nicht.

Ich würde Dir empfehlen, zu biblatex und biber umzusteigen; zu dem Stil chicago.bst passen wohl am besten [d]authoryear[/d] (oder einer seiner Derivate), wenn Du echten Chicago Manual of Style möchtest, dann solltest Du Dir biblatex-chicago ansehen.
Siehe auch die wichtigen Hinweise.
biblatex ist viel leichter zu konfigurieren als die .bst-Dateien, besonders wenn Dir (oder Deiner Betreuerin) noch einfällt, dass noch mehr geändert werden muss.

biblatex-Beispiel
\documentclass[ngerman, a4paper, 12pt, twoside]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{kullback:reprint,wilde}

\cite{wilde} and \cite{wilde}

\printbibliography
\end{document}
Nun zu den Modifikationen an chichago.bst also.
Finde zunächst chichago.bst auf Deinem Rechner, kopier sie irgendwo hin, wo LaTeX sie finden kann und benenne sie um zu mychichago.bst.

Für Deinen ersten Wunsch solltest Du die Funktion FUNCTION {format.names} suchen und vor die Definition den folgenden Block setzen
FUNCTION {scaps}
{ duplicate$ empty$
    { pop$ "" }
    { "\textsc{" swap$ * "}" * }
  if$
}
FUNCTION {bib.name.font}
{ scaps }
Dann musst Du die Definition FUNCTION {format.names} zu
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=               % nameptr = 1;
  s num.names$ 'numnames :=    % numnames = num.name$(s);
  numnames 'namesleft :=
    { namesleft #0 > }

    { nameptr #1 =
        {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := }
        {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
      if$
      nameptr #1 >
        { namesleft #1 >
              { ", " * t * }
              { numnames #2 >
                  { "," * }
                  'skip$
                if$
                t "others" =
                    { " et~al." * }
                    { " and " * t * } % from Chicago Manual of Style
                  if$
               }
               if$
             }
            't
        if$
        nameptr #1 + 'nameptr :=          % nameptr += 1;
        namesleft #1 - 'namesleft :=      % namesleft =- 1;
    }
  while$ 
  t "others" =
    'skip$
    { bib.name.font }
  if$
}
ändern, wir haben hier den Block
 t "others" =
    'skip$
    { bib.name.font }
  if$
nach dem while$ angefügt.

Dann suchst Du FUNCTION {format.title} und ersetzt die Definition durch
FUNCTION {format.title}
{ title empty$
    { "" }
    { title emphasize "t"  change.case$ }
  if$
}
Wenn Du keinen Case Change möchtest, nutze lieber
FUNCTION {format.title}
{ title empty$
    { "" }
    { title emphasize }
  if$
}
Nun schreibst Du in deinem Dokument statt \bibliographystyle{chicago} einfach \bibliographystyle{mychicago} und fertig!

Tobias_D

Beitrag von Tobias_D »

Super, vielen lieben Dank für die tolle Anleitung!

Ich habe nun die chicago.bst Datei geändert, wie in der Anleitung beschrieben. Das mit den Kapitälchen bei den Autorennamen hat geklappt, der zweite Änderungswunsch aber leider nicht:

"Außerdem würde ich es gerne abstellen, dass beim Zitieren eines Articles das Jounal kursiv gedruckt erscheint und dass beim Zitieren eines Books der Titel kursiv gedruckt wird."

Müssen eventuell noch weitere Änderungen an der bst-DAtei vorgenommen werden?

Vielen Dank nochmals!

Tobias_D

Beitrag von Tobias_D »

Und noch eine Frage:

Ist es möglich, dass das "AND" im Literaturverzeichnis nicht in Kapitälchen dargestellt wird, sondern ganz normal als "and"?

Gast

Beitrag von Gast »

Upps, ich habe Deine zweite Anfrage total falsch verstanden, sorry.

Dann brauchst Du die zweite Änderung von oben nicht.

Aber Du brauchst stattdessen eine Änderung von FUNCTION {format.jour.vol} zu
FUNCTION {format.jour.vol}
{ journal empty$
    { "no journal in " cite$ * warning$
      "" }
    { journal }
    if$
  number empty$
    { volume empty$
       { "no number and no volume in " cite$ * warning$
         "" * }
       { "~{\em " * Volume * "}" * }
      if$
    }
    { volume empty$
      {"no volume for " cite$ * warning$
       "~(" * number * ")" * }
      { "~" *
        volume emphasize.space
        "(" * number * ")" * * }
      if$
    }
  if$
  pages empty$
    {"page numbers missing in " cite$ * warning$
     "" * } % gnp - place a null string on the stack for output
    { duplicate$ empty$
      { pop$ format.pages }
      { ", " *  pages n.dashify * } % gnp - removed pp. for articles
      if$
    }
  if$
}

Je nach Geschmack, kannst Du auch die anderen emphasize.space entfernen.

Dann brauchen wir für FUNCTION {format.btitle}
FUNCTION {format.btitle}
{ edition empty$
  { title }
  { title empty$
    { title }
    { volume empty$     % gnp - check for volume, then don't need period
       { title * " (" * edition * " ed.)" * "." * }
       { title * " (" * edition * " ed.)" * }
      if$
    }
    if$
  }
  if$
}
und vielleicht auch für FUNCTION {format.emphasize.booktitle} dann
FUNCTION {format.emphasize.booktitle}
{ edition empty$
  { booktitle }
  { booktitle empty$
    { booktitle }
    { volume empty$    % gnp - extra period an error if book has a volume
        { booktitle * " (" * edition * " ed.)" * "." *}
        { booktitle * " (" * edition * " ed.)" * }
      if$
      }
    if$
    }
  if$
  }

Gast

Beitrag von Gast »

Für das "and" brauchst Du in der Redefinition von FUNCTION {format.names} statt " and " dann " \textup{and} "

also
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=               % nameptr = 1;
  s num.names$ 'numnames :=    % numnames = num.name$(s);
  numnames 'namesleft :=
    { namesleft #0 > }

    { nameptr #1 =
        {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := }
        {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
      if$
      nameptr #1 >
        { namesleft #1 >
              { ", " * t * }
              { numnames #2 >
                  { "," * }
                  'skip$
                if$
                t "others" =
                    { " et~al." * }
                    { " \textup{and} " * t * } % from Chicago Manual of Style
                  if$
               }
               if$
             }
            't
        if$
        nameptr #1 + 'nameptr :=          % nameptr += 1;
        namesleft #1 - 'namesleft :=      % namesleft =- 1;
    }
  while$
  t "others" =
    'skip$
    { bib.name.font }
  if$
}
Wenn Du das für ein eventuelles "at al." auch möchtest, musst Du es einfach auch in \textup{...} kleiden.

Tobias_D

Beitrag von Tobias_D »

Danke sehr, klappt alles. Nur leider ist jetzt bei einem Book im Literaturverzeichnis kein Punkt hinter dem Autor und kein Leerzeichen.

Es sieht also so aus:

NACHNAME, V. (2013)Titel des Buches. ...

Es sollte aber so aussehen:

NACHNAME, V. (2013). Titel des Buches. ...

Gast

Beitrag von Gast »

Mhhh, bei mir ist das noch da, vielleicht hast Du etwas zu viel gelöscht oder geändert. Am einfachsten wird es wohl sein, Du kopierst den normalen chicago.bst nochmal und führst die Änderungen erneut durch.

Tobias_D

Beitrag von Tobias_D »

Das Problem tritt nur auf, wenn für das Book eine Edition angegeben wird. Lässt man diese Info in der bib Datei weg, dann funktioniert alles wie es soll.

Mit der original Datei chicago.bst funktioniert es in beiden Fällen, wie es soll.

Gast

Beitrag von Gast »

Oh je, ich weiß schon, warum ich normalerweise die Finger von .bst-Dateien lasse...
Wenn Du die Zeit hast, solltest Du wirklich darüber nachdenken, biblatex zu verwenden, da sind die notwendigen Änderungen weniger als zehn Zeilen und etwas intuitiver als diese umgekehrte polnische Notation von BibTeX.

Nun gut, die korrekten Modifikationen sind
FUNCTION {format.btitle}
{ edition empty$
  { title }
  { title empty$
    { title }
    { volume empty$     % gnp - check for volume, then don't need period
       { " " title * " (" * edition * " ed.)" * "." * }
       { " " title * " (" * edition * " ed.)" * }
      if$
    }
    if$
  }
  if$
}

FUNCTION {format.emphasize.booktitle}
{ edition empty$
  { booktitle }
  { booktitle empty$
    { booktitle }
    { volume empty$    % gnp - extra period an error if book has a volume
        { " " booktitle * " (" * edition * " ed.)" * "." *}
        { " " booktitle * " (" * edition * " ed.)" * }
      if$
      }
    if$
    }
  if$
}

Antworten