Pandoc的`lang`选项使字体难看

时间:2018-11-25 21:46:48

标签: fonts latex pandoc cyrillic

我正在尝试学习pandoc。我以前使用latex是因为我总是处理公式,代码。这是我编译为pdf的简单文档:

---
title: Test
...

# Test!

This is a test of *pandoc*.

- list one
- list two
- $E=mc^2$
- На русском

Горит костер рябины красной.

$$
A = \int\limits_{-\infty}^{\infty} e^{-x^2}dx
$$

```python
class ClassName(object):
    """docstring for ClassName (Кириллица?)"""
    def __init__(self, arg):
        super(ClassName, self).__init__() # English comment
        self.arg = arg # Кириллический комментарий

```

我尝试了两种不同的命令来生成pdf:

  1. pandoc test1.md -o test1.pdf
  2. pandoc -V lang=ru-RU -o test1-2.pdf test1.md

第一个命令未能翻译西里尔符号。此外,我总是写非英语的文档,因此我需要使用俄语书写的字幕生成文档。正如lang文档所建议的那样,我使用了pandoc属性。现在,西里尔字母符号可以正确显示,但是如果您看屏幕截图几秒钟,您会发现该字体看起来比以前丑陋得多。特别是代码。

怎么回事以及如何解决?

screenshot

1 个答案:

答案 0 :(得分:1)

我发现很难以与pandoc提供的界面一致的方式来设置拉丁,西里尔字母,数学和代码块的字体。我发现的最佳折衷方案是:

  • lang设置为等于en,并明确标记俄语部分。
  • 将XITS字体用于普通文本和数学
  • 使用覆盖西里尔字母的固定宽度字体,例如解放Mono
  • 使用XeLaTeX或LuaLaTeX处理

全部合并:

---
title: Test
mainfont: XITS
monofont: Liberation Mono
mathfont: XITS Math
lang: en
---

# Test!

This is a test of *pandoc*.

- list one
- list two
- $E=mc^2$
- [На русском]{.class lang="ru-RU"}

::::: {.class lang="ru-RU"}

Горит костер рябины красной.

:::::


$$
A = \int\limits_{-\infty}^{\infty} e^{-x^2}dx
$$


```python
class ClassName(object):
    """docstring for ClassName (Кириллица?)"""
    def __init__(self, arg):
        super(ClassName, self).__init__() # English comment
        self.arg = arg # Кириллический комментарий

```

pandoc cyr.md --pdf-engine=lualatex -o cyr.pdf的结果:

enter image description here