使用 biblatex 溢出 hbox

使用 biblatex 溢出 hbox

这是我的 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

相关内容