groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] Macro "itc" is needed to make escape "\c" useful


From: Ingo Schwarze
Subject: Re: [Groff] Macro "itc" is needed to make escape "\c" useful
Date: Sun, 14 May 2017 15:15:12 +0200
User-agent: Mutt/1.6.2 (2016-07-01)

Hi Ralph,

Ralph Corderoy wrote on Wed, May 03, 2017 at 11:37:08AM +0100:
> Ingo wrote:

>> Given that the man(7) .TP .itc hack got committed to groff
> ...
>> Of course, i still don't recommend actually using it, because that
>> would make your manual page misrender on groff <= 1.22.3, on mandoc <=
>> 1.14.1, and on any version of anything else.

> This is sad news.  It's an insufficient improvement due to one man's
> dislike of inline \f.  It shouldn't be used.  Hopefully groff's
> documentation points out in all cases that it's incompatible?

So far, i did not find any place in groff's documentation explaining
that.  In groff(7), the description of \c is very vague.  While

  https://www.gnu.org/software/groff/manual/html_node/Line-Control.html

is considerably more detailed, it is still somewhat unclear, in
particular because the concept of input text lines remains undefined
(apparently, macro lines sometimes count as text lines, but this
is neither said nor obvious) and because it is not completely clear
what "continuation of the same input text line" means (apparently,
a dot in the first column is still treated as a macro invocation,
which it wouldn't be if it were on the same input line).  So it was
already noticed that \c documentation is unclear.  I guess that is
because that escape sequence relies on internal undocumented concepts.
It was also noted that the description of \c doesn't fully match
the description in Heirloom documentation.

In any case, the documentation of \c does not document interaction
with macro sets, and i guess doing so would not be an improvement
because how \c interacts with macro sets depends on implementation
details of the respective macros, and besides, low-level reference
documentation usually shouldn't talk about high-level user facilities.


On the other hand, the groff_man(7) manual page so far doesn't talk
about low-level constructs at all, except for discouraging them in
a wholesale manner.  While that discouragement is clearly of a noble
intention, it is unfortunately unrealistic.

A day ago, i posted a patch with a first step to improve groff_man(7)
in this respect, also mentioning the .TP - \c interaction in passing.

Yours,
  Ingo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]