Rmarkdown代码块DejaVu Sans Code字体连字异常修复求助
解决DejaVu Sans Code在R Markdown代码块中<-连字失效的问题
没问题,这个情况是因为默认的字体连字配置没有启用DejaVu Sans Code里的编程类连字,咱们通过fontspec的Ligatures参数就能轻松修复。
具体解决方案
直接在R Markdown的YAML头部添加header-includes,手动配置等宽字体的连字规则:
--- output: pdf_document: latex_engine: xelatex header-includes: - \usepackage{fontspec} - \setmonofont[Ligatures=Programming]{DejaVu Sans Code} ---
然后保留你的代码块:
x <- 5 + 10 y <- (x != 15)
为什么这样有效?
DejaVu Sans Code本身是支持<-这类编程连字的,但默认情况下fontspec不会自动启用所有连字类型。Ligatures=Programming这个参数会明确告诉LaTeX,启用字体中为编程场景设计的连字规则,包括<-、!=、==等符号组合。
如果需要同时保留通用连字,也可以写成Ligatures={Common, Programming},不过单独用Programming就足够覆盖你的需求了。
额外检查
如果设置后还是有问题,确认一下你使用的DejaVu Sans Code是最新版本——旧版本可能对部分编程连字的支持不全。
内容的提问来源于stack exchange,提问作者Hasnep
相关产品推荐
相关产品推荐

