Hallo zusammen! Ich habe mehrere Artikel aus einem Sammelband (@collection), die jeweils als @incollection mit crossref in der .bib-Datei stehen. Im Literaturverzeichnis soll bei der Ausgabe der @incollection-Einträge jeweils nur ein Kurzverweis auf die @collection erscheinen, z.B.

Müller, Peter (2014): Titel. In: Meyer/Schröder 2014, S. 123–456.

Das kriege ich allerdings leider nicht hin. Ich bin schon so weit, dass ich in meiner .bbx-Datei eine Abfrage eingebaut habe, die prüft, ob das crossref-Feld vorhanden ist, leider weiß ich nicht, was ich als Ausgabe da reinschreiben muss, damit von den Herausgebern nur die Nachnamen und zusätzlich das Jahr ausgageben werden.

Hoffentlich funktioniert dieses Minimalbeispiel:

Open in writeLaTeX
\documentclass[%
11pt,
a4paper,
parskip,
onepage,
BCOR5mm,
bibliography=totoc,
footsepline,
bookmarksopen=true,
pdfusetitle]{scrreprt}
\usepackage[a4paper]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel} % globale Verwendung im Dokument
\usepackage[babel,german=guillemets,maxlevel=3]{csquotes} % Anführungszeichen nach Sprache wählen

%%%%%BIBER
\usepackage[%
backend=biber,
maxbibnames=4,
maxcitenames=2,
% Pfad: /usr/share/texmf/tex/latex/biblatex/bbx/
style=steflo, %uni-wtal-lin // authoryear-icomp
babel=other,
hyperref=true,
sortcites=true, % Sortierung von Präfix-Namen
citestyle=authoryear-ibid,
%bibstyle=authoryear,
url=false,
isbn=false,
idemtracker=context,
ibidpage,
mincrossrefs=2
]{biblatex}

