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命令生成欧元符号,需先加载对应包:
- 在YAML头部添加:
header-includes: - \usepackage{eurosym}
- 修改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
相关产品推荐
相关产品推荐

