
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 \DeclareFieldFormat
die entsprechenden Felder neu definieren.
Es gibt jedoch ein paar Vorbehalte:
Nicht alle „Felder“ sindFelder.
biblatex
kennt Felder, Listen und Namenslisten. Diese drei Typen verwenden unterschiedliche\Declare...Format
Anweisungen. Sie müssen also den Typ Ihres Feldes kennenSie 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.
- Auch wenn es möglich ist, das Feldformat mit
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 \DeclareFieldFormat
und das Einfügen eines \color{...}
Befehls in die Definition. Vergessen Sie nicht, dass es für dasselbe Feld mehrere typspezifische \DeclareFieldFormat
s geben kann (in den Standardstilen sollten Sie diese nebeneinander finden).
Bei Listen gehen Sie ähnlich vor, suchen aber nach \DeclareListFormat
. (Siehe publisher
unten.)
Namen sind komplizierter. Sie müssen zuerst herausfinden, welches Namensformat der Name verwendet, den Sie einfärben möchten. author
verwendet das Format sortname
in style=authoryear
. Und sortname
ist 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, sortname
dass 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}
Mit der Option Biber können --validate-datamodel
Sie beim Kompilieren prüfen, ob Ihre Einträge dem Datenmodell entsprechen.