为什么Unix手册页使用双反引号代替双引号?


32

我注意到,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.

我没有一个完整的答案,但是Emacs(几乎在我所见过的所有模式中)都有突出显示`...',使其脱颖而出(即使在评论中也是如此)。
echristopherson '16

Answers:


33

在过去的50年中,这些字符的语义和常用字形发生了变化(几次)。

ASCII的六位前身包含各种多用途字符,包括一个单引号字符,该字符用于与引号具有某些相似性的任何内容:开引号,闭引号,撇号或(通过套印)急性或重音。

ASCII引入了又一个类似引号的字符,因此,我们现在有了',它用作撇号,右引号和重音符,而`用作开引号或重音符(具体字形在各种字体中有所不同)。

由于某些奇怪的原因,ISO-8859-1被声明'为单引号或无方向引号,被声明`为严重的重音,再添加了一个重音´(急性重音), 并取消了叠印(因此孤立的重音标记现在完全没有意义了) 。后来的扩展(MS-Windows代码页和Unicode)通过引入新的定向引号字符并结合了重音来解决此问题。

当大多数字体都为'和配对(倾斜和/或卷曲)字形时,您在这里看到的实际上是ASCII时代的遗物`


4
实际上,ISO-8859-1与套印无关,它反映的是结果而不是原因。由于(基本上)没有视频终端对该功能的支持,因此丢失了该功能。硬拷贝终端不受影响。
Thomas Dickey

7

这样的输出是makeinfoTexinfo来源生成的。Texinfo还可以渲染为其他格式,例如PDF,因此它需要比ASCII更具表现力。也许是为了避免抛弃语义,对makeinfo引号进行编码,这样您才能看到什么是开和闭引号。

示例:如果看不到差异,我可以想象如果您编写了一些Texinfo源代码并依靠可见的报价差异会有点困惑,因为您会将其预览为PDF。因为您从未使用进行渲染makeinfo,所以您将永远不会发现它是不可读的,就像这样渲染。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.