Ao escrever uma página de manual de um comando, a SINOPSE contém:
.RB [ \-v
.IR version ]
Infelizmente ao formatar a SINOPSE há uma quebra de linha entre "[-v" e "versão]".
Como posso evitar isso?
Adicionando o óbvio
Conforme solicitado várias vezes, aqui está uma entrada de amostra mais longa para a falta de imaginação, bem como uma captura de tela mostrando o problema:
E aqui está a fonte:
.TH FOOBAR-DEMO 8 2022-03-16 "Charlie Brown" "System Administration"
.\"
.SH NAME
foobar-demo \- demonstration of manual formatting
.\"
.SH SYNOPSIS
.na
.nr hy-mode-save \n[.hy]
.hy 0
.B foobar-demo123
.RB [ \-a
.IR match_spec ]
.RB [ \-\-resource-agent
.IR match_spec ]
.RB [ \-v
.IR version ]
.RB [ \-\-version
.IR version ]
.hy \n[hy-mode-save]
.ad b
.\"
.SH DESCRIPTION
The purpose of this page is none...
As macros atrapalham. Você pode corrigir o problema usando um espaço de escape (que não dividirá a linha), assim:
Thomas Dickey tem uma solução correta (e portátil), mas, como você, acho um pouco pouco atraente devido às sequências de escape de seleção de fonte. Eu prefiro as macros de estilo de fonte do man (7).
Além disso, a
\
sequência de escape (espaço de barra invertida) também pode ser feia porque seu espaço inquebrável é de largura fixa; em uma linha que passa por ajustes, isso pode ser perceptível e chocante.Portanto, recomendo usar a sequência de escape de continuação da linha de saída
\c
para permitir que uma linha de entrada termine sem causar a inserção de um espaço quebrável e a\~
sequência de escape para um espaço inquebrável, mas ajustável.Você desativou o ajuste em seu exemplo, mas isso não é necessário, como mostrarei. Ao usar
\~
, o ajuste pode ser feito uniformemente nas linhas da sinopse sem causar problemas. Essa sequência de escape é portátil para todos os projetos troff atualmente mantidos , exceto para o Illumos. groff tem desde 1991 (pelo menos), Heirloom Doctools desde setembro de 2005, mandoc (que não é um troff , mas analisa páginas de manual) desde setembro de 2009, cleanroff desde setembro de 2016 e Plan 9 do User Space troff a partir de agosto 2022.No seu exemplo, você usou o registrador groff
.hy
e a sintaxe de interpolação estendida do groff para obtê-lo . Se você estiver usando groff , talvez queira considerar suas extensõesSY
/ para o pacote de macro man (7) para definir suas sinopses de comando. 2 (Essas macros também salvam e restauram o modo de hifenização para você.)YS
Muito provavelmente, você tem um CRLF na linha, em vez de LF.