不!

不!

我尝试在 Overleaf 上的文章类文档中使用 \citet{} 时删除作者和年份之间的逗号。因此,我在序言中加入了以下代码:

\setcitestyle{notesep={; }, aysep={ }}

但是,我收到“未定义控制序列”错误。此上一篇文章(Natbib setcitestyle 导致“未定义的控制序列错误”) 表示问题是由 natbib 的过时版本引起的,该版本不包含 \setcitestyle 函数。

是否可以在 Overleaf 上更新 natbib?不过,我希望 Overleaf 拥有最新版本的 natbib...

%%%

使用示例代码更新:

更新此 biblatex 命令成功删除逗号。

\renewcommand*{\nameyeardelim}{\addspace}

显然,natbib 和 apalike 或 apacite 之间存在冲突。请参见此处: http://latex-community.org/forum/viewtopic.php?t=23715

有人可以证实这一点吗?在 biblatex 中使用 natbib 和 authoryear 样式时,有什么最佳实践建议吗?

\documentclass{book}

\usepackage[style=authoryear, citestyle=authoryear-comp, hyperref=true, backend=biber, natbib=true]{biblatex}

\usepackage{natbib}                         % gives error
\setcitestyle{notesep={; }, aysep={ }}          % gives error

%\renewcommand*{\nameyeardelim}{\addspace} % removes comma, no error

\usepackage{filecontents}
\begin{filecontents}{test.bib}
@article{kerth_information_2003,
    title = {Information transfer about roosts in female {Bechstein}'s bats: an experimental field study},
    volume = {270},
    journal = {Proceedings of the Royal Society of London. Series B: Biological Sciences},
    author = {Kerth, Gerald and Reckardt, Karsten},
    year = {2003},
    pages = {511--515}
}
\end{filecontents}
\addbibresource{test.bib}

\begin{document}
A thing happen once, the thing was seen by \citet{kerth_information_2003}.
\end{document}

答案1

您不能使用biblatexnatbib。您可以在 内获得natbib支持biblatex,但您不能使用natbib。这与您选择的 Biblatex 样式无关。无论是apalike还是其他什么都无所谓。

Biblatex 使用自己的界面来格式化引文和参考书目。它不使用 BibTeX.bst文件,而 BibTeX 文件是 的方法的核心natbib。没有 BibTeX 样式与 Biblatex 兼容。它们是管理参考文献和参考书目的完全不同的方法。

如果您想使用 Biblatex,您需要坚持使用 Biblatex 的界面。如果您想要natbib,请放弃biblatex

也就是说,natbib无论风格如何,使用 Biblatex 的最佳做法是

不!

相关内容