O que C @ t {++} significa na página do manual do gdb?

16

Eu estava lendo a manpage do gdb e me deparei com a linha:

You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.

O C @ t {++} parece um regex mas não consigo decodificá-lo.

O que isso significa?

    
por sam 18.10.2018 / 03:53

2 respostas

28

O GNU odeia man pages, então eles geralmente escrevem documentação em outro formato e geram uma página man a partir dele, sem realmente se importar se o resultado é utilizável.

C@t{++} é alguma marcação texinfo que não foi traduzida. Não se destinava a fazer parte da documentação visível ao usuário. Ele deve simplesmente dizer C++ (possivelmente com alguma fonte especial para o ++ para torná-lo bonito).

    
por 18.10.2018 / 04:04
18

A sequência @t{...} é a marcação texinfo para compor uma sequência usando uma fonte de largura fixa (consulte o Fontes seção do manual texinfo para mais detalhes e alguns exemplos.)

Parece que eles estavam tentando escrever "C ++" e ter o "++" usando uma fonte de largura fixa (como " ++ ".) Talvez alguém tenha encontrado melhores resultados com fontes específicas ao renderizar a documentação em PostScript ou PDF ou algum formato que use fontes de largura variável por padrão.

O motivo pelo qual isso parece não funcionar e você está vendo a sequência não processada é que texinfo é usado pelo sistema de documentação info , enquanto man usa nroff, que é um idioma diferente com comandos diferentes (por Por exemplo, o comando para alternar para uma fonte de largura constante em nroff é \f(CW ), portanto, é claro que não reconheceu a seqüência @t{...} inalterada.

Esse problema parece ter sido apresentado em um envio de Abril de 2013 onde as páginas do manual foram convertidas em texinfo e essa marcação específica foi introduzida. Parece que o script agora usado para gerar as páginas man ( texi2man.pl ) não reconhece ou converte corretamente essa sequência.

    
por 18.10.2018 / 04:24