LaTeX过多分割单词问题

11

我使用LaTeX写了一份文档,采用双栏格式,11pt字号,Times字体。我的许多单词出现了连字符,每个描述列表项都会显示“badbox”警告(尽管输出中没有问题)。我该怎么解决这个问题?


1
你能否提供一个小样本?也许只有一页内容,以便效果可以被调试,但不包括整个文档? - mmr
4个回答

21

虽然可以通过更改TeX的要求或使用ragged选项来解决这个问题,但最好的方法是使用 microtype 包进行修复。只需加载该包即可解决问题:

\usepackage{microtype}

它提供了两个功能来改进段落排版:

  • 边距字距:字符,尤其是标点符号,会稍微突出到边距中。实际上,这会略微增加行长,外观上非常不错。
  • 字体扩展:除了拉伸/收缩单词之间的空格以创建平齐段落外,字符本身也会被微小的拉伸/收缩(少于1%)。在字符级别上,这在视觉上几乎无法察觉,但令人惊讶的是,在段落级别上却产生了巨大的影响。

东西有点变动,但是仍然有很多连字符。我想我可能需要微调一些参数。 - TripShock
这听起来很棒。一定要试试看。 - Geoff
1
每个人都应该知道这个包。谢谢。 - Roly

12

您应该在导言区设置连字惩罚:

\hyphenpenalty=750

对于我在信纸上(8.5x11英寸)使用12磅字体的双栏布局,750的值正合适。根据您的需要调整该值。数字越高,连字符就会越少。您还可以查看hyphenat包,它提供了不仅仅是连字符惩罚。


4

我一直只是使用\raggedright,但我从未在整篇论文中使用过。 这个FAQ(这是我常用的LaTeX资源之一)推荐使用ragged2e包。

哦,还有一个副注:除非我可以在输出中看到它们,否则我从不关注坏盒子。 这可能很愚蠢,但是LaTeX比我更挑剔。


6
使用草稿选项——\documentclass[draft]{...}——或者像\overfullrule=5pt这样的东西将以红色显示超宽盒子,这样您就可以注意到它们并决定是否关心。为了使TeX更加宽容,您可以更改\hfuzz(例如使用\hfuzz=1pt)。 - ShreevatsaR
1
非常有帮助,谢谢 - 我简直不敢相信我以前从未听说过这个。 - Matt Parker

4

根据另一篇文章的答案,我发现以下设置可以完美地防止断字,而不会难看:

\tolerance=9999
\emergencystretch=10pt
\hyphenpenalty=10000
\exhyphenpenalty=100

\tolerance=9999 允许尽可能多的空格。

\emerencystretch=10pt 允许每行有一些额外的空格。

\hyphenpenalty=10000 完全禁用连字符。

\exhyphenpenalty=100 允许使用已经存在的连字符。


非常有帮助,谢谢! - Tintenfisch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接