
Ich hebe bestimmte Autoren in Biblatex mithilfe der Anmerkungsfunktion hervor:
\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@MISC{test,
AUTHOR = {Last1, First1 and Last2, First2 and Last3, First3},
AUTHOR+an = {2=highlight},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamegiven}[1]{%
\ifitemannotation{highlight}
{\textbf{#1}}
{#1}}
\renewcommand*{\mkbibnamefamily}[1]{%
\ifitemannotation{highlight}
{\textbf{#1}}
{#1}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Ich möchte eine weitere Anmerkung hinzufügen highlightB
, die z. B. fett und in Rot hervorgehoben wird und als Alternative zu der bereits vorhandenen highlight
Anmerkung verwendet werden kann.
\ifitemannotation{highlightB}
Ich habe in beiden mit einem Zusatz herumgespielt \mkbibnamegiven
, \mkbibnamefamily
aber es funktionierte nicht richtig. Wie gehe ich vor?
Antwort1
Sie müssen die Tests für die Annotationen verschachteln. Beachten Sie, dass ich \mkbibcompletename
den gesamten Namen auf einmal formatiere, anstatt die Makros für alle Namensteile neu zu definieren.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{xcolor}
\usepackage[style=authoryear, backend=biber]{biblatex}
\renewcommand*{\mkbibcompletename}[1]{%
\ifitemannotation{highlight}
{\textbf{#1}}
{\ifitemannotation{highlightB}
{\textcolor{red}{#1}}
{#1}}}
\begin{filecontents}{\jobname.bib}
@misc{example1,
title = {Mock Title},
author = {Albert Einstein},
author+an = {1=highlight},
year = {2019},
}
@misc{example2,
title = {Mock Turtle},
author = {Anne Elk},
author+an = {1=highlightB},
year = {2020},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,example1,example2}
\printbibliography
\end{document}