[tex-live] Cooperation of latexmk and certain LaTeX packages

John Collins collins at phys.psu.edu
Thu Aug 13 18:43:02 CEST 2009


This message concerns the interaction between certain LaTeX packages and a 
script latexmk that I maintain.  Tex-live seems to be an appropriate forum, 
since the issue concerns interaction between different components of a 
complete TeX installation.

The LaTeX packages that matter for this purpose are ones like epstopdf and 
pstool that use \write18 to execute a command to generate a file needed by 
a compilation of a .tex file.  I would like to suggest standardizing 
certain informational messages to work better with scripts that analyze a 
log file for dependency information.

[For those of you are unfamiliar with latexmk: It is a perl script that 
runs (pdf)latex and associated programs as appropriate to get the output 
files up-to-date.  One of its functions is continuous update mode, where it 
periodically scans source files for changes and runs (pdf)latex etc when 
needed.  It can also be configured to run external programs to generate 
files needed by a run, e.g., .pdf or .eps from a source graphics file, or 
.pdf from .eps.]

Latexmk parses the log file to determine the source files for 
latex/pdflatex.  There can obviously be a lot of interference between 
latexmk and packages that use \write18 to generate files; without 
appropriate information in the log file, any software that analyzes the log 
file can get a misleading impression of the true source files for a run of 
(pdf)latex.

I would like to suggest that it would be useful to standardize certain 
messages.  It doesn't matter whether they appear on-screen during a run, 
but they should definitely be in the log file. My initial proposal is the 
following set:

    package_name: Converted `graphics.pdf' from `graphics.eps'

whenever a file is actually converted.

In addition, the package should indicate whether it deals with out-of-date 
converted files

    package_name: NO automatic update `graphics.pdf' from `graphics.eps'

if the package will not automatically update the destination file when it 
becomes out of date.  (E.g., because of a configuration setting, because 
\write18 is not enabled, or because the version of pdflatex used does not 
access information on file timestamps.)

    package_name: Will update `graphics.pdf' from `graphics.eps'

if the package will automatically update the destination file when it 
becomes out of date, provided the current settings are the same in a future 
run.

The last two messages should be provided whether or not the package has 
actually done any conversion, so that the dependency information is clear.

John Collins


More information about the tex-live mailing list