LNCS:如何将 DOI 拆分成多行以避免出现警告:.bbl 文件上的 \hbox 未满(不良率 10000)?

LNCS:如何将 DOI 拆分成多行以避免出现警告:.bbl 文件上的 \hbox 未满(不良率 10000)?

我正在使用 LNCS 样式撰写论文,并且收到很多Underfull \hbox警告,因为从 Bib 项目的 doi 属性生成的 URL 不会分成多行。

LNCS 风格将书目项目 doi 值如:转换11.1111/111-1-1111-1111-1\_11为 URL 形式:https://doi.org/11.1111/111-1-1111-1111-111

以下是生成警告的最小工作示例:

\documentclass{llncs}
\begin{document}

  Hello world, I cite somebody here \cite{Somebody}.

\bibliographystyle{splncs04}
\bibliography{paper-bibliography}
\end{document}

在该paper-bibliography.bib文件中我有以下条目:

@inbook{Somebody,
  author = {Somebody Someone},
  year = {2014},
  pages = {193--198},
  title = {Paper, Rock, and Scissors},
  isbn = {123-1-1234-1234-4},
  doi = {11.1111/111-1-1111-1111-1\_11}
}

代码结果如下:

在此处输入图片描述

并生成以下警告:

Underfull \hbox (badness 10000)

我希望避免出现 Underfull 警告并得到以下结果,其中 URL 被分成两行,如下所示

在此处输入图片描述

为了获得预期结果,我所做的是对 Bib 条目进行一些破解:

@inbook{Somebody,
    author = {Somebody Someone},
    year = {2014},
    pages = {193--198},
    title = {Paper, Rock, and Scissors},
    isbn = {123-1-1234-1234-4},
    url = {\url{https://doi.org/11. 1111/111-1-1111-1111-1\_11}}
}

我将doi条目改为:url = {\url{https://doi.org/11. 1111/111-1-1111-1111-1\_11}}并能够获得所需的结果。但是,我认为以这种方式更改所有 Bib 条目的 doi 值不是一个好主意。

是否有任何适当的方法可以在不修改 Bib 项目的 doi 值的情况下获得预期结果?

答案1

一个好的解决方案是xurl允许在任意位置拆分 URL 的包。

splncs04和的一个问题llncs.cls是它将 doi 定义为纯文本字符串(除非hyperref加载了包)。避免此问题的一种方法是添加

@preamble{ "\renewcommand{\doi}[1]{\url{https://doi.org/#1}}" }

bib文件,然后使用

doi = {11.1111/111-1-1111-1111-1\_11}

即,对于 doi(因此 doi 没有通用前缀)。如果想要 doi 与文本采用相同的字体,请包含

\urlstyle{rm}

在序言中。

相关内容