Hrsg. in Klammern, @incollection Feldreihenfolge

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


eve
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 16. Jul 2017, 17:55

Hrsg. in Klammern, @incollection Feldreihenfolge

Beitrag von eve »

Hallo :)

seit einer Woche bastel ich daran, die Bibliographievorlage meiner Uni in BibLatex umzusetzen, und dank der vielen schon beantworteten Fragen hier habe ich auch schon fast alles geschafft. Also erstmal vielen Dank dafür :) . Aber zwei Sachen muss ich noch ändern. So sieht es jetzt aus:

Brodocz, André (2001): "Kapitel XV. Die politische Theorie autopoietischer Systeme: Niklas Luhmann\. In: Brodocz, André/Schaal, Gary S. Hrsg.: Politische Theorien der Gegenwart II. Eine Einführung. Wiesbaden: VS. 465-495.

Jetzt muss nur noch "Hrsg." in Klammern gesetzt werden. Ich vermute, dass man das in den BibliographyDriver einfügen kann (den brauche ich, damit Autor und Titel des Sammelbandes bei @incollection vertauscht sind). Auf jeden Fall überschreibt der den DefineBibliographyString-Befehl. Ich kann anscheinend nur eines von beidem haben...

Außerdem hätte meine Dozentin gerne, dass ich hinter jeden Eintrag den Dokumententyp in Klammern setze. Kann man vielleicht den Dokumententyp als eine andere Kategorie im bibfile erfassen (Untertitel brauche ich zum Beispiel nicht), und dann hinter das jeweils letzte Feld hängen? So soll es dann aussehen:

Brodocz, André (2001): "Kapitel XV. Die politische Theorie autopoietischer Systeme: Niklas Luhmann\. In: Brodocz, André/Schaal, Gary S. Hrsg.: Politische Theorien der Gegenwart II. Eine Einführung. Wiesbaden: VS. 465-495. (Sammelband)

Schonmal vielen Dank für eure Mühe, hier mein Versuch eines Minimalbeispiels:
\documentclass[11pt]{scrreprt}

\usepackage[
style=authoryear, 
citestyle=authoryear,    
isbn=false,
doi=false,                
pagetracker=true,        
maxbibnames=3,            
maxcitenames=3,           
autocite=inline,          
block=space,              
backref=false,            
backrefstyle=three+,       
date=short,
backend=bibtex, 
mergedate=minimum              
]{biblatex}


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

\newbibmacro*{in:editor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}}
 
\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{in:editor+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \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
  \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}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}
  
\begin{filecontents}
  @incollection{Brodocz.2001,
 author = {Brodocz, André},
 title = {Kapitel XV. Die politische Theorie autopoietischer Systeme: Niklas Luhmann},
 pages = {465--495},
 publisher = {VS},
editor = {Brodocz, André and Schaal, Gary S.},
 booktitle = {Politische Theorien der Gegenwart II. Eine Einführung},
 year = {2001},
 address = {Wiesbaden}
}
\end{filecontents} 

\bibliography{literature}


\begin{document}
\cite{Brodocz.2001}
\printbibliography
\end{document}


Liebe Grüße,
Eva

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Dein Beispiel ist unvollständig.

Die filecontents-Umgebung erwartet ein Argument. In Deinem Fall wäre das
\begin{filecontents}{literature.bib}
Für die runden Klammern um den Hrsg. könnte
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
hilfreich sein.

Du behauptest, in Deinem Literatureintrag werden die Namen der Herausgeber durch Schrägstriche getrennt. Dein Beispiel zeigt aber etwas anderes.

Gast

Beitrag von Gast »

Ist das der Code von Reihenfolge bei Beiträgen aus Sammelbändn?

Deine Redefinition von hat aus verschiedenen Gründen keine Wirkung. Zunächst ist Dein Beispiel auf englisch, aber Du änderst nur den deutschen String, das reicht nicht. Außerdem ist byeditor nicht der richtige String.

