Formatierung des Literaturverzeichnisses mit Biblatex

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


Akros
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Fr 19. Feb 2010, 00:22

Formatierung des Literaturverzeichnisses mit Biblatex

Beitrag von Akros »

Geehrte Forumsgemeinde

Ich bin vor kurzem von 'natbib' auf 'biblatex' umgestiegen und bin begeistert von den Möglichkeiten die bilatex bietet. Nun geht es leider auch hier nicht ganz ohne fremde Hilfe.

Die Artikel werden eigentlich genau so ausgegeben wie ich das möchte.
Hier die Vorlage: (Beim Datum möchte ich nur die Jahreszahl.)
Bild
http://img189.imageshack.us/img189/3346/ch1e1.jpg

So weit so gut. Nun wirds ein bisschen komplizierter. Bei Kapiteln aus Büchern möchte ich folgenden Stil:
Bild
http://img715.imageshack.us/img715/9447/ch2e5.jpg

Probleme:
  • 'Hrsg. von' hätte ich gerne als 'Hrsg.' nach den Hersausgebern und in Klammern. Also: '(Hrsg.)'
    Wahrscheinlich unglaublich einfach, aber ich bekomms nicht hin. :?
  • Die Seitenzahlen sollen ganz am Schluss erscheinen und davor ein 'S.'
    Das 'S.' habe ich aber für die Artikel entfernt.
    \DeclareFieldFormat{pages}{#1}
    Wie kann ich das nur bei den Artikeln deaktivieren und bei den Büchern belassen?
Wäre spitze, wenn mir jemand helfen könnte!


Hier noch mein Minimalbeispiel, mit allen Änderungen die ich bereits getätigt habe:
\documentclass[oneside]{scrbook}
\usepackage[babel,german=guillemets]{csquotes} 
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents}{literatur.bib}

@INBOOK{Philips1995,
  chapter = {Hypertension and stroke},
  pages = {465--78},
  title = {Hypertension: pathophysiology, diagnosis, and management.},
  publisher = {New York: Raven Press},
  year = {1995},
  editor = {J. H. Laragh and B. M. Brenner},
  author = {S. J. Phillips and J. P. Whisnant},
  edition = {2},
  timestamp = {18.02.2010}
}

@ARTICLE{Towne2000,
  author = {A. R. Towne and E. J. Waterhouse and J. G. Boggs and L. K. Garnett
	and A. J. Brown and J. R. Smith and R. J. DeLorenzo},
  title = {Prevalence of nonconvulsive status epilepticus in comatose patients.},
  journal = {Neurology},
  year = {2000},
  volume = {54},
  pages = {340--345},
  number = {2},
  month = {Jan},
  institution = {Department of Neurology, Medical College of Virginia of Virginia
	Commonwealth University, Richmond 23298-0599, USA.},
  keywords = {Adolescent; Adult; Aged; Aged, 80 and over; Brain Injuries, complications;
	Child; Child, Preschool; Coma, diagnosis/epidemiology/etiology; Electroencephalography;
	Humans; Hypoxia, Brain, complications; Infant, Newborn; Intensive
	Care, methods; Middle Aged; Neurologic Examination; Prevalence; Prospective
	Studies; Status Epilepticus, complications/diagnosis/epidemiology},
  language = {eng},
  medline-pst = {ppublish},
  pmid = {10668693},
  timestamp = {18.02.2010}
}
\end{filecontents}
\usepackage[style=numeric,sorting=none,maxnames=6,minnames=6,terseinits=true]{biblatex}
\bibliography{literatur}

\DefineBibliographyStrings{german}{%
        andothers = {{et\,al\adddot}},				% 'et al.' anstatt 'u.a.'
        editor    = {(Hrsg.)},
        editors   = {(Hrsg.)}} 

