A glitch (???) in tools::texi2pf.
On Sat, 28 Aug 2021 09:47:03 +0200
Achim Zeileis <Achim.Zeileis at uibk.ac.at> wrote:
On Sat, 28 Aug 2021, Rolf Turner wrote:
I have found that tools::texi2pf() ignores changes to the *.bib file unless the *.bbl file is removed prior to re-running tools::texi2pdf().
This is how texi2pdf (or actually texi2dvi) from texinfo behaves. This is likely what tools::texi2pdf calles in your setup anyway. In short, texi2dvi considers the .bbl as input files to the .tex and does not remove them if they are available prior to calling texi2dvi. Alternatives: (1) You can always re-run everything. Then simply start with a clean directory and always use tools::texi2pdf(..., clean = TRUE). This cleans up all the files it has produced (except the .pdf). But it will preserve files left in the directory from previous runs. (2) You can detect upstream changes, e.g., based on timestamps etc. Then the traditional approach would be to use a Makefile. Best, Z
Thanks. I guess you're saying that it's a feature, not a bug. :-) Well it's a feature that I intensely dislike, but that cuts no ice I'm sure, and I'll just have to cope with it. I can easily build a local function that will remove *.bbl before invoking tools::texi2pdf(), and use that, rather than calling tools::texi2pdf() directly. However I *really* believe that this is a bad feature, and is a Trap For Young Players. Hardly anyone knows what a *.bbl is or is for. Users would expect that changing the *.bib file would change the reference list in the output. (I.e. that texi2pdf() would re-run bibtex "under the bonnet", as the user would do if processing from the OS command line rather than applying texi2pdf() from R.) I wonder how many papers in the R Journal have errors in their reference lists due to the fact that authors corrected the *.bib file, reprocessed using texi2pdf() and did not notice that the error they corrected had *not* been corrected in the *.pdf output? cheers, Rolf
Honorary Research Fellow Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276