[R] Supercripting text

David Winsemius dwinsemius at comcast.net
Tue May 11 22:36:14 CEST 2010


On May 11, 2010, at 12:37 PM, Shang Gao wrote:

> Another question: is it possible to keep the superscripts unbolded?  
> For example if you run the codes below, it can be seen that using  
> the expression(bold(paste(...))) command will result in the text  
> being bolded but not the superscripts.
>
> ourtitle <- function(title, footnotes=NULL) {
>  if (length(footnotes) > 0) {
>    fn <- paste(footnotes, collapse=' ')
>    title <- eval(substitute(expression(bold(paste(title, ""^fn))),

try instead:

expression(bold(paste(title^plain(fn))

>                             list(title=title, fn=fn)))
>  }
>  title
> }
>
> plot(0, type="n")
> text(1,0, expression(bold(paste("stuff",""^1, " "^2, " "^3))))
> text(1,0.5,ourtitle("stuff",1:3))
>
> -----Original Message-----
> From: Kevin Coombes [mailto:kevin.r.coombes at gmail.com]
> Sent: Monday, May 10, 2010 1:02 PM
> To: Shang Gao
> Cc: r-help at r-project.org
> Subject: Re: [R] Supercripting text
>
> Sigh; that's because I forget to include it in the 'substitute' list.
> Here is a version that works (and has been tested...).
>
> ourtitle <- function(title, footnotes=NULL) {
>  if (length(footnotes) > 0) {
>    fn <- paste(footnotes, collapse=' ')
>    title <- eval(substitute(expression(bold(paste(title, ""^fn))),
>                             list(title=title, fn=fn)))
>  }
>  title
> }
>
> Shang Gao wrote:
>> I tried writing that function before, but the expression() command  
>> is not preserved when we incorporate it into a function(). The  
>> first example you gave me, if run in R, produced a title that reads  
>> "title" instead of "stuff". It seems that in this case the  
>> expression() can't read the character string in the argument  
>> specified in the function() command.
>>
>> -----Original Message-----
>> From: Kevin Coombes [mailto:kevin.r.coombes at gmail.com]
>> Sent: Monday, May 10, 2010 12:08 PM
>> To: Shang Gao
>> Cc: r-help at r-project.org
>> Subject: Re: [R] Supercripting text
>>
>> You probably want to write your own titling function to add
>> superscripts.  The following code will serve as a reasonable  
>> starting point:
>>
>> # make the title expression
>> ourtitle <- function(title, footnotes=NULL) {
>>  if (length(footnotes) > 0) {
>>    fn <- paste(footnotes, collapse=' ')
>>    title <- eval(substitute(expression(bold(paste(title, ""^fn))),
>> list(fn=fn)))
>>  }
>>  title
>> }
>> # example with footnotes
>> tt <- ourtitle("stuff", 1:3)
>> plot(1, 1)
>> title(tt)
>> # example without footnotes
>> plot(1, 1)
>> title(ourtitle("stuff"))
>>
>> Note that the only way I could make this work was to combine the
>> footnote list before calling the eval-substitute-expression code; I
>> cannot get it to work by applying things ot a list.
>>
>>    Kevin
>>
>> Shang Gao wrote:
>>
>>> Dear R users,
>>>
>>> I recently developed a plotting function in R and introduced it to  
>>> my coworkers. The function is designed to make plotting easier and  
>>> more efficient, which will in turn be more cost-effective for the  
>>> company. The reviews for the function have been positive thus far,  
>>> except for one issue -- addition of superscripts to the title. We  
>>> need superscipts in the titles sometimes to highlight footnotes  
>>> which appear at the bottom of the plots.
>>>
>>> The syntax for supersciprts, however, is rather cumbersome,  
>>> especially in titles since it needs to be bolded. So far the only  
>>> way of superscripting is to use the expression() function. But to  
>>> go about formatting the text such that it appears bolded as a  
>>> title in my plots, I would have to type in the command
>>>
>>>
>>>> text(expression(bold(paste("text for title",""^1)))....)
>>>>
>>>>
>>> In some cases, the plot would require 3 footnotes to be shown, and  
>>> the code would be
>>>
>>>
>>>> text(expression(bold(paste("text for title",""^1, " "^2, "  
>>>> "^3))).....)
>>>>
>>>>
>>> Most of my coworkers are still in the process of picking up R,  
>>> some have never used R before. The above commands may be a little  
>>> too much for them to handle.
>>>
>>> Is there an easier way of superscripting texts in R? It would be  
>>> great if any of you know of alternative ways other than using the  
>>> expression() function.
>>>
>>> I greatly appreciate your help.
>>>
>>> Thank you.
>>>
>>> Sincerely,
>>> Shang
>>>
>>>
>>> 	[[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list