使用 markdown、pandoc 和 xelatex 创建双语(德语、天城文(印地语、梵语))pdf

使用 markdown、pandoc 和 xelatex 创建双语(德语、天城文(印地语、梵语))pdf

我一直在寻找一个好的设置来创建双语文档,最近偶然发现了 Markdown。

我正在运行 Linux。

在 Remarkable 和 Atom 中,我得到了天城文和德语输出,但格式并不令我满意。

我现在正尝试使用 Pandoc 获取 Markdown 文件的 Pdf 输出,但天城文并未显示。

例如在 Markdown 文档中,我输入 काम kām,但 Pdf 中只显示 kām。

这是我在终端中输入的 Pandoc 行:

pandoc --latex-engine=xelatex -f markdown h1b.md -t latex -o h1b.pdf

这是我的 Markdown 文档中的 Yaml 标头:

---
toc: true
fontsize: 12pt
documentclass: article
font: Noto Serif
output:
  pdf_document:
    latex_engine: xelatex
...

我肯定遗漏了什么,但不确定是什么。我尝试不更改默认的 Pandoc Latex 模板,因此如果有解决方案需要我在 Yaml 代码中添加一些内容,那就最好了。

编辑:如果有人有支持梵文的 Pandoc 模板,那就太好了。我目前正在尝试制作一个。

答案1

双语文档通常包含一种主要语言和一种次要语言。Pandoc LaTeX 模板用于polyglossia双语文档。

以下是支持的语言列表polyglossia(第 5 页,polyglossia手动的)。

<code>polyglossia</code> 支持的语言列表

我假设主要语言为德语,次要语言为印地语。请相应调整。

Markdown 源:

---
fontsize: 12pt
lang: de
mainfont: Arial
header-includes:
  - \newfontfamily\devanagarifont{Shobhika}
---

[काम]{lang=hi} kām

我已经为 Hindi 使用了 Shobhika(如评论中所述)。这种方法更灵活,因为您可以为不同的语言使用不同的字体。在上面的例子中,德语使用 Arial,而 Hindi 使用 Shobhika。如果您想使用同时具有两种字符集的字体,只需使用mainfont,删除\newfontfamily\devanagarifont{Shobhika}

使用以下命令(pandoc 2.7.3)进行编译:

pandoc -t latex -o output.pdf input.md --pdf-engine=xelatex

最后,输出:

示例输出

更多信息,请参阅§语言变量Pandoc 手册

答案2

Pandoc 2.15 及更新版本使用 babel 而不是 polyglossia 和 xelatex。调整已接受的答案:

---
fontsize: 12pt
lang: de
mainfont: Arial
header-includes:
  - \babelfont[hindi]{rm}{Shobhika}
---

[काम]{lang=hi} kām

相关内容