From murdoch at stats.uwo.ca  Sat Apr  3 02:04:32 2010
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Fri, 02 Apr 2010 20:04:32 -0400
Subject: [Rd] inject html code into Rd file
In-Reply-To: <4BB5DDB4.6070908@stats.uwo.ca>
References: <4BB5C439.9090505@r-enthusiasts.com>	<4BB5CFD7.9000702@stats.uwo.ca>	<4BB5D14E.2070102@r-enthusiasts.com>
	<4BB5DDB4.6070908@stats.uwo.ca>
Message-ID: <4BB68610.10901@stats.uwo.ca>

On 02/04/2010 8:06 AM, Duncan Murdoch wrote:
> On 02/04/2010 7:13 AM, Romain Francois wrote:
>> Le 02/04/10 13:07, Duncan Murdoch a ?crit :
>>> On 02/04/2010 6:17 AM, Romain Francois wrote:
>>>> Hello,
>>>>
>>>> I'm trying to inject html code into an Rd file. For example :
>>>>
>>>> \name{test}
>>>> \alias{test}
>>>> \title{test}
>>>> \description{
>>>> \if{html}{
>>>> \Sexpr[stage=render,results=text,echo=FALSE]{
>>>> "<b>hello</b>"
>>>> }
>>>> }
>>>> }
>>>>
>>>> when this file is rendered, instead of having "hello" in bold, I get
>>>> <b>hello</b>, i.e. characters < and > are replaced with html entities
>>>> : &lt; and &gt;
>>>>
>>>> Is there a way to turn this off ?
>>> Yes, if you wrap it in \out{}. The example in the manual is
>>>
>>> \if{latex}{\out{\alpha}}\ifelse{html}{\out{&alpha;}}{alpha}
>>>
>>> Duncan Murdoch
>> yes, I saw that in WRE, I should have been more specific.
>>
>>
>> what if instead of a trivial string like "<b>hello</b>" the text is to 
>> be computed by some function. For example:
>>
>> print( xtable( iris), type = "html" )
> 
> I think this should do it:
> 
> \Sexpr[stage=render,results=rd,echo=FALSE]{
> paste("\\out{", "<b>hello</b>, "}", sep="")}
> 
> but this stuff hasn't been tested much, so there might be problems...

One problem is that the backslashes need to be escaped twice, so you'd want

  \Sexpr[stage=render,results=rd,echo=FALSE]{
  paste("\\\\out{", "<b>hello</b>, "}", sep="")}

and you'd probably want it wrapped in \if or \ifelse so that it doesn't 
show up in text or latex output:

  \Sexpr[stage=render,results=rd, 
echo=FALSE]{"\\\\if{html}{\\\\out{<b>hello</b>}}"}

Duncan Murdoch



[Rd] inject html code into Rd file
Duncan Murdoch