使用TinyTeX编译含西里尔字符的.Rmd文件为PDF时出现显示问题
解决Rmd编译PDF西里尔字符显示异常问题
方法一:指定系统支持西里尔的字体(推荐)
Ubuntu默认自带DejaVu Sans等支持西里尔字符的字体,直接在Rmd的YAML配置中指定即可:
修改你的Rmd文件头部为:
--- title: "test" output: pdf_document: latex_engine: xelatex mainfont: DejaVu Sans html_document: default --- Това е тест
编译后西里尔字符应该能正常显示。如果DejaVu Sans不行,也可以尝试其他系统字体,比如Noto Sans、Arial(需提前安装)等。
方法二:通过TinyTeX安装西里尔语言包
如果想使用LaTeX原生的西里尔字体包,可通过TinyTeX的包管理器安装:
- 在R中运行以下命令安装语言包:
tinytex::tlmgr_install("texlive-lang-cyrillic")
或者在终端执行(需确保TinyTeX已加入系统PATH):
tlmgr install texlive-lang-cyrillic
- 安装完成后,创建
preamble.tex文件,内容为:
\usepackage[T2A]{fontenc} \usepackage[bulgarian]{babel} \usepackage{cmap} % 确保PDF文本可复制
然后在Rmd的YAML中引用该前置文件:
--- title: "test" output: pdf_document: latex_engine: xelatex includes: in_header: preamble.tex html_document: default --- Това е тест
注意事项
- 确保你的Rmd文件保存为UTF-8编码(RStudio默认是UTF-8,可在「文件->保存编码」中确认)。
- xelatex引擎依赖系统字体或LaTeX字体包,方法一操作更简单,适合大多数场景。
内容的提问来源于stack exchange,提问作者demirev
相关产品推荐
相关产品推荐

