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}
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} }
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 |
Also, um es mal runterzubrechen, geht es, so ich das richtig sehe, nur um die Zeile
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 vonmaxnames
mit et al.?