Ich würde vorschlagen, der Methode aus http://golatex.de/viewtopic,p,91385.html zu folgen und
\makeatletter
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}

\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{\printdelim{nameyeardelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extrayear}}
\makeatother
zu verwenden. Das sieht zwar erstmal lang aus. Und eigentlich ist nur das \DeclareFieldFormat{editortype}{\mkbibparens{#1}} wichtig, der Rest kann ab der kommenden Version von biblatex kürzer gefasst werden.

Die Dokumentenart auszugeben halte ich zwar für Quatsch, aber das geht im Grunde automatisch.
\NewBibliographyString{typearticle}
\NewBibliographyString{typebook}
\NewBibliographyString{typeinbook}
\NewBibliographyString{typecollection}
\NewBibliographyString{typeincollection}
\NewBibliographyString{typeonline}
\DefineBibliographyStrings{german}{%
  typearticle      = {Artikel},
  typebook         = {Buch},
  typeinbook       = {Buchkapitel},
  typecollection   = {Sammelband},
  typeincollection = {Artikel in Sammelband},
  typeonline       = {Webseite},
}

\DeclareFieldFormat{entrytype}{%
  \mkbibparens{%
    \ifbibstring{type#1}
      {\bibstring{type#1}}
      {#1}}}

\renewbibmacro*{finentry}{%
  \newunit\newblock
  \printfield{entrytype}%
  \finentry}
Die Ausgabe wird automatisch vom Typ der Quelle ausgewählt. Du kannst das ganze auf andere Typen erweitern.

Im Ganzen
\documentclass[ngerman]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
  style=authoryear,
  isbn=false,
  doi=false,                
  pagetracker=true,        
  maxnames=3,            
  autocite=inline,          
  block=space,              
  backref=false,            
  backrefstyle=three+,      
  date=short,
  backend=bibtex,
  mergedate=minimum              
]{biblatex}



\NewBibliographyString{typearticle}
\NewBibliographyString{typebook}
\NewBibliographyString{typeinbook}
\NewBibliographyString{typecollection}
\NewBibliographyString{typeincollection}
\NewBibliographyString{typeonline}
\DefineBibliographyStrings{german}{%
  typearticle      = {Artikel},
  typebook         = {Buch},
  typeinbook       = {Buchkapitel},
  typecollection   = {Sammelband},
  typeincollection = {Artikel in Sammelband},
  typeonline       = {Webseite},
}

\DeclareFieldFormat{entrytype}{%
  \mkbibparens{%
    \ifbibstring{type#1}
      {\bibstring{type#1}}
      {#1}}}

\renewbibmacro*{finentry}{%
  \newunit\newblock
  \printfield{entrytype}%
  \finentry}

\renewcommand*{\labelnamepunct}{\addcolon\addspace} 

\makeatletter
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}

\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{\printdelim{nameyeardelim}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extrayear}}
\makeatother


\newbibmacro*{in:editor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}}
 
\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{in:editor+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \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
  \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}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}
 
\begin{filecontents}{\jobname.bib}
  @incollection{Brodocz.2001,
 author = {Brodocz, André},
 title = {Kapitel XV. Die politische Theorie autopoietischer Systeme: Niklas Luhmann},
 pages = {465--495},
 publisher = {VS},
editor = {Brodocz, André and Schaal, Gary S.},
 booktitle = {Politische Theorien der Gegenwart II. Eine Einführung},
 year = {2001},
 address = {Wiesbaden}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\cite{Brodocz.2001}
\printbibliography
\end{document}
 

eve
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 16. Jul 2017, 17:55

Beitrag von eve »

Vielen, vielen Dank. Jetzt ist alles so, wie meine Uni es haben will. Und ja, den Dokumententyp in Klammern anzugeben ist Blödsinn. Aber als Erstsemester sollen wir zeigen, dass wir die Kategorien unterscheiden können :roll:

Antworten