我正在用 Biblatex 用 LaTeX 写论文。我做了一个愚蠢的决定,在即将完成之前更新 Biblatex,现在 Biblatex 中的新“上下文逻辑”让我对参考书目产生了问题,它取代了以前用预标签制作参考书目和引文的方法。
我的论文中有多个参考书目,一个用于参考文献(未标记),另外两个用于我的出版物(标记为 T 和 A)。以前,我使用 来为prefixnumbers
不同printbibliography
的参考书目添加不同的标签,但随着新版 Biblatex 的推出,它已被弃用,labelprefix
应该使用\newrefcontext
。
我尝试按照这个简单的解决方案修改我的 LaTeX 源:将 labelprefix 替换为 newrefcontext 中的 prefixnumbers 以打印书目,但不起作用
问题是我在参考书目之前和之后都有文本。如果我像链接示例中那样做,那么第一个参考书目中的参考文献的引用在参考书目之后会被错误地标记(第一个参考书目中的引用标签全部显示为“A0”)。如果我将其放在\endrefcontext
最后一个参考书目之后,那么除了来自全局上下文(第一个参考书目)的参考文献之外的所有内容都会被错误地标记(在整个文本中全部显示为“0”)。
MWE:
\documentclass[]{report}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents}{refs.bib}
@article{r1,
title={r-title1},
author={authors1},
}
@article{r2,
title={r-title2},
author={authors2},
}
\end{filecontents}
\begin{filecontents}{thesis.bib}
@article{t1,
title={t-title1},
author={authors1},
}
@article{t2,
title={t-title2},
author={authors2},
}
\end{filecontents}
\begin{filecontents}{articles.bib}
@article{a1,
title={a-title1},
author={authors1},
}
@article{a2,
title={a-title2},
author={authors2},
}
\end{filecontents}
\usepackage[
style=numeric-comp,
backend=biber,
defernumbers=true,
]{biblatex}
\addbibresource{refs.bib}
\addbibresource{thesis.bib}
\addbibresource{articles.bib}
\DeclareBibliographyCategory{thesis}
\DeclareBibliographyCategory{articles}
\addtocategory{thesis}{t1,t2}
\addtocategory{articles}{a1,a2}
\begin{document}
%\assignrefcontextcats[labelprefix=T]{thesis}
%\assignrefcontextcats[labelprefix=A]{articles}
Some text. \cite{r1,r2,t1,t2,a1,a2}
\printbibliography[notcategory=thesis, notcategory=articles, title=References]
\newrefcontext[labelprefix=T]
\printbibliography[category=thesis,title={Publications related to the thesis}]
\newrefcontext[labelprefix=A]
\printbibliography[category=articles,title={Other publications}]
\endrefcontext
Some text. \cite{r1,r2,t1,t2,a1,a2}
\end{document}
通过以上我得到
一些文本。[0, 1, 0, 2, 0]
参考书目之前和之后。通过取消注释\assignrefcontextcats
I 可以覆盖默认上下文,并获得
一些文本。[A1,1,T1,A2,2,T2]
其至少给出了好的标签,但是顺序却很混乱。
之前prefixnumbers
它运行完美,所有文本中的每个引用标签都是正确的,无论是在参考书目之前还是之后。如何使用新版 Biblatex 做到这一点?谢谢!