O "primeiro formulário" é um recurso do groff
. Se o seu "nroff" não for um wrapper para groff
, você verá apenas o segundo formulário.
O recurso é mencionado na página de manual para grotty
(driver groff para dispositivos semelhantes a máquinas de escrever):
By default, grotty emits SGR escape sequences (from ISO 6429, also called ANSI color escapes) to change text attributes (bold, italic, colors). This makes it possible to have eight different back-ground background ground and foreground colors; additionally, bold and italic attributes can be used at the same time (by using the BI font).
Na prática, não funciona bem, por exemplo, veja como o mesmo comentário (pós-processamento dessas sequências) é misrendered aqui :
By default, grotty emits SGR escape sequences (from ISO 6429, also called ANSI color escapes) to change text attributes (bold, italic, colors). This makes it possible to have eight different M[green]backgroundM[] and m[red]foregroundm[] colors; additionally, bold and italic attributes can be used BI]at the same time] (by using the BI font).
e, por essa razão, alguns desenvolvedores optam por não usá-lo (por exemplo, esta discussão da lista de discussão do Emacs).
No entanto, como a página de manual diz "Por padrão" . Então, se você tiver groff, então ele deve estar produzindo essas sequências de escape.
Os empacotadores podem aplicar correções para modificar programas. Um comentário de @muru menciona a versão no Debian (veja relatórios de bugs e página do pacote . O changelog do pacote diz isto:
-- Colin Watson <[email protected]> Sat, 27 Jul 2002 18:41:46 +0100
groff (1.18-1) unstable; urgency=low
* Disable the new ANSI colour/bold/underline escapes in nroff mode,
because most pagers either fail to cope with it or need special options
to do so. It can be re-enabled by editing /etc/groff/man.local and
/etc/groff/mdoc.local, or by setting the environment variable GROFF_SGR
to something non-empty.
No entanto, a fonte groff não menciona GROFF_SGR
; tem apenas referências a GROFF_NO_SGR
:
./NEWS:1108: for the GROFF_NO_SGR environment variable also.
./NEWS:1450:o If the environment variable GROFF_NO_SGR is set, SGR output is disa...
./PROBLEMS:33: 1. Set the GROFF_NO_SGR environment variable.
./doc/webpage.ms:1920:. URL #GROFF_NO_SGR GROFF_NO_SGR
./doc/webpagewebpage.ms:1922:. nop GROFF_NO_SGR
./doc/webpagewebpage.ms:2437:.TAG GROFF_NO_SGR
./doc/webpagewebpage.ms:2439:If the environment variable GROFF_NO_SGR is set, SGR output is
./src/devices/grotty/grotty.man:126:.B GROFF_NO_SGR
./src/devices/grotty/grotty.man:394:.B GROFF_NO_SGR
./src/devices/grotty/tty.cpp:864: if (getenv("GROFF_NO_SGR"))
e o changelog (ChangeLog.118) não dá pistas:
2002-02-12 Werner LEMBERG <[email protected]>
* src/libs/libgroff/Makefile.sub (snprintf.o): Don't use
$(COMPILE.c) to not include groff's assert.h.
* src/drivers/grotty/tty.cc (main): Add GROFF_NO_SGR environment
variable.
* NEWS, src/drivers/grotty/grotty.man: Document it.
A configuração de GROFF_NO_SGR
não fornecerá sequências SGR (a página de manual está correta). O comentário do changelog do Debian refere-se a este trecho de /etc/groff/man.local
, onde o Debian adicionou uma verificação para a variável GROFF_SGR
:
. \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
. \" grotty.
. if '\V[GROFF_SGR]'' \
. output x X tty: sgr 0
e a configuração da variável de ambiente faz com que ela gere sequências SGR para negrito, etc.