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.

From v. 4.31 to 4.33a
  Improve operation under MSWindows: substitute "\" for "/" for
    directory separator in command lines, deal consistently with
    directory separator, which can be both "\" and "/".
  Correct some bugs that interfered with use of auxiliary directory
    and output directory for files generated by (pdf)latex,
    especially with MiKTeX.
  Fix problems caused because in the log and fls files MiKTeX writes
    absolute path for many filenames at and below current directory,
    and is inconsistent in its use of "/" vs. "\" as directory
    separator.
  Add $dvipdf_silent_switch configuration variable.
  Improve handling of errors in (pdf)latex; previously latexmk would
    give up processing in some situations continuing is correct.
  Documentation corrections/improvements.
  Reduce number of warnings in silent operation.
  Cure slowness of v. 4.33 under Cygwin.

From v. 4.33a to 4.33b
  Documentation improvements.
  Improve text displayed by using -showextraoptions option.

From v. 4.33b to 4.33c
  Correct infinite loop when maximum passes through latex/pdflatex
     are exceeded

From v. 4.33c to 4.34
  Correct non-optimality that if (pdf)latex reads a file only after
     it has been written in the same run, the file is not a true
     source file, but nevertheless latexmk treats it as a source
     file.  Thus changes in the file sometimes caused latexmk to make
     unnecessary (but otherwise innocuous) extra runs of (pdflatex).

From v. 4.34 to 4.35
  Correct bug in parsing fls file from native MS-Windows LaTeX (e.g.,
     MiKTeX) when latexmk is run under cygwin.  (The names of some
     files used by latexmk incorrectly contained a CR character.)
  Correct bug that when the --gg option is used, the rule database
     from the old fdb file was used instead of being cleared.

From v. 4.35 to 4.37
  Correct failure that happens when name of current directory
    contains characters with special meaning in regular expression.
  -rules option now works with -pvc
  Add -lualatex option, like -xelatex.
  File specifications in $clean_ext and $clean_full_ext are allowed
    to contain wildcards.
  Warnings are given when rc file is a directory instead of a file.
  Correct bug that if revtex4-1.cls is used, footnotes are set to
    be in the bibliography, and latexmk's aux_dir or out_dir is set,
    then latexmk fails to run bibtex when needed, because the
    relevant bib file is not found.
  Other minor corrections and code improvements.
  Documentation updates and corrections.

From v. 4.37 to 4.39
 Automatic creation of necessary subdirectories of auxdir when needed
   for writing aux files.
 Add error diagnostics to if_source
 Allow $print_type = 'auto', and make this the default, so that
   when the -p option to latexmk is used to print the file, the
   default is to determine the type of file to be printed, rather
   than always requiring postscript.
 Fix the failures when dealing with directories whose names contained
   certain special characters in them (notably '[', ']' and space).
   [Technical issue: these characters had special meaning when
   previously interpreted as metacharacters in a glob operation.]
   This gives dependency on Perl's File::Glob module, which is a
   standard module in normal installations of Perl.
 When an output directory is a subdirectory of a directory, ensure
   that it is correctly created, if it has to be created.
   Previously, the creation of the output directory when it does not
   exist only worked for one level.
   This gives dependency on Perl's File::Path module with v. >= 2.08,
   which is a standard module in normal installations of Perl.
 In output of dependencies, include pathname of target file(s) in the
   rule.
 In -pvc mode, writing of deps file (caused by the -M and related
   options) is per make not per overall run.

From v. 4.39 to 4.39 documentation update of 2 Dec 2013
 Correct two errors in documentation and in the file COPYING.

From v. 4.39 to 4.40
 Fix failure to clean up correctly when root filename contains [,
   which is a glob metacharacter.

From v. 4.40 to 4.41
 -c also deletes $deps_file if it is used
 Quote jobname when needed.
 Change maintainer's preferred e-mail
 Attempt to improve handling of errors from (pdf)latex.
 Fix up for the making of -eps-converted-to.pdf
 Improve listing of warning lines from log file.
 Fix failure when using both -cd and -output-directory
 If user's home directory can't be determined, then don't read ~/.latexmkrc
 Introduce configuration variable $silence_logfile_warnings
 In setting $pscmd, allow for non-existent environment variable USER
 Correct subroutine Run for internal cmd w/o arguments
 Experimental: Add analysis hook for aux file.
 System initialization files: allow them to be named latexmkrc as
   well as LatexMk, for more consistency with user directory names.
   Keep both cases, to preserve backward compatibility.
 Change sign-on message.  Bug report info with help.

From v. 4.41 to 4.42
 Fix bugs associated with the -cd option
 Add missfont.log and the generated synctex.gz to standard cleaned-up files

From v. 4.42 to 4.43a
 Fix problem that source files are not correctly detected under
   MiKTeX when name of current working directory contains non-ASCII
   characters.
 On cleanup, synctex.gz files are deleted only by -C, not by -c.

From v. 4.43a to 4.43c
 Correct normalization of filenames, so that initial "./" is always
 removed.  This prevents custom dependencies being run twice on the
 same file.
 Documentation correction on use of @BIBINPUTS.
 Diagnostic correction.
 Example rc file for using texinfo (thanks to Vincent Bela\"iche).
 Additions to documentation concerning advanced configuration.

From v. 4.43c to 4.44
 Correct bug in use of %hash_calc_ignore_pattern
   (Previously it only had its documented effect when a targetted
   file hadn't changed in size.)
 Correct error handling when biber finds a malformed .bcf file.

From v. 4.44 to 4.45
 Fix problem of -C not always working correctly when compilation was
 with -pdf and clear was default.
 Fix bug in limiting number of passes when $max_repeat >= 10
 Fix bug in finding id of viewer process id under OS-X

From v. 4.45 to 4.46
 Correct creation of output and aux directories to correctly handle
 relative paths when -cd is used.
 Minor documentation corrections.

From v. 4.46 to 4.48
 Correct documention: default value of $recorder is 1
 Add routines rdb_list_source, rdb_set_source for manipulating
   dependency lists of a rule.  Add these to the documentated
   interface, in addition to the already documented rdb_ensure_file,
   rdb_remove_files.
 Update webpages in documentation.

From v. 4.48 to 4.52
 Optimize number of calls to kpsewhich.  This often gives a
   considerable savings of run time when a document includes many
   graphics files that are in a texmf tree.
 Fix bug that if an .aux file is deleted and latexmk is run, the
   wrong number of runs of (pdf)latex was made.
 Fix related problem that latexmk sometimes does too few runs of
   (pdf)latex because of the incorrect detection that a file is only
   read after being written.
 Implement direct support for xelatex and lualatex.  Previously these
   programs were used by configuring the $pdflatex so that the desired
   program is run instead of pdflatex.  There are now configuration
   variables $xelatex and $lualatex to specify the commands used, and
   extra command line options -pdfxe and -pdflua.
 In the case of xelatex, considerable improvement in run time is
   given for documents containing large graphics files.  This is
   because compilation is made first to an xdv file instead of direct
   to a pdf file.  Only when this file is finalized is a single
   conversion to a pdf file made.  (This last step can be especially
   time-consuming for documents that bring in large graphics files.)
 Correct detection for missing graphics files with xelatex.
 Work around LuaTeX line-wrapping bug.
 Update documentation.
 Minor improvements in code and diagnostics.

From v. 4.52 to 4.52b
 Fix bug introduced in 4.52 that use of bibtex wasn't always detected
   when recorder mode is on.

From v. 4.52b to 4.52c
 Make -jobname work with -pdfxe and -pdflua.

From v. 4.52c to 4.54
 In deps_list, correct bug in identifying generated files.
    Otherwise, generated files could have been identified as true
    source files.
 Remove insertion of name of deps file in list of targets in deps file.
 Don't send to screen deps info in deps mode (unless diagnostics on).
 Correct ordering of list of options given by -help.
 Fix incorrect deletion of non-generated aux files.
 Optimize away current directory string in $out_dir and $aux_dir.
 Make compatible with future versions of Perl where File::Glob's glob
   function won't exist.
 Add extra value 1.5 for $bibtex_use, with corresponding option
   -bibtex-cond1; this treats bbl files as conditionally precious in
   cleanup operations, depending on the existence or non-exisitence
   of bib files.
 When running bibtex, ensure that the change in search paths is made to work
   around deficiencies in bibtex is local and does not affect other
   programs.
 Collection of timing information now works in silent mode.
 Set better default previewers for MSys.
 Restore default of $analyze_input_log_always to 1.
   This restores the default detection of certain constructs for dependencies
   for input files in the .log file. See the comments on this variable in
   latexmk.pl for details.  This works around a problem caused by a change in
   the behavior of lualatex in TeXLive 2017; it no longer lists all input
   files in the .fls file.  Note that latexmk.pl always examines the .log
   file for relevant information.  The variable $analyze_input_log_always
   only concerns whether it looks for <...> and (...) constructs.
 Add item to @file_not_found for the particular format of generic package
   warning about "No file", that is produced by glossaries-extra, and
   probably other packages.
 Documentation improvements, especially on methods of implementing
   custom dependencies for multiple kinds of index.
 Document $kpsewhich_show variable.
 Add a sample latexmkrc file for use with bib2gls and glossaries-extra.

From v. 4.54 to 4.54c
 Work-around for when bsd_glob is not available on old installations of
   Perl.  (Note that with these old installations, clean-up operations
   may not work when file or directory names contain spaces.)

From v. 4.54c to 4.55
 Correct bug that $search_path_separator wasn't defined under msys.
 Ensure that all configuration variables do have sensible default
   definitions (which wasn't always the case previously).
 Allow optional timeout in pvc mode after a period of inactivity.
   (See documentation for -pvctimeout option.)
 Compensate for problems caused by time offset between system time on
   system running latexmk and file times on remote file system.
   (It caused wrong behavior when a document uses biber, MiKTeX
   is used, the aux_dir is on a remote file system, and the system
   time on the host of the file system differs from the system time on
   the system running latexmk.)

From v. 4.55 to 4.55a
 Add option that latexmk returns a non-zero status code when
   the final run of (pdf)latex gives warnings about undefined
   references or citations or about multiply defined references.
 Implement $warning_cmd to allow a visual cue for these situations in
   pvc mode (in addition to the current possibilities for
   $compiling_cmd, $success_cmd and $failure_cmd).

From v. 4.55a to 4.56
 Correct parsing of biber's log file.
 Implement $warning_cmd.
 Deal correctly with situation that files reported in the .fls file
   as INPUT or OUTPUT files no longer exist at end of run. These
   files aren't true source files or generated files from latexmk's
   point of view.  Such cases can arise from a bug in the TeX
   engine (as with lualatex in TeXLive 2016/2017).  They can also
   arise when temporary files are created, read and deleted during
   a run (as with the minted package).
 Update example latexmrc file for pythontex.
 Better error message when .bib file(s) not found.
 Better handling and diagnostics when names of expected and actual
   names of .log disagree.
 In particular, there is some automatic reconfiguration when .log
   file is not in expected place (e.g., because $aux_dir is different
   to $out_dir, but TeXLive is used, so -aux-directory option for TeX
   engines isn't supported).
 Fix problem of .bib files sometimes not being found by bibtex when
   latexmk runs under msys and -outputdirectory is specified.
 Add use of environment variable LATEXMKRCSYS to specify system rc
   file.

From v. 4.56 to 4.57
 Correct problem that in calculation of md5 checksum, an error
   sometimes occurs about malformed utf8 characters.  This can happen
   if the environment variable PERL_UNICODE is set.
 Add configuration variable $bibtex_fudge to allow to choose
   whether to use the fudge that made bibtex run correctly when
   an output directory (or aux directory) is specified.  (A
   planned future version of bibtex in TeXLive will not need
   the fudge.)

From v. 4.57 to 4.59
 Deal with double quote ('"') characters in files on command line to
   correspond to behavior of tex programs.  Remove balanced pairs,
   and give fatal error for unbalanced double quotes. (Note MiKTeX's
   tex programs simply remove unbalanced quotes.)  In all cases, the
   '"' character is not allowed in a filename read by tex and
   friends.
 Give fatal error when name of tex file on command line is either not
   allowed by tex and friends , or gives problematic behavior.
 Use TEXINPUTS as search path for source files for custom
   dependency.
 Only give warning about differing expected and output filenames when
   the extensions differ.  All other cases gave only false positives.
 Do better to ensure xelatex gets its -no-pdf option.

From v. 4.59 to 4.61
 Add -pdfxelatex and -pdflualatex options to set commands for
   xelatex and lualatex (in analogy with -pdflatex and -latex).
 Correct bug that use of -gg option with -deps-file option
   did not create deps file.
 After run of latex/pdflatex (etc), report count of warnings about missing
   characters (typically unavailable Unicode characters). Messages about
   this may appear only in the .log file and are therefore easily missed
   by the user.
 Fix problem that if biber gets a remote file, latexmk would report it
   incorrectly as a missing file.
 Provide routines for setting all of $latex, etc, with a common pattern.
 Variables, options, placeholders for executing code in *latex before
   inputting source file.  The new variable is $pre_tex_code, the
   options are -pretex, -usepretex, and the new placeholders are %P
   and %U.
 Improved definitions provided for the configuration of latexmk to
   use pythontex; see the file pythontex-latexmkrc in the directory
   example_rcfiles.
 Correction to use of specifications in $clean_ext and
   $clean_full_ext so that %R can appear in the interior of a string
   as in 'pythontex-files-%R/*'.
 Updates of documentation.

From v. 4.61 to 4.63b
 Update example_rcfiles/glossary_latexmkrc
 Fix problem that in -cd mode, an error is raised when the path
   part of the tex filename contains a character prohibited by *tex.
 Implement changing of rule network when output of *latex is not what
   is expected, e.g., because \pdfoutput is used in document.
 Implement placeholder for true basename of main tex file, and use it
   in jobname.
 Various bug fixes.

From v. 4.63b to 4.64
 Fix problem that rules processing dvi and xdv did not always run after
   rapid-fire changes in graphics files.

From v. 4.64 to 4.64a
 Fix incorrect listings by -rules and by -deps

From v. 4.64a to 4.65
 Fix incorrect parsing of long quoted filenames in log file that sometimes
   prevented latexmk from running.

From v. 4.65 to 4.67
 Improve parsing of long lines in log file, especially with UTF-8 filenames
   and xelatex.
 Minor diagnostic improvements
 Allow addition of hook for processing lists of missing source files.
 Changing of '\' to '/' in filenames is done for msys as well as MSWin32.
 Use $compiling_cmd, $warning_cmd, $success_cmd on normal make, rather
   than just in -pvc mode.
 If there were missing subdirectories in output/aux directories, and these
   were successfully created, then ignore error from *latex, since rerun
   may succeed.

From v. 4.67 to 4.69a
 Add -E option to default command for xdvipdfmx, to match call made
   by xetex. This forces xdvipdfmx to always try to embed fonts.
 Add -MSWinBackSlash -MSWinBackSlash- options (and corresponding
   configuration variable $MSWin_back_slash) to control whether
   directory separator '\' is used for filenames on command line for
   called programs under MSWin.  -MSWinBackSlash- needs to be used
   when TeXLive is used on MSWin and the TeX filename includes a
   directory component.
 When command-line-specified tex file not found, test for cusdep to
   make it, then try kpsewhich, and only if all 3 fail report an
   error.
 Remove use of $extension_treatment: Too hard to check.  Always use
   what was called 'unix' method, which all *latex implementations
   now use.
 Improve some warning messages.
 Fix bug when -cd and -outdir are used, and outdir is same as
   document directory.  (Bug is caused by problem in perl module
   Cwd.)
 Report rc files read

From v. 4.69a to 4.70a
 Improved compatibility with chapterbib.sty, provided that the configuration
   given in file example_rcfiles/chapterbib-latexmkrc is used.
 Correction of default values of $biber and $bibtex.
 Improved handling of location of bbl and aux files on an intial run.
 Change of default: running bibtex no longer uses temporary change of
   directory, since the bug in bibtex that it evades isn't present in
   recent versions.
 Small bug corrections, and changes to some diagnostic messages.
 Documentation corrections.

From v. 4.70a to 4.70b
 Fix problems when rearranging rules to deal with change of output file of
   *latex engine (e.g., .pdf to .dvi).
 Fix problem with the new default not to do the change of directory for
   bibtex.  Use of full path names for output-directory or tex file no
   longer causes a bibtex error.
 Add options -bibfudge, -bibfudge-, -nobibfudge.

From v. 4.70b to 4.72b
 For bibtex, revert to change-directory default when running bibtex.
 Add similar procedure for makeindex, but leave old default.
 Add options -indexfudge, -indexfudge-, -noindexfudge.
 Solve bug that transition from non-existent file to existent file didn't
   trigger rerun of *latex.  (This concerns file that were flagged as
   missing in the .log file.
 Give .latexmkrc priority of latexmkrc in finding rc files.
 Correct bug when chapterbib used with non-trivial out or aux dir.
 Improve handling of situation when auxdir or outdir are specified as
   absolute paths.
 Miscellaneous bug corrections, especially about consistent normalizations

From v. 4.72b to 4.73
 Correct slowness in parsing some log files.
 Provide emulation of -aux-directory, so that it can be used with
   implementation other than MiKTeX.  (At the moment the only documentation
   of this feature is given by latexmk --help.)

From v. 4.73 to 4.74
 Correct treatment of aux_dir and out_dir to avoid bugs that appeared on
   MS-Windows only.
 Remove some informational messages (about rc files, and the state of
   aux and dir settings after normalization).

From v. 4.74 to 4.74b
 When emulating aux_dir, put .synctex.gz .synctex files in out_dir (as
   done by MiKTeX, and needed for their use).
 Turn emulate aux_dir off by default, to match behavior on older versions
   of latexmk (BACKWARDS INCOMPATIBLE with 4.73 and 4.74.)
 Add end-of-all-runs warning if emulate aux_dir needed to be turned on,
   when it was initially off.
 Add .synctex and .synctex.gz to list of extensions to clear by default.
 Turn back on default to report rc files read.
 Add options -rc-report, -rc-report-, -dir_report, -dir_report-.

From v. 4.74b to 4.75
 For biber, add any dependency on configuration file.
 When -time option used, report running times for all rules

From v. 4.75 to 4.76
 In fdb_latexmk file, sort generated file list by name.
 If nothing is done in a rerun, don't do the unnecessary rewrite of
    fdb_latexmk file.
 Improve some diagnostics.
 Add /etc to list of locations for system rc files (with Unix-like OSs).

From v. 4.76 to 4.77
 Clean up and improvements in warnings etc
 Ensured systematic use of STDOUT and STDERR, to more or less match that
   of  *tex: STDOUT for progress messages, and, normally, errors and
   warnings caused by the compilation of a document.  STDERR is for
   within-latexmk errors etc: incorrect command line, configuration errors
   etc.
 Internal improvements and bug fixes.
 Correctly handle non-ASCII filenames, UTF-8 coding of log files etc,
   including on MS Wndows, and including correct parsing of wrapped
   lines in log files.  Adjust method of unwrapping of wrapped lines in
   log file according to whether latex/pdflatex, lualatex or xelatex is
   used, thereby reducing misparses of information in log file.
 Reinstate Windows batch file for running latexmk, now called latexmk.cmd.
 Remove code that automatically measured a possible offset between clock
   time for the system on which latexmk runs and the system on which files
   are stored. (This was used to adjust a test for whether an expected
   file is generated on the current run of *latex or is a relic from a
   past time.) Modern OSs, by default, synchronize system time with a time
   server.

From v. 4.77 to 4.78
 Option -dvilua to generate dvi file by lualatex
 Option -xdv to generate xdv file by xelatex
 To support these, change in definition of $dvi_mode, and new variables
    $dvilualatex, $xdv_mode.
 Bug corrections etc.
 Configuration variable $bad_warning_is_error to allow certain bad warnings
    in log file (e.g., '\end inside ...') to be treated by latexmk as if
    *latex had reported an actual error.
 On MS-Windows, correctly handle non-ASCII names for file and directory
   variables set in rc files.
 Other improvements in treatment of non-ASCII characters in filenames.

From v. 4.78 to 4.79
 Check rc files for valid UTF-8; remove initial BOM.
 Improve some warnings and messages.
 Correctly implement conditional use of biber, to be able to preserve bbl
   file when bib file doesn't exist.  This behavior now matches the
   conditional use of bibtex.
 Solve problem that processing times under Windows were reported as zero.
 Solve occasional problems caused by granularity of file times when detecting
   files generated during a run of *latex
 Configurably change default location of fls file to aux directory, to match
   behavior of recent versions of MiKTeX.
 Update documentation especially about aux and output directories.
 Add configuration variable (not yet documented) $filetime_slop, with
   default value 2.  When a test for whether a file was generated on the
   current run of *latex, the file modification time is permitted to be
   $filetime_slop seconds older than the system time at the start of a
   run of *latex while still being treated as a generated file.  This
   allows for differences in granularity between the different times
   involved, and especially the 2 sec granularity on FAT file systems.

From v. 4.79 to 4.80
 Improved treatment of detection of whether files (e.g., .log) have been
   generated on current run or are leftover from an earlier run. Code now
   compensates (and diagnoses) time offset between computer running
   latexmk and file server.
 Allow placeholder %C in argument to set_tex_cmds, to allow more flexible
   construction of command lines for all *latex.
 Fix problems of compatibility with the xr package.
 Allow escaping of spaces in names of files in deps files, as needed by
   make. Escaping can be unix-style or nmake-style.
 Various bug fixes and corrections, improvements in error and warning
   messages, and corrections to documentation.

From v. 4.80 to 4.81
 Fix various problems when filenames contain non-ASCII characters,
   especially when MSYS is used.
 Fix problems with analyzing wrapped lines in log files, especially with
   lualatex.
 With options like -dvi that set the kind of output file, turn off
   settings corresponding to incompatible options.
 Improved warning and error messages.
 Fix problem when using the $use_make_for_missing_files, with the search
   over possible extensions for a missing file.
 Add .run.xml to the list of generated extensions in @generated_exts.
 Correct the behavior after errors.  Previously force_mode didn't work as
   documented, terminating processing too early, while in
   preview_continuous_mode, incorrect extra runs were sometimes made.
 Other bug fixes.

From v. 4.81 to 4.82
 Fixed various anomalies in working with biber, especially under error conditions.
 Fixed various anomalies with use of -bibtex- and -bibtex-cond options.
 Fixed problem that -Werror worked only with bibtex and not biber. (This
   is the option that causes latexmk to return a non-zero exit code to
   flag an error when there are missing-citation messages in the .log
   file.)
 Added -dir-report-only option.
 Fixed lack of quoting on command line to kpsewhich.
 Implemented support for hilatex (-hnt option, $hnt_mode configuration
   variable).
 Allow sleep times of under a second. (That gives very responsive
   performance on fast computers.)
 Support ^^ format in .log file for non-ASCII bytes/characters.
 Document $filetime_causality_threshold configuration variable.
 Other documentation improvements.

From v. 4.82 to 4.82a
 Fixed problem that with the use of %hash_calc_ignore_pattern, warnings
 about "Use of uninitialized value $_" were given, and some corresponding
 dependencies were incorrectly treated.

From v. 4.82a to 4.83
 Fix bug that sometimes biber is incorrectly run after a *latex run
   results in an error, with biber then giving an error.
 Fix problem that if -gg is used with multiple files specified on command
   line, then generated files are deleted for all by the last file
   compiled.  (So that -gg wasn't working as intended in this case.)
 Fixed some bugs with incorrect variable scope.  (These bugs gave
   incomprehensible error messages about undefined variables!)
 Restrict warning diagnostics about ^^ constructs in aux file to those
   involving non-trivial Unicode characters, as against things like ^^M.

From v. 4.83 to 4.84
 Update example_rcfiles/bib2gls_latexmkrc to deal with situation where
   .glstex file has basename of .bib file rather than that of main .tex
  file.
 Update example_rcfiles/asymptote_latexmkrc.
 Update example_rcfiles/splitindex_latexmkrc.
 Add example_rcfiles/memoize_latexmkrc.
 Improve detection of need to run makeindex (solves non-detection when
   imakeidx package is used with splitindex option).
 Implement final-output directory, with option -out2dir, variables
   $out2_dir, @out2_exts.
 Document hook mechanism.
 Document $allow_subdir_creation variable.

From v. 4.84 to 4.85
 Correct bug that if $out_dir and $out2_dir referred to the same
   directory, but latexmk didn't detect that, then the subroutine copy
   reported an error, and latexmk treated that incorrectly as a fatal
   error.

From v. 4.85 to 4.86
 Document variable $user_deleted_file_treated_as_changed.
 Correct problems when main pdf output file is detected as an INPUT file in
   the .fls file.  (That sometimes affected dependency detection of
   included graphics files with the same basename as the main .tex
   document.)
 Updates to example_rcfiles/xr_latexmkrc, example_rcfiles/pythontex_latexmkrc,
   example_rcfiles/splitindex_latexmkrc, example_rcfiles/bib2gls_latexmkrc.
 Correct detection of graphics includes in .log file.
 Apply autoflush to STDOUT, so that when STDERR and STDOUT are redirected
   to the same place, the output is correctly ordered.
 Add base name to the list of items reported with the -dir-report and
   -dir-report-only options.
 With -dir-report-only make report for each tex file to be processed.
 Fix failure of -c and -C with $cleanup_includes_generated = 1; when
   engine is lualatex or hilatex.
 Documentation updates.
 Correct problem that necessary necessary directory/ies not created in aux
   dir when \include'd file has more than one level of subdirectory.
 Correct message about up-to-date files when $max_repeat runs exceeded.

From v. 4.86 to 4.86a
 Correct instructions for remaking the documentation files in INSTALL.

From v. 4.86a to 4.867
 Update documentation for go mode.
 Update installation instructions and latexmk.cmd.
 Correct/improve some items in example_rcfiles/.
 Update detection of missing files reported by index package.
 Correct detection of .bbl and index files after change of aux_dir.
 --pdflatex no longer sets $pdflatex, so its behavior matchex --lualatex etc.
 Removed banner options from on-line help; they are essentially obsolete.
 Correct some informational and warning messages.
 Add -cnf-line=STRING to set of allowed options passed to *latex.
 Correct method of detection of need for biber or bibtex:
  In some cases, latexmk would incorrectly run bibtex and get an error.
  (E.g., with beamer package and its option 'show only notes'.)