[Rd] Possible bug in the Rd parser?

Duncan Murdoch murdoch at stats.uwo.ca
Sat Oct 10 20:25:33 CEST 2009


On 10/10/2009 8:07 AM, Mathieu Ribatet wrote:
> Dear list,
> 
> I got an automatic email complaining than some of my packages didn't
> pass 'R CMD check' for R-2.10.0 alpha anymore. Both of them make use of
> the "cases" LaTeX environment.
> 
> Inspecting the log outputs I got:
> 
>         LaTeX errors when creating PDF version.
>         This typically indicates Rd problems.
>         LaTeX errors found:
>         ! Misplaced alignment tab character &.
> 
> I noticed that the Rd parser changed quite recently and that '#', '_'
> and '&' must not be escaped according to "Writing R extensions".
> However, the problematic .Rd portion seems (to me) OK
> 
>         \deqn{\theta(h) =
>             \begin{cases}
>             u_\beta \left(\mu +  \frac{\nu(h)}{\Gamma(1 - \xi)}
>         \right),&\xi \neq 0\\
>             \exp\left(\frac{\nu(h)}{\sigma}\right),&\xi = 0
>             \end{cases}
>           }{u_beta (mu + nu(h) / Gamma(1 - \xi)), if \xi < 1,
>             exp(nu(h)/sigma), otherwise}
> 

One more followup:  the problem appears to be in the "cases" 
environment.  If I rewrite that block using "array" instead, things are 
fine:

         \deqn{\theta(h) =
             \left\{\begin{array}{ll}
             u_\beta \left(\mu +  \frac{\nu(h)}{\Gamma(1 - \xi)}
         \right),&\xi \neq 0\\
             \exp\left(\frac{\nu(h)}{\sigma}\right),&\xi = 0
             \end{array}\right.
           }{u_beta (mu + nu(h) / Gamma(1 - \xi)), if \xi < 1,
             exp(nu(h)/sigma), otherwise}

This makes me think it's a bug in the LaTeX package that provides 
"cases", or a conflict with our Rd.sty file, but I don't know which.

Duncan Murdoch



More information about the R-devel mailing list