biblatex färbt jedes Element eines Lätzchens in einer anderen Farbe

biblatex färbt jedes Element eines Lätzchens in einer anderen Farbe

Ich verwende Biblatex (mit Xelatex). Genauer gesagt verwende ich Zotero und exportiere dann von Zotero in das Bib-Format.

Alles funktioniert einwandfrei, aber meine Bibliographie ist nur in Schwarz. Das ist natürlich das normale Verhalten... Mein Ziel ist es jedoch, jedes Bib-Element zu Testzwecken anders einzufärben, um sicherzustellen, dass ich kein Bib-Element wie „Band“ vergessen habe. Beispielsweise möchte ich den folgenden Farbcode anwenden.

    volume -> dark blue
    pages -> turqoise
    url -> brown
    title -> red
    isbn -> yellow
    booktitle -> pink
    publisher -> orange
    author -> grey
    date -> black

Ist es möglich, das zu tun?

Antwort1

Mit können Sie die Darstellung eines Feldes ändern \DeclareFieldFormat.

Sie müssen also lediglich \DeclareFieldFormatdie entsprechenden Felder neu definieren.

Es gibt jedoch ein paar Vorbehalte:

  1. Nicht alle „Felder“ sindFelder. biblatexkennt Felder, Listen und Namenslisten. Diese drei Typen verwenden unterschiedliche \Declare...FormatAnweisungen. Sie müssen also den Typ Ihres Feldes kennen

  2. Sie müssen die ursprüngliche Definition kennen, wenn Sie sie nicht vollständig überschreiben möchten. Ich gehe hier davon aus, dass Sie weiterhin Kursivschrift und Anführungszeichen wie gewohnt wünschen, nur die Farbe sollte sich ändern.

    • Auch wenn es möglich ist, das Feldformat mit xpatch's zu patchen \xpretofieldformat, müssen Sie wissen, ob irgendwelche Typen eine Sonderbehandlung erhalten. Denn Sie können nur das allgemeine oder das typspezifische Format patchen, aber nie beides gleichzeitig.

Die meisten Formatierungsanweisungen für die Standardstile finden Sie in biblatex.def.

Bei Feldern sollte dies so einfach sein wie das Suchen nach dem Feld, das Kopieren \DeclareFieldFormatund das Einfügen eines \color{...}Befehls in die Definition. Vergessen Sie nicht, dass es für dasselbe Feld mehrere typspezifische \DeclareFieldFormats geben kann (in den Standardstilen sollten Sie diese nebeneinander finden).

Bei Listen gehen Sie ähnlich vor, suchen aber nach \DeclareListFormat. (Siehe publisherunten.)

Namen sind komplizierter. Sie müssen zuerst herausfinden, welches Namensformat der Name verwendet, den Sie einfärben möchten. authorverwendet das Format sortnamein style=authoryear. Und sortnameist definiert als family-given/given-family. Also kopieren wir die Definition von family-given/given-family, nennen es coloured:family-given/given-family, fügen hinzu \colour{...}und sagen von nun an, sortnamedass es sein soll coloured:family-given/given-family.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\usepackage[svgnames]{xcolor}

\DeclareFieldFormat{volume}{\color{DarkBlue}\bibstring{volume}~#1}% volume of a book
\DeclareFieldFormat[article,periodical]{volume}{\color{DarkBlue}#1}% volume of a journal

\DeclareFieldFormat{pages}{\color{Turquoise}\mkpageprefix[bookpagination]{#1}}

\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\color{Brown}\url{#1}}

\DeclareFieldFormat{title}{\color{Red}\mkbibemph{#1}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\color{Red}\mkbibquote{#1\isdot}}
\DeclareFieldFormat
  [suppbook,suppcollection,suppperiodical]
  {title}{\color{Red}#1}

\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space \color{Yellow}#1}

\DeclareFieldFormat{booktitle}{\color{Pink}\mkbibemph{#1}}

\DeclareListFormat{publisher}{%
  \color{Orange}%
  \usebibmacro{list:delim}{#1}%
  #1\isdot
  \usebibmacro{list:andothers}}

\DeclareNameFormat{coloured:family-given/given-family}{%
  \color{Grey}%
  \ifnumequal{\value{listcount}}{1}
    {\ifgiveninits
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}%
     \ifboolexpe{%
       test {\ifdefvoid\namepartgiven}
       and
       test {\ifdefvoid\namepartprefix}}
       {}
       {\usebibmacro{name:revsdelim}}}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

\DeclareNameAlias{sortname}{coloured:family-given/given-family}

\begin{document}
\cite{sigfridsson,vizedom:related,westfahl:space,worman,geer,nussbaum,ctan}
\printbibliography
\end{document}

Bildbeschreibung hier eingeben

Mit der Option Biber können --validate-datamodelSie beim Kompilieren prüfen, ob Ihre Einträge dem Datenmodell entsprechen.

verwandte Informationen