我注意到由 Unix 实用程序格式化的手册页和其他文档经常使用双反引号``
,后跟双单引号''
来包裹引用的短语,而不是双引号字符"
。单引号也同样被替换。为什么是这样?
以下是来自手册页的几个示例grep
:
To find all occurrences of the pattern `.Pp' at the beginning of a line:
$ grep '^\.Pp' myfile
The apostrophes ensure the entire expression is evaluated by grep instead
of by the user's shell. The caret `^' matches the null string at the
beginning of a line, and the `\' escapes the `.', which would otherwise match
any character.
The grep utility is compliant with the IEEE Std 1003.1-2008 (``POSIX.1'')
specification.
答案1
在过去 50 年里,这些字符的语义和常用字形已经发生了几次变化。
ASCII 的六位前身包含各种多用途字符,包括一个类似单引号的字符,该字符用于与引号有一定相似性的任何内容:左引号、右引号、撇号或(通过叠印)急性或重重的口音。
ASCII 又引入了一种类似于引号的字符,因此现在我们有了'
,它被用作撇号、结束引号和尖音符,以及`
,它被用作左引号或重音符(不同字体的具体字形有所不同)。
由于某种奇怪的原因,ISO-8859-1 声明'
为撇号或无向引号,声明`
为重音,又添加了一个重音´
(急性重音),
并废除套印(这样孤立的重音标记现在就完全没有意义了)。后来的扩展(MS-Windows 代码页和 Unicode)通过引入新的定向引号字符和组合重音符号解决了这个问题。
您在这里看到的本质上是 ASCII 时代的遗物,当时大多数字体都有 和 的配对(倾斜和/或卷曲)'
字形`
。
答案2
这样的输出是由makeinfo
from生成的德克萨斯信息网来源。德信信息还可以渲染为其他格式,例如 PDF,因此它需要比 ASCII 更具表现力。也许为了避免丢弃语义,makeinfo
对引号进行这样的编码,这样您就可以看到什么是左引号和右引号。
示例:如果您看不到差异,我可以想象,如果您编写了一些 Texinfo 源代码并依赖可见的报价差异,我会有点困惑,因为您会以 PDF 形式预览它。因为您从未使用 进行渲染makeinfo
,所以您永远不会发现它不可读,像这样渲染。