我正在同时使用memoir
和biblatex
包。总的来说,我对两者都很满意。但是,在我的参考书目中,我遇到了一些溢出,我不知道如何避免它们……是否有包/命令/设置/技巧可以实现美观的参考书目并避免如下所示的溢出?我知道 latex 在排版方面做得最好,但也许有一些我不知道的陷阱。谢谢!
更新
使用该block=ragged
选项可以避免溢出,但也会省略我非常喜欢的文本对齐:-)(见下图)所以不幸的是,这不是一个替代方案。
答案1
正如评论中提到的,microtype
是您的朋友,并且还能为文档的其余部分提供更好的输出。
因为所有这些选项都取决于您的参考列表/参考样式/边距设置/字体选择(我们没有),所以我列出了一些选项并使用示例文本(\lipsum
)和示例参考列表对它们进行了比较,这些示例文本和示例参考列表biblatex-examples.bib
都应包含在任何已biblatex
安装的系统中。
除 之外microtype
,我建议为 选项设置biblatex
。cgniederblock=
建议block=ragged
,但考虑到您问题的更新,我认为这对您来说是不可接受的。不过,我已将其包含在内以供将来的访问者使用。:-)
我认为block=space
它更接近您的理想输出。它允许在参考书目中的“块”之间插入额外的空间,这可以缓解可能的换行问题。
另一个选择可能\RaggedRight
是ragged2e
,它允许不完全对齐地使用连字符,但考虑到您对该选项的不满,这看起来也不是最好的block=ragged
。但同样,这在很大程度上取决于文本/字体/边距,所以我将它作为一个选项,供未来的访问者尝试。
平均能量损失
这是我用来比较设置的基本测试 MWE:
\documentclass[draft]{memoir} % `draft' to show overfull \hboxes
\usepackage{lipsum}
%\usepackage{ragged2e}
\usepackage[final]{microtype} % `final' to prevent disabling
\usepackage[
backend=biber, % default, but avoids warnings
block=space, % allow additional horizontal space between blocks
% block=ragged, % set the bibliography ragged right and introduce a line break penalty
]{biblatex}
\addbibresource{biblatex-examples.bib} % bunch of sample entries
\begin{document}
\lipsum % print the sample text
\nocite{*} % print all references in the bibliography
%\raggedright
%\Raggedright
\printbibliography
\end{document}
剧透警告:上面的示例中显示了“最佳”(IMHO 以及我的测试输入/参考)组合。
比较
根据您上面的更新,我删除了所有“太粗糙”的内容(默认结果除外)。从“最差”到“最好”:
- 默认配置;否
\raggedright
,否\RaggedRight
,否microtype
,默认block=none
:14 个坏框,最差的26.46pt
太宽 - 使用默认设置添加
microtype
:4 个坏框,最差的8.09pt
太宽 block=space
另外添加:microtype
1 个坏盒子,1.12pt
太宽
我在屏幕截图中展示了最严重的问题,但长 DOI/URL 类字符串周围的换行也得到了极大改善。两个例子:
之前: 之后:
笔记
如果出于某种原因,你确实希望microtype
只在参考书目中启用它(尽管我建议在整个文档中使用它),你可以在文档中的适当位置使用\microtypesetup{disable}
和\microtypesetup{enable}
,详情见这个答案。这些键仍然没有记录,但您可以在当前(v2.5a)包代码的第 4118-4128 行(v2.5a 文档的第 125 页)中找到代码。