GREP 错误:警告:无法选择字体“i”

GREP 错误:警告:无法选择字体“i”

我正在学习 iscsiadm 的用法,不知何故我注意到grep.

尝试运行以下 grep 命令man iscsiadm | grep "aia"会导致troff:<standard input>:498: warning: cannot select font 'i'.

我试了一下,发现当我 grep for iaor时并没有出现错误ai,因此,它一定是由特定模式引起的aia

谁能为这种行为提供解释?

编辑

@telcoM

我运行了这两个命令,两个文件都包含相同的错误;它们实际上是相等的,是的,我不再在控制台中看到错误消息。这两个文件都包含与以前相同的错误消息。

@TheNotoriousGBR

看来你是对的。我运行了命令zgrep '\\fi' $(man -w iscsiadm),实际上大写的“I”丢失了:

\fiSNS\fR supported depends on build options, but is enabled by default.

根据之前的结果,该问题似乎与grep许多人建议的无关,但实际上位于maniscsiadm 本身的页面内。

我应该保持标题不变还是将其更改为更合适的标题?

答案1

正如我在 eyoung100 的评论中所指出的(编辑:在现已删除的答案中),我在 Debian 的 open-scsi 2.1.3-5 软件包中没有看到这个问题。另外,我的该文档副本的第 498 行没有字体选择转义序列(或请求),因此几乎可以肯定您使用的是另一个版本。

我的副本格式没有警告:

$ nroff -ww -man -z ./doc/iscsiadm.8

(我曾经-ww打开所有警告并-z抑制格式化输出,因为我感兴趣的是诊断消息。)

我确实看到了,在我的副本的第 503 行doc/iscsiadm.8文件,内容如下:

like you would in node mode, run \fIiscsiadm \-m fw\fR.

如果我删除大写 I,我会得到以下结果。

$ nroff -ww -man -z ./doc/iscsiadm.8
troff:./doc/iscsiadm.8:503: warning: cannot select font 'i'

因此,我认为您的副本也发生了类似的情况。

你可以试试这个:

$ zgrep '\\fi' $(man -w iscsiadm)

这应该告诉您该页面是否存在我怀疑的错误。

人们可能想知道为什么会发生错误。这是由于字体选择转义序列的语法造成的\f。就是这样格罗夫(7) 总结。

     \fP     Select previous font mounting position (abstract style or
             font); same as “.ft” or “.ft P”.
     \fF     Select font mounting position, abstract style, or font with
             one‐character name or one‐digit position F.  F cannot be P.
     \f(ft   Select font mounting position, abstract style, or font with
             two‐character name or two‐digit position ft.
     \f[font]
             Select font mounting position, abstract style, or font with
             arbitrarily long name or position font.  font cannot be P.
     \f[]    Select previous font mounting position (abstract style or
             font).

方括号形式是 GNU特罗夫AT&T 的扩展特罗夫语言。 (它们实际上可能起源于 SoftQuad特罗夫,现在几乎被遗忘的 AT&T Documenter's Workbench 2.0 的后代特罗夫.)

因此,当您\f后面跟着左括号(或左方括号以外的其他字符时[,下一个字符将被解释为要选择的字体的名称。 (也可以是个位数字体安装位置,但这种用法在男人(7) 页——幸运的是。)

据,直到...为止格罗夫就终端而言,仅支持RIB、四种字体名称BI;这糟糕的(1) 手册页说明了更多内容。尝试选择任何其他字体名称都会失败;与 Unix 中的许多其他内容一样,*roff 字体名称区分大小写。 格罗夫1.23.0 开始在字体选择失败时发出诊断,比早期版本的情况要多得多格罗夫做过。

相关内容