PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Biblatex: Jahrgang vs. Volume Unterscheidung möglich



josephine
09-10-2013, 09:04
Hallo zusammen,

ist es möglich beim LVZ von Biblatex automatisch englischen Quellen den Zusatz Vol. statt Jg. und No. statt Nr. zuzuweisen? Die bibtex-datei enthält eine unit language, was eine Unterscheidung von englischen und deutschen Quellen möglich macht. Ich suche also eine Art wenn-dann-Beziehung. D.h., wenn language=Englisch dann Jg.=Vol. und Nr.=No sonst Jg.=Jg. und Nr.=Nr.

Hier das Minimalbeispiel:


\documentclass[bibtotoc,tablecaptionabove]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[style=authoryear,maxcitenames=3,maxbibnames=99,max items=3]{biblatex}
\usepackage[babel,german=quotes]{csquotes}

\bibliography{littest}

\DeclareFieldFormat[article]{volume}{#1.\addspace Jg.} %Formatierung des Jahrgangs einer Zeitschrift
\DeclareFieldFormat[article]{issue}{Nr.\addspace#1} %Formatierung der Heftnummer

\begin{document}
Enlgisches Journal: \textcite{Mulleru.a.(2009)b}.
Deutsche Zeitschrift: \textcite{Mulleru.a.(2009)}.

\backmatter
\printbibliography
\end{document}



Und hier die bibtex Einträge:


@article{Mulleru.a.(2009),
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitel},
pages = {23--56},
pagination = {page},
volume = {23},
journaltitle = {Testzeitschrift},
subtitle = {Testuntertitel},
titleaddon = {Testtitelzusatz},
language = {Deutsch},
issue = {2}
}


@article{Mulleru.a.(2009)b,
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitle},
pages = {12--16},
pagination = {page},
volume = {23},
journaltitle = {Testjournal},
subtitle = {Testsubtitle},
titleaddon = {Testtitleaddon},
language = {Englisch},
issue = {6}
}

Vielen Dank für die Hilfe

bobmalaria
10-10-2013, 18:59
hi,

geht das nicht wenn du babel mit den optionen \usepackage[ngerman,engish]{babel} lädst und dann noch \usepackage[babel=other]{biblatex}.

abschnitt 3.1.2.1 in der biblatex anleitung

josephine
10-10-2013, 21:12
Hi,

danke für die Antwort. Es geht auf jeden Fall in die richtige Richtung. Hier das entsprechend modifizierte MB (Änderungen in rot).


\documentclass[bibtotoc,tablecaptionabove]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman,english,german]{babel}
\usepackage[babel=other,style=authoryear,maxcitenames=3,maxbib names=99,maxitems=3]{biblatex}
\usepackage[babel,german=quotes]{csquotes}

\bibliography{littest}

\DeclareFieldFormat[article]{volume}{#1.\addspace Jg.} %Formatierung des Jahrgangs einer Zeitschrift
\DeclareFieldFormat[article]{issue}{Nr.\addspace#1} %Formatierung der Heftnummer


\begin{document}
Enlgisches Journal: \textcite{Mulleru.a.(2009)b}.
Deutsche Zeitschrift: \textcite{Mulleru.a.(2009)}.

\backmatter
\printbibliography
\end{document}

Und die modifizierten Bibtex Einträge:


@article{Mulleru.a.(2009),
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitel},
pages = {23--56},
pagination = {page},
volume = {23},
journaltitle = {Testzeitschrift},
subtitle = {Testuntertitel},
titleaddon = {Testtitelzusatz},
hyphenation = {german},
issue = {2}
}


@article{Mulleru.a.(2009)b,
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitle},
pages = {12--16},
pagination = {page},
volume = {23},
journaltitle = {Testjournal},
subtitle = {Testsubtitle},
titleaddon = {Testtitleaddon},
hyphenation = {english},
issue = {6}
}

Dass es funktioniert, erkennt man im LVZ daran, dass die Seitenangabe für die deutsche Quelle mit "S." gemacht wird und für die englische Quelle mit "pp." Da ich jedoch die "Nr." und den "Jg." manuell eintrage (grün markiert), ändert sich an deren Darstellung natürlich nichts. Wie also könnte man für deutsche Texte "Jg." und "Nr." sowie für englische Texte "Vol." und "No." verwenden? Danke schon mal.

bobmalaria
11-10-2013, 14:06
hi,

das geht mit dem befehl definebibliographyextras. siehe auch anleitung 3.8

ich hab auch mal ein komplettes beispiel draus gemacht das die bib-datei aus dem dokument heraus generiert.

als backend habe ich bei biblatex biber eingestellt weil ich es verwende. würde dir das auch empfehlen dann kannst du direkt äöüß usw im dokument schreiben ohne konstrukte wie {\"o} schreiben zu müssen.

bei mir gab es noch eine fehlermeldung wenn die keys in dee bib datei ( ) enthalten haben. hab ich also gelöscht.

ausserdem habe ich nur die option ngerman geladen, also neue rechtschreibung. entsprechend steht dann auch in der bib datei ngerman drin

gruss




\begin{filecontents}{littest.bib}
@article{Mulleru.a.2009,
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitel},
pages = {23--56},
pagination = {page},
volume = {23},
journaltitle = {Testzeitschrift},
subtitle = {Testuntertitel},
titleaddon = {Testtitelzusatz},
hyphenation = {ngerman},
issue = {2}
}


@article{Mulleru.a.2009b,
author = {M{\"u}ller, Peter and M{\"o}ller, Andi and M{\"a}ller, Wolfgang and Stra{\ss}, R{\'e}n{\'e}},
year = {2009},
title = {Testtitle},
pages = {12--16},
pagination = {page},
volume = {23},
journaltitle = {Testjournal},
subtitle = {Testsubtitle},
titleaddon = {Testtitleaddon},
hyphenation = {english},
issue = {6}
}
\end{filecontents}

\documentclass[bibtotoc,tablecaptionabove]{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman,english]{babel}
\usepackage[babel=other,style=authoryear,maxcitenames=3,maxbib names=99,maxitems=3,backend=biber]{biblatex}
\usepackage[babel,german=quotes]{csquotes}

\bibliography{littest}

\DefineBibliographyExtras{ngerman}{
\DeclareFieldFormat[article]{volume}{#1.\addspace Jg.} %Formatierung des Jahrgangs einer Zeitschrift
\DeclareFieldFormat[article]{issue}{Nr.\addspace#1} %Formatierung der Heftnummer
}
\DefineBibliographyExtras{english}{
\DeclareFieldFormat[article]{volume}{#1.\addspace Vol.} %Formatierung des Jahrgangs einer Zeitschrift
\DeclareFieldFormat[article]{issue}{No.\addspace#1} %Formatierung der Heftnummer
}

\begin{document}



Enlgisches Journal: \textcite{Mulleru.a.2009b}.
Deutsche Zeitschrift: \textcite{Mulleru.a.2009}.

\printbibliography
\end{document}

josephine
21-10-2013, 11:54
Hi Bobmalaria,

danke für deine Antwort. Die Option german hatte ich noch drin, da einige der bibtex Einträge noch german als Sprache enthielten. Die habe ich aber mittlerweile alle zu ngerman verändert.

Die option über das backend mit biber löst bei mir noch Fehlermeldungen aus. Ich werde versuchen, das erst mal selber zu testen und wenn's dann nicht klappt, dann meld ich mich.

Danke noch mal für die Hilfe.