我在使用 Sweave 时遇到了问题。只要我使用任何变异元音/变音符号(ü、ä 等),Sweave 就会在文档中产生 NA,尽管它以前可以正常工作。我不知道该怎么办,所以任何帮助都将不胜感激。
以下是 Test.Rnw 文件的一个示例:
\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
%aä
\begin{document}
The following section gives some descriptive statistics. ä
\end{document}
虽然生成了文件,但是只包含两个NA。
此外,我收到以下警告信息:
Warning message:
running command '"C:\PROGRA~2\MIKTEX~1.9\miktex\bin\texi2dvi.exe" --quiet --pdf "First_Paper_Test.tex" -I "C:/Program Files/R/R-2.13.1/share/texmf/tex/latex" -I "C:/Program Files/R/R-2.13.1/share/texmf/bibtex/bst"' had status 1
如果我删除变音符号,则不会出现任何问题。此外,如果我添加更多没有变音符号的段落,这些段落也会正常显示。我的 sessionInfo():
R version 2.13.1 (2011-07-08)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_2.13.1
我正在运行 Windows 7。
答案1
您的 R 在 C 语言环境中运行,而不是 UTF-8 语言环境中运行。由于 R 必须解析和更新文件,因此我并不惊讶它不知道如何处理这些字符。尝试在 UTF-8 语言环境中运行 Sweave/R,看看是否有帮助。
例如,从 R 内部对文件进行 Sweave 处理会产生以下结果:
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
%aä
\usepackage{Sweave}
\begin{document}
The following section gives some descriptive statistics. ä
\end{document}
我的 R 正在运行:
> sessionInfo()
R version 2.13.1 Patched (2011-07-08 r56332)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] tools grid splines stats graphics grDevices utils
[8] datasets methods base
other attached packages:
[1] pscl_1.03.10 vcd_1.2-9 colorspace_1.0-1 gam_1.04
[5] coda_0.14-2 lattice_0.19-23 mvtnorm_0.9-96 MASS_7.3-13
要查看当前语言环境,请使用Sys.getlocale()
,要设置新语言环境,请使用Sys.setlocale()
。另请参阅R for Windows 常见问题解答以及其中其他常见问题的链接。R 安装和管理手册。