8

How to prevent hyphenation across page breaks?

Here is my minexample:

\starttext
\dorecurse{200}{Aprikosengeschmacksrichtung }
\stoptext

What I mean is a feature, which many other typographic programms have, e.g. Adobe Indesign, see here: http://indesignsecrets.com/stop-hyphenating-across-columns-and-page-breaks.php

Hyphenation across pages is really ugly and uncomfortable to read, how would you prevent them?

6
  • This is not a context solution, but you may get some ideas from the impnattypo package, which implements this rule of French typography for LaTeX. See tex.stackexchange.com/questions/20493/…
    – Thérèse
    Jul 9, 2014 at 13:34
  • See perhaps tex.stackexchange.com/q/8558
    – Joseph Wright
    Jul 9, 2014 at 13:39
  • No this \brokenpenalty does not work! It is without effect. See my minexample.
    – Mustafa
    Jul 9, 2014 at 14:05
  • Is the ignore of \brokenpenalty simply a bug, or does ConTeXt servers another mechanism for the same effect?
    – Mustafa
    Jul 10, 2014 at 7:11
  • Mustafa, my friend, effects are easy. Look closely \dorecurse{200}{Aprikosenge\/schmacksrichtung}
    – doed
    Jul 11, 2014 at 12:18

1 Answer 1

2

The short answer is: You cannot suppress hyphenation at a page break in the usual TeX formats (plain, latex, context). You can discourage a page break at a hyphenated line (\brokenpenalty does this).

Somewhat longer explanation: TeX breaks paragraphs into lines. The lines are than broken into pages without touching the line breaks again. So you can shift the page break around in the presence of hyphenated lines; but you cannot tell TeX to retry on breaking the paragraph into lines when the page break falls on a hyphen. Note that shifting the page break has other "costs": Unevenly distributed white space on the pages, maybe different page heights, or other side effects (figure placement).

I will not exclude that someone writes an advanced output routine to allow retrying the line breaking, but I am not aware that anyone has done this already.

You must log in to answer this question.

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