Hello Thomas,
Thomas Dickey wrote on Sun, Oct 26, 2025 at 05:55:53AM -0400:
> On Sun, Oct 26, 2025 at 04:53:38AM -0400, Thomas Dickey wrote:
>> On Sat, Oct 25, 2025 at 08:53:02PM -0500, G. Branden Robinson wrote:
>>> At 2025-10-26T00:43:19+0000, Thomas Dickey wrote:
>>>> correct a recent change to curs_termino.3x, along with formatting
>>>> fixes for manpages.
>>> This change regresses formatting on DWB 3.3, Plan 9, and Solaris 10
>>> troffs, causing some synopsis lines to overset (overrun the right
>>> margin). That's because those formatters use a line length of 65n in
>>> nroff mode, not 78-80n as Heirloom Doctools troff and groff (for their
>>> man(7) packages), and mandoc(1) do.
>> so... can we set the line-length for those in a directive?
> For instance, would
> .if n .ll 70
>
> work with those older versions, or would (putting it before .TH for
> instance) be ignored?
In addition to what Branden said, consider this text from the roff(7)
manual page distributed with mandoc:
ll [[+|-]width]
Change the output line length. If the width argument is omitted,
the line length is reset to its previous value. The default
setting for terminal output is 78n. If a sign is given, the line
length is added to or subtracted from; otherwise, it is set to
the provided value. Using this request in new manuals is
discouraged for several reasons, among others because it
overrides the "mandoc(1) -O width" command line option.
So, in a nutshell, if you would choose to put .ll into your manual
page source code, that would amount to breaking the experience of
substantial numbers of users on modern operating systems - at least
those using mandoc, but likely also some using groff, and what for?
To work around a purely cosmetic issue on antique formatters that
few people use?
This would be as bad a violation of the basic idea "in manual pages,
do not mess with low-level roff(7) requests" as it gets.
Also consider that some people feel very strongly about line length
settings. For example, when i decided that it makes sense for
man(1) in OpenBSD to automatically reduce the line length when
running in a terminal that is narrower than the default of 80 columns
(as witnessed by TIOCGWINSZ), but not to increase it when running
in a terminal that is wider than the default (because some people
argue that reading running text becomes difficult when lines become
very long), i got substantial pushback from other people who did
want to use very wide terminals (like 200 columns or something like
that) and did want man(1) to automatically use all that width.
Ultimately, the latter people relaxed because they realized that
others don't want man(1) to automatically produce such wide text
and hence it is impossible to please everyone, and there are
configuration knobs they can use to suit their personal preference,
but they did not relent without some grumbling.
So the mandoc implementation of man(1) now uses a width of 78 columns
by default, less than that when someone uses a narrower terminal,
and people who want more manually set the "output width" option in
man.conf(5). I think nobody will be thrilled when an individual
manual page overrides this user setting and forces .ll 70n instead.
Yours,
Ingo