單列和兩列格式的公差

單列和兩列格式的公差

我注意到,tolerance = 200對於文章類別中的單列佈局,但tolerance = 9999對於兩列佈局。但在 中ltxgrid.cls,或 的tolerance值保持在 200 。 \onecolumngrid\twocolumngrid

兩欄文章類別中較大的公差解決了兩欄模式中較窄線條的許多問題,但它可能會留下非常寬的空間。

tolerance所以,我的問題是:為什麼在文章類別中將兩列值設定得如此高,以及在典型的兩列模式中理想的值是什麼?

答案1

article

\if@twocolumn
  \twocolumn
  \sloppy
  \flushbottom
\else
  \onecolumn
\fi

因此您看到的容差來自於 的使用\sloppy,您可以在其他狹窄的列上下文中使用相同的命令,或者如在幾個地方討論的那樣,例如

\fussy、\sloppy、\emergencystretch、\tolerance、\hbadness 是什麼意思?

您可能會考慮一個版本\sloppy不會增加\tolerance太多並且更多地依賴於\emergencystretch.

答案2

正如大衛所說,這裡沒有真正的最佳值。這一切都取決於狹窄設定中的實際內容以及您是否願意透過重寫文字、添加 TeX 找不到的連字符點等來手動糾正個別問題。

如果您將容差設定得較高,那麼 TeX 會考慮更多可能的斷點,並可能找到在有問題的情況下工作的斷點。結果你會得到一條或幾條間隔相當糟糕的線。如果你設定較低的容差但使用較高的緊急拉伸,那麼Tex 最初只會找到「更好」的換行符,即那些間隔不那麼大的換行符,但如果這不能給出解決方案,那麼Tex 不會讓一行嚴重間隔開您將得到更多(甚至所有)線條“相當糟糕”的間隔,因為這種緊急拉伸隨後會添加到所有線條中,從而使間隔鬆散的線條總體上看起來更好。哪種效果更好取決於品味,但恕我直言,兩者都不是真正偉大。

我通常將容差設置為2000-3000 左右,並為額外的緊急拉伸設置一個較小的值,並準備手動修復任何剩餘問題,但如果您需要一個全自動解決方案(或幾乎),那麼像\sloppy 或非常高的值緊急拉伸(或高容差+匹配緊急拉伸的適當組合,以便找到大致相同的斷裂組)是唯一的可能性。

相關內容