我正在努力用exams2nops
制作法语试卷。在此函数的intro
和title
参数以及包含该函数的Rnw
文件中提供的文本中存在重音。前者在生成的PDF中正确显示,而后者则不然,例如Rnw
文件中的é
显示为<U+00E9>
。
对exams2nops
的调用是这样的:
exams2nops(file=myexam, n = N.students, dir = '.',
name = paste0('exam-', exam.date),
title = "Examen écrit",
course = course.id,
institution = "",
logo = paste(exams.dir, 'input/logo.jpg', sep='/'),
date = exam.date,
replacement = TRUE,
intro = intro,
blank=round(length(myexam)/4),
duplex = TRUE, pages = NULL,
usepackage = NULL,
language = "fr",
encoding = "UTF-8",
startid = 1,
points = c(1), showpoints = TRUE,
samepage = TRUE,
twocolumn = FALSE,
reglength = 9,
header=NULL)
注意"在最终的PDF中正确显示,问题在于Rnw文件中的重音。函数调用不产生错误。
由exams2nops
生成的*.tex
文件已经有问题了。例如,原Rnw
文件中的句子"Quarante patients ont"变为"Quarante patients ont <U+00E9>t<U+00E9>"在tex
文件中铭刻'。
我在OSX 11.6
上使用exams_2.4-0
与R 4.2.2
和TeXShop 4.70
。
我检查Rnw
是utf-8编码,例如:
$ file -I question1.Rnw
question1.Rnw: text/x-tex; charset=utf-8
看起来它们确实是utf-8
编码的。这些文件是用deepl或google translate翻译的,然后在emacs中编辑。
我尝试将exams2nops
的encoding
参数设置为latin-1
。
任何想法?
正确设置R 'locale '后问题消失。安装OSX R时经常出现的问题。症状如下:
During startup - Warning messages:
1: Setting LC_CTYPE failed, using "C"
2: Setting LC_COLLATE failed, using "C"
3: Setting LC_TIME failed, using "C"
4: Setting LC_MESSAGES failed, using "C"
5: Setting LC_MONETARY failed, using "C"
启动时。在Mac上安装R -警告消息:设置LC_CTYPE失败,使用"C"
除了现有的答案,我在这里收集了一些进一步的评论:
-
R/tests从2.4-0版本开始支持的唯一编码(ASCII以外)是UTF-8。对其他编码如latin1等的支持已经停止。
-
由于只支持UTF-8编码,因此不再需要在R/tests函数调用中指定编码(在旧教程中仍然可能建议)。
-
要利用对UTF-8的支持,R必须配置一个合适的语言环境。一个"C"定位(参见@vdet的答案)是不够的。
-
当使用R/LaTeX (Rnw)练习时,可以通过对特殊字符使用LaTeX命令完全避免编码的所有问题,例如,用
{'e}t{'e}
代替été
。后者当然更方便,但前者可能更健壮,特别是当与生活在不同操作系统和不同语言环境设置上的教师团队一起工作时。 -
当使用LaTeX命令代替R字符串中的特殊字符时(与练习文件相反),请记住必须转义反斜杠。例如,参数
title = "Examen écrit"
变为title = "Examen {\'e}crit"
。