我在使用 biblatex 时遇到了问题,其中的引用看起来像 [XYZ05],但参考书目中的条目只是数字,如 [1]。以下是我的软件包选项:
\usepackage[firstinits=false,sorting=none,bibstyle=ieee,
citestyle=alphabetic,maxnames=99,doi=false,url=false,isbn=false]{biblatex}
然后我使用如下调用来生成参考书目
\printbibliography[heading=subbibliography,keyword=conference,title=Conferences]
您可以在以下位置查看生成的文件http://dave-pritchard.net/tmp/cv.pdf并且注意到从引文到书目条目的超链接甚至可以正常工作!所以从某种意义上说,这些事情是相连的,只是书目中的表面标签打印错误。什么可能导致 printbibliography 忽略我的 citestyle?
根据 Marco 的评论更新:我正在使用IEEE.bbx作为 bibstyle(实际上是一个衍生词,但两者的问题都一样严重)。所以我希望这个问题可以更好地表述为:
在 ieee.bbx 中,如何更改附加到每个书目条目的标签,使其与 alphabetic.cbx 中的标签相同?
答案1
由于 IEEE 使用数字样式,因此您需要将一些字母样式的代码添加到源代码中。将选项添加到labelalpha
加载时使用的选项中biblatex
,如下所示后选项bibstyle=ieee
,并在加载后添加以下代码biblatex
:
\defbibenvironment{bibliography}
{\list
{\printtext[labelalphawidth]{%
\printfield{prefixnumber}%
\printfield{labelalpha}%
\printfield{extraalpha}}}
{\setlength{\labelwidth}{\labelalphawidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{##1\hss}}
{\endlist}
{\item}
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}