[Rd] Possible bug in the Rd parser?

Duncan Murdoch murdoch at stats.uwo.ca
Sat Oct 10 20:40:57 CEST 2009


On 10/10/2009 2:25 PM, Duncan Murdoch wrote:
> 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.

And the final answer:  the "cases" environment is in the amsmath 
package, which is not used by R.  You need to use regular LaTeX, not 
fancy stuff like that.  (There's a \cases macro in LaTex, which doesn't 
know what to do with alignment tabs:  that's why you got the error you did.)

Duncan Murdoch



More information about the R-devel mailing list