带有 Pandoc 和 Markdown 的 Beamer 演示 - 波斯字符显示不正确

Ami*_*ani 7 markdown beamer pandoc

我有一个像这样的简单降价:

---
dir: rtl
title: "??? ??? ????? ? ?????"
author: "???? ?????"
date: "??????? - ? ?? ????"
---
Run Code Online (Sandbox Code Playgroud)

我将它保存在一个名为的文件中,Presentation.md并使用以下命令进行编译:

pandoc Presentation.md -t beamer -o Presentation.pdf --pdf-engine=xelatex -V mainfont="Sahel"
Run Code Online (Sandbox Code Playgroud)

命令运行没有任何错误,但字体显示不正确:

在此处输入图片说明

如果我将字体从 更改Sahel为BNazanin,它工作正常:

在此处输入图片说明

但我对Sahel字体感兴趣。有什么办法可以解决吗?

我不认为字体已损坏,因为它在其他程序中显示良好,例如

代码:

在此处输入图片说明

电报:

在此处输入图片说明

火狐:

在此处输入图片说明

Ami*_*ani 6

正如@tarleb所建议的,我在TeX.StackExchange上提出了我的问题并得到了答案。回答问题的人没有 Stack Overflow 帐户,所以我只是将他们的答案复制到这里,以防有人先发现这个问题。

所需要的只是-V lang=ar在原始命令中指定,这样Pandoc就不会加载字体的默认英文脚本。字体是波斯语,但显然由于阿拉伯语和波斯语具有相似的字母,因此将语言设置为阿拉伯语作品。所以我可以通过两种方式实现我想要的:

编译时在命令中指定语言:

使用这个命令,

pandoc pres.md -t beamer -o pres.pdf --pdf-engine=xelatex -V mainfont="Sahel" -V lang=ar
Run Code Online (Sandbox Code Playgroud)

我们可以看到它的工作原理:

在此处输入图片说明

在 markdown 文件的元数据中指定语言(我个人更喜欢)

所以我的降价文件看起来像这样:

---
lang: ar
dir: rtl
title: "??? ??? ????? ? ?????"
author: "???? ?????"
date: "??????? - ? ?? ????"
---
Run Code Online (Sandbox Code Playgroud)

我们可以看到这个方法也有效:

在此处输入图片说明