Linux Manual Pages development
 help / color / mirror / Atom feed
From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
To: Brian Inglis <Brian.Inglis@Shaw.ca>
Cc: linux-man@vger.kernel.org, Alejandro Colomar <alx@kernel.org>,
	Deri <deri@chuzzlewit.myzen.co.uk>
Subject: hyphens at ends of pages (was: No 6.05/.01 pdf book available)
Date: Sun, 13 Aug 2023 16:47:17 -0500	[thread overview]
Message-ID: <20230813214717.su46tr6jqfist26d@illithid> (raw)
In-Reply-To: <1b955f49-8181-5bd5-b818-020c6b5287dd@Shaw.ca>

[-- Attachment #1: Type: text/plain, Size: 2790 bytes --]

Hi Brian,

At 2023-08-13T14:30:34-0600, Brian Inglis wrote:
> Please see attached awk script and logs showing pages with end of page
> "hyphens" in text of PDFs from `pdftotext -layout`: "official" PDF has
> 47, newer PDFs break only at 5 compound word joins or double dashes.

If hyphenation is occurring at the ends of pages but otherwise normally,
then that is a symptom of the *roff automatic hyphenation mode being set
wrong.  The most likely suspect is an argument-free `.hy` invocation
somewhere in the page sources.

This is why I have nattered on about not messing with the hyphenation
mode in man page sources in recent mails (and commit messages) to this
list.[1]

In groff 1.23.0, we smuggled some of the explanation of *roff
hyphenation out of our Texinfo manual into the groff(7) page.  I'm
trimming a few sentences man page authors don't need.

Hyphenation
     When filling, groff hyphenates words as needed at user‐specified
     and automatically determined hyphenation points.  Explicitly
     hyphenated words such as “mother‐in‐law” are always eligible for
     breaking after each of their hyphens.  The hyphenation character \%
     and non‐printing break point \: escape sequences may be used to
     control the hyphenation and breaking of individual words.  [...]
     Otherwise, groff determines hyphenation points automatically by
     default.

     Several requests influence automatic hyphenation.  Because
     conventions vary, a variety of hyphenation modes is available to
     the .hy request; these determine whether hyphenation will apply to
     a word prior to breaking a line at the end of a page (more or less;
     see below for details), and at which positions within that word
     automatically determined hyphenation points are permissible.  The
     default is “1” for historical reasons, but this is not an
     appropriate value for the English hyphenation patterns used by
     groff; localization macro files loaded by troffrc and macro
     packages often override it.

     0    disables hyphenation.

     1    enables hyphenation except after the first and before the last
          character of a word.

     The remaining values “imply” 1; that is, they enable hyphenation
     under the same conditions as “.hy 1”, and then apply or lift
     restrictions relative to that basis.

     2    disables hyphenation of the last word on a page.  (Hyphenation
          is prevented if the next page location trap is closer to the
          vertical drawing position than the next text baseline would
          be.  See section “Traps” below.)
[...]

Regards,
Branden

[1] https://lore.kernel.org/linux-man/20230730200321.ocribgmh2fmk2gto@illithid/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2023-08-13 21:48 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-07  1:16 [PATCH] scripts/LinuxManBook/gropdf: use symlink instead of hard coded groff version Brian Inglis
2023-08-07  2:46 ` No 6.05/.01 pdf book available Brian Inglis
2023-08-07  8:45   ` Alejandro Colomar
2023-08-07  9:16     ` Alejandro Colomar
2023-08-07 16:21       ` Brian Inglis
2023-08-12  0:02         ` Alejandro Colomar
2023-08-12  1:48           ` G. Branden Robinson
2023-08-12 21:32             ` Alejandro Colomar
     [not found]     ` <21975186.EfDdHjke4D@pip>
2023-08-11 23:51       ` Alejandro Colomar
2023-08-12  3:04         ` G. Branden Robinson
2023-08-12 21:33           ` Alejandro Colomar
2023-08-12 17:02       ` Brian Inglis
2023-08-12 20:02         ` Deri
2023-08-13 20:30           ` Brian Inglis
2023-08-13 20:47             ` Alejandro Colomar
2023-08-13 21:55               ` G. Branden Robinson
2023-08-13 22:45                 ` Alejandro Colomar
2023-08-13 22:18               ` Alejandro Colomar
2023-08-14  6:49                 ` Brian Inglis
2023-08-14 10:46                   ` Alejandro Colomar
2023-08-13 21:47             ` G. Branden Robinson [this message]
2023-08-14  5:28               ` hyphens at ends of pages (was: No 6.05/.01 pdf book available) Brian Inglis
2023-08-14 16:06             ` No 6.05/.01 pdf book available Deri
2023-08-14 17:37               ` Alejandro Colomar
2023-08-14 20:01                 ` Alejandro Colomar
2023-08-14 21:22                   ` Deri
2023-08-14 21:32                     ` Alejandro Colomar
2023-08-14 23:26                       ` Deri
2023-08-14 21:40                 ` Deri
2023-08-15  0:50                   ` groff features for hyperlinked man pages (was: No 6.05/.01 pdf book available) G. Branden Robinson
2023-08-15 10:34                     ` G. Branden Robinson
2023-08-18 13:50                     ` Alejandro Colomar
2023-08-19  4:37                       ` G. Branden Robinson
2023-10-01 12:02                         ` Alejandro Colomar
2023-08-18 10:29                   ` No 6.05/.01 pdf book available Alejandro Colomar
2023-08-15  0:34               ` Brian Inglis
2023-08-20 16:48                 ` Deri
2023-08-20 18:54                   ` Alejandro Colomar
2023-08-20 19:06                   ` Brian Inglis
     [not found]                     ` <3262525.44csPzL39Z@pip>
2023-08-21 22:02                       ` Alejandro Colomar
2023-08-21 23:10                         ` Deri
2023-08-21 23:45                         ` Brian Inglis
2023-08-28 12:17                           ` Alejandro Colomar
2023-08-28 18:24                             ` Brian Inglis
2023-08-28 21:11                               ` Alejandro Colomar
2023-08-07  8:29 ` [PATCH] scripts/LinuxManBook/gropdf: use symlink instead of hard coded groff version Alejandro Colomar
2023-08-07 15:01 ` Brian Inglis
2023-08-11 23:57 ` Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230813214717.su46tr6jqfist26d@illithid \
    --to=g.branden.robinson@gmail.com \
    --cc=Brian.Inglis@Shaw.ca \
    --cc=alx@kernel.org \
    --cc=deri@chuzzlewit.myzen.co.uk \
    --cc=linux-man@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox