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, > ZThanks. 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
As Achim wrote in point (2), Makefile is your friend. On Sat, Aug 28, 2021 at 12:39 PM Rolf Turner <r.turner at auckland.ac.nz> wrote:> > 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 > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
On Sat, 28 Aug 2021, Rolf Turner wrote:> > 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. :-)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