Descobri que groff usa maneiras diferentes de indicar texto em negrito para o utf8
formato de saída.
No FreeBSD 14, groff emite códigos de escape para um terminal (ESC, [1m
):
$ printf ".Dd today\n.Sh NAME\n" | groff -mandoc -Tutf8 | od -c
0000000 \n 033 [ 1 m N A M E 033 [ 0 m \n
[...]
No Linux (debian Bookworm) usa backspaces e overstriking:
$ printf ".Dd today\n.Sh NAME\n" | groff -mandoc -Tutf8 | od -c
[...]
0000120 N \b N A \b A M \b M E \b E \n
Por que isso acontece e existe uma maneira de fazer o Linux groff também usar códigos ESC para o terminal? Eu li a página de manual do groff de cima para baixo, mas não consigo encontrar uma opção para alterar esse comportamento.
(Preciso pós-processar o resultado e os códigos ESC tornam isso muito mais fácil e flexível.)
EDIT : A solução (obrigado a @egmont) foi ler o manual grosseiro(1) do Debian e então forçar o comportamento do SGR com
printf ".Dd today\n.Sh NAME\n" | GROFF_SGR=y groff -mandoc -Tutf8