![使用 citet 和 citep 时未定义控制序列](https://linux22.com/image/398101/%E4%BD%BF%E7%94%A8%20citet%20%E5%92%8C%20citep%20%E6%97%B6%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97.png)
我对命令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
\footcite
biblatex
natbib
\citet
\citep
但biblatex
有命令可以做类似的事情。biblatex
相当于\citet
is\textcite
和相当于\citep
is \parencite
。我通常更喜欢使用biblatex
名称,在文档中快速搜索和替换就足够了。请注意,biblatex
's\cite
通常(当然在标准样式中)与\cite
with的行为不同natbib
。但是natbib
不鼓励\cite
并强烈鼓励使用\citet
或\citep
,所以对于那些遵循此建议的人来说,这应该不是什么问题。
如果您想继续使用 的natbib
名称biblatex
,您可以使用加载兼容模式的biblatex
选项加载。请注意,兼容模式也会发生变化,请参阅natbib=true
natbib
natbib
nameyeardelim
将 natbib=true 与 biblatex 一起使用有什么缺点吗?。
无论如何,您都无法同时加载biblatex
和natbib
,因为这些包不兼容。\usepackage{natbib}
向已加载的前言中添加biblatex
内容会导致错误(取决于加载顺序,可能是非常清晰的顺序,也可能是稍微不太清晰的顺序)。