RMarkdown行内代码西班牙重音导致内容被识别为注释如何修复
问题原因
这是Rmd编辑器(多为RStudio)的语法高亮解析器对带重音的非ASCII字符兼容缺陷导致的,不属于代码逻辑错误,因此代码可以正常运行,仅显示层面会误将重音后的内容识别为注释。
修复方案
- 统一文件编码为UTF-8
打开RStudio后依次点击 工具→全局选项→代码→保存,将默认文本编码设置为UTF-8,再重新打开你的Rmd文件,点击 文件→用编码重新保存→选择UTF-8确认即可,大部分编码类高亮问题通过这一步就能解决。 - 升级RStudio到最新正式版
旧版本RStudio的语法高亮模块对多字节字符的处理存在已知bug,升级到最新正式版后可以直接修复该类解析错误。 - 规避在逻辑判断中直接写带重音的字符串
如果前两步操作后仍有显示问题,可以提前把带重音的字符串赋值给变量再调用,示例如下:# 提前定义带重音的字符串变量 func_publicos <- "Funcionarios públicos" conflict <- conflict %>% mutate(ocupacionvictima=ifelse(ocupacionvictima==paste0(func_publicos," "), func_publicos, ocupacionvictima)) %>% mutate(periodo2=ifelse(annoh>=1958 & annoh<=1976, "1958-1976", ifelse(annoh>=1977 & annoh<=1990, "1977-1990", ifelse(annoh>=1991 & annoh<=2001, "1991-2001", ifelse(annoh>=2002 & annoh<=2015,"2002-2015", "2016"))))) - 补充配置避免编译PDF时重音异常
如果后续输出PDF文件时出现重音显示报错,可修改YAML头配置如下:--- title: "TITLE" author: "AUTHOR" output: pdf_document: latex_engine: xelatex header-includes: - \usepackage[utf8]{inputenc} - \usepackage[spanish]{babel} ---
内容的提问来源于stack exchange,提问作者user2246905
相关产品推荐
相关产品推荐

