斯威夫没有';似乎没有正确编码.Rnw文件

斯威夫没有';似乎没有正确编码.Rnw文件,r,character-encoding,sweave,R,Character Encoding,Sweave,此问题源于tex.sx上的以下问题:。问题似乎是swave无法识别文件的编码,尽管区域设置设置为UTF-8,并且.Rnw文件保存为UTF-8。最终结果是,任何包含非ASCII字符的.Rnw文件最终在生成的.tex文件中生成NA。正如您在对该问题的评论中所读到的,另一个用户没有显示问题,显然是相同的设置。(Mac上的R2.13.1)这里有一个失败的最小文档 更新 根据Aaron的建议,我在.Rnw文件中添加了sessionInfo,现在真正的问题暴露了出来。当swave处理文件时,似乎会更改区域设

此问题源于tex.sx上的以下问题:。问题似乎是
swave
无法识别文件的编码,尽管区域设置设置为UTF-8,并且
.Rnw
文件保存为UTF-8。最终结果是,任何包含非ASCII字符的
.Rnw
文件最终在生成的
.tex
文件中生成NA。正如您在对该问题的评论中所读到的,另一个用户没有显示问题,显然是相同的设置。(Mac上的R2.13.1)这里有一个失败的最小文档

更新

根据Aaron的建议,我在
.Rnw
文件中添加了
sessionInfo
,现在真正的问题暴露了出来。当
swave
处理文件时,似乎会更改区域设置

.Rnw
文件

\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
Some non-ascii text: éüáî
<<>>=
sessionInfo()
@ 
\end{document}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{Sweave}
\begin{document}
NA
\begin{Schunk}
\begin{Sinput}
> sessionInfo()
\end{Sinput}
\begin{Soutput}
R version 2.13.1 (2011-07-08)
Platform: x86_64-apple-darwin9.8.0/x86_64 (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
\end{Soutput}
\end{Schunk}
\end{document}
sessionInfo()
R.app中返回:

> sessionInfo()
R version 2.13.1 (2011-07-08)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
更新(对Aaron的回复)

>文本编码
>正文
[1] “\\documentclass{article}”“\\usepackage[utf8]{inputenc}”“\\begin{document}”
[4] “一些非ascii文本:аüá\\end{document}”
>enc
[1] “UTF-8”
>iconv(文本,附件,“”)
[1] “\\documentclass{article}”“\\usepackage[utf8]{inputenc}”“\\begin{document}”
[4] “一些非ascii文本:аüá\\end{document}”
(这是R控制台内
R.app
中的输出)

潜在修复:

试一试推杆

export LANG=en_US.UTF-8
在您的TeXShop脚本中

(最初的想法是在
~/.bashrc
文件中,但TeXShop显然没有加载该文件。)

早些时候:

sessionInfo()
放入Rnw文件时会发生什么情况

\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
Some non-ascii text: éüáî
<<>>=
sessionInfo()
@ 
\end{document}
\documentclass{article}
\usepackage[utf8]{inputenc}
\开始{document}
一些非ascii文本:îüáî
=
sessionInfo()
@ 
\结束{document}

我可以在.tex文件中看到特殊字符,但在pdf中看不到。2.13.0.@Alan,谢谢。我希望这可能会重复这个问题。能否将sessionInfo()添加到.Rnw文件中(请参见编辑我的“答案”)看起来我们更接近了!你跑得怎么样?是从命令行使用R CMD swave,还是从R内部使用swave()?两者是否都给出相同的结果?我通过TeXShop引擎(基本上是一个bash脚本)运行它。但这似乎是个问题:如果我从命令行运行R CMD Swave,它会生成正确的输出,但是如果我使用TeXShop bash脚本,它会在TeXShop中生成错误的输出。如果从命令行使用TeXShop bash脚本,它将生成正确的文件。奇怪的这似乎是一个TeXShop的问题。在Mac上启动bash有点奇怪;我不太明白它启动时用的是什么。在Terminal中,您默认获得UTF8语言环境,但在X11中,您没有;您必须在bashrc中设置它。也许TeXShop正在以X11的方式启动bash。谢谢。我希望这可能会重复这个问题。能否将sessionInfo()添加到.Rnw文件中(请参见编辑我的“答案”),这似乎可以直接揭示问题。当地人显然错了。(顺便说一句,我正在使用TeXShop编辑源代码。)将export
LANG=en_US.UTF-8
放入
.bashrc
中不会有帮助,因为从TeXShop中运行的脚本不会加载它。但将其放入TeXShop脚本本身确实解决了问题。我刚想把这篇文章作为一个答案,但你抢先一步。如果你更新你的答案说,我会接受的。
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
Some non-ascii text: éüáî
<<>>=
sessionInfo()
@ 
\end{document}