同一文档中的多个参考书目样式:字母和数字

同一文档中的多个参考书目样式:字母和数字

我试图在我的作品中使用不同的风格(字母和数字作为两个单独的书目,例如这里)。

我编译了两次文件:一次使用 Biber,一次不使用。经过几次尝试,它成功了,但我得到的结果是,对于第二个参考书目,它是按字母顺序编号的(a、b、c 等)。有没有办法让它采用 alpha 样式,并带有部分作者姓名和年份,例如:[Ein05]

答案1

假设您想要的所有条目都numeric包含关键字primary,而所有其他条目都应带有alphabetic标签。

然后你可以使用

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[style=alphabetic,labelnumber,defernumbers,backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\renewbibmacro*{cite}{%
  \printtext[bibhyperref]{%
    \printfield{prefixnumber}%
    \ifkeyword{primary}
      {\printfield{labelnumber}}
      {\printfield{labelalpha}%
       \printfield{extraalpha}}}}

\defbibenvironment{numericbib}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{prefixnumber}%
        \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}
\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}

\begin{document}
\cite{aristotle:physics,sigfridsson,worman,aristotle:poetics}
\printbibheading
\printbibliography[heading=subbibliography,title={Numeric Bib},keyword=primary,env=numericbib]
\printbibliography[heading=subbibliography,title={Alphabetic Bib},notkeyword=primary,omitnumbers]
\end{document}

示例输出

这个想法是将citebibmacro 分支到关键字上。我们还需要请求数字引用(通过选项labelnumber),但我们用 删除了字母书目的数字omitnumbers。数字书目有自己的格式,因此它可以正确显示标签。

对于biblatex版本 >= 3.4(尚未发布,但可以作为开发版本进行测试),您需要在上面prefixnumber进行更改。labelprefix

相关内容