2

I notice that tolerance = 200 for a single-column layout in the article class but that tolerance = 9999 for two-column layout. But in ltxgrid.cls, tolerance stays at 200 for either \onecolumngrid or \twocolumngrid.

The larger tolerance in the two-column article class resolves a number of problems in the the narrower lines of two-column mode, but it can leave very wide spaces.

So, my questions are: why is the two-column value set so high in article class, and what is a desirable value for tolerance in a typical two-column mode?

2 Answers 2

4

article does

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

so the tolerance you see is from the use of \sloppy, you could use the same command in other narrow column contexts, or as discussed in several places, eg

What is the meaning of \fussy, \sloppy, \emergencystretch, \tolerance, \hbadness?

You might consider a version of \sloppy that does not increase \tolerance so much and relies more on \emergencystretch.

3
  • Ah, that does explain why \tolerance is so large in two column! Thanks also for the link to your other post. Are any particular values of \tolerance and \emergencystretch "typical" for two-column documents?
    – John
    Commented Aug 16, 2019 at 11:33
  • @John I would guess that 99% of documents use the defaults so they are typical even if not great, if you want to experiment I'd try \fussy rather than \sloppy but increase \emergencystretch to say 3em but it's a black art picking good values:-) Commented Aug 16, 2019 at 11:48
  • Thanks - I will give that try.
    – John
    Commented Aug 16, 2019 at 12:00
3

As David said there is no real optimal value here. It all depends on the actual content in narrow setting and your willingness to manually correct individual issues by rewriting the text, adding hyphenation points that TeX didn't find and the like.

If you set tolerance high then TeX has more possible breakpoints it considers and possibly find one that works in a problematical case. As a result you get one or a few fairly badly spaced out lines. If you set tolerance lower but use a higher emergencystretch, then Tex initially finds only "better" line breaks, i.e., those that aren't so spaced out but if that doesn't give a solution then instead of having one line badly space out you will get more (or even all) lines "fairly badly" spaced out as this emgergencystretch is then added to all lines making loosely spaced lines look better in general. What works better is a matter of taste, but imho neither is really great.

I typically set tolerance to something around 2000-3000 with a small value for additional emergencystretch and am prepared to fixed any remaining problem manually, but if you need a fully automatic solution (or nearly) then something like \sloppy or a very high value for emergencystetch (or a suitable combination of a high tolerance + a matching emergencystretch so that roughly the same set of breaks are found) is the only possibility.

1
  • Thanks for this advice. I'm working on a template for technical papers (written by other folks), so the approach should be mostly automated.
    – John
    Commented Aug 16, 2019 at 17:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .