![使用 markdown、pandoc 和 xelatex 创建双语(德语、天城文(印地语、梵语))pdf](https://linux22.com/image/362926/%E4%BD%BF%E7%94%A8%20markdown%E3%80%81pandoc%20%E5%92%8C%20xelatex%20%E5%88%9B%E5%BB%BA%E5%8F%8C%E8%AF%AD%EF%BC%88%E5%BE%B7%E8%AF%AD%E3%80%81%E5%A4%A9%E5%9F%8E%E6%96%87%EF%BC%88%E5%8D%B0%E5%9C%B0%E8%AF%AD%E3%80%81%E6%A2%B5%E8%AF%AD%EF%BC%89%EF%BC%89pdf.png)
我一直在寻找一个好的设置来创建双语文档,最近偶然发现了 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
手动的)。
我假设主要语言为德语,次要语言为印地语。请相应调整。
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
最后,输出:
答案2
Pandoc 2.15 及更新版本使用 babel 而不是 polyglossia 和 xelatex。调整已接受的答案:
---
fontsize: 12pt
lang: de
mainfont: Arial
header-includes:
- \babelfont[hindi]{rm}{Shobhika}
---
[काम]{lang=hi} kām