使用 biblatex 的前缀和条件语句

使用 biblatex 的前缀和条件语句

我想在我的参考书目列表中突出显示某位作者的贡献。为了做到这一点,我正在考虑在引用标签中添加他的姓名首字母。如下所示,知道要突出显示的作者是 First Name:

  • bib文件

    @article{label1,author = {First Name and author2},title = {title}}
    
    @article{label2,author = {author2 and author3},title = {title}}
    
  • 主文件

    text: \cite{label1} \cite{label2}
    
  • 输出:

    文字 [FN1] [2]

  • 参考文献列表可以是

    [FN1] 名字 1,作者 2,标题
    [2] 作者 1,作者 2,标题

建议使用极小的 MWE:

\documentclass{article}
\usepackage[style=numeric-comp,backend=biber,maxnames=99]{biblatex}
\addbibresource{refs}
\begin{document}
text \cite{label1}, \cite{label2}
\printbibliography[heading=bibempty]
\end{document}

refs.bib 存储以下信息

@article{label1,
    author = {First Name and author2},
    title = {title}
}

@article{label2,
    author = {author2 and author3},
    title = {title}
}

最好对 First Name 作者进行自动测试。可以接受两个单独的列表,但最好只使用一个列表。

答案1

这有点儿老套,但它能满足您的要求。我已将字段设置usera为您想要的特定引用的前缀。然后,如果已设置,我使用\AtEveryCitekey\AtEveryBibitem来更改标签。usera

梅威瑟:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{label1,
    author = {First Name and author2},
    title = {Title},
    journaltitle = {Journal},
    date = {2017},
    usera = {FN}
}
@article{label2,
    author = {author2 and author3},
    title = {Title},
    journaltitle = {Journal},
    date = {2016}
}
\end{filecontents}
\pagestyle{empty}
\usepackage[style=numeric-comp,sorting=none,backend=biber,maxnames=99]{biblatex}
\addbibresource{\jobname.bib}
\AtEveryCitekey{%
  \iffieldundef{usera}
    {}
    {\savefield*{usera}{\tempa}%
     \restorefield{labelprefix}{\tempa}}}
\DeclareFieldFormat{labelnumberwidth}{%
  \mkbibbrackets{%
    \printfield{usera}%
    #1}}
\begin{document}
text \cite{label1}, \cite{label2}
\printbibliography
\end{document}

MWE 示例

相关内容