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}

Removing the alignment tab character '&' solves the issue but doesn't
produce the expected LaTeX output. Do I miss something with the new Rd
parser requirements?

I think the new parser is working properly, but there is something wrong with your LaTeX. When I paste that block into a test file and run it through the 2.9 parser, the \\ gets converted to \bsl{}, and garbage results. The new parser faithfully reproduces what you wrote, but for some reason it's not legal LaTeX.

I suspect the problem is that the text is generated within a \deqn{} macro, which is defined in Rd.sty. Something you're doing is not allowed in that context.

It's helpful to run

Rcmd Rd2dvi --no-clean test.Rd

to be able to examine the LaTeX produced by R (which will be saved in a temporary directory; the --no-clean tells R not to delete it at the end).

I don't know LaTeX well enough to tell you the best workaround for this, but one option is to used the recently added \if or \ifelse and \out macros instead of \deqn. Of course, that will make your Rd file unusable in earlier versions, so it's not necessarily the best idea.

Duncan Murdoch

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

Reply via email to