[R-pkg-devel] Macros in Rd files.

Georgi Boshnakov georgi.boshnakov at manchester.ac.uk
Fri Nov 10 10:57:47 CET 2017


>http://developer.r-project.org/parseRd.pdf

I would add that it is best to think of "Rd markup" as a subset of TeX/LaTeX markup (with some extentions) defined in 
"Writing R Extensions" and Duncan's reference above. 

The "subset" is important - if a feature is not mentioned in these references, it is not available.
 I once inadvertently used a modifier in the tabular environment (maybe something like {l|l|l} which was fine for 'R CMD check', the pdf manual and CRAN but the package failed to install on a system setup for static installation of html documentation.

Georgi Boshnakov

-----Original Message-----
From: R-package-devel [mailto:r-package-devel-bounces at r-project.org] On Behalf Of Duncan Murdoch
Sent: 09 November 2017 23:08
To: Rolf Turner
Cc: r-package-devel at r-project.org
Subject: Re: [R-pkg-devel] Macros in Rd files.

On 09/11/2017 3:05 PM, Rolf Turner wrote:
> On 09/11/17 23:40, Duncan Murdoch wrote:
>> On 09/11/2017 5:06 AM, Uwe Ligges wrote:
>>> Note the % may be a comment?
>>>
>>
>> Yes, and the body should be written in Rd markup, not R.  Working out 
>> the appropriate number of escapes is painful; I recommend trial and error.
>>
>> This worked for me:
>>
>>    
>> \newcommand{\today}{\Sexpr{format(Sys.Date(),"\\\%d/\\\%m/\\\%Y")}}
> 
> Now that is a bit more subtle!  I don't understand what "written in Rd 
> markup" really means, and I don't understand the "\Sexpr" construction.
> I'd seen it when looking at the example macros in
> 
>      /usr/local/lib64/R/share/Rd/macros/system.Rd
> 
> but I figured if you know nothing about it, don't mess with it.
> 
> Is there anywhere that I could read up about writing "in Rd markup"?

Not sure this would be helpful, but there's

http://developer.r-project.org/parseRd.pdf

The short summary is this:

Rd files are a mess.  There are several different modes of parsing that
apply:  at the top level you have Rd code, and in different contexts you may have R code (or something close to it), or verbatim code (just kidding!  There are ways to signal you want out).  Table 1 in that document says what syntax is expected within what macro.  In \newcommand, it says it wants "verbatim" input, but really it's going to interpret that as Rd input, i.e. LaTeX-like.

Regret asking yet?

Duncan Murdoch

> 
> Anyway, thanks for giving me the recipe, which is what I really need.
> 
> cheers,
> 
> Rolf
>

______________________________________________
R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel


More information about the R-package-devel mailing list