这个页面描述了如何使用AsciiDoc语法插入弯曲的引号和撇号。它涵盖了速记语法,该语法的限制,以及何时需要直接输入这些字符。

单双引号语法

AsciiDoc 在作为受限格式对(例如,围绕一个单词或短语)使用时,不会给单引号或双引号赋予特殊的含义。在这种情况下,kbd:['] 和 kbd:["] 字符被认为是直引号(也称为哑引号、垂直引号或打字机引号)。当 AsciiDoc 处理器在这种上下文中遇到直引号时,它将按照输入的内容输出它们。

单引号和双引号语法
Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=straight-quotes]

单引号和双引号语法的结果如下呈现。

Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=straight-quotes]

你可以通过在引号对内直接添加重复使用的约束单行格式化对(即一对反引号,{反引号})来指示AsciiDoc处理器输出弯曲引号(也称为智能引号、卷曲引号或排印引号)。这两个格式化对的组合形成了一个新的约束格式化对,用于生成单个和双个弯曲引号。

单引号和双引号曲线标点符号语法
Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=c-quote-co]
  1. 要输出双曲线引号,请将一个词或短语用一对双引号(")和一对反引号(`)包围起来。

  2. 要输出单个弯引号,请在一对单引号(')和一对反引号(`)中包围一个单词或短语。在这个例子中,_wormwood and licorice_这个短语在文档呈现时应当用单个弯引号包围。

Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=c-quote]

在生成双曲线和单曲线引号时没有不受约束的等效方法。在这种情况下,必须直接使用字符kbd:[‘]、kbd:[’]、kbd:[“]和kbd:[”]来输入曲线引号。

撇号语法

当使用kbd:[']键输入时,如果直接在单词字符之前和之后有一个直撇号,比如在缩写词和所有格单数形式中,AsciiDoc处理器会将其翻译成弯曲的撇号。这种对智能排版的部分支持,不需要任何特殊语法,是从AsciiDoc.py继承的遗留特性。

曲线引号替换
奥拉夫的桌子一团糟。

“The result of 曲线引号替换 is rendered below.” 的翻译结果如下。

奥拉夫的桌子一团糟。

如果你不希望两个单词字符之间的直引号(straight apostrophe)被渲染为曲引号(curved apostrophe),请在它前面加上反斜杠(\)来转义。

转义一个撇号
奥拉夫的桌子……

转义一个撇号的结果在下面呈现。

Olaf的桌子……

一个直接由两个单词字符包围的撇号是在替换替代阶段处理的,而不是内联格式化(引号)阶段。要了解防止替换替代的其他方法,请参见subs:prevent.htmlpass:pass-macro.html

当撇号直接跟随一个空格或标点,比如所有格复数形式时,默认不会弯曲。要在不被两个词字符包围的情况下渲染一个弯曲的撇号,就像你标记单个弯曲引号的后半部分一样(即,`')。这种表示弯曲撇号的语法实际上是不受约束的。

弯曲的撇号语法
Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=apos]

在下面弯曲的撇号语法的渲染输出中,注意到复数所有格的撇号,出现在_狼人_后面,是弯曲的,就像省略号之前的_00s_的撇号一样。

Unresolved directive in quotation-marks-and-apostrophes.adoc - include::example$text.adoc[tag=apos]

占有的等宽字体

为了制作一个所有格的等宽短语,你需要切换到不受约束的格式,然后跟上一个明确的排印式撇号。

在单词中使用带弯曲撇号的等宽字体
"`npm`的工作是管理你的应用程序的依赖项。"

一个``std::vector```的大小是它包含的项目数量。

“The result of 在单词中使用带弯曲撇号的等宽字体 is rendered below.”翻译成中文是:“在单词中使用带弯曲撇号的等宽字体的结果如下所示。”

npm`的工作是管理您应用程序的依赖项。

一个std::vector`的大小是它包含的项目数。

当单词短语的最后一个(或唯一一个)单词以"`s`"结尾时(即复数所有格形式),你需要使用类似的语法。

在单词末尾使用带弯曲的撇号和等宽字体。
这个类的静态方法使得操作文件和目录变得容易。

结果为“在单词末尾使用带弯曲的撇号和等宽字体。”如下。单词 class 用等宽字体呈现,并在末尾带有一个弯曲的撇号。

这个`的静态方法使得对文件和目录的操作变得简单。

你可以通过在受限格式对后紧跟一个排印用的撇号来获得相同的结果。在这种情况下,你可以利用排印撇号是标点符号这一事实,避免使用不受限的格式设置。

class` 的静态方法使得操作文件和目录变得容易。

正如您所见,直接使用字符kbd:[’]输入弯曲的撇号通常更为简单。AsciiDoc提供的简写语法仅仅是为了方便。