von Eglatholion » Sa 27. Aug 2011, 02:35
Hallo zusammen!
Ich habe den Code und das Minimalbeispiel jetzt noch einmal wesentlich erweitert.
Es fehlen eigentlich nur noch 2 Sachen, die ich nicht hinbekomme.
1. weiterhin byeditor (siehe oben). Dies muss in Klammern dahinter stehen, sodass es ab "In" so aussieht:
In
maintitle, Hg-vorname Hg-Nachname (Hg.), Seite. Ort: Verlag.
Wenn es mehrere Editors gibt, müsste ein (Hgg.) daraus werden. Für Editor klappt das, wie man sieht, für byeditor gibt es das in authoryear anscheinend standardmäßig nicht.
2. Das Komma zwischen Editor und (Hgg.) muss weg. (Siehe 2. Eintrag im Literaturverzeichnis.)
Anmerkung: Da Series+Number bei mir in Klammern sollte, habe ich dies ganz unten mit \renewbibmacro*{series+number} neu definiert. Danach entstanden überall zunächst einmal leere Klammern, wenn der Bib-Eintrag keinen Series-Eintrag hat. Ich habe daher dann in den entsprechenden DeclareBibliographyDriver jeweils eine if-Abfrage eingebaut.
Meine Frage ist, ob das geschickt so war.
Des Weiteren würde ich mich sehr freuen, wenn ich andere handwerkliche Hinweise zum Code bekommen könnte.
Hier das Minimalbeispiel.
\begin{filecontents*}{MeineBib.bib}
@InCollection{house,
author = {David House},
year = {2004},
title = {Small words in meaningless sentences},
editor = {Philip Swallow and Morris Zapp},
booktitle = {Tense, Mood and Aspect},
booksubtitle = {Selected Papers from the 24th University Teachers of English
Conference},
location = {Euphoria},
publisher = {The TMA Press},
pages = {324-367},
}
@InCollection{wort,
author = {Richard Wort and Karla Schatz},
year = {1994},
title = {Die Welt der Wörter},
editor = {Anna Vohr and Ann Pees},
booktitle = {Wörter und Sachen},
location = {Tübingen},
publisher = {Knarr},
pages = {204-222},
}
@Collection{vohr,
year = {1994},
editor = {Anna Vohr and Ann Pees},
title = {Wörter und Sachen},
location = {Tübingen},
publisher = {Knarr},
}
\end{filecontents*}
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt,notitlepage,parskip]{scrartcl}
\usepackage{xltxtra}
\usepackage{fontspec}
\usepackage{xunicode}
\setmainfont{Linux Libertine}
\usepackage{polyglossia}
\setmainlanguage[spelling=new, latesthyphen=true]{german}
\setotherlanguage[variant=ancient]{greek}
\usepackage{babel}
\usepackage[babel]{csquotes}
\usepackage[
style=authoryear,
bibwarn=false,
]{biblatex}
\bibliography{MeineBib}
\usepackage[onehalfspacing]{setspace}
\usepackage[a4paper,left=2.0cm,bottom=2.0cm,right=2.0cm,top=2.0cm]{geometry}
%% colon after year
\renewcommand{\postnotedelim}{\addcolon\addspace}
%% no p. before page number
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{pages}{#1}
%% set delimiter between names
\renewcommand*{\multinamedelim}{\addspace\&\space}
\renewcommand*{\finalnamedelim}{\addspace\&\space}
%% vertical spacing between entrys
\setlength{\bibitemsep}{0.8\baselineskip}
%% change of abbreviations
\DefineBibliographyStrings{german}{%
and={\&},
editor={\unspace\mkbibparens {Hg\adddot}},
editors={\unspace\mkbibparens {Hgg\adddot}},
byeditor={Hg\addcolon\thinspace},
% byeditor={\unspace\mkbibparens {Hg\adddot}},
thiscite={hier\addcolon\thinspace},
number={H\adddot},
}
%% no quotation marks for article, inbook, ...
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
%% no colon after the word "in"
\renewbibmacro*{in:}{%
\printtext{%
\bibstring{in}\nopunct\space}}
%% book
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% inbook
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% Collection
\DeclareBibliographyDriver{collection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{editor+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% InCollection
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}
\usebibmacro{byeditor+others}
\newunit\newblock
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% article
\DeclareBibliographyDriver{article}{%
\usebibmacro{author/editor}%
\newunit
\usebibmacro{title}%
\newunit
\usebibmacro{journal}%
\setunit*{\addspace}%
\printtext{\printfield{volume}}%
\iffieldundef{number}{}{\printtext[parens]{\printfield{number}}}%
\setunit*{\addcolon\addspace}%
\printfield{pages}%
\usebibmacro{finentry}}
\renewbibmacro*{series+number}{%
\printtext[parens]{\printfield{series}%
\setunit*{\addcomma\addspace}%
\printfield{number}\adddot%
}\setunit*{\addspace}\nopunct}
%% kein Leerzeichen vor f.
\renewcommand*{\sqspace}{}
\begin{document}
Auch \textcite[23-53]{house} schreibt a, aber
\textcite[11-22]{wort} schreiben b.\\ Allerdings geht es auch anders: c
\parencite[22]{house} oder d \parencite[55]{wort}.
Für einen Überblick siehe e. \parencite{vohr}
\printbibliography
\end{document}
Vielen Dank und liebe Grüße.
Hallo zusammen!
Ich habe den Code und das Minimalbeispiel jetzt noch einmal wesentlich erweitert.
Es fehlen eigentlich nur noch 2 Sachen, die ich nicht hinbekomme.
1. weiterhin byeditor (siehe oben). Dies muss in Klammern dahinter stehen, sodass es ab "In" so aussieht:
In [i]maintitle[/i], Hg-vorname Hg-Nachname (Hg.), Seite. Ort: Verlag.
Wenn es mehrere Editors gibt, müsste ein (Hgg.) daraus werden. Für Editor klappt das, wie man sieht, für byeditor gibt es das in authoryear anscheinend standardmäßig nicht.
2. Das Komma zwischen Editor und (Hgg.) muss weg. (Siehe 2. Eintrag im Literaturverzeichnis.)
Anmerkung: Da Series+Number bei mir in Klammern sollte, habe ich dies ganz unten mit \renewbibmacro*{series+number} neu definiert. Danach entstanden überall zunächst einmal leere Klammern, wenn der Bib-Eintrag keinen Series-Eintrag hat. Ich habe daher dann in den entsprechenden DeclareBibliographyDriver jeweils eine if-Abfrage eingebaut.
Meine Frage ist, ob das geschickt so war.
Des Weiteren würde ich mich sehr freuen, wenn ich andere handwerkliche Hinweise zum Code bekommen könnte.
Hier das Minimalbeispiel.
[code]
\begin{filecontents*}{MeineBib.bib}
@InCollection{house,
author = {David House},
year = {2004},
title = {Small words in meaningless sentences},
editor = {Philip Swallow and Morris Zapp},
booktitle = {Tense, Mood and Aspect},
booksubtitle = {Selected Papers from the 24th University Teachers of English
Conference},
location = {Euphoria},
publisher = {The TMA Press},
pages = {324-367},
}
@InCollection{wort,
author = {Richard Wort and Karla Schatz},
year = {1994},
title = {Die Welt der Wörter},
editor = {Anna Vohr and Ann Pees},
booktitle = {Wörter und Sachen},
location = {Tübingen},
publisher = {Knarr},
pages = {204-222},
}
@Collection{vohr,
year = {1994},
editor = {Anna Vohr and Ann Pees},
title = {Wörter und Sachen},
location = {Tübingen},
publisher = {Knarr},
}
\end{filecontents*}
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[12pt,notitlepage,parskip]{scrartcl}
\usepackage{xltxtra}
\usepackage{fontspec}
\usepackage{xunicode}
\setmainfont{Linux Libertine}
\usepackage{polyglossia}
\setmainlanguage[spelling=new, latesthyphen=true]{german}
\setotherlanguage[variant=ancient]{greek}
\usepackage{babel}
\usepackage[babel]{csquotes}
\usepackage[
style=authoryear,
bibwarn=false,
]{biblatex}
\bibliography{MeineBib}
\usepackage[onehalfspacing]{setspace}
\usepackage[a4paper,left=2.0cm,bottom=2.0cm,right=2.0cm,top=2.0cm]{geometry}
%% colon after year
\renewcommand{\postnotedelim}{\addcolon\addspace}
%% no p. before page number
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{pages}{#1}
%% set delimiter between names
\renewcommand*{\multinamedelim}{\addspace\&\space}
\renewcommand*{\finalnamedelim}{\addspace\&\space}
%% vertical spacing between entrys
\setlength{\bibitemsep}{0.8\baselineskip}
%% change of abbreviations
\DefineBibliographyStrings{german}{%
and={\&},
editor={\unspace\mkbibparens {Hg\adddot}},
editors={\unspace\mkbibparens {Hgg\adddot}},
byeditor={Hg\addcolon\thinspace},
% byeditor={\unspace\mkbibparens {Hg\adddot}},
thiscite={hier\addcolon\thinspace},
number={H\adddot},
}
%% no quotation marks for article, inbook, ...
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
%% no colon after the word "in"
\renewbibmacro*{in:}{%
\printtext{%
\bibstring{in}\nopunct\space}}
%% book
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% inbook
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% Collection
\DeclareBibliographyDriver{collection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{editor+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% InCollection
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit\newblock
\iffieldundef{series}
{}%
{\usebibmacro{series+number}}
\usebibmacro{byeditor+others}
\newunit\newblock
\printfield{edition}%
\newunit
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%% article
\DeclareBibliographyDriver{article}{%
\usebibmacro{author/editor}%
\newunit
\usebibmacro{title}%
\newunit
\usebibmacro{journal}%
\setunit*{\addspace}%
\printtext{\printfield{volume}}%
\iffieldundef{number}{}{\printtext[parens]{\printfield{number}}}%
\setunit*{\addcolon\addspace}%
\printfield{pages}%
\usebibmacro{finentry}}
\renewbibmacro*{series+number}{%
\printtext[parens]{\printfield{series}%
\setunit*{\addcomma\addspace}%
\printfield{number}\adddot%
}\setunit*{\addspace}\nopunct}
%% kein Leerzeichen vor f.
\renewcommand*{\sqspace}{}
\begin{document}
Auch \textcite[23-53]{house} schreibt a, aber
\textcite[11-22]{wort} schreiben b.\\ Allerdings geht es auch anders: c
\parencite[22]{house} oder d \parencite[55]{wort}.
Für einen Überblick siehe e. \parencite{vohr}
\printbibliography
\end{document}
[/code]
Vielen Dank und liebe Grüße.