我正在阅读 gdb 的联机帮助页,发现了这样一行:
You can use GDB to debug programs written in C, C@t{++}, Fortran and Modula-2.
C@t{++} 看起来像正则表达式,但我似乎无法解码它。
这是什么意思?
答案1
GNU 讨厌手册页,因此他们通常以另一种格式编写文档并从中生成手册页,而不真正关心结果是否可用。
C@t{++}
是一些未翻译的 texinfo 标记。它无意成为用户可见文档的一部分。它应该简单地说C++
(可能使用一些特殊的字体使其++
看起来不错)。
答案2
序列@t{...}
是 texinfo 标记,用于使用固定宽度字体排版序列(请参阅字体有关更多详细信息和一些示例,请参阅 texinfo 手册的部分。)
看起来他们试图编写“C++”并让“++”使用固定宽度的字体(如“ ++
”。)也许有人发现,在以 PostScript 或 PDF 或默认使用可变宽度字体的某种格式呈现文档时,使用特定字体可以获得更好的效果。
这似乎不起作用并且您看到未处理的序列的原因是info
文档系统使用 texinfo,而man
使用 nroff,这是具有不同命令的不同语言(例如,切换到常量的命令nroff 中的宽度字体是\f(CW
),所以它当然无法识别@t{...}
未更改的序列。
这个问题似乎已经在一个从2013年4月开始提交其中手册页被转换为 texinfo,并引入了特定的标记。现在用于生成手册页 ( ) 的脚本似乎texi2man.pl
无法识别或正确转换该序列。