在下面的代码中,如果使用csquotes
,则 下的参考文献标题会被错误地括在 中,如果没有 则相反。该文件是用 Biber 处理的。\printbibiolograhy
?
*bib
问题是什么?如何解决?
\documentclass{article}
\usepackage{babel}
\usepackage[style=numeric, maxnames=999, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@phdthesis{jd-2005,
author = {John Doe},
title = {TITLE},
year = {2005}
}
\end{filecontents}
\addbibresource{\jobname.bib}
%\usepackage{csquotes}
\usepackage{hyperref}
\listfiles
\title{TITLE}
\author{John Doe}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\cite[pp. 25-27]{jd-2005}
\phantomsection
%\addcontentsline{toc}{section}{References}
\printbibliography[heading=subbibliography]
\end{document}
答案1
MWEcsquotes
会产生以下警告
Package csquotes Warning: No style for language 'nil'.
(csquotes) Using fallback style on input line 22.
以及(虽然与此不太相关)
Package biblatex Warning: Language 'nil' not supported.
(biblatex) Using fallback language 'english' on input line 22.
本质上,MWEbabel
根本不加载和设置任何语言,这导致babel
假装nil
加载了某种语言。 无论是biblatex
还是都csquotes
无法正确处理nil
。
解决方案是,在加载时始终传递至少一种语言选项babel
(或根本不加载babel
)。在大多数情况下,english
它是标准语言,因此english
(无论是全局的\documentclass
还是直接作为的包选项babel
)都是这里的直接选择,但您当然可以选择biblatex
和支持的任何语言csquotes
。
\documentclass[english]{article}
\usepackage{babel}
\usepackage[style=numeric, maxnames=999, backend=biber]{biblatex}
\usepackage{csquotes}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite[25-27]{sigfridsson}
\printbibliography[heading=subbibliography]
\end{document}
我似乎记得在旧版本中babel
,babel
如果根本没有选择任何语言,就会出错或者至少会发出警告。
请注意,无需手动放入pp.
后记中,biblatex
可以检测页面范围并自动添加适当的页面前缀。
也没有必要使用\addcontentsline{toc}{section}{References}
和\phantomsection
来使参考书目出现在目录中。看看该heading
选项的其他值(例如subbibintoc
)。
答案2
我相信我能够通过使用 选项English
来修复它babel
,尽管我必须承认我不完全确定为什么这样做有效。代码如下:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[style=numeric, maxnames=999, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@phdthesis{jd-2005,
author = {John Doe},
title = {TITLE},
year = {2005}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{csquotes}
\usepackage{hyperref}
\listfiles
\title{TITLE}
\author{John Doe}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\cite[pp. 25-27]{jd-2005}
\phantomsection
%\addcontentsline{toc}{section}{References}
\printbibliography[heading=subbibliography]
\end{document}