参考书目中的 \hbox 未满

参考书目中的 \hbox 未满

我收到很多Underfull \hbox指向该*.bbl文件的“ ”警告。这些消息似乎只有当 URL 很长时才会出现,如下例所示:

@techreport{nistguidesec,
  author    = {Wayne Jansen and Timothy Grance},
  title     = {Guidelines on Security and Privacy in Public Cloud Computing},
  month    = {January},
  note     = {Draft Special Publication 800-144. Available at \url{http://csrc.nist.gov/publications/drafts/800-144/Draft-SP-800-144_cloud-computing.pdf}},
}

在生成的 PDF 中,文本正确地用连字符连接,并且链接正确地分成几行(我正在使用hyperref包)

我怎样才能避免出现关于“ underfull \hbox”指向参考书目的烦人的警告信息?

答案1

因为“参考书目中的换行通常比正文中的换行更困难”(biblatex 手册,第 91 页),LaTeX 使用宏来排版参考书目,\sloppy这放宽了 TeX 的一些换行参数/惩罚。但是,\sloppy(可能出于某些好的理由!)不会触及\hbadness导致“ ”警告的 which(除其他外)Underfull \hbox。以下代码(将添加到您的序言中)附加\hbadness 10000\sloppywhich 应该会删除这些警告。

\usepackage{etoolbox}
\apptocmd{\sloppy}{\hbadness 10000\relax}{}{}

或者(并且不会产生不利影响),您可以排版参考书目\raggedright

\usepackage{etoolbox}
\apptocmd{\thebibliography}{\raggedright}{}{}

最小示例(可编译):

\documentclass{article}

\textwidth 300pt

\usepackage{etoolbox}
% Variant A
\apptocmd{\sloppy}{\hbadness 10000\relax}{}{}
% Variant B
% \apptocmd{\thebibliography}{\raggedright}{}{}

\usepackage{hyperref}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@techreport{nistguidesec,
  author    = {Wayne Jansen and Timothy Grance},
  title     = {Guidelines on Security and Privacy in Public Cloud Computing},
  month    = {January},
  note     = {Draft Special Publication 800-144. Available at \url{http://csrc.nist.gov/publications/drafts/800-144/Draft-SP-800-144_cloud-computing.pdf}},
}
\end{filecontents}

\begin{document}

\nocite{*}

\bibliographystyle{plain}
\bibliography{\jobname}

\end{document}

(filecontents 环境仅用于将一些外部文件直接包含到示例中,以便进行编译。对于解决方案来说,它不是必需的。)

相关内容