[OS X TeX] Strange TeXShop engine behaviour
Alan Munn
amunn at gmx.com
Thu Sep 22 14:15:11 EDT 2011
I use Sweave to mix R code with LaTeX. I run this through a Sweave engine in TeXShop, which basically runs R on the .Rnw file (a mix of R and LaTeX) producing a .tex file with the output of the R commands included in the LaTeX.
I've discovered a problem, however, with how the file encoding is treated when R is run from within TeXShop.
Here's the summary: when I run R via an engine from within TeXShop, the encoding of the file seems to be changed when it is passed to R. When I run the R command directly from the command line, the encoding is preserved AND when I run the .engine file from the command line (rather than from within TeXShop) the encoding is preserved.
Here's a sample file (you will need to have R installed to test this).
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
Some non-ascii text: éüáî
<<>>=
sessionInfo()
@
\end{document}
If I run this file from the command line:
R CMD Sweave myfile.Rnw
the output .tex file is the following:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{Sweave}
\begin{document}
Some non-ascii text: éüáî
\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] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
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}
This is correct. Notice that the non-ASCII characters in the .Rnw file get correctly coded in the output .tex file. Furthermore, the output of the R sessionInfo() command shows that the locale is en_US.UTF8 (which is what it should be.)
Now here's the problem.
When run from within TeXShop using the following .engine:
#!/bin/bash
export PATH=$PATH:/usr/texbin:/usr/local/bin
R CMD Sweave "$1"
pdflatex "${1%.*}"
it produces the following:
\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}
As you can see, two things have changed. The line containing the non-ASCII characters has been converted to NA by Sweave because the locale has been changed to C (which is basically plain ASCII).
What's even stranger is that if I use the .engine file to run Sweave from the command line, I get the correct output again.
I.e.
~/Library/TeXShop/Engines/Sweave.engine myFile.Rnw
doesn't change the locale, and the file is correctly produced as UTF-8.
Does anyone have any idea what might be causing this?
Thanks
Alan
--
Alan Munn
amunn at gmx.com
More information about the MacOSX-TeX
mailing list