[R] Input encoding problem when using sweave with xetex
Erich Studerus
erich.studerus at bli.uzh.ch
Thu May 13 01:07:46 CEST 2010
Thanks again. It finally worked after copying the Sweave.sh file to a path
that contains no spaces. Is there a special command for windows specific
path names with spaces?
Erich
On Wed, 12 May 2010 18:04:44 -0400
Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
> 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