Is there a way to enforce TeX's behavior?
Not prepackaged. You are invited to hack around in the files in layout/hyphenation.
OK, I did:
It is all in org.apache.fop.layout.LineArea.java. I altered the hyphenation strategie as follows:
If there is a hyphen in a word and the character data before the hyphen will fit into the current line, hyphenation will be done at the existing hyphen and nowhere else in the word.
If there is a hyphen but not enough space left do not hyphenate at all except for the case when this word is the first in a line (->the column/cell is not wide enough to hold the word in one piece).
In the latter case fall back to the standard hyphenation strategie.
There is also a bug (I think) in LineArea:
If the word to be hyphenated is the first in a line an additional space is put in front of it.
I tried to solve it by not assigning a 'space' as a spacer but a zero width space (\u200B) in this case. But I still end up with a visible space in the PDF document.
I will post my LineArea.java as soon as I have it cleaned up a bit. :-)
Ralf
