Verwenden Sie Kapitälchen in der Bibliographie für institutionelle Autoren

Verwenden Sie Kapitälchen in der Bibliographie für institutionelle Autoren

Ich verwende biblatex-apa, um das Layout meiner Bibliographie zu definieren. Jetzt zitiere ich mehrere (interne) Dokumente von Institutionen oder Nachrichten-Websites, die jetzt mit ihrer Abkürzung im Dokument erscheinen. Ich möchte, dass diese Abkürzungen in Kapitälchen erscheinen. Eigentlich möchte ich, dass alle abgekürzten Institutionen in Kapitälchen erscheinen. Ist das möglich? Ich habe meine Bibliographie jetzt mithilfe von Tags aufgeteilt (aus Zotero exportiert), also nehme ich an, dass ein Tag auch ermöglichen könnte, dass das Zitat als Kapitälchen im Text erscheint? Weiß jemand, wie das geht?

Mein MWE:

\documentclass[10pt,a4paper,twoside]{book}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa, date=year, natbib=true, sorting=nyt, sortcites=true]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\bibliography{Zotero}
\begin{document}
\chapter{Literature review}
This is some text with a double reference \cite{nos_weeralarm_2009, ns_volle_2013}.


\printbibliography[notkeyword=internal]
\printbibliography[title={Internal Documents}, keyword=internal]
\end{document}

Und der Inhalt meiner Zotero.bib:

@online{nos_weeralarm_2009,
title = {Weeralarm en verkeeralarm ingetrokken},
url = {http://nos.nl/l/124074},
titleaddon = {{NOS.nl}},
author = {{NOS}}, %THIS AUTHOR MUST BE PRINTED IN SC
urldate = {2014-02-12},
date = {2009-12-20},
keywords = {gladheid, ijs, ongeluk, openbaar vervoer, schiphol, sneeuw}
}
@report{ns_volle_2013,
location = {Utrecht},
title = {Internal document title}},
institution = {NS},
type = {Internal Document},
author = {{NS}}, % THIS AUTHOR MUST BE PRINTED IN SC
date = {2013},
keywords = {internal}
}

Antwort1

Wenn alle Ihre Zitate, die eine Small-Caps-Institution erfordern, tatsächlich dasselbe Tag haben, sollte dies möglich sein.

In Ihrem MWE haben die beiden Einträge jedoch kein gemeinsames , daher habe ich das zu prüfende keywordSchlüsselwort hinzugefügt .instauth

Was wir tun, ist sehr einfach: Bei jedem Zitationsbefehl und vor jedem Bibliographieeintrag prüfen wir, ob der Eintrag das Schlüsselwort enthält. instauthWenn ja, wird das Nachnamenformat so eingestellt, dass Akronyme über biblatexdas \mkbibacroMakro erzeugt werden (beachten Sie, dass damit dies funktioniert, „das Akronym in Großbuchstaben angegeben werden muss.“, S. 89, diebiblatexDokumentation).

\AtEveryCitekey{%
  \ifkeyword{instauth}
    {\renewcommand*{\mkbibnamelast}[1]{\mkbibacro{#1}}}
    {}%
}
\AtEveryBibitem{%
  \ifkeyword{instauth}
    {\renewcommand*{\mkbibnamelast}[1]{\mkbibacro{#1}}}
    {}%
}

Eine alternative Neudefinition ist die kürzere

\renewcommand*{\mkbibnamelast}[1]{%
  \ifkeyword{instauth}
    {\mkbibacro{#1}}
    {#1}}

Wobei das Konditional istinnendie Formatierungsanweisung. Dann ist es nicht mehr nötig, die Änderung in Gruppen einzubinden, in denen \ifkeyworddefiniert ist, wie es oben notwendig war.

instauthBis zu einem gewissen Grad können wir die Erkennung sogar automatisch machen . Mit

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=true]{
      \step[fieldsource=author, match=\regexp{^\{.+?\}$}, final]
      \step[fieldset=keywords, append, fieldvalue={,instauth}]
    }
  }
}

alle authorFelder, die einen String in doppelten geschweiften Klammern enthalten, werden als klassifiziert instauth. Dies kann in einigen Sonderfällen zu Problemen führen - wie bei so vielen automatischen Lösungen.

MWE

\documentclass[a4paper]{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[backend=biber, style=apa, date=year, natbib=true, sorting=nyt, sortcites=true]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{filecontents*}{\jobname.bib}
@online{nos_weeralarm_2009,
title = {Weeralarm en verkeeralarm ingetrokken},
url = {http://nos.nl/l/124074},
titleaddon = {{NOS.nl}},
author = {{NOS}}, %THIS AUTHOR MUST BE PRINTED IN SC
urldate = {2014-02-12},
date = {2009-12-20},
keywords = {gladheid, ijs, ongeluk, openbaar vervoer, schiphol, sneeuw}
}
@report{ns_volle_2013,
location = {Utrecht},
title = {Internal document title},
institution = {NS},
type = {Internal Document},
author = {{NS}}, % THIS AUTHOR MUST BE PRINTED IN SC
date = {2013},
keywords = {internal},
}
\end{filecontents*}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=true]{
      \step[fieldsource=author, match=\regexp{^\{.+?\}$}, final]
      \step[fieldset=keywords, append, fieldvalue={,instauth}]
    }
  }
}

\renewcommand*{\mkbibnamelast}[1]{%
  \ifkeyword{instauth}
    {\mkbibacro{#1}}
    {#1}}


\begin{document}
This is some text with a double reference \cite{nos_weeralarm_2009, ns_volle_2013, wilde, cicero}.


\printbibliography[notkeyword=internal]
\printbibliography[title={Internal Documents}, keyword=internal]
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Hinweis: Ab März 2016 (biblatex 3.3) müssen Sie \mkbibnamefamily anstelle von \mkbibnamelast ändern. Siehe auchNamensformatierung in Biblatex 3.3.

verwandte Informationen