You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:05:29