这是我的 MWE(这是一个实际的书目项目,草稿选项用于显示溢出的 hbox):
\documentclass[draft]{article}
\usepackage{filecontents}
\begin{filecontents*}{x.bib}
@BOOK{LV12,
title = {Algebraic operads},
publisher = {Springer},
year = {2012},
author = {Loday, Jean-Louis and Vallette, Bruno},
volume = {346},
pages = {xxiv+634},
series = {Grundlehren der Mathematischen Wissenschaften [Fundamental Principles
of Mathematical Sciences]},
address = {Heidelberg},
doi = {10.1007/978-3-642-30362-3},
isbn = {978-3-642-30361-6},
}
\end{filecontents*}
\usepackage{biblatex}
\addbibresource{x.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
得出的结果为:
段落第 27-27 行的 \hbox 过满(宽 15.12822pt)
我通常知道如何修复我自己编写的文本中过满的水平框,但不知道如何修复由包生成的文本。这里最好的处理方法是什么?更改条目不是一个选择。
答案1
正如 egre 在评论中指出的那样,您可以为特定单词添加连字符。另一种可能性是加载相应的连字符模式(以及语言相关单词),例如通过使用babel
选项加载包ngerman
。当您有不同语言的不同条目时,就会出现问题,而 biblatex 目前无法处理这种情况。
所以,你仍然需要一些体力劳动。
\documentclass[draft]{article}
%\usepackage[ngerman]{babel}
\hyphenation{Grund-leh-ren Ma-the-ma-ti-cal}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{LV12,
title = {Algebraic operads},
publisher = {Springer},
year = {2012},
author = {Loday, Jean-Louis and Vallette, Bruno},
volume = {346},
pages = {xxiv+634},
series = {Grundlehren der Mathematischen Wissenschaften [Fundamental
Principles of Mathematical Sciences]},
address = {Heidelberg},
doi = {10.1007/978-3-642-30362-3},
isbn = {978-3-642-30361-6},
}
\end{filecontents*}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
答案2
一个自动的解决方案是在 \printbibliography 之前将 \emergencystretch 设置为 2em-3em。
来源:\fussy、\sloppy、\emergencystretch、\tolerance、\hbadness 是什么意思?
此设置对于整个文档来说也是安全的:自动从 \fussy 回退到 \sloppy