我最近将我的作品从 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}}
谢谢大家的帮助,非常感谢。希望这能帮助遇到同样问题的人 ;)