为何RMarkdown在英文句号后将空格转换为 字符?
为什么RMarkdown只在特定句号后插入非断空格?
这是RMarkdown底层依赖的Pandoc转换工具的默认排版规则,完全是为了贴合英文专业排版的要求:
- 像
i.e.、Dr.这类缩写词或头衔后面的空格,按英文排版规范是不能被换行拆分的——总不能让Dr.单独留在一行末尾,Charles跑到下一行开头吧?所以Pandoc会自动把这些位置的普通空格换成非断空格( ),强制让缩写和后面的内容绑定在同一行,避免破坏阅读节奏。 - Pandoc是靠模式识别来区分场景的:只有当句号属于缩写/头衔(比如前面是单个大写字母加小写字母,或是全小写的常见缩写),且后面跟着空格和大写字母/数字时,才会触发替换;而真正的句子结尾的句号,后面的空格不会被替换。
要是你不想用这个功能,直接在RMarkdown的YAML头部加个Pandoc参数就能关掉:
--- output: html_document: pandoc_args: ["--no-nonbreaking-space"] ---
内容的提问来源于stack exchange,提问作者Shira
相关产品推荐
相关产品推荐

