On Sat, 28 Aug 2021, Rolf Turner wrote:


On Sat, 28 Aug 2021 09:47:03 +0200
Achim Zeileis <achim.zeil...@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. :-)

Also. But the main point is that it's a feature of texi2dvi from texinfo which is called by tools::texi2dvi(). Hence, if you want to raise this somewhere it would have to be with the texinfo maintainers.

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.)

The problem is that currently texi2dvi has no concept of judging whether the .bib or .bbl were modified last.

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?

I don't know what the R Journal editors are doing but for JSS I'm cleaning such files up (repeatedly actually) before compiling the final PDFs.

Best,
Z

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to