Ich möchte bestimmte Bibliographieeinträge farblich kennzeichnen, z. B. „wichtige“ und „ausgezeichnete“ Arbeiten. Was ich im Moment habe:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,
isbn=true,
giveninits=true,
style=numeric,
maxnames=99,
sorting=ydnt,
defernumbers=true,
autocite=superscript]{biblatex}
\defbibheading{bibliography}[\refname]{}
\addbibresource{references.bib}
\renewbibmacro{in:}{}
\usepackage[usenames,dvipsnames]{xcolor}
\DeclareBibliographyCategory{important}
\DeclareBibliographyCategory{award}
\addtocategory{important}{small}
\addtocategory{award}{big}
\AtEveryBibitem{
\ifcategory{award}%
{\color{blue}}%
{}%
\ifcategory{important}%
{\color{orange}}%
{}%
}
\begin{document}
\section{Main text}
\cite{small}
\cite{big}
\section{Bibliography}
\printbibliography
\end{document}
Allerdings ist nur der Bibentry selbst orange (oder blau, unten nicht dargestellt), nicht aber die daneben liegende Referenznummer. Wie kann ich das erreichen?
Antwort1
Sie können einfach \AtBeginBibliography
und verwenden \AtEveryBibitem
, um den Code zum Einfärben nur der Bibliografieeinträge der important
Kategorie festzulegen.
PS = Da Sie kein Beispiel Ihrer .bib
Datei hinzugefügt haben, habe ich verwendet biblatex-examples.bib
.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,
isbn=true,
giveninits=true,
style=numeric,
maxnames=99,
sorting=ydnt,
defernumbers=true,
autocite=superscript]{biblatex}
\defbibheading{bibliography}[\refname]{}
\addbibresource{biblatex-examples.bib}
\renewbibmacro{in:}{}
\usepackage[usenames,dvipsnames]{xcolor}
\DeclareBibliographyCategory{important}
\addtocategory{important}{knuth:ct:a}
\addtocategory{important}{knuth:ct:c}
\AtBeginBibliography{%
\DeclareFieldFormat{labelnumberwidth}{\ifcategory{important}%
{\color{orange}\mkbibbrackets{#1}}%
{\mkbibbrackets{#1}}%
}}
\AtEveryBibitem{\ifcategory{important}
{\color{orange}}
{}}
\begin{document}
\section{Main text}
\cite{knuth:ct}
\cite{knuth:ct:a}
\cite{knuth:ct:b}
\cite{knuth:ct:c}
\cite{companion}
\section{Bibliography}
\printbibliography
\end{document}
Bearbeiten:
Der \ifcategory
Befehl hat diese Syntax:
\ifcategory{hcategoryi}{htruei}{hfalsei}
ähnlich wie viele andere \if
S-Befehle, siehe biblatex
Handbuch, Abschnitt 4.6.2 „Stand-alone-Tests“.
Innerhalb von htruei
oder hfalsei
können Sie so viele \ifcategory
s (oder andere \if
s) verschachteln wie Sie möchten, Sie müssen nur darauf achten, dass alle Klammern übereinstimmen.
Hier ist ein Beispiel mit drei verschiedenen Farben für drei verschiedene Kategorien:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,
isbn=true,
giveninits=true,
style=numeric,
maxnames=99,
sorting=ydnt,
defernumbers=true,
autocite=superscript]{biblatex}
\defbibheading{bibliography}[\refname]{}
\addbibresource{biblatex-examples.bib}
\renewbibmacro{in:}{}
\usepackage[usenames,dvipsnames]{xcolor}
\DeclareBibliographyCategory{important}
\addtocategory{important}{knuth:ct:a}
\addtocategory{important}{knuth:ct:c}
\DeclareBibliographyCategory{awards}
\addtocategory{awards}{knuth:ct:b}
\DeclareBibliographyCategory{ducks}
\addtocategory{ducks}{companion}
\AtBeginBibliography{%
\DeclareFieldFormat{labelnumberwidth}%
{\ifcategory{important}% if
{\color{orange}\mkbibbrackets{#1}}% then
{\ifcategory{awards}% else if
{\color{blue}\mkbibbrackets{#1}}% then
{\ifcategory{ducks}% else if
{\color{green}\mkbibbrackets{#1}}% then
{{\mkbibbrackets{#1}}%else
}% end if
}% end if
}% end if
}}
\AtEveryBibitem%
{\ifcategory{important}% if
{\color{orange}}% then
{\ifcategory{awards}% else if
{\color{blue}}% then
{\ifcategory{ducks}% else if
{\color{green}}% then
{}%else
}% end if
}% end if
}% end if
\begin{document}
\section{Main text}
\cite{knuth:ct}
\cite{knuth:ct:a}
\cite{knuth:ct:b}
\cite{knuth:ct:c}
\cite{companion}
\section{Bibliography}
\printbibliography
\end{document}