\DeclareFieldFormat{journaltitle}{#1}			% Journal-Titel nicht Kuriv
\DeclareFieldFormat{month}{}				% Keine Monatsangabe
\DeclareFieldFormat{pages}{#1}				% Kein Präfix der Seitenzahlen
\DeclareFieldFormat[article]{title}{#1\isdot}			% Keine Anführungszeichen in der Bibliographie
\DeclareFieldFormat[inbook]{title}{#1\isdot}			% Keine Anführungszeichen in der Bibliographie
\DeclareFieldFormat{labelnumberwidth}{#1}			% Keine eckigen Klammern in Bibliographie
\DeclareFieldFormat{chapter}{#1}				% Kein 'Chap.' in Bibliographie 


\renewcommand*{\bibpagespunct}{\addcolon}		% Zeichen vor der Seitenangabe
\renewcommand*{\multinamedelim}{\addcomma\space}	% Kommas zwischen Autoren [default]
\renewcommand*{\finalnamedelim}{\addcomma\space}	% Entfernt das 'und' zwischen den letzten beiden Namen einer Liste

\renewbibmacro*{name:last-first}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \ifblank{#3}{}{%
       \ifcapital
         {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
	 {\mkbibnameprefix{#3}\isdot}%
       \ifpunctmark{'}{}{\addhighpenspace}}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamelast{#1}\isdot
     \ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2#3}{}{}%					% Entfernt Komma zwischen Name und Vorname.
     \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}\isdot}%
     \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}}}


\DeclareNameFormat{default}{%				% Nachname, Vorname			  
   \iffirstinits
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
      {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}%
  \usebibmacro{name:andothers}}



\renewbibmacro*{journal+issuetitle}{%			% Reihenfolge, Punkt und Abstand nach Journal-Titel, 
  \usebibmacro{journal}%
  \setunit*{\addperiod\space}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{issue+date}%
  \setunit{\addsemicolon}%
  \printfield{volume}%
  \setunit*{}%
  \printfield[parens]{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}%
  \setunit{\addspace}%
  \usebibmacro{issue}%
  \newunit}
  
\renewbibmacro*{issue+date}{%
  \printtext[]{%						% Entfernt Klammern [parens] bei Datumsangabe
    \iffieldundef{issue}
      {\printdate}
      {\printfield{issue}%
       \setunit{\addspace}%
       \printfield{year}}}%
  \newunit}

%%%article
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  %\printlist{language}%					% Entfernt Sprachangabe
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  %\usebibmacro{in:}%					% 'In:' entfernen
  \usebibmacro{journal+issuetitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \usebibmacro{note+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

%%%inbook							
\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{byeditor+others}%
  \newunit\newblock  
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bybookauthor}%
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

\renewbibmacro*{chapter+pages}{%
  \printfield{chapter}%
 % \setunit{\bibpagespunct}%					% Doppelpunkt und Seitenzahl entfernen
  %\printfield{pages}%
  \newunit}

\begin{document}
Dies ist ein kleines Testdokument \cite{Towne2000,Philips1995}.
\printbibliography
\end{document}
Dateianhänge
minimalbeispiel.pdf
So sieht das Minimalbeispiel bei mir aus.
(30.96 KiB) 1094-mal heruntergeladen

raedor
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mo 22. Feb 2010, 23:51
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von raedor »

Das sollte das S. nur für Artikel unterdrücken:
\DeclareFieldFormat[article]{pages}{#1}
Für die Klammern um das Hrsg. gibt es wahrscheinlich mehrere Wege, schlimmstenfalls, wenn man die Klammern in den Editor-String mit reinwurstet, aber da gibt's sicher besseres. Ich versuche nun auch schon seit Tagen, das "Hrsg." kursiv zu kriegen ...

Coccy

Beitrag von Coccy »

Hallo,

ich habe (Hrsg.) folgendermaßen hinbekommen. Warum es nur mit "byeditor" funktioniert, weiß ich allerdings nicht, ich hatte erst immer editor genommen und da hat sich nix getan.

\DefineBibliographyStrings{german}{%
byeditor ={\unspace\mkbibparens {Hrsg\adddot}},
}

Gruß Coccy

Yoga
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: So 15. Jun 2014, 16:06

Herausgeber in Klammern

Beitrag von Yoga »

Hallo,

bei mir funktioniert das leider gar nicht. Ich habe dabei zwei Probleme:

1. Ich hätte gerne, dass nach dem Vornamen kein Komma steht, sondern der Hrsg. in Klammern. Also so:
Nachname, Vorname (Hrsg.)(Jahr): ...

2. Bei den Beiträgen in Sammelwerken soll der Literatureintrag so aussehen:
Nachname, Vornahme (Jahr): Titel. In: Nachname, Vorname (Hrsg.): Sammelwerktitel ...
Im Moment kommt das Hrsg. vor dem Nachnamen und ohne Klammer (weil es ursprünglich dort steht als "herausgegeben von"). Außerdem soll der Herausgeber des Sammelwerkes vor dem Sammelwerktitel kommen.

Hier ist das Minimalbeispiel für beide Probleme:
\documentclass[a4paper, 12pt, captions=tableabove]{scrartcl} %Papierformat, Schriftgröße, Seitenspiegel und Dokumentenklasse: KOMA-Script
\usepackage[T1]{fontenc} %Umlaute etc. werden in Ausgabe wiedergegeben
\usepackage[utf8]{inputenc} %Umlaute können eingegeben werden und plattformübergreifende Kodierung
\usepackage[ngerman]{babel} %Sprache und neue Rechtschreibung, Anpassung an gewünschte Sprache
\usepackage{filecontents}
\begin{filecontents}{Minimalbeispiel.bib}
@book{Meibauer,
	editor      = {Meibauer, Jörg and Demske, ULrike and Geilfuß-Wolfgang, Jochen and Pafel, Jürgen and Ramers, Karl H. and Rothweiler, Monika and Steinbach, Markus},
	title        = {Einführung in die germanistische Linguistik }, 
	edition      = {2., aktualisierte Aufl}, 
	address      = {Stuttgart and Weimar}, 
	publisher    = {Metzler}, 
	year         = {2007}, 
}
@incollection{Koeller,
	author = {Köller, Wilhelm},
	editor = {Gornik, Hildegard and Ulrich, Winfried},
	title = {Formen und Funktionen in der Grammatik},
	booktitle = {Sprachreflexion und Grammatikunterricht},
	date = {2014},
	OPTsubtitle = {subtitle},
	OPTbooksubtitle = {booksubtitle},
	OPTvolume = {volume},
	OPTedition = {edition},
	series = {Deutschunterricht in Theorie und Praxis (DTP)},
	number = {6},
	publisher = {Schneider Verlag Hohengehren},
	location = {Baltmannsweiler},
	pages = {90-109},
}
\end{filecontents}
\usepackage[backend=biber,style=authoryear-icomp, maxitems=2, minitems=1, maxnames=3, minnames=1]{biblatex}

\DefineBibliographyStrings{ngerman}{andothers={et\addabbrvspace al\adddot}} % u.a. zu et al. 
\DefineBibliographyStrings{ngerman}{andmore={et\addabbrvspace al\adddot}} %u.a. zu et al.
\DefineBibliographyStrings{ngerman}{byeditor ={\addabbrvspace\mkbibparens{Hrsg\adddot}},
} 

\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[book]{title}{#1}


\renewcommand*{\labelnamepunct}{\addcolon \space}
\bibliography{Bibliografie}


\begin{document}
Hier wird auf \textcite{Meibauer} und \textcite{Koeller} verwiesen.
	\printbibliography
\end{document}
Könntet ihr mir helfen?

Schon mal vielen Dank und liebe Grüße.

Lean
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 10. Dez 2014, 17:58
Wohnort: Wien

Re: Herausgeber in Klammern

Beitrag von Lean »

Liebe Experten,

gab es auf die letzte Frage eine Antwort?
Genau das ist nämlich auch mein Problem...
Yoga hat geschrieben:Hallo,

bei mir funktioniert das leider gar nicht. Ich habe dabei zwei Probleme:

1. Ich hätte gerne, dass nach dem Vornamen kein Komma steht, sondern der Hrsg. in Klammern. Also so:
Nachname, Vorname (Hrsg.)(Jahr): ...

2. Bei den Beiträgen in Sammelwerken soll der Literatureintrag so aussehen:
Nachname, Vornahme (Jahr): Titel. In: Nachname, Vorname (Hrsg.): Sammelwerktitel ...
Im Moment kommt das Hrsg. vor dem Nachnamen und ohne Klammer (weil es ursprünglich dort steht als "herausgegeben von"). Außerdem soll der Herausgeber des Sammelwerkes vor dem Sammelwerktitel kommen.

[...]
.
Ich habe es für @incollection zwar mit
\DefineBibliographyStrings{german}{%
byeditor ={\unspace\mkbibparens {Hrsg\adddot}},
} 

geschafft, die Angabe "hrsg. von" durch ein (Hrsg.) zu ersetzen, die Position ist aber immer noch nicht der Vorgabe entsprechend. Im Moment sieht die Ausgabe dann so aus:

Nachname, Vorname (Jahr): "Titel". In: Titel des Buchs/der Schriftensammlung (Hrsg.) Vorname Nachname / Vorname Nachname / Vorname Nachname. Ort: Verlag, X-X.

Es sollte aber, wie oben beschrieben, so sein:

Nachname, Vorname (Jahr): "Titel". In: Vorname Nachname / Vorname Nachname / Vorname Nachname (Hrsg.): Titel des Buchs/der Schriftensammlung
Ort: Verlag, X-X.

Gibt es hier vielleicht Hilfe/Erfahrungen?
Ich poste auch gern mal ein Minimalbeispiel, falls gewünscht.
Vielen lieben Dank!

Gast

Beitrag von Gast »

Nachfrage 1 ist noch rechts schnell zu bewältigen.

Es reichen (ohne weitere Modifikationen, insbesondere ist byeditor ={\unspace\mkbibparens {Hrsg\adddot}}, Käse)
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
und je nach Stil dann

für authoryear und Freunde
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\addspace}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}%
     \setunit{\addspace}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\addspace}}%
  \usebibmacro{date+extrayear}}
\makeatother
für authortitle und Freunde (bzw. die Stile, die eine solche Bibliographie nutzen, auch verbose und Co.)
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
        \setunit{\addspace}%
        \usebibmacro{bbx:savehash}}%
     \usebibmacro{#1}%
     \clearname{editor}}
    {\global\undef\bbx@lasthash}}
\makeatother
und für die numeric-Stile sogar
\renewbibmacro*{editor}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}
    {}}
