At 2024-04-02T13:29:08-0500, G. Branden Robinson wrote:
> At 2024-04-02T13:42:59-0400, Steve Izma wrote:
> > Also for \% at the beginning of a word, I rarely use this.
> 
> I use it frequently in man(7) documents, because the `hw` request is not
> portable/reliable (in theory).  Also there's no mechanism for removing
> these, so if we tolerate/encourage their use, doing so deals a blow to
> reliable/predictable batch rendering.[1]

I could expand on this point.

CSTR #54 (1992) says:

.hw word
        Specify hyphenation points in words with embedded minus signs.
        Versions of a word with a terminal s are implied; i.e., dig-it
        implies dig-its.  This list is examined initially and after each
        suffix stripping.  The space available is small--about 128
        characters.

I claim "not reliable" because not only do the declared `hw`
hyphenations in document N affect any document N+M formatted in the same
run, but you have to consider the (unspecified) failure mode of
exhausting the amount of space available for these exceptions.  And
that's on AT&T troff.  GNU troff dynamically sizes this exception list
so there's no problem in that respect.[1]  But in both formatters you're
at the mercy of whatever was formatted before your document in the run.
This is true in general--anyone could define a trap or change the
control character and make your life hell--but, still, it strikes me as
a wart, where even well-intentioned, careful documents could cause
trouble for each other.

I expect the second and third sentences don't apply to GNU troff either,
but our documentation says nothing about this.  Guess I'll have to
check.

I filed <https://savannah.gnu.org/bugs/?65549> regarding the "automatic
hyphenation roaring back to life" problem.

Regards,
Branden

[1] 
https://www.gnu.org/software/groff/manual/groff.html.node/Other-Differences.html

    
https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/env.cpp?h=1.23.0#n3626
    
https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/env.cpp?h=1.23.0#n3560
    
https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/dictionary.cpp?h=1.23.0#n47

Attachment: signature.asc
Description: PGP signature

Reply via email to