我需要使用 biblatex 的这种简单的引用键行为。我需要一些参考文献(.bib 文件中具有给定关键字的参考文献)在文本中(可能也在印刷书目中)以粗体引用键显示。
这个问题类似于Biblatex:如何在给定条件下自动将文内引用加粗?但是在那里,使用了数字引用样式,而我需要的是字母样式。
答案1
所需的修改与Biblatex:如何在给定条件下自动将文内引用加粗?,但宏的基础cite
是来自的定义alphabetic.cbx
而不是来自numeric.cbx
。此外,我们需要重新定义labelalphawidth
参考书目而不是labelnumberwidth
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\usepackage{hyperref}
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{\ifkeyword{important}{\mkbibbold{#1}}{#1}}}
\DeclareFieldFormat{boldimportant}{\ifkeyword{important}{\mkbibbold{#1}}{#1}}
\renewbibmacro*{cite}{%
\printtext[bibhyperref]{%
\printtext[boldimportant]{%
\printfield{labelprefix}%
\printfield{labelalpha}%
\printfield{extraalpha}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
booktitle = {Why We Matter},
date = {1980},
keywords = {important},
}
@book{hacker,
author = {James Hacker},
title = {The Government},
date = {1981},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{appleby,hacker}
\printbibliography
\end{document}