oder eben unabhängig von dem Stil (zumindest bei den Standardstilen funktioniert das) mit dem Paket xpatch (also \usepackage{xpatch} in der Präambel) einfach nur
\xpatchbibmacro{editor}
  {\setunit{\addcomma\space}}
  {\setunit{\addspace}}
  {}{}
\xpatchbibmacro{bbx:editor}
  {\setunit{\addcomma\space}}
  {\setunit{\addspace}}
  {}{}

Das zweite Problem ist von Code her etwas umständlicher und hässlicher zu lösen. Das werde ich mir morgen weiter ansehen.

Gast

Beitrag von Gast »

Ein bisschen Lesestoff zu Punkt zwei sind
Citing @inbook with biblatex: how to put authors/editors before book title?
und Move names of editors followed by (Ed./Eds.) and a comma before title in biblatex

Die Lösungen, in denen andere Makros missbraucht werden, um den benötigten Code einzuschleusen, finde ich persönlich ein wenig unbefriedigend. Sie bieten aber besonders hier einen recht schnellen Erfolg. Eigentlich müsste der driver für die @in*-Typen neu geschrieben werden (das heißt, kopiert und etwas angepasst werden), das werden dann aber schnell zweihundert Zeilen Code für eine effektive Änderung von +/- 10 Zeilen.

Antworten