更改 Pandoc 用于生成输出的“语言”设置

更改 Pandoc 用于生成输出的“语言”设置

由于我使用 Markdown 来格式化我的文本,因此这不是一个直接的 LaTeX 问题,但“堆栈”的这个子部分似乎是提出我的问题最正确的地方。

我使用以下命令从 markdown 通过 Pandoc 生成 PDF:

pandoc myDoc.md --chapters -o result.pdf

它从我的 markdown 生成章节。这很好,但是它把章节称为“第 1 章”、“第 2 章”等等(参见http://cl.ly/PfRJ)。对于英语文件,这没问题。但我的文件是荷兰语的。

有什么办法可以改变这种情况吗?我认为某个地方有一个模板可以存储这些东西?但我似乎找不到它。

答案1

您可以将lang选项传递给模板,然后使用-V模板将其进一步传递给 babel 包。

pandoc -V lang=nl somefile.markdown

这被翻译成以下 LaTeX 代码,应产生荷兰语章节标题。

\usepackage[dutch]{babel}

答案2

这很简单。您必须将以下参数传递给调用pandoc

-V lang=de

您必须根据 BCP 47 使用语言参数(如 en-GB、fr、de……)

确切的行为描述如下:http://pandoc.org/README.html#language-variables

答案3

您还可以使用 YAML 元数据来存储语言设置。

---
lang: nl
---

将其添加到 markdown 文件的顶部。您无需修改​​命令pandoc

答案4

@Marco 已经回答了您的主要问题。不过,这个问题仍未得到解决:

“我认为某个地方有一个模板可以存储这些东西?但我似乎找不到它。”

如果您没有在 Pandoc 命令行上使用 引用特定模板--template=my-latex-template.tex,那么 Pandoc 将使用内部可用的模板。

Pandoc 为其可以生成的(几乎)所有输出格式都提供了这样的模板。

您可以使用以下命令打印 LaTeX 模板:

pandoc -D latex | tee pandoc-default-template.latex

如果你在文本编辑器中打开该模板,你将看到它使用变量的位置:

  1. 这些变量看起来像$varname$——也就是说,它们被$字符包围了。
  2. 您可以看到变量名称是什么。
  3. 您可以看到如何使用命令行开关来影响生成文档的结果:
    -V varname="some value"
    --variable=varname:"some value"

相关内容