Overleaf natbib \cite{website} 错误

Overleaf natbib \cite{website} 错误

我最近将我的作品从 texmaker 移到了 Overleaf。我将我的 Mendeley 库链接到了 Overleaf。

现在,当我尝试编译文档时,除了网站引用之外,一切都正常。有没有想过如何解决这个问题?由于这是 Mendeley 导入,我无法手动更改它们。请参阅下面的工作示例(请注意,我使用 \input 将章节输入到 main.tex 文件中,因此没有序言),我使用加载包的 .sty 文件,其中包含 natbib:

Some text ... see figure \ref{fig:ecommerceGrowth}.

\begin{figure}[htb]
...
\begin{minipage}{.5\textwidth}
  \centering
  \includegraphics[width=\textwidth]{figures/ecommerceGrowth}
  \caption{Worldwide e-commerce growth 2015-2020. Adapted from \cite{EMarketer2016}}\label{fig:ecommerceGrowth}
\end{minipage}
\end{figure}

以及 .bib 条目的副本:

@misc{EMarketer2016,
    title = {{Worldwide Retail Ecommerce Sales Will Reach {\$}1.915 Trillion This Year - eMarketer}},
    year = {2016},
    author = {{eMarketer}},
    url = {https://www.emarketer.com/Article/Worldwide-Retail-Ecommerce-Sales-Will-Reach-1915-Trillion-This-Year/1014369}
}

当然还有 Overleaf 错误(对于所有 3 个输入都是相同的):

/main.tex:
Package natbib warning: There are undefined citations.
/main.lof:8:
Package natbib warning: citation 'EMarketer2016' on page \textlatin {v} undefined on input line 8.

我认为这是被 @misc 触发的,因为所有其他条目都在工作(bib 文件有 200 个条目),其中 3 个 @misc 不起作用。这是 overleaf 问题还是我缺少某些包?

顺便说一句:当我输入 \cite{} 时,入口确实会弹出到下拉列表中。重新编译或从头开始重新编译选项无法解决问题,删除条目并重新添加也无法解决问题。

之前我在 Overleaf 上的另一个项目中使用过,该项目有 Mendeley 库和网站输入作为 @misc。

编辑:当我导出它并使用 texmaker 编译它时,它运行时没有任何问题......

编辑 2:您请求的 MWE 确实有效。因此,我猜想它一定位于底层 Overleaf 系统中的某个位置 - 所有内容都复制粘贴到 MWE 中。

\documentclass[a4paper,11pt,twoside]{report}
\usepackage{filecontents}

\begin{filecontents}{libtest.bib}
@misc{EMarketer2016,
    title = {{Worldwide Retail Ecommerce Sales Will Reach {\$}1.915 Trillion This Year - eMarketer}},
    year = {2016},
    author = {{eMarketer}},
    url = {https://www.emarketer.com/Article/Worldwide-Retail-Ecommerce-Sales-Will-Reach-1915-Trillion-This-Year/1014369}
}

@misc{Corcoran2002,
author = {Corcoran, Jem N},
booktitle = {Journal of the American Statistical Association},
isbn = {3540609318},
issn = {0162-1459},
pages = {360--360},
pmid = {36621914},
title = {{Modelling Extremal Events for Insurance and Finance}},
volume = {97},
year = {2002}
}
\end{filecontents}

\usepackage{natbib}
\usepackage{hyperref}

\begin{document}
\bibliographystyle{apalike} 

\section*{A section}
This does not work in actual code \cite{EMarketer2016}. \newline
This does work in actual code \cite{Corcoran2002}. \newline

\bibliography{libtest}
\end{document}

编辑 3:我一直在缩小问题范围,现在知道:1)引用在图形环境之外工作正常;2)当我在 \caption{} 中包含 \cite{sourceA} 时它会崩溃。

这有效:

\cite{EMarketer2016}

 \begin{figure}[htb]
    ...
    \begin{minipage}{.5\textwidth}
      \centering
      \includegraphics[width=\textwidth]{figures/ecommerceGrowth}
      \caption{Worldwide e-commerce growth 2015-2020. Adapted from XX }\label{fig:ecommerceGrowth}
    \end{minipage}
    \end{figure}

但事实并非如此:

\begin{minipage}{.5\textwidth}
  \centering
  \includegraphics[width=\textwidth]{figures/ecommerceGrowth}
  \caption{Worldwide e-commerce growth 2015-2020. Adapted from \cite{EMarketer2016}}\label{fig:ecommerceGrowth}
\end{minipage}
\end{figure}

再次强调,同样的代码可以在我在 Overleaf(或 texmaker)上的任何其他项目上运行,因此可以确信代码是没问题的。

找到了!当我尝试编译\listoffigures和时发生了问题\listoftables,显然\cite在花括号中使用时会崩溃\caption{}。解决方案很简单(归功于此 stackexchange 帖子)只需使用选项括号\caption即可:

错误的:\caption{Worldwide e-commerce growth 2015-2020. Adapted from \cite{EMarketer2016}}

正确的:\caption[Worldwide e-commerce growth 2015-2020.]{Worldwide e-commerce growth 2015-2020. Adapted from \cite{EMarketer2016}}

谢谢大家的帮助,非常感谢。希望这能帮助遇到同样问题的人 ;)

相关内容