如何停止 bookdown 重新排序标点符号?

How do I stop bookdown reordering punctuation?

我已经分叉 bookdown-minimal here 来生成我的问题的最小可重现示例。

我希望下面的句子按原样呈现。也就是说,我希望句号(句号)保持在引号之外

This is the on-line version of "A Book".

我在这里做了一个最小的 bookdown 示例

bibliography: [book.bib] 行导致句子使用“Build book”呈现为

This is the on-line version of "A Book."

我知道这是美式英语的惯例,但其他语言(和其他英语变体)不这样做,我也不想在我的真实句子中这样做(似乎其他标点符号也会出现问题,例如 !?,即使是美式英语也能正确放置)。

是什么导致了这种行为? (请注意,我实际上并没有在我的最小示例中包含引用。)有什么简单的方法可以阻止它吗?

这应该可以解决问题:

This is the on-line version of "\text{A Book}"\text{.}

系统尊重 lang 元数据变量。因此,如果您正在编写英式英语,请将其添加到您的 YAML 元数据中:

lang: en-GB

结果应该是

This is the on-line version of “A Book”.

lang: en-US

给予

This is the on-line version of “A Book.”


如果所有其他方法都失败了,您可以求助于添加 Lua filter which adds an invisible character like a zero-width joiner。这也将防止重新排序的发生。

function Quoted (quote)
  return {quote, pandoc.Str '\u{200d}'}
end

请注意,您可以通过在 Markdown 输入中使用 ‍ 实体来针对每个案例利用此技巧:

This is the on-line version of "A Book"‍.