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

使用R语言exams包exams2nops函数时UTF-8编码错误求助

解决exams2nops中含重音字符的参数报错问题

调用exams2nops时,institution和title参数中的葡语重音字符(如É、á、í)触发LaTeX的Invalid UTF-8 byte sequence错误,但试题内的重音可正常显示,可通过以下方法解决:

方法1:用LaTeX转义字符替代重音

直接将参数中的重音字符替换为LaTeX原生支持的转义命令,绕开编码匹配问题:

exams2nops(file=quests,
           n=1,
           nsamp = 1,
           intro = "\\includepdf[pages=-]{D:/OneDrive - ISPA/AEI/2022-2023/Exams/exam1/Intro.pdf}",
           language = "pt-PT",
           institution = "An\'alise Estat\'istica I",
           title = "\'Epoca Recurso ---"
)

对应替换规则:

  • É → \'E
  • á → \'a
  • í → \'i

方法2:确保R脚本编码为UTF-8

检查R脚本文件的编码格式(RStudio可通过右下角编码选项查看/修改),若脚本使用Windows-1252等非UTF-8编码,参数中的重音字符会被转换为非标准字节,导致LaTeX报错。将脚本编码设置为UTF-8后重新运行代码即可。

方法3:指定xelatex编译引擎

默认exams2nops使用pdflatex,对UTF-8的支持需额外配置;而xelatex原生支持UTF-8字符,可通过tex参数指定:

exams2nops(file=quests,
           n=1,
           nsamp = 1,
           intro = "\\includepdf[pages=-]{D:/OneDrive - ISPA/AEI/2022-2023/Exams/exam1/Intro.pdf}",
           language = "pt-PT",
           institution = "Análise Estatística I",
           title = "Época Recurso ---",
           tex = "xelatex"
)

注:使用xelatex时,系统默认字体通常已支持葡语字符,无需额外调整模板。

为什么试题内的重音正常显示?

试题文件(.Rnw/.Rmd)在编译时会被exams包自动处理编码,确保与LaTeX编译环境匹配;而institution和title是直接传入LaTeX模板的参数,若编码不匹配就会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:38:37