如何使用 pandoc 获取本地化引号?

hel*_*cim 5 pdf latex locale localization pandoc

我想得到像这样的引号 \xe2\x80\x9e...\xe2\x80\x9d 但是当我用 Pandoc 处理我的 markdown 文本时,它给了我 \xe2\x80\x9c...\xe2\x80 \x9d。这可能归结为一个问题:如何让 Pandoc 使用区域设置?这是我的命令行:

\n\n
pandoc -o out.pdf  -f markdown -t latex in.md\n
Run Code Online (Sandbox Code Playgroud)\n

sco*_*coa 3

您可能想要指定整个文档的语言,这样它不仅会影响引号,还会影响连字、不可分割的空格和其他区域设置细节。

为此,您可以指定该lang选项。来自pandoc 的手册

lang:使用符合 BCP 47 的代码(例如 en 或 en-GB)标识文档的主要语言。对于某些输出格式,pandoc 会将其转换为存储在附加变量 babel-lang、polyglossia-lang (LaTeX) 和 context-lang (ConTeXt) 中的适当格式。

此外,同一手册指出:

如果您的 LaTeX 模板或任何包含的头文件调用 csquotes 包,pandoc 将自动检测到这一点并使用 \enquote{...} 作为引用的文本。

在我看来,确保报价本地化的最佳方法是添加:

---
lang: fr-FR
header-includes:
- \usepackage{csquotes}
---
Run Code Online (Sandbox Code Playgroud)

或者更好的是,编辑 pandoc 默认模板

pandoc -D latex > ~/.pandoc/templates/default.latex
Run Code Online (Sandbox Code Playgroud)

并永久添加\usepackage{csquotes}到其中。

  • 根据 https://pandoc.org/MANUAL.html#creating-a-pdf ,您还需要在 frontmatter 中添加 `csquotes: true` 。 (3认同)