[R] Input encoding problem when using sweave with xetex
Duncan Murdoch
murdoch.duncan at gmail.com
Thu May 13 00:04:44 CEST 2010
On 12/05/2010 5:12 PM, Erich Studerus wrote:
> You were right, that I would run into trouble with all these "". However,
> the second method doesn't work either. Somehow, the UTF8Sweave.sh file is
> not found during the compilation of my document. It says "can't open perl
> script .../bin/UTF8Sweave.sh: No such file or directory". I double checked
> that a file with this name is present in the same folder as the original
> Sweave.sh file and that the "Sweave" is changed to "UTF8Sweave" in the LyX
> preference file. Any idea, what could be wrong?
>
Sorry, I forgot that if you make up your own command to be run by R CMD
then you need to give the full path to it, and you can't suppress the
.sh suffix. So your command should be
R CMD /path/to/UTF8Sweave.sh $$i
(where /path/to/ is the actual path to where you decide to keep this
file, which needn't be in rhome/bin).
Duncan Murdoch
> Erich
>
>
> On Wed, 12 May 2010 16:20:03 -0400
> Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>
>> On 12/05/2010 3:55 PM, Erich Studerus wrote:
>>
>>> Thanks again. Putting options(encoding="") into the R code chunk before
>>> calling the read.xls function indeed did the trick. Now, I have one last
>>> question: How can I edit the LyX preference file to call R with
>>> options(encoding='UTF-8'). I prefer to edit the LyX preference file rather
>>> than the Sweave.sh file, because I want to run R with UTF-8 only when I
>>> use
>>> XeTeX. By editing the LyX preference file, I assume it would be possible
>>> to
>>> define different R encoding setups for different converters.
>>>
>>>
>> One way would be to change
>>
>> R CMD Sweave $$i
>>
>> in
>>
>> \converter "literate" "latex" "R CMD Sweave $$i" ""
>>
>> to
>>
>> echo "library(\"utils\"); options(encoding=\"UTF-8\"); Sweave(\"$$i\")" |
>> R --no-restore --slave
>>
>> but you may run into trouble because there's an extra set of "" to go
>> around there, and I don't know how Lyx handles escaping all those quotes.
>> So probably an easier way to go would be to take the Sweave.sh file
>> that you've already edited, and copy it into UTF8Sweave.sh in the same
>> directory. Then you can change the Lyx preference line to
>>
>> \converter "literate" "latex" "R CMD UTF8Sweave $$i" ""
>>
>> and things should work. (Then you can restore the original Sweave.sh file
>> for cases where you don't
>> want UTF-8.)
>>
>> Duncan Murdoch
>>
>>
>>> Erich
>>>
>>>
>>> On Wed, 12 May 2010 14:43:52 -0400
>>> Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>>>
>>>> On 12/05/2010 2:29 PM, Erich Studerus wrote:
>>>>
>>>>> Thank you! I edited the Sweave.sh file and it works now for reading
>>>>>
>>> data
>>>
>>>>> stored as R data files, but the read.xls function from the
>>>>>
>>> gdata-package
>>>
>>>>> does no longer work.
>>>>>
>>>>> options('encoding'='UTF-8')
>>>>> require(gdata)
>>>>> read.xls("http://www.schwerhoerigkeit.pop.ch/hoergeraete_test.xls",
>>>>> stringsAsFactors = F)[2,2]
>>>>>
>>>>> This gives NA as output and a warning that there was an invalid entry
>>>>>
>>> for
>>>
>>>>> the connection. Is there a way to use read.xls with UTF-8 encoding?
>>>>>
>>>>>
>>>> I don't know, you'd have to ask its authors. But you can probably set
>>>> options(encoding="") before calling it. (I'm assuming the read.xls() is
>>>>
>>> in
>>>
>>>> a code chunk in your Sweave file. I would guess that you don't need to
>>>>
>>> set
>>>
>>>> the encoding back to UTF-8 afterwards, but you might: it all depends on
>>>> when Sweave() opens its
>>>> output file.)
>>>>
>>>> Duncan Murdoch
>>>>
>>>>>
>>>>>
>>>>> On Wed, 12 May 2010 12:45:51 -0400
>>>>> Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>>>>>
>>>>>> On 12/05/2010 11:36 AM, Erich Studerus wrote:
>>>>>>
>>>>>>> Putting \usepackage[cp1252]{inputenc} into my preamble is not an
>>>>>>>
>>>>> option,
>>>>>
>>>>>>> because XeTeX unlike LaTeX needs UTF-8 has input encoding. My goal
>>>>>>>
>>> is
>>>
>>>>> also
>>>>>
>>>>>>> to have a LyX document that can be compiled both on Mac and Windows.
>>>>>>>
>>>>>>> I usually compile my Lyx-Sweave documents by one click of a button
>>>>>>>
>>> from
>>>
>>>>>>> within Lyx. R code chunks are therefore executed by calling R from
>>>>>>>
>>> the
>>>
>>>>>>> command line. If anybody knows how to run R with
>>>>>>>
>>>>> options(encoding="UTF-8")
>>>>>
>>>>>>> from the command line under windows, that would be helpful.
>>>>>>>
>>>>>>> The command that calls R during compilation is contained in this
>>>>>>>
>>> file:
>>>
>>>>>>> http://cran.r-project.org/contrib/extra/lyx/preferences
>>>>>>>
>>>>>>>
>>>>>> You can do it with a little work. If you look at the
>>>>>>
>>>>> rhome/bin/Sweave.sh
>>>>>
>>>>>> file, you'll see that
>>>>>>
>>>>>> R CMD Sweave file.Rnw
>>>>>>
>>>>>> just executes something like
>>>>>>
>>>>>> echo "library(\"utils\"); Sweave(\"file.Rnw\")" | R --no-restore
>>>>>>
>>> --slave
>>>
>>>>>> What you want is to execute
>>>>>>
>>>>>> echo "library(\"utils\"); options(encoding="UTF-8");
>>>>>>
>>>>> Sweave(\"file.Rnw\")"
>>>>>
>>>>>> | R --no-restore --slave
>>>>>>
>>>>>> You could edit the rhome/bin/Sweave.sh file appropriately if you
>>>>>>
>>> always
>>>
>>>>>> want Sweave to use UTF-8, or you could edit your Lyx preference file
>>>>>>
>>> to
>>>
>>>>> put
>>>>>
>>>>>> in a line like this instead of what it had.
>>>>>>
>>>>>> Duncan Murdoch
>>>>>>
>>>>> ______________________________________________
>>>>> R-help at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>> PLEASE do read the posting guide
>>>>> http://www.R-project.org/posting-guide.html
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>
>>>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list