1

This may not be a question appropriate to this forum, as I don't have any LaTex code to post. If so, culpa mea!

My question: I am seeing some, in my opinion, very awkward hyphenating words for line breaks in a physics paper that I am reviewing. It is written in LaTex in two columns for a journal publication. I am curious, in general, why LaTex might make such odd choices.

Specifically, in a few instances, a plural word ending in 's' is broken over the line with only the trailing 's' on the new line. Similarly, a few short acronyms (three and four letters) are broken with a single letter before or after the break.

Although there are two columns, the print is relatively small, think Physics Review Letter word-to-column count, so I don't think the typography algorithm balancing word spacing to hyphenation is overly constrained. Is this kind of behavior normal to LaTex? It looks very odd. Does anyone know if this is a common side effect of a common package?

Thanks

3
  • 2
    Atleast you could show us a picture ;-) (I know it might be confidential). But can mask out everything except this and try. Or try to reproduce such an issue from your local pc and post it here. IMO, that would attract more readers. Feb 28 '19 at 13:47
  • You could try using the package microtype. I had a similar issue in my paper, and it improved it.
    – Max R
    Feb 28 '19 at 14:43
  • @MaxR you shouldn't, see my reply if you get single letters cut off something is wrong in the class. Nothing wrong with microtype in general but it is not the answer to the problem though it makes linebreaking generally better by support the hz-algorithm etc. Feb 28 '19 at 16:19
1

Well, LaTeX (or TeX for that matter) can do all kind of ugly things if asked gard enough to do so. What you describe (without giving an example which makes it a bit difficult to do more than guessing) since to indicate that the class file for that journal is badly broken probably due to a misunderstanding or two by the person who wrote it.

Here is my guess on what happened:

  • TeX has two parameters \lefthyphenmin and \righthyphenmin that define the minum length of characters that need to be at either end of a word after hyphenation. The default values for these are 3 and 2 so words with just four characters aren't ever hyphenated if the default is in place.

  • Now you can increase either parameter, e.g., by asking for \righthyphenmin=3, however you can't actually decrease the value without producing chaos — and that is what happens in your case (the \righthyphenmin must be set to 1 somewhow else you couldn't get a trailing single character on the next line).

The reason why you can't decrease from the default is simple: all the standard patterns for most (or even all?) languages have been build under the assumption that the minimum values are 3,2. Thus, if you set it to 1 then the pattern may allow breaks with just 1 character simply because they have no rules for preventing it because that is assumed to be an impossible case (makes the pattern much smaller).

In theory one can build pattern that work correctly with 1,1 (and if a language has a few words that actually allow a hyphen break resulting in a word part of one character they would work correctly, but the pattern set would be very large to prevent all the bad ones, which is why this isn't done.

So my guess is that the class actually set the min values to 1 under the mistaken assumption that this helps linebreaking in small measures without doing any harm. Well it does help but it does a lot of harm :-)

So if my assumption is correct, then the class should be corrected.

3
  • The babel module for Greek sets the minima to 1 and 1.
    – egreg
    Feb 28 '19 at 16:28
  • 1
    @egreg if it does so globally then it is badly wrong, if it does so only for its own pattern and they support that, then fine Feb 28 '19 at 16:30
  • @FrankMittelbach thank you very much. Without having access to the actual .tex file, I think this is as helpful and illuminating as possible.
    – dave
    Mar 1 '19 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.