我尝试在 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
您不能使用biblatex
和natbib
。您可以在 内获得natbib
支持biblatex
,但您不能使用natbib
。这与您选择的 Biblatex 样式无关。无论是apalike
还是其他什么都无所谓。
Biblatex 使用自己的界面来格式化引文和参考书目。它不使用 BibTeX.bst
文件,而 BibTeX 文件是 的方法的核心natbib
。没有 BibTeX 样式与 Biblatex 兼容。它们是管理参考文献和参考书目的完全不同的方法。
如果您想使用 Biblatex,您需要坚持使用 Biblatex 的界面。如果您想要natbib
,请放弃biblatex
。
也就是说,natbib
无论风格如何,使用 Biblatex 的最佳做法是