Reihenfolge bei Beiträgen aus Sammelbändn

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


chkmac
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Sa 4. Mär 2017, 20:43

Reihenfolge bei Beiträgen aus Sammelbändn

Beitrag von chkmac »

Tachchen

Folgendes Problem:

Aktuell:
Name, V. (2000): Beitragstitel. In: Titel. Hrsg. von Name, V. Ort, S. 1-2

Ziel:
Name, V. (2000): Beitragstitel. In: Name, V. (Hrsg.): Titel. Ort, S. 1-2

Wie krieg ichs hin?

Grüße

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

Beitrag von Bartman »

Dein Kontext fehlt.

chkmac
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Sa 4. Mär 2017, 20:43

Beitrag von chkmac »

Ajo oki

Der Sammelband:
@incollection{Name.2014,
 author = {Name, Vorname},
 title = {Der Beitrag aus dem Sammelband},
 pages = {179--198},
 volume = {4},
 isbn = {978-3-9503401-6-7},
 editor = {Herausgebername},
 booktitle = {Titel des Sammelbands},
 year = {2014},
 address = {Ort}
}


Das Latex-Dokument
\documentclass[11pt, a4paper, halfparskip]{scrartcl}

\usepackage[utf8]{inputenc}	
\usepackage[T1]{fontenc}	
\usepackage{lmodern}		
\usepackage[ngerman]{babel}		
\usepackage[babel,german=quotes]{csquotes} 


%%##########LITERATURVERZEICHNIS#####################
\usepackage[backend=biber,
 style=authoryear,
 citestyle=authoryear,
 isbn=false,
 firstinits=true]{biblatex}

\renewcommand*{\labelnamepunct}{\addcolon\addspace}%Macht statt Punkt Doppelpunkt nach Autor
\DeclareFieldFormat[incollection]{title}{{#1}}%Damit keine Anführungsstriche bei incollection 	

%%%%%Klammern um jahreszahl beim Zitat%%%%
\renewbibmacro*{cite:labelyear+extrayear}{%
	\iffieldundef{labelyear}
	{}
	{\printtext[bibhyperref]{%
			\printtext[parens]{% <- space
				\printfield{labelyear}%
				\printfield{extrayear}}}}}

\AtEveryBibitem{\clearlist{publisher}} % clears language

\addbibresource{test.bib}	

\begin{document}
	Zitat.\footcite{Name.2014}
	\printbibliography[heading=bibintoc, title=Literatur]
\end{document}
:arrow: :arrow:

Gast

Beitrag von Gast »

Hier
\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}  
\usepackage[T1]{fontenc}  
\usepackage{lmodern}      
\usepackage[ngerman]{babel}      
\usepackage[babel,german=quotes]{csquotes}

\usepackage[backend=biber,
 style=authoryear,
 isbn=false,
 giveninits=true,
 uniquename=init,]{biblatex}

\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}

\renewbibmacro*{cite:labelyear+extrayear}{%
   \iffieldundef{labelyear}
   {}
   {\printtext[bibhyperref]{%
         \printtext[parens]{% <- space
            \printfield{labelyear}%
            \printfield{extrayear}}}}}

\AtEveryBibitem{\clearlist{publisher}}

\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{Name.2014,
 author = {Name, Vorname},
 title = {Der Beitrag aus dem Sammelband},
 pages = {179--198},
 volume = {4},
 isbn = {978-3-9503401-6-7},
 editor = {Edward D. Itor},
 booktitle = {Titel des Sammelbands},
 year = {2014},
 address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}  

\begin{document}
   Zitat.\footcite{Name.2014}
   \printbibliography[heading=bibintoc, title=Literatur]
\end{document}
Der relevante Teil ist \newbibmacro*{in:editor+others} und \DeclareBibliographyDriver{incollection}. Das \renewbibmacro*{bbx:editor} davor ist für die Konsistenz.

Leider muss man für diese Änderung den Driver ändern, man hätte das auch mit xpatch machen können.
\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}  
\usepackage[T1]{fontenc}  
\usepackage{lmodern}      
\usepackage[ngerman]{babel}      
\usepackage[babel,german=quotes]{csquotes}

\usepackage[backend=biber,
 style=authoryear,
 isbn=false,
 giveninits=true,
 uniquename=init,]{biblatex}

\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}

\renewbibmacro*{cite:labelyear+extrayear}{%
   \iffieldundef{labelyear}
   {}
   {\printtext[bibhyperref]{%
         \printtext[parens]{% <- space
            \printfield{labelyear}%
            \printfield{extrayear}}}}}

\AtEveryBibitem{\clearlist{publisher}}

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

\usepackage{xpatch}
\xpatchbibmacro{bbx:editor}
  {\setunit{\addcomma\space}}
  {\setunit{\addspace}}
  {}{\typeout{failed to patch bbx:editor}}

\newbibmacro*{in:editor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}}

\xpatchbibdriver{incollection}
  {\usebibmacro{in:}}
  {\usebibmacro{in:}%
   \usebibmacro{in:editor+others}%
   \setunit{\printdelim{nametitledelim}}\newblock}
  {}{\typeout{failed to patch driver @incollection}}

\begin{filecontents}{\jobname.bib}
@incollection{Name.2014,
 author = {Name, Vorname},
 title = {Der Beitrag aus dem Sammelband},
 pages = {179--198},
 volume = {4},
 isbn = {978-3-9503401-6-7},
 editor = {Edward D. Itor},
 booktitle = {Titel des Sammelbands},
 year = {2014},
 address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}  

\begin{document}
   Zitat.\footcite{Name.2014}
   \printbibliography[heading=bibintoc, title=Literatur]
\end{document}

chkmac
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Sa 4. Mär 2017, 20:43

Beitrag von chkmac »

super :D :D :D
vielen lieben dank

hab mich für die xpatch-methode entschieden

Antworten