\renewcommand{\postnotedelim}{\addcolon\addabbrvspace} % Doppelpunkt zwischen Jahr und Seite: (Meier 1999:~S. 23)
\DeclareFieldFormat{postnote}{#1} %einleitendes S. weg
\renewcommand{\labelnamepunct}{\addcolon\addabbrvspace} %doppelpunkt statt punkt in literaturliste
\renewcommand*{\multicitedelim}{\addsemicolon\addabbrvspace} %Semikolon bei mehreren Zitatverweisen (Müller 1994:~45; Meyer 1994: 34)

\DefineBibliographyStrings{ngerman}{
andothers = {{et\addabbrvspace al\adddot}},
andmore = {{et\addabbrvspace al\adddot}}, %et. al auch bei Orten
urlseen = {},
%urlseen = {letzter Zugriff am}
}

% für Präfix-Sortierung (Zitate im Text: with prefix, in der Bibliografie: noprefix)
\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\AtBeginBibliography{\togglefalse{blx@useprefix}}
\makeatother

% prints author names as small caps
\renewcommand{\mkbibnamefirst}[1]{\textsc{#1}}
\renewcommand{\mkbibnamelast}[1]{\textsc{#1}}
\renewcommand{\mkbibnameprefix}[1]{\textsc{#1}}
\renewcommand{\mkbibnameaffix}[1]{\textsc{#1}}
\addbibresource{kwekuBiblatexIncollection.bib} %biber-durchläufe nicht vergessen!
\begin{document}
\autocite[12]{Peter2014}
\autocite[12]{Meyer2014}
\autocite[12]{Muller2014}
\autocite[12]{Werner2014}
\printbibliography[title=Literaturverzeichnis]
\end{document}

kwekuBiblatexIncollection.bib:

Open in writeLaTeX
@INCOLLECTION{Peter2014,
  author = {Hans Peter},
  title = {Irgendein Titel},
  pages = {123–456},
  crossref = {Sammelband2014}
}

@INCOLLECTION{Meyer2014,
  author = {Klaus Meyer},
  title = {Irgendein Titel},
  pages = {12–45},
  crossref = {Sammelband2014}
}

@INCOLLECTION{Muller2014,
  author = {Sebastian Müller},
  title = {Irgendein Titel},
  pages = {1–5},
  crossref = {Sammelband2014}
}

@INCOLLECTION{Werner2014,
  author = {Sarah Werner},
  title = {Irgendein Titel},
  pages = {121–455},
  crossref = {Sammelband2014}
}

@COLLECTION{Sammelband2014,
  editor = {Peter Schröder and Peter Pan},
  title = {Dieser Titel soll nur einmal erscheinen.},
  publisher = {Verlag},
  address = {Ort},
  date = {2014}
}

steflo.bbx (sicher an einigen Stellen Kraut und Rüben, ich verstehe die Syntax fast null und habe nur rumprobiert, bis es aussah, wie ich es wollte):

Open in writeLaTeX
% uni-wtal-lin.bbx, v 0.2 2013-08-09, Carsten A. Dahlmann (Ace@Dahlmann.net)
% based on authoryear

%% requires authoryear
\RequireBibliographyStyle{authoryear-icomp}

%% 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
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \iffieldundef{series} %falls es eine Serie gibt …
  {}% 
  {\nopunct} % … keinen Punkt nach dem Verlag, also vor die Klammer setzen
  \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}%
  \newblock
  \newunit\newblock
  \iffieldundef{series}
  {}%
  {\usebibmacro{series+number}}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \setunit{\bibpagespunct}
  \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}%
  \setunit{\titleaddonpunct}\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
    \iffieldundef{series} %falls es eine Serie gibt …
  {}% 
  {\nopunct} % … keinen Punkt nach dem Verlag, also vor die Klammer setzen
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \newunit\newblock
  \iffieldundef{series}
  {}%
  {\usebibmacro{series+number}}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \setunit{\bibpagespunct}
  \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
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \iffieldundef{series} %falls es eine Serie gibt …
  {}% 
  {\nopunct} % … keinen Punkt nach dem Verlag, also vor die Klammer setzen
  \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}%
  \newblock
  \newunit\newblock
  \iffieldundef{series}
  {}%
  {\usebibmacro{series+number}}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \setunit{\bibpagespunct}%
  \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:}%
\iffieldundef{crossref}{
  \usebibmacro{byeditor+others} 
  \setunit{\titleaddonpunct}\newblock
  \usebibmacro{maintitle+booktitle}% 
  \newunit 
  \iffieldundef{maintitle} 
    {\printfield{volume}% 
     \printfield{part}} 
    {}% 
  \newunit\newblock
    \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \iffieldundef{series} %falls es eine Serie gibt …
  {}% 
  {\nopunct} % … keinen Punkt nach dem Verlag, also vor die Klammer setzen
  \newunit\newblock 
  \usebibmacro{doi+eprint+url}% 
  \newunit\newblock
  \iffieldundef{series}
  {}%
  {\usebibmacro{series+number}}
  \newunit\newblock 
  \usebibmacro{addendum+pubstate}%
  }
  {\usebibmacro{byeditor+others} % KNACKPUNKT!! Wie nur Nachnamen von Herausgebern? Meyer/Peters (2013)
  \newunit\newblock
   \usebibmacro{citeyear}
  }
  \newblock
  \usebibmacro{chapter+pages}% 
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}% 
  \setunit{\bibpagespunct}%
  \usebibmacro{finentry}}

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

%% Unpublished
\DeclareBibliographyDriver{unpublished}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \printfield{howpublished}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \iftoggle{bbx:url}
    {\usebibmacro{url+urldate}}
    {}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagespunct}%
  \usebibmacro{location+date}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \usebibmacro{finentry}}

%% use option edsuper for turning superscripted edition on/off

\newbool{bbx:editionstring}
\newbool{bbx:edsuper}

\DeclareBibliographyOption{editionstring}[true]{%
  \csuse{bool#1}{bbx:editionstring}}
\DeclareBibliographyOption{edsuper}[true]{%
  \csuse{bool#1}{bbx:edsuper}}

%% DeclareFieldFormat edition
\DeclareFieldFormat{edition}{%
  \ifinteger{#1}
    {\mkbibordedition{#1}~\bibstring{edition}}
    {\ifbool{bbx:editionstring}
      {#1\addspace\bibstring{edition}\isdot}
      {#1\isdot}}}

%% DeclareFieldFormat edition:super
\DeclareFieldFormat{edition:super}{%
  \ifinteger{#1}
    {\mkbibsuperscript{#1}}
    {\blxdw@warning@noline{%
      The 'edition' field of entry\MessageBreak
      '\abx@field@entrykey' is not an integer.\MessageBreak
      The edition will not be printed as\MessageBreak
      superscript. Instead, the 'edition'\MessageBreak
      field is printed completely}}}

%% Test, if field is integer
\newcommand{\bbx@iffieldinteger}[1]{%
  \iffieldundef{#1}
    {\@secondoftwo}
    {\edef\@tempa{\strfield{#1}}%
     \expandafter\ifinteger\expandafter{\@tempa}}}

%% for position of edition at the end:
%% if option edsuper true and
%%%% if field integer, do nothing
%%%% else print edition
%% else print edition
%%
\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\addcomma\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \ifbool{bbx:edsuper}
    {\bbx@iffieldinteger{edition}
       {}%
       {\printfield{edition}%
        \newunit}}%
    {\printfield{edition}%
     \newunit}}

%% for position of edition (superscripted) at the beginning:
%% if option edsuper true and
%%%% if field integer, print edition superscripted
%%%% else do nothing
%% else do nothing  
%%
\renewbibmacro*{date+extrayear}{%
    \iffieldundef{year}
      {}%
      {\printtext[parens]{%
         \printfield{issue}%
         \setunit*{\addspace}%
         {\printdateextra}%
         {\ifbool{bbx:edsuper}%
             {\bbx@iffieldinteger{edition}%
                {\printfield[edition:super]{edition}}%
                {}}%
             {}}%
         }}}%

%% put series and number into parenthesis
\renewbibmacro*{series+number}{%
\iffieldundef{series}
{}
{\printtext[parens]{%
\iffieldundef{number}
{}
{= \addhpthinspace}%
\printfield{series}%
\setunit*{\addsemicolon\addspace{}Bd.~}%
\printfield{number}%
}}\newunit}

%% no comma before (eds.)
\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}}%
%  \usebibmacro{year}}%

%% byeditor: first-last (eds.)
\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\printnames[byeditor]{editor}%
     \setunit{\addspace}%
     \usebibmacro{editorstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}

%% deactivate series for journal
\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

%% renew volume+number: colon as delimiter
\newbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addcolon\space}%
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

%% listing of names: name/name/final name
\renewcommand{\multinamedelim}[0]{\addslash}% 
\renewcommand*{\finalnamedelim}[0]{\addslash}%

%% change of german abbreviations
\DefineBibliographyStrings{german}{%
  and={\&},
  editor={\addspace\mkbibparens {Hrsg\adddot}},
  editors={\addspace\mkbibparens {Hrsg\adddot}},
  byeditor={Hrsg\addcolon\thinspace},
  andothers={et\addabbrvspace al\adddot},
  }

%% change of english abbreviations
\DefineBibliographyStrings{english}{%
  and={\&},
  editor={\addspace\mkbibparens {ed\adddot}},
  editors={\addspace\mkbibparens {eds\adddot}},
  byeditor={ed\addcolon\thinspace},
  andothers={et\addabbrvspace al\adddot},
  }

%% no quotation marks for article, inbook, ...
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1\isdot}
%% stattdessen kursiv  
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\mkbibemph{#1}}

%% colon after the word "in"
\renewbibmacro*{in:}{%
  \printtext{%
    \bibstring{in}\addcolon\space}}

%% colon for "editor:" after "in:"
\newcommand*{\titleaddonpunct}{\addcolon\space}

%% no "visited:" before urldate
\DeclareFieldFormat{urldate}{\mkbibparens{#1}}

%% vertical spacing between entrys
\setlength{\bibitemsep}{0.8\baselineskip}

%% load style defaults
\ExecuteBibliographyOptions{%
maxnames=2,
maxbibnames=99,
dashed=true,
edsuper=true,
}%

\endinput

gefragt 19 Dez '14, 15:18

kweku's gravatar image

kweku
1122
Akzeptiert-Rate: 0%

bearbeitet 19 Dez '14, 15:35

Johannes's gravatar image

Johannes
7.3k294566

Also, um es mal runterzubrechen, geht es, so ich das richtig sehe, nur um die Zeile

Open in writeLaTeX

{\usebibmacro{byeditor+others} % KNACKPUNKT!! Wie nur Nachnamen von Herausgebern?

Wie (und wo!) kann ich das bibmacro umdefinieren bzw. ein neues Makro definieren, das mir die Nachnamen der Herausgeber mit »/« getrennt ausgibt, ohne »(Hrsg.)« und nach Erreichen von maxnames mit et al.?

(21 Dez '14, 17:33) kweku
Deine Antwort auf die Frage: (Bemerkungen bitte oben als Kommentar)
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×220
×28

gestellte Frage: 19 Dez '14, 15:18

Frage wurde gesehen: 4,960 Mal

zuletzt geändert: 21 Dez '14, 17:33