使用 citet 和 citep 时未定义控制序列

使用 citet 和 citep 时未定义控制序列

我对命令citet和 有疑问citep。错误

undefined control sequence

出现。当我查找此错误的一些解决方案时,有人建议natbib未安装。

但是,如果我尝试加载\usepackage{natbib},我会收到错误

Command \bibhang already defined

这是我使用的代码:

\documentclass[a4paper]{article}

\usepackage[left=4cm, right=3cm, top=3cm, bottom=3cm]{geometry}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc} 

\usepackage{amsmath,amsfonts,amssymb}

\usepackage{graphicx}

\usepackage{booktabs}

\usepackage{biblatex}

\usepackage{csquotes}

\usepackage{natbib}

\renewcommand{\baselinestretch}{1.5}

\sloppy

\addbibresource{bareferences.bib}

我在 macOS Mojave 上将 TeXmaker 与 TeX Live 结合使用。

答案1

默认情况下biblatex仅定义自己的一组引用命令(包括\cite、、、、...;严格来说这并不完全正确:大多数常见的引用命令实际上是由引用样式定义的,但大多数样式定义了相同的基本命令集)。\parencite没有定义命令和。\textcite\footcitebiblatexnatbib\citet\citep

biblatex有命令可以做类似的事情。biblatex相当于\citetis\textcite和相当于\citepis \parencite。我通常更喜欢使用biblatex名称,在文档中快速搜索和替换就足够了。请注意,biblatex's\cite通常(当然在标准样式中)与\citewith的行为不同natbib。但是natbib不鼓励\cite并强烈鼓励使用\citet\citep,所以对于那些遵循此建议的人来说,这应该不是什么问题。

如果您想继续使用 的natbib名称biblatex,您可以使用加载兼容模式的biblatex选项加载。请注意,兼容模式也会发生变化,请参阅natbib=truenatbibnatbibnameyeardelim将 natbib=true 与 biblatex 一起使用有什么缺点吗?

无论如何,您都无法同时加载biblatexnatbib,因为这些包不兼容。\usepackage{natbib}向已加载的前言中添加biblatex内容会导致错误(取决于加载顺序,可能是非常清晰的顺序,也可能是稍微不太清晰的顺序)。

相关内容