我收到很多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
到\sloppy
which 应该会删除这些警告。
\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 环境仅用于将一些外部文件直接包含到示例中,以便进行编译。对于解决方案来说,它不是必需的。)