groff
[Top][All Lists]
Advanced

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

Re: [Groff] Nesting font macros in man pages


From: Colin Watson
Subject: Re: [Groff] Nesting font macros in man pages
Date: Thu, 4 May 2017 19:07:28 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, Apr 24, 2017 at 06:29:57PM +0200, Ingo Schwarze wrote:
> There is little you can do to make writing legacy man(7) code
> easier for the novice.  The problem is that it always requires
> mixing two different language levels:  man(7) macros and low-level
> roff requests and escapes.  And that it also requires writing
> physical rather than semantic markup, which is obviously harder
> to do in a consistent manner.
> 
> Writing mdoc(7) is much easier for the novice because it's semantic
> and because it does not require mixing in low-level roff features.
> But trying to make man(7) easier to write is bound for disaster.
> The only remaining asset of man(7) is portability,

The main practical reason I've stuck with man(7) in some cases (such as
in man-db) despite generally preferring mdoc(7) is that I think
translations are important, and po4a(1) works rather more gracefully
with man(7).  With mdoc(7), I find that I end up with nonsense like this
in my .pot file, which I really can't expect a translator to have the
slightest clue about:

  #. type: Plain text
  #: madison-lite.1:21
  msgid ""
  "E<.Nm> E<.Op Fl Fl config\\-file Ar file> E<.Op Fl Fl mirror Ar directory> "
  "E<.Op Fl Fl nocache> E<.Op Fl Fl update> E<.Op Fl S> E<.Op Fl r> E<.Op Fl a "
  "Ar architecture Ns Op , Ns Ar ...> E<.Op Fl c Ar component Ns Op , Ns Ar "
  "...> E<.Op Fl s Ar suite Ns Op , Ns Ar ...> E<.Ar package> E<.Op Ar ...>"
  msgstr ""

Locale::Po4a::Man(3pm) does offer some ways to hit this over the head,
but they don't really work very well in practice, I think because it
doesn't understand the way that mdoc(7) parses its argument list for
callable macro names.  An understandable omission given the complexity,
but it does end up being a blocker for me.

This is of course not a deficiency in *roff, but it's a problem in the
wider ecosystem that IMO a serious push towards mdoc(7) ought to
address.

-- 
Colin Watson                                       address@hidden



reply via email to

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