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

RMarkdown导出PDF时ggplot中欧元符号不显示问题求助

RMarkdown PDF中€符号显示异常的解决方法

针对你在Linux Mint(Debian bullseye/11.2)下用RStudio编织PDF时,ggplot2图表里€符号无法正常显示的问题,以下是几种可行的解决办法:

1. 配置LaTeX编码与字体

在RMarkdown的YAML头部添加LaTeX包,确保编码和字体支持欧元符号:

---
title: "你的报告标题"
output:
  pdf_document:
    latex_engine: pdflatex
header-includes:
  - \usepackage[utf8]{inputenc}
  - \usepackage[T1]{fontenc}
  - \usepackage{lmodern}
---
  • fontenc设置T1编码,解决特殊字符的渲染问题;
  • lmodern是支持欧元符号的Latin Modern字体,若系统未安装,执行sudo apt install fonts-lmodern完成安装。

2. 在ggplot中指定支持€的字体

直接修改ggplot的主题字体,强制使用支持欧元符号的字体:

df %>% filter(Umsatz > 0 & Wer != "") %>% 
  group_by(Wer) %>% 
  summarise(Einnahmen = sum(Umsatz)) %>% 
  ggplot(aes(x=Wer, y=Einnahmen, fill=Wer)) +
    geom_col(fill=c('darkblue', 'darkred', 'orange'), width=0.7) +
    ggtitle('Einnahmen') + 
    scale_y_continuous(labels = human_euro) +
    geom_text(aes(label=scales::comma(Einnahmen, big.mark = '.', decimal.mark = ',', prefix = '€ ')), vjust=-0.1, color="black", size=5) +
    theme_foundation(base_size = 16, base_family = 'LM Sans 10') +
    theme_minimal() +
    theme(plot.title = element_text(size = 20, family='LM Sans 10')) +
    theme(plot.title = element_text(hjust = 0.5)) +
    theme(axis.text = element_text(size = 16, family='LM Sans 10')) +
    theme(axis.title.x = element_blank()) +
    theme(axis.title.y = element_blank())

3. 使用LaTeX欧元命令替代直接输入

利用LaTeX的\euro命令生成欧元符号,需先加载对应包:

  1. 在YAML头部添加:
header-includes:
  - \usepackage{eurosym}
  1. 修改ggplot中的prefix参数(注意R字符串需转义反斜杠):
geom_text(aes(label=scales::comma(Einnahmen, big.mark = '.', decimal.mark = ',', prefix = '\\\\euro ')), vjust=-0.1, color="black", size=5)

4. 切换到xelatex编译引擎

xelatex原生支持UTF-8编码,对特殊字符兼容性更好,修改YAML:

---
title: "你的报告标题"
output:
  pdf_document:
    latex_engine: xelatex
---

内容的提问来源于stack exchange,提问作者Joysn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:33:13