我通过 Mendeley 在我的 .bib 文件中写了以下参考文献:
\begin{thebibliography}{2}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
\providecommand{\doi}[1]{doi: #1}\else
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
\bibitem[Reichstein et~al.(2019)Reichstein, Camps-Valls, Stevens, Jung,
Denzler, Carvalhais, and Prabhat]{Reichstein2019}
Markus Reichstein, Gustau Camps-Valls, Bjorn Stevens, Martin Jung, Joachim
Denzler, Nuno Carvalhais, and Prabhat.
\newblock {Deep learning and process understanding for data-driven Earth system
science}.
\newblock \emph{Nature}, 566:\penalty0 195--204, 2019.
\newblock ISSN 0028-0836.
\newblock \doi{10.1038/s41586-019-0912-1}.
\newblock URL \url{www.nature.com/nature}.
\end{thebibliography}
由于这个引用,LaTeX 给了我一个警告:
underful \hbox (不良 1158)
我认为导致此错误的原因是最后一位作者的名字。他的名字只有一个单词。如果我将某个单词作为他的姓氏,latex 不会给我任何错误。
我怎样才能解决这个错误,而不修改他的名字以维护他的荣誉?
答案1
bib-label 不能跨越多行。我会从 bib-label 中删除所有名称,然后将其放在后面:
\documentclass{article}
\begin{document}
\cite{Reichstein2019}
\begin{thebibliography}{2}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
\providecommand{\doi}[1]{doi: #1}\else
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
\bibitem[Reichstein et~al.(2019)]{Reichstein2019}
Markus Reichstein, Gustau Camps-Valls, Bjorn Stevens, Martin Jung, Joachim
Denzler, Nuno Carvalhais, and Prabhat.
\newblock {Deep learning and process understanding for data-driven Earth system
science}.
\newblock \emph{Nature}, 566:\penalty0 195--204, 2019.
\newblock ISSN 0028-0836.
\newblock \doi{10.1038/s41586-019-0912-1}.
\newblock URL \url{www.nature.com/nature}.
\end{thebibliography}
\end{document}
答案2
这不是一个错误:只是警告你 tex 在该行上将单词间距拉得太长了。你可以直接忽略它。1158 还不算太糟:通常 latex 不会在 badness 低于 1000 时发出警告,因此你可以设置
\hbadness=1200
在您的参考书目之前,它也不会对此发出警告。