On 14/03/2014 12:28 PM, Skye Bender-deMoll wrote:
Dear R-devel,


Question:

      How can I get Sweave to recognize that the \thebibliography section
is already created and generate the vignette pdf with a single pass? Or
is there a way to let R CMD build know that Sweave needs to be run twice?

I think the problem isn't Sweave: it ignores LaTeX code. The problem is the following step that converts the .tex output into a .pdf, which is handled by tools::texi2pdf (which runs tools::texi2dvi). That function makes an effort to determine how many LaTeX passes are required, but it appears you are fooling it somehow.

Take a look at the source to tools::texi2dvi, and see if you can spot what's going wrong in your case. There are a number of different paths through that code that depend on your particular setup, so we can't do that. If you don't succeed in this, then post a simplified sample package and someone else will be able to see if they have the same problem as you, and perhaps fix it.

Duncan Murdoch


      If (1) is not possible, any suggestions how to auto-generate a
crude generic bibtex .bib file from my existing document?

Background:

I maintain serveral R packages that include package vignettes. The
vignettes include the reference citations inline as\bibitem lines inside
a thebiblilography section. For some reason, this requires running
Sweave twice on the document (the first pass is presumably preformatting
the citation information?) to produce a pdf. This seems to be the source
of problems when included in R's preferred vignette location
(/vignettes/myPackage.Rnw) because the R package builder just runs
Sweave once during the check process, so no pdf is produced and warnings
are generated like

checking package vignettes in ‘inst/doc’ ... WARNING
   Package vignette without corresponding PDF/HTML

In the past, it has been possible for me to pre-build the pdf, and
include it in the /inst/doc/ directory. But it seems the upcoming
versions of R may prohibit this.

It appears that it is possible to avoid all this by including a bibtex
.bib file along with the vignette instead of doing the citations inline.
If the .bib files exists, it seems to generate with a single pass. But
reformatting all of the citations for each document into bibtex will be
a huge pain. Including a blank \bibliography{} command above my
\thebibliography environment also allows the document to be build in a
single pass, but generates a warning about duplicate biliography and
writes the section header twice (not surprisingly).


Note: I've cross-posted this question at:
http://stackoverflow.com/questions/22237675/how-to-get-sweave-to-recognize-thebibliography-environment-and-build-r-package

thanks for your help,
   best,
   -skye

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

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

Reply via email to