on 07/14/2008 01:39 PM Stephan Kolassa wrote:
Phil:

thanks a lot! However, my original problem[1] remains: in fact, I am trying to \Sexpr the result for Sweave, and for some reason Sweave regurgitates the \Sexpr command unchanged:

foo.Rnw contains:
\Sexpr{"DV~IV"}
\Sexpr{cat("DV~IV")}
\Sexpr{sub('~','$\\\\sim$',"DV~IV")}
\Sexpr{cat(sub('~','$\\\\sim$',"DV~IV"),"\n")}

After Sweave(foo) the file foo.tex then contains:
\usepackage{Sweave}
DV~IV

\Sexpr{sub('~','$\\\\sim$',"DV~IV")}
\Sexpr{cat(sub('~','$\\\\sim$',"DV~IV"),"\n")}

(yes, with the blank line resulting from \Sexpr{cat("DV~IV")}), and LaTeX understandably complains that \Sexpr is not a valid command.

My goal: I would like to use some function bar() so that

str <- "DV~IV"
\Sexpr{bar(str)}

yields after Sweaving

DV$\sim$IV

in the tex file.

Any thoughts?
Stephan


[1] Sorry, I now see that my commented, minimal, self-contained, reproducible code was too minimal... I reduced the problem too far. My bad!



Phil Spector schrieb:
Stephen -
    Since the print function in R always displays two backslashes
for a single one, you really need to use cat or nchar to make sure
that things are working:

sub('~','$\\\\sim$',str)
[1] "ab$\\sim$cd"
cat(sub('~','$\\\\sim$',str),"\n")
ab$\sim$cd

It's the result of cat that's actually output, not the string that
R uses to display it.


                                       - Phil Spector
                     Statistical Computing Facility
                     Department of Statistics
                     UC Berkeley
                     [EMAIL PROTECTED]


On Mon, 14 Jul 2008, Stephan Kolassa wrote:

Dear guRus,

I am trying to replace "~" by "$\sim$" for TeX. However, I can't get the backslash to work. I would like to turn "DV~IV" into "DV$\sim$IV".

sub("~","$\sim$","DV~IV") => "DV$sim$IV"
sub("~","$\\sim$","DV~IV") => "DV$sim$IV"
sub("~","$\\\sim$","DV~IV") => "DV$sim$IV"
sub("~","$\\\\sim$","DV~IV") => "DV$\\sim$IV"

Alternatives 1 and 3 also yield warnings about unknown escape sequences (no surprise there). I have been unsuccessfully searching the archives. sessionInfo below.

Thank you all for your time!

Best regards
Stephan


sessionInfo()
R version 2.7.1 (2008-06-23)
i386-pc-mingw32

locale:
LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252

attached base packages:
[1] stats graphics grDevices utils datasets tcltk methods base

other attached packages:
[1] svIDE_0.9-5

loaded via a namespace (and not attached):
[1] svMisc_0.9-5

Stephan,

Try running Sweave on the file without SciViews loaded. There have been some posts over the past few years, with one relatively recently, indicating that there can be package conflicts resulting in \Sexpr{}'s not being parsed properly. The key package in question in the past has been R2HTML, but perhaps svIDE et al are the culprits here. The conflict is due to an alternative or supplemental Sweave driver being loaded.

See FAQ A.18 here:

http://www.statistik.lmu.de/~leisch/Sweave/FAQ.html


It may also be that your code within the \Sexpr{} is overly complicated, in which case, move the text processing outside the \Sexpr and then just use the result within it:

Res <- sub('~','$\\\\sim$',"DV~IV")
\Sexpr{Res}


HTH,

Marc Schwartz

______________________________________________
R-help@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.

Reply via email to