我正在写一个乳胶文件,我有一个很大的.bib文件和大量的引用。 我希望以[作者,年份]格式引用并使用 natbib 包,但无法获得 citep 或 citet 工作,虽然简单的引用工作正常。我得到的错误是:
! Undefined control sequence.
l.3 lets cite \citet{cayton05}
我正在使用 Ubuntu texlive 包并使用\input{<file>}
latex命令将章节输入主.tex文件。
令人惊讶的是,如果我在主.tex文件中只有文本,那么代替使用\input{<file>}
,那么所有的cite命令都在工作。
任何帮助都将受到高度赞赏。
工作版本是这样的:
\usepackage{cite}
\usepackage[square,sort]{natbib}
%% lot of other packages and formatting %%
\begin{document}
\chapter{Testing citations}
\begin{enumerate}
\item this is the first citation \cite{belkin02}.
\item this is the second citation \citep{belkin02}.
\item this is the third citation \cite{shlens03}.
\end{enumerate}
\phantomsection\addcontentsline{toc}{chapter}{Bibliography}
\begin{spacing}{1.5}
\nocite{*}
\bibliographystyle{apalike}
\bibliography{testnb.bib}
\end{spacing}
\end{document}
在真正的.tex文件中,我从另一个.tex文件输入章节文本,而citep
和citet
将无法解决上述错误,尽管是{{1}将工作正常。
我之前忘了提到我使用普通编号的参考书目样式,一切正常,所以输入.tex文件没有错误。
答案 0 :(得分:18)
如果\citep
和\citet
不起作用,那么您可能无法加载natbib
。
从我目前正在处理的文件:
\usepackage[authoryear,round,longnamesfirst]{natbib}
您可能需要不同的选项 - 有关详细信息,请参阅handy reference sheet for natbib。
答案 1 :(得分:3)
您应该只包含\usepackage[square,sort]{natbib}
。
删除\usepackage{cite}
后会有效。