Biblatex:如何在 alpha 样式中自动使用给定的关键字将文内引用加粗?

Biblatex:如何在 alpha 样式中自动使用给定的关键字将文内引用加粗?

我需要使用 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}

[**App80**; Hac81],“App80” 以粗体显示。

相关内容