>>>>> Ivan Krylov 
>>>>>     on Thu, 29 Jul 2021 17:48:38 +0200 writes:

> Hello R-devel!
> 
> Here's an Rd file that produces a large empty area when converted to
> HTML:
> 
> \name{repro}
> \title{title}
> \description{description}
> \details{
>   Hello
>   \Sexpr[stage=build,results=hide]{
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     invisible(NULL)
>     "" # workaround: remove results=hide and use the return value
>   }
> }
> 
> This seems to happen because \Sexpr gets expanded to \verb{ as many
> newlines as there were code lines } by processRdChunk, by first storing
> a newline for each line of the code:
> 
> https://github.com/wch/r-source/blob/d7a4ed9aaeee1f57c3c165aefa08b8d69dfe59fa/src/library/tools/R/RdConv2.R#L257
> 
> ...and then the newlines get translated to \verb because res is
> not empty:
> 
> https://github.com/wch/r-source/blob/d7a4ed9aaeee1f57c3c165aefa08b8d69dfe59fa/src/library/tools/R/RdConv2.R#L332
> 
> As long as Rd above doesn't stem from my misuse of \Sexpr, I would like
> to propose the following patch, which seems to fix the problem:
> 
> Index: src/library/tools/R/RdConv2.R
> ===================================================================
> --- src/library/tools/R/RdConv2.R     (revision 80675)
> +++ src/library/tools/R/RdConv2.R     (working copy)
> @@ -329,6 +329,8 @@
>           }
>       } else if (options$results == "text")
>           res <- tagged(err, "TEXT")
> +     else if (options$results == "hide")
> +         res <- tagged("", "COMMENT")
>       else if (length(res)) {
>           res <- lapply(as.list(res), function(x) tagged(x, "VERB"))
>           res <- tagged(res, "\\verb")
> 
> There are probably other ways of fixing this problem, e.g. by only
> populating res if options$results != "hide" or only appending newlines
> if res is non-empty.

Thank you, Ivan, for the example and patch,

I have implemented a version of your patch in my local copy of
R-devel and tested your example, also with  Rd2latex() ..
interestingly   Rd2txt()  does not produce the extra new lines
even without your patch.

I plan to commit your proposal after the weekend unless has 
reasons against that.

Best regards,
Martin

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

Reply via email to