Pandoc `lang` 选项使字体难看
Pandoc `lang` option makes font ugly
我正在努力学习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:
pandoc test1.md -o test1.pdf
pandoc -V lang=ru-RU -o test1-2.pdf test1.md
第一个命令无法呈现西里尔符号。此外,我总是写非英语文档,所以我需要生成带有俄语字幕的文档。我使用 lang
属性 按照 pandoc
文档的建议进行操作。现在,西里尔符号呈现正确,但如果你看几秒钟的屏幕截图,你会发现字体看起来比以前难看多了。特别是代码。
这是怎么回事,如何解决?
我发现很难以与 pandoc
提供的界面一致的方式为拉丁文、西里尔文、数学和代码块设置字体。我发现的最佳折衷方案是:
- 将
lang
设置为 en
并明确标记俄语部分。
- 对普通文本和数学使用 XITS 字体
- 使用覆盖西里尔文的固定宽度字体,例如解放单声道
- 使用 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
的结果:
我正在努力学习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:
pandoc test1.md -o test1.pdf
pandoc -V lang=ru-RU -o test1-2.pdf test1.md
第一个命令无法呈现西里尔符号。此外,我总是写非英语文档,所以我需要生成带有俄语字幕的文档。我使用 lang
属性 按照 pandoc
文档的建议进行操作。现在,西里尔符号呈现正确,但如果你看几秒钟的屏幕截图,你会发现字体看起来比以前难看多了。特别是代码。
这是怎么回事,如何解决?
我发现很难以与 pandoc
提供的界面一致的方式为拉丁文、西里尔文、数学和代码块设置字体。我发现的最佳折衷方案是:
- 将
lang
设置为en
并明确标记俄语部分。 - 对普通文本和数学使用 XITS 字体
- 使用覆盖西里尔文的固定宽度字体,例如解放单声道
- 使用 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
的结果: