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

时间:2015-11-26 15:44:15

标签: pdf localization latex locale pandoc

我想得到像这些“......”这样的引号,但当我用Pandoc处理我的降价文字时,它给了我“......”。它可能归结为如何使Pandoc使用区域设置?这是我的命令行:

if let currentUser = PFUser.currentUser() {
    // if user is connected, check if he is ban
    let isBan = currentUser.valueForKey("isBan") as! Bool //supposed isBan allways exist in user table
    print("Is user ban ? : \(isBan)")
    if isBan {
        PFUser.logOutInBackground()
    }
}

3 个答案:

答案 0 :(得分:2)

您可能希望指定整个文档的语言,这样它不仅会影响引号,还会影响连字,牢不可破的空格和其他区域设置。

为此,您可以指定lang选项。来自pandoc's manual

  

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}
---

甚至更好,编辑pandoc默认模板

pandoc -D latex > ~/.pandoc/templates/default.latex

并永久添加\usepackage{csquotes}

答案 1 :(得分:1)

Pandoc目前(2015年11月)only generates English type quotes。但是你有两个选择:

  1. 您可以使用--no-tex-ligatures选项关闭默认情况下为LaTeX输出启用的--smart typography选项。然后使用您想要的正确的unicode字符(例如„...”)并使用支持unicode的--latex-enginelualatexxelatex)。

  2. 您可以在Pandoc LaTeX template中使用\usepackage[danish=quotes]{csquotes}或类似内容。来自README

      

    如果指定了--smart选项,pandoc将生成印刷正确的输出,将直引号转换为引号,---转换为em-dashes,--转换为en-dashes,以及{ {1}}到省略号。在某些缩写之后插入不间断空格,例如“Mr。”

         

    注意:如果您的LaTeX模板需要csquotes包,pandoc会自动检测到这一点并使用...作为引用文字。

答案 2 :(得分:1)

尽管@mb21已经提供了答案,但我想补充一点,现在可以简单地在(例如)yaml metadata block中包含您需要的内容,所以它是不再需要创建自己的模板。例如:

---
title: foo
author: bar
# other stuff
header-includes:
    - \usepackage[german=quotes]{csquotes}
---

# contents