使用roxygen2和Rdpack生成R文档时引用含变音符号作者的编码错误问题
你完全可以通过roxygen2+Rdpack的引用机制正常引用姓名含变音符号的作者文献,该报错本质是Rd转PDF阶段的LaTeX编码、字体配置错误,以及字符多重转码导致的,可通过以下步骤解决:
- 确认
inst/REFERENCES.bib文件本身以UTF-8编码存储,不要使用GBK、Latin1等其他编码,避免bib解析阶段就出现字符乱码。如果修改了bib文件编码,需要重新执行devtools::document()重新生成Rd文档。 - 在R包根目录下新建
man/Rd2pdf.cfg文件,写入以下LaTeX配置,强制指定编码和兼容变音符号的字体:
\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern}
- 执行构建命令时显式指定编码参数,修改后的命令为:
R CMD Rd2pdf MyPackage --no-clean --encoding=UTF-8 - 若上述操作后仍报错,可将bib条目中的LaTeX转义字符替换为原生UTF-8字符,即将
W{\"a}gele直接修改为Wägele,配合已配置的全局UTF-8编码,Rdpack可正确识别该类字符,避免转义解析冲突。 - Windows环境下需额外确认RStudio默认文本编码为UTF-8,可在「Tools -> Global Options -> Code -> Saving」中设置,避免本地环境编码与项目编码不一致导致的多重转码问题。
内容的提问来源于stack exchange,提问作者Martin Smith
相关产品推荐
相关产品推荐

