List of main changes in latexmk From v. 3.04 to v. 3.07 Pdf files can be made by any of three methods: pdflatex, from dvi or from postscript. Extra command-line options -- see documentation Improved configuration options -- see documentation Bug fixes, etc Improved detection of dependencies If latexmk exits because of an error with latex, bibtex or makeindex, then it gives a non-zero exit code. Under MS-Windows allow wildcards in filenames. From v. 3.07 to v. 4.01 Allow dvips, etc to put files in temporary location then move to final location. This enables the problem to be avoided that some viewers look for changes in a file and read a new file before the writing of it is complete. Ensure that an error in exectuing an rcfile results in an error message visible to the user. OS-specific initialization code now includes section for Mac OS-X. Make code safe, as far as possible, for filenames containing spaces. Change method of detecting out-of-date-ness, etc, to examine all files for changes. Keep a database (in a file with extension fdb_latexmk) of the previous state of the files. The aux.bak and idx.bak files are no longer used. The primary method of detecting change is from the md5 checksum of a file. This deals automatically with the vast majority of cases where there is circular dependence of files, without needing special coding in latexmk to know which input files to a LaTeX run are generated from a previous run. Hence make a much more systematic and general method for treating dependencies. Substituteable place holders allowed in command specifications, to allow very general specification of commands (including multiple commands, pipelines etc). Extra option --dependents to list dependent files. Support for multibib.sty, multind.sty, etc. Support for index.sty as well as makeidx.sty. Allow .latexmkrc as file name in project directory (as opposed to latexmkrc). Command-line option -e to allow execution of initialization code from command-line invocation of latexmk. Routines add_cus_dep, remove_cus_dep and show_cus_dep for manipulating custom-dependency list. Ability to specify lines to be ignored in computing md5 checksum of a file of a particular extension. (An example would be a comment line in an encapsulated postscript file that contains the date and time it was created. Such lines may change without having any consequence on the use of the file.) Miscellaneous bug fixes, etc. Improvements in parsing of log file From v. 4.01 to v. 4.05 Miscellaneous bug fixes Fix bug that -ps -pdfps runs ps2pdf before dvips Deal with quoted filenames in log file Correct problem with invocation of MSWin start command -c and -C now also delete fdb_latex file For home directory (where user's .latexmkrc is located, when $ENV{'HOME'} does not exist, use $ENV{USERPROFILE} (suitable for MS-Win). Correct treatment of -e option Fix possibility that unwrapping of lines in log_file is done incorrectly Correct parsing of log file Improve diagnostics of reasons for rerun of external program. Fix problems when using both latex and pdflatex Configurable extensions for finding cusdep Change to a nicer #! line Safer use of % in placeholders in commands From v. 4.05 to v. 4.07 In preview-continuous mode, arrange that ctrl/C used to stop the processing loop does not automatically kill a script used to call latexmk Better handling of situation when a run of (pdf)latex does not produce a dvi or pdf file, or when the opposite type of output is produced than expected (e.g., pdf instead of dvi by latex) Deal better with case that file is written and read by (pdf)latex during a run From v. 4.07 to v. 4.10 Binmode for log file under MSWin to avoid problem with ctrl/Z written by Miktex 2.7 giving spurious end-of-file. Deal with issues in depedency structure caused by epstopdf, which automatically creates pdf files from eps files during run of pdflatex. Correct problem with determining use of custom dependencies, when file-not found-report has extensionless filename, but corresponding .tex file exists. Preview-continuous mode now doesn't bomb out if there are errors during first run of (pdf)latex. (Previously that caused the previewer not to run even if viewed file exists.) From v. 4.10 to v. 4.11 Corrects a long-standing bug that when the main file uses bibtex, and uses \include for subdocuments, changes in bibliography citations did not always trigger a rerun of bibtex. Fixed a problem that latexmk did not detect changed aux files etc on a small document when the run of (pdf)latex was within the 1-second granularity of filetimes. Improved start-up times on some large documents by avoiding unnecessary recalculations of md5 checksums. Deals better with eps-to-pdf conversions reported by epstopdf package. -silent option now causes suppression of certain messages about non-existent files When view files are make via a temporary file (not-yet-documented feature), delete old view file before moving the temporary file. (To avoid reported bug in kpdf and okular.) Corrects a problem that with an error introduced at v. 4.08 that on finding an error in processing one file latexmk exits rather than continuing processing other requested files. The exit code returned by latexmk was also incorrect in this situation From v. 4.11 to v. 4.12 Added an option not to run bibtex (to deal with situations where a bbl file is available but not the bib file from which it was made). Corrected misprints in documentation. From v. 4.12 to v. 4.13 Corrected clean_up so aux file is deleted. Default for running bibtex: Only when .bib file exists. Correction insertion of bbl into list of generated extensions. From v. 4.13 to v. 4.13a Corrected a problem that clean-up option (-C) failed to delete certain generated files. From v. 4.13a to v. 4.15 Change defaults on $latex_silent_switch and $pdflatex_silent_switch to make them always TeXLive compatible. To avoid problems with apparent source files that are incorrectly determined from the log file: (a) Make sure md5 calc doesn't bomb out on directory. (b) In parsing log file: if apparent dependent file is directory, remove it from list of dependent files. Better diagnostics at end of run with multiple files: list applications of latex and pdflatex that failed. Fixed problem that with -pvc when (pdf)latex failed, latexmk kept doing dvips, dvipdf, etc. From v. 4.15 to v. 4.15b Changed default location of system rc files for cygwin to include both Unix-like and MSWindows paths. Changed use of Digest module to use of Digest::MD5 module, to give compatibility with the limited installation of perl shipped with TeX Live. From v. 4.15b to v. 4.15c Solved problem that occasionally latexmk failed to detect a dependent file when it analyzed a .log file. (It incorrectly treated some lines of length 79 as being wrapped.) From v. 4.15b to v. 4.16 Solved another problem with misparsed log files. Some versions of pdflatex fail to preceed some warning messages by a new line. Thus these warning messages sometimes appear to be part of a filename. Updated documentation to mention previously undocumented feature about the use of temporary files in making ps and pdf files. From v. 4.16 to v. 4.16a Sanity check on $sleep_time. (Negative times and times between 0 and 1 are replaced by 1.) Corrected problem under preview-continuous mode that some previewers would not see the changed file on an NFS file system. From v. 4.16a to v. 4.17 Deal with bug about misparsing log file with non-space-containing filename that is followed by a space and a message on same line. Previously, the filename would not be detected as a dependent. With $force_mode on, do a better job of completing processing. Remove long-unused options -F and -F- From v. 4.17 to v. 4.18 Only produce "Removing no-longer-needed dependent" messages when diagnostics are on. In analysis of log file, add test for natbib's citation-undefined warning. Correct misprint in documentation. From v. 4.18 to v. 4.20 Fix problem that when bibtex finds no citations, this is treated by bibtex as an error. Previously latexmk respected this and did not continue processing. Now if the only bibtex error is the finding of no citations, then latexmk now treats it as only a warning and continues processing (by latex/pdflatex) as appropriate. Get .bst file in source file list for bibtex. (So an update to the bst file provokes a rerun of the relevant programs.) Allow clean-up to delete destination files of custom-dependencies Configuration variable $cleanup_includes_cusdep_generated to configure whether this is done. (Default is off, for backward compatibility.) Remove use of --width option on $pscmd on linux. It's no longer needed. Remove double quotes (if any) surrounding output filename read from .log file, to avoid wrong diagnostic message. Allow a more general pattern for files to clean up (when the -c, or -C option is used). For details, see the explanation of the $clean_ext variable in the latexmk documentation. Options to set commands used for latex and pdflatex, as in -latex=special_latex_replacement_command -pdflatex=special_pdflatex_replacement_command (This is not yet documented.) From v. 4.20 to v. 4.21 Fix some problems with parsing quoted filenames in log file. These prevented latexmk working correctly with latest version of asymptote.sty. Corrected potential bug in locating graphics files. From v. 4.21 to v. 4.22 Support use of biber (with the biblatex package) for generating bibliographies, with automatic selection of bibtex or biber. From v. 4.22 to v. 4.22b Compatibility with biber 0.7.2. (Latexmk failed to detect .bib files used by biber 0.7.2.) From v. 4.22b to v. 4.22c Biber support is now compatible with MikTeX. From v. 4.22c to v. 4.22d Fix compatibility problem MiKTeX v. 2.8, that latexmk didn't always detect use of makeindex. From v. 4.22d to v. 4.22e Fix incorrect error handling in reading initialization files. (Sometimes an error was incorrectly detected, after which latexmk stopped.) From v. 4.22e to v. 4.23 Deal with problem that if maximum number of runs of (pdf)latex is exceeded, -pvc mode infinitely repeats (pdf)latex Fix problem that changes in generated files during run of (pdf)latex may not be detected if the run is shorter than the granularity of file times. Corrections of comments and messages. Documentation improvement. Correctly parse blg files of biber 0.8 Correct handling of errors given by rc files Enhancements for convenient use of latexmk with Makefiles (options -deps, -deps-out, -use-make) -recorder option for improved detection of input and output files. From v. 4.23 to v. 4.23a Correct bug in detection of source files listed in .fls file From v. 4.23a to v. 4.24 When running biber, find locations of source files when they aren't in the current directory (by use of kpsewhich). This was previously done for bibtex but not biber. From v. 4.24 to v. 4.25 Fix to evade apparent cygwin bug that prevented system rc-file from being read. Diagnostic for unreadable rc-file. Add deps output file to target part of dependency information From v. 4.25 to v. 4.26 Make compatible with biber 0.9.4. Fix some bugs in error reporting. From v. 4.26 to v. 4.27a Deal with problem that making of ps or pdf file via a temporary file fails if the command making it has no %D placeholder Add png to list of graphics extensions for pdflatex Add -norc option that prevents auto reading of rc files. Options -aux-directory -output-directory like those of (pdf)latex, to set the output directories of (pdf)latex. (-aux-directory is MiKTeX only). Corresponding configuration variables, and placeholders for command specification. From v. 4.27a to 4.28 Correct handling of situations where some file(s) needed by bibtex (or biber) don't exist. Previously latexmk incorrectly stopped with an error message instead of continuing. From v. 4.28 to 4.28a Correct duplicate making of view file From v. 4.28a to 4.28c When biber doesn't find the bib file, latexmk treats this as a warning rather than a fatal error, so further processing can continue normally. Latexmk now parses correctly error messages from biber v. 0.9.7. From v. 4.28c to 4.29a Latexmk now works with the feynmp package and mpost, provided a suitable custom dependency is defined. (See the example latexmkrc fragment mpost_latexmkrc in the example_rcfiles directory in the latexmk distribution.) If output directory is set, arrange that dvips can find files there. In searching for cus-deps that can make a missing file, look in $out_dir. Solves problem that sometimes dvips and dvipdf weren't run when they should have been. (The problem only arose with certain changes in eps files being made within a minute of the previous run.) From v. 4.29a to 4.30a Fix use of bibtex so that it works correctly when $aux_dir and/or $out_dir are set. Use OS-dependent search path separator when when manipulating TEXINPUTS, etc. Then use of -output-directory and -aux-directory options should work on MSWin systems. Documentation of $search_path_separator variable. From v. 4.30a to 4.31 Add -M -MP and -MF options, like gcc. Recorder option is now on by default. Add options reproducing most options of (pdf)latex (list from both TeXLive and MikTeX versions). Options NOT implemented by latexmk at all: -ini and -initialize since they refer to operations not supported by latexmk -includedirectory=dir its support needs extra code in latexmk, not currently written Options differently processed by latexmk: -help -version -quiet Options that are passed to (pdf)latex but that also have special processing by latexmk -aux-directory=dir -output-directory=dir -recorder Add -latexoption=... option to latexmk Add -xelatex option for use of xelatex Change OS-X default for pdf previewer command to open Command specification string can start with "include routine" to invoke a Perl subroutine instead of an external cmd. Viewers are detached by default. (The start keyword is now normally superfluous in command specifications.) Keyword nostart added in command specification. Add configuration variables $compiling_cmd, $success_cmd, $failure_cmd. These specify external commands (if any) to be executed during latexmk's continuous preview mode at the following points: $compiling_cmd at the start of compilation, $success_cmd at the end of a successful compilation, and $failure_cmd at the end of an unsuccessful compilation. They can be used, for example, to show the progress of compilation by setting the titles of editor and/or previewer windows. If aux and/or output directories are specified but don't exist, make them. Remove excessive repetition of tests for changes of source files (improves performance of latexmk in some situations). Documentation improvements. Minor bug corrections.