Natbib 与 biblatex 不兼容?

Natbib 与 biblatex 不兼容?

我不喜欢命令\cite\parencite生成页码的方式。如果我给出命令\cite[43]{XXX2015},它会产生:

XXX2015,第43页。

我想要的是:

XXX2015:43。

我知道命令\citet应该给我这个,我也从搜索中知道我应该加载natbib包来获得它。但是,存在一些与我序言中已有内容相关的兼容性问题。我猜一定是包biblatexbackend包(如果那确实是一个包)。如果我只是加载包,natbib我会收到错误消息:

command \bighang already defined.

我可以继续使用backend此设置的包并添加一些内容吗?这是一个 MWWW:

\documentclass[12]{article}

\usepackage[english]{babel}
\usepackage[backend=biber, style=authoryear-comp, sortcites=false, maxcitenames=2, mincitenames=1, maxbibnames=4, uniquelist=false]{biblatex}

\addbibresource{ref.bib}

\begin{document}

Blablabla. \cite[43]{Wolfe2015} 

\end{document}

答案1

natbib并且biblatex确实不兼容。biblatex与大多数书目管理包不兼容,因为它实现引文和书目的方式与传统的 BibTeX 方式完全不同。通常这还不算太糟,因为它biblatex可以开箱即用地做很多事情,因此不需要额外的包。

幸运的natbib是,这与你的问题无关。biblatex可以做你想做的事情,而不需要额外的软件包(也没有natbib兼容模式,如果没有必要,我会避免使用兼容模式,另请参阅将 natbib=true 与 biblatex 一起使用有什么缺点吗?)。

您只需重新定义postnote格式以停止打印页面前缀。然后我们将引文和后记之间的标点符号更改为冒号。

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear-comp, sortcites=false, maxcitenames=2, mincitenames=1, maxbibnames=4, uniquelist=false]{biblatex}


\addbibresource{biblatex-examples.bib}

\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}

\renewcommand*{\postnotedelim}{\addcolon}

\begin{document}
\autocite[380]{sigfridsson}
\printbibliography
\end{document}

给出

在此处输入图片描述

顺便说一句,\citet通常会给出以下形式的引用

Sigfridsson 和 Ryde (1998)

相当于biblatexis (就像相当于is一样)。兼容模式允许您编写get \citetwith\textcite\citep\parencitenatbib\citet\textcitebiblatex星号版本的行为并更改一些标点符号(将 natbib=true 与 biblatex 一起使用有什么缺点吗?)。

相关内容