持续出现 \hbox 未满警告

持续出现 \hbox 未满警告

\pretolerance无论我如何设置参数、\tolerance和,都无法解决这个问题\emergencystretch

最小工作示例可下载字体使用xelatex

\documentclass[10pt,twoside]{book}
\usepackage[paperwidth=5.5in,paperheight=8.75in,left=1in,top=1in,right=0.75in,bottom=1in]{geometry}
\usepackage{fontspec}
\setmainfont{sorts_mill_goudy.otf}
\usepackage{fix-cm}
\usepackage{microtype}
\tolerance=2000
\emergencystretch=1in

\begin{document}

Vivamus est quam, maximus vulputate felis a, fringilla scelerisque sapien.

\vspace{2em}
\clearpage

\end{document}

警告:

Underfull \hbox (badness 3503) in paragraph at lines 12--13
[]\EU1/sorts_mill_goudy.otf(0)/m/n/10 Vivamus est quam, maximus vulputate felis
 a, fringilla

我尝试过的所有方法都无法消除此警告,除非用 掩盖它\hbadness。在我的实际案例中,通过向任一方向更改\pretolerance或 ,\tolerance我可以生成更多的警告,但还有几个像这样的持续警告。增加\emergencystretch没有效果。

我已阅读完以下所有内容,但仍然不知道还能尝试什么:

  1. 如何抑制“Underfull \vbox (badness 10000) ... while \output is active”?
  2. 什么是未满的水平盒子和垂直盒子以及如何去除它们?
  3. http://www.tex.ac.uk/FAQ-overfull.html

这绝对不可能发生......我不得不尝试生成大约 20 段 lorem ipsum,然后才能在不使用确切的真实文本的情况下重现这种情况。

但是,如果只是存在一些罕见的文本组合,而这些组合在排版时不可能没有错误,那么为什么我的项目中 11,000 个单词中出现了 3 个这样的组合,而我上一个项目中 60,000 个单词中却没有出现一个这样的组合呢?

最重要的是,为什么增加还不能\emergencystretch满足它呢?

我在这里感到沮丧和困惑,并且强烈地与使用“黑色艺术”来描述 LaTeX 的这一部分有关(\tolerance 和 \badness 之间有什么区别?)。

答案1

3503 不是所以坏的。

当然,您使用英语连字规则对模拟拉丁语进行连字,这没有帮助。

\emergencystretch添加(有效)额外拉伸以帮助断线,但你知道这一点紧急情况采取行动后,TeX 仍会给出原始的不良警告。因此,添加此参数会使输出看起来更好,但不会解决段落的内在不良计算。

无关,但您可能不想fix-cm使用 xelatex(您根本没有使用 cm,但即使您没有指定字体fontspec默认为拉丁现代)

我没有你的字体,但这里有一个使用拉丁现代字体和 badness 2080

在此处输入图片描述

\documentclass[10pt,twoside]{book}
\usepackage[paperwidth=5.5in,paperheight=8.75in,left=1in,top=1in,right=0.75in,bottom=1in]{geometry}
\usepackage{fontspec}
%\setmainfont{sorts_mill_goudy.otf}
\usepackage{fix-cm}
\usepackage{microtype}
\tolerance=2000
\emergencystretch=1in

\begin{document}

Vius est quam, maximus vulputate felis a, fringilla scelerisque sapien.

\vspace{2em}
\clearpage

\end{document}

这里的问题基本上是 TeX 不能连字符,scelerisque所以最好修复它而不是扭曲间距

在此处输入图片描述

Vius est quam, maximus vulputate felis a, fringilla scel\-er\-is\-que sapien.

相关内容