我怀疑我遗漏了一些配置值,但无法确定是哪一个。当我使用为\newrefcontext
每条参考资料添加给定标签(选项labelprefix=...
)前缀时,我最终发现我的参考资料根本没有列出(带有\printbibliography
)。这是我的 TeX 文件的简化版本:
\documentclass[a4paper,10pt]{article}
% Import packages:
\usepackage[utf8]{inputenc}
\usepackage[
backend=bibtex,
style=numeric,
sorting=ydnt,
defernumbers=true,
maxbibnames=99]{biblatex}
\addbibresource{bib_source_file} % Biblatex source.
\begin{document}
% The following line is just a test:
\cite{Araguz2018X} % shows [0] unless \newrefcontext is commented out
\section*{Journals}
\newrefcontext[labelprefix=J] % If commented-out, ALL references are
% listed (without prefix)
\nocite{Araguz2018Y}
\printbibliography[resetnumbers=true]
\section*{Conferences}
\newrefcontext[labelprefix=C] % Same than above. Commenting gives the list of
% ALL non-prefixed refs.
\nocite{Araguz2018Z}
\printbibliography[resetnumbers=true]
\end{document}
答案1
当我运行您的示例时,我收到消息
Package biblatex Warning: Using fall-back BibTeX(8) backend:
(biblatex) functionality may be reduced/unavailable.
在.log
文件中。
确实,refcontexts 虽然很有用,但只有在使用 Biber 作为后端时才能得到正确支持的功能之一。
如果我backend=bibtex
改为backend=biber
并运行 Biber(请参阅Biblatex 与 Biber:配置我的编辑器以避免未定义的引用),示例按预期运行。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric,
sorting=ydnt,
defernumbers=true,
maxbibnames=99]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{worman}
\section*{Journals}
\newrefcontext[labelprefix=J]
\nocite{sigfridsson}
\printbibliography[resetnumbers=true]
\section*{Conferences}
\newrefcontext[labelprefix=C]
\nocite{geer}
\printbibliography[resetnumbers=true]
\end{document}