[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