Kurt Hornik wrote: >>>>>>Duncan Murdoch writes: > > >>On 11/18/2005 12:40 PM, Hin-Tak Leung wrote: >> >>>Martin Maechler wrote: >>> >>> >>>>>>>>>"Hin-Tak" == Hin-Tak Leung <[EMAIL PROTECTED]> >>>>>>>>>on Fri, 18 Nov 2005 16:38:28 +0000 writes: >>>> >>>> > Hin-Tak> Your own fault. See below. It is basic LaTeX and any LaTeX person > Hin-Tak> can tell you the answer...(most probably haven't bothered...) > >>>>No. Whereas I partly agree that it's Ross ``fault'' trying to >>>>use too smart LaTex (and using outdated \bf instead of \mathbf), >>>>;-) >>>> >>>>The bug is really there, since we are talking about the Rd "language", >>>>not LaTeX, an in Rd, \eqn and \deqn are defined to have either >>>>one or two arguments -- where Ross used the 2-argument version >>>>correctly (in principle at least) --> See the manual "Writing R >>>>Extensions". >>> >>> >>>Forgive me for not reading R-ext carefully, but Ross's Rd code is >>>still "obviously" wrong in the lights of the two-argument \eqn: >>>(really doesn't differ from the 1-arg interpretaion of \eqn) >>> >>>\eqn{{\bf\beta}_j}{\bf\beta}_jnormal-bracket5bracket-normal{b(j)} >>> >>>In other words, >>>\eqn{...}{...}_... >>> >>>and the "_" is still outside of any maths environment, which is most >>>probably not Ross's intention. > > >>But that is Latex code produced by R, not Rd code produced by Ross. >>The bug is in the Latex production (which I think is done by >>share/perl/R/Rdconv.pm, but I don't know Perl well enough to attempt >>to fix it). > > > Definitely a problem in Rdconv. > > E.g., > > $ cat foo.Rd > \description{ > \eqn{{A}}{B} > } > [EMAIL PROTECTED]:~/tmp$ R-d CMD Rdconv -t latex foo.Rd | grep eqn > \eqn{{A}}{A}{{B} > > shows what is going on. > > My reading of R-exts would suggest that it is not necessary to escape > braces inside \eqn (and in fact these are not unescaped by Rdconv). > > Btw, the conversions of the above example are wrong for at least HTML > and text as well, giving > > <i>A</i>{{B} > > and > > A{{B} > > respectively.
Apologies - the problem is with this section of "share/perl/R/Rdconv.pm" around line 400 - it basically doesn't try very hard dealing with nested brackets. ======================= ## Get the arguments of a command. sub get_arguments { my ($command, $text, $nargs) = @_; ## Arguments of get_arguments: ## 1, command: next occurence of 'command' is searched ## 2, text: 'text' is the text containing the command ## 3, nargs: the optional number of arguments to be extracted; ## default 1 my @retval; ## Returns a list with the id of the last closing bracket and the ## arguments. if($text =~ /\\($command)(\[[^\]]+\])?($ID)/){ $id = $3; $text =~ /$id(.*)$id/s; $retval[1] = $1; my $k=2; while(($k<=$nargs) && ($text =~ /$id($ID)/)){ $id = $1; $text =~ /$id\s*(.*)$id/s; $retval[$k++] = $1; } } $retval[0] = $id; @retval; } ================== HT ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel