summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/support/latexmk/CHANGES15
-rw-r--r--Master/texmf-dist/doc/support/latexmk/README6
-rw-r--r--Master/texmf-dist/doc/support/latexmk/extra-scripts/README16
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.pdfbin79663 -> 80419 bytes
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.txt337
-rwxr-xr-xMaster/texmf-dist/scripts/latexmk/latexmk.pl170
-rw-r--r--Master/texmf/doc/man/man1/latexmk.137
-rw-r--r--Master/texmf/doc/man/man1/latexmk.man1.pdfbin90633 -> 91067 bytes
8 files changed, 305 insertions, 266 deletions
diff --git a/Master/texmf-dist/doc/support/latexmk/CHANGES b/Master/texmf-dist/doc/support/latexmk/CHANGES
index 5f208d7369a..ed7ff495b2c 100644
--- a/Master/texmf-dist/doc/support/latexmk/CHANGES
+++ b/Master/texmf-dist/doc/support/latexmk/CHANGES
@@ -170,3 +170,18 @@ From v. 4.16 to v. 4.16a
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.
+
diff --git a/Master/texmf-dist/doc/support/latexmk/README b/Master/texmf-dist/doc/support/latexmk/README
index 01a3221a01c..7b4aa8583ff 100644
--- a/Master/texmf-dist/doc/support/latexmk/README
+++ b/Master/texmf-dist/doc/support/latexmk/README
@@ -1,4 +1,4 @@
-Latexmk, version 4.16a, 18 May 2010
+Latexmk, version 4.18, 27 July 2010
-----------------------------------
Latexmk completely automates the process of generating a LaTeX document.
@@ -91,7 +91,7 @@ I hope you find this useful.
John Collins
---------------------------- "latexmk -h" ----------------------------
-Latexmk 4.16a: Automatic LaTeX document generation routine
+Latexmk 4.18: Automatic LaTeX document generation routine
Usage: latexmk [latexmk_options] [filename ...]
@@ -123,8 +123,6 @@ Usage: latexmk [latexmk_options] [filename ...]
-e <code> - Execute specified PERL code
-f - force continued processing past errors
-f- - turn off forced continuing processing past errors
- -F - Ignore non-existent files when testing for dependencies
- -F- - Turn off -F
-gg - Super go mode: clean out generated files (-CA), and then
process files regardless of file timestamps
-g - process regardless of file timestamps
diff --git a/Master/texmf-dist/doc/support/latexmk/extra-scripts/README1 b/Master/texmf-dist/doc/support/latexmk/extra-scripts/README1
index 91ad908c9b0..0f67cb114dc 100644
--- a/Master/texmf-dist/doc/support/latexmk/extra-scripts/README1
+++ b/Master/texmf-dist/doc/support/latexmk/extra-scripts/README1
@@ -2,7 +2,7 @@ Auxiliary scripts for latexmk
=============================
John Collins (collins at phys.psu.edu)
-19 Apr 2010
+23 Jun 2010
Latexmk can be configured to use different programs than the standard
ones to perform its tasks. If a user finds that the default behavior
@@ -141,3 +141,7 @@ needs you to do to make the script executable.
For MS-Windows systems use the batch files dvipdfm_call.bat and
dvipdfmx_call.bat.
+6. completion.bash
+
+ Bash script by Christoph Junghans that implements a bash
+ completion function for latexmk.
diff --git a/Master/texmf-dist/doc/support/latexmk/latexmk.pdf b/Master/texmf-dist/doc/support/latexmk/latexmk.pdf
index e098634792e..b414d48629c 100644
--- a/Master/texmf-dist/doc/support/latexmk/latexmk.pdf
+++ b/Master/texmf-dist/doc/support/latexmk/latexmk.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/latexmk/latexmk.txt b/Master/texmf-dist/doc/support/latexmk/latexmk.txt
index 84914dde566..f8d83547723 100644
--- a/Master/texmf-dist/doc/support/latexmk/latexmk.txt
+++ b/Master/texmf-dist/doc/support/latexmk/latexmk.txt
@@ -127,7 +127,7 @@ LATEXMK OPTIONS AND ARGUMENTS ON COMMAND LINE
- 18 May 2010 2
+ 27 July 2010 2
@@ -193,7 +193,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 3
+ 27 July 2010 3
@@ -259,7 +259,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 4
+ 27 July 2010 4
@@ -270,8 +270,8 @@ LATEXMK(1L) LATEXMK(1L)
-diagnostics
Print detailed diagnostics during a run. This may help for
- debugging problems or to understand .latexmk's behavior in dif-
- ficult situations.
+ debugging problems or to understand latexmk's behavior in diffi-
+ cult situations.
-dvi Generate dvi version of document.
@@ -325,7 +325,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 5
+ 27 July 2010 5
@@ -391,7 +391,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 6
+ 27 July 2010 6
@@ -457,7 +457,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 7
+ 27 July 2010 7
@@ -492,7 +492,11 @@ LATEXMK(1L) LATEXMK(1L)
can only work with one file. So in this case you will normally
only specify one filename on the command line. It is also
incompatible with the -p and -pv options, so it turns these
- options off
+ options off.
+
+ The -pvc option also turns off force mode (-f), as is normally
+ best for continuous preview mode. If you really want force
+ mode, use the options in the order -pvc -f.
With a good previewer the display will be automatically updated.
(Under some but not all versions of UNIX/Linux "gv -watch" does
@@ -516,14 +520,10 @@ LATEXMK(1L) LATEXMK(1L)
"forked" previewer will continue to run. Successive invocations
with the -pvc option will not fork new previewers, but latexmk
will normally use the existing previewer. (At least this will
- happen when latexmk is running under an operating system where
- it knows how to determine whether an existing previewer is run-
- ning.)
-
- 18 May 2010 8
+ 27 July 2010 8
@@ -532,6 +532,10 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ happen when latexmk is running under an operating system where
+ it knows how to determine whether an existing previewer is run-
+ ning.)
+
-pvc- Turn off -pvc.
-quiet Same as -silent
@@ -583,13 +587,10 @@ LATEXMK(1L) LATEXMK(1L)
-view=default, -view=dvi, -view=ps, -view=pdf
Set the kind of file used when previewing is requested (e.g., by
the -pv or -pvc switches). The default is to view the "highest"
- kind of requested file (in the order dvi, ps, pdf).
-
- The preview-continuous option -pvc can only work with one file. So in
- 18 May 2010 9
+ 27 July 2010 9
@@ -598,6 +599,9 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ kind of requested file (in the order dvi, ps, pdf).
+
+ The preview-continuous option -pvc can only work with one file. So in
this case you will normally only specify one filename on the command
line.
@@ -650,12 +654,10 @@ CONFIGURATION/INITIALIZATION (RC) FILES
the user may choose to set it.
3) The RC file in the current working directory. This file can be
- named either "latexmkrc" or ".latexmkrc", and the first of these to be
- found is used, if any.
- 18 May 2010 10
+ 27 July 2010 10
@@ -664,6 +666,9 @@ CONFIGURATION/INITIALIZATION (RC) FILES
LATEXMK(1L) LATEXMK(1L)
+ named either "latexmkrc" or ".latexmkrc", and the first of these to be
+ found is used, if any.
+
4) Any RC file(s) specified on the command line with the -r option.
Each RC file is a sequence of Perl commands. Naturally, a user can use
@@ -716,13 +721,10 @@ HOW TO SET VARIABLES IN INITIALIZATION FILES
-FORMAT OF COMMAND SPECIFICATIONS
- Some of the variables set the commands that latexmk uses for carrying
- out its work, for example to generate a dvi file from a tex file or to
- 18 May 2010 11
+ 27 July 2010 11
@@ -731,6 +733,9 @@ FORMAT OF COMMAND SPECIFICATIONS
LATEXMK(1L) LATEXMK(1L)
+FORMAT OF COMMAND SPECIFICATIONS
+ Some of the variables set the commands that latexmk uses for carrying
+ out its work, for example to generate a dvi file from a tex file or to
view a postscript file. This section describes some important features
of how the commands are specified.
@@ -783,13 +788,10 @@ LATEXMK(1L) LATEXMK(1L)
The distinction between %B and %R needs a bit of care, since they are
often the same, but not always. For example on a simple document, the
- basename of a bibtex run is the same as for the texfile. But in a doc-
- ument with several bibliographies, the bibliography files will have a
- variety of names. Since bibtex is invoked with the basename of the
- 18 May 2010 12
+ 27 July 2010 12
@@ -798,6 +800,9 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ basename of a bibtex run is the same as for the texfile. But in a doc-
+ ument with several bibliographies, the bibliography files will have a
+ variety of names. Since bibtex is invoked with the basename of the
bibliography file, the setting for the bibtex command should therefore
be
@@ -840,31 +845,39 @@ LATEXMK(1L) LATEXMK(1L)
Command names containing spaces: Under MS-Windows it is common that the
name of a command includes spaces, since software is often installed in
- a subdirectory of "C:Program Files". Such command names should be
+ a subdirectory of "C:\Program Files". Such command names should be
enclosed in double quotes, as in
$lpr_pdf = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p
%S';
- Using MS-Windows file associations: A useful trick under modern ver-
- sions of MS-Windows (e.g., WinXP) is to use just the command
+ (Note about the above example: Forward slashes are equivalent to back-
+ slashes in filenames under MS-Windows, provided that the filename is
+ inside double quotes. It is easier to use forward slashes in examples
+ like the one above, since then one does not have to worry about the
- $dvi_previewer = 'start %S';
- Under recent versions of MS-Windows, this will cause to be run whatever
- program the system has associated with dvi files. (The same applies
+ 27 July 2010 13
- 18 May 2010 13
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ rules for dealing with forward slashes in strings in the Perl lan-
+ guage.)
+ Using MS-Windows file associations: A useful trick under modern ver-
+ sions of MS-Windows (e.g., WinXP) is to use just the command 'start' by
+ itself:
+ $dvi_previewer = 'start %S';
+
+ Under recent versions of MS-Windows, this will cause to be run whatever
+ program the system has associated with dvi files. (The same applies
for a postscript viewer and a pdf viewer.)
Not using a certain command: If a command is not to be run, the command
@@ -910,27 +923,27 @@ LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES
$always_view_file_via_temporary [0]
Whether ps and pdf files are initially to be made in a temporary
directory and then moved to the final location. (This applies
- to dvips, dvipdf, and ps2pdf operations, and the filtering oper-
- ators on dvi and ps files. It does not apply to pdflatex,
- unfortunately.)
- This use of a temporary file solves a problem that the making of
- these files can occupy a substantial time. If a viewer sees
- that the file has changed, it reads the new file, and this can
- cause havoc if the program writing the file has not yet finished
- its work.
+ 27 July 2010 14
- 18 May 2010 14
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ to dvips, dvipdf, and ps2pdf operations, and the filtering oper-
+ ators on dvi and ps files. It does not apply to pdflatex,
+ unfortunately.)
+ This use of a temporary file solves a problem that the making of
+ these files can occupy a substantial time. If a viewer sees
+ that the file has changed, it reads the new file, and this can
+ cause havoc if the program writing the file has not yet finished
+ its work.
See the $pvc_view_file_via_temporary variable for a setting that
applies only if preview-continuous mode (-pvc option) is used.
@@ -978,26 +991,26 @@ LATEXMK(1L) LATEXMK(1L)
@BIBINPUTS = ( ".", "C:\bibfiles" );
@BIBINPUTS = ( ".", "\\server\bibfiles" );
@BIBINPUTS = ( ".", "C:/bibfiles" );
- @BIBINPUTS = ( ".", "//server/bibfiles" );
- @BIBINPUTS = ( ".", "/usr/local/texmf/bibtex/bib" );
- Note that under MS Windows, either a forward slash "/" or a
- backward slash "\" can be used to separate pathname components,
- so the first two and the second two examples are equivalent.
- Each backward slash should be doubled to avoid running afoul of
- Perl's rules for writing strings.
+ 27 July 2010 15
- 18 May 2010 15
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ @BIBINPUTS = ( ".", "//server/bibfiles" );
+ @BIBINPUTS = ( ".", "/usr/local/texmf/bibtex/bib" );
+ Note that under MS Windows, either a forward slash "/" or a
+ backward slash "\" can be used to separate pathname components,
+ so the first two and the second two examples are equivalent.
+ Each backward slash should be doubled to avoid running afoul of
+ Perl's rules for writing strings.
Important note: This variable is now mostly obsolete in the current
version of latexmk, since it has a better method of searching for files
@@ -1048,16 +1061,10 @@ LATEXMK(1L) LATEXMK(1L)
$clean_ext [""]
Extra extensions of files for latexmk to remove when any of the
clean-up options (-c, -c1, or -C) is selected. The value of
- this variable is a string containing the extensions separated by
- spaces.
-
- $clean_full_ext [""]
- Extra extensions of files for latexmk to remove when the -C
- option is selected, i.e., extensions of files to remove when the
- 18 May 2010 16
+ 27 July 2010 16
@@ -1066,6 +1073,12 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ this variable is a string containing the extensions separated by
+ spaces.
+
+ $clean_full_ext [""]
+ Extra extensions of files for latexmk to remove when the -C
+ option is selected, i.e., extensions of files to remove when the
.dvi, etc files are to be cleaned-up.
@cus_dep_list [()]
@@ -1118,13 +1131,10 @@ LATEXMK(1L) LATEXMK(1L)
will cause to be run whatever command the system has associated
with .dvi files.]
- $dvi_previewer_landscape ["start xdvi %O %S"]
- The command to invoke a dvi-previewer in landscape mode.
- [Default is "start" under MS-WINDOWS; under more recent versions
- 18 May 2010 17
+ 27 July 2010 17
@@ -1133,6 +1143,9 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ $dvi_previewer_landscape ["start xdvi %O %S"]
+ The command to invoke a dvi-previewer in landscape mode.
+ [Default is "start" under MS-WINDOWS; under more recent versions
of Windows, this will cause to be run whatever command the sys-
tem has associated with .dvi files.]
@@ -1191,7 +1204,7 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 18
+ 27 July 2010 18
@@ -1257,10 +1270,11 @@ LATEXMK(1L) LATEXMK(1L)
%hash_calc_ignore_pattern
!!!This variable is for experts only!!!
+ The general rule latexmk uses for determining when an extra run
- 18 May 2010 19
+ 27 July 2010 19
@@ -1269,7 +1283,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- The general rule latexmk uses for determining when an extra run
of some program is needed is that one of the source files has
changed. But consider for example a latex package that causes
an encapsulated postscript file (an "eps" file) to be made that
@@ -1323,13 +1336,15 @@ LATEXMK(1L) LATEXMK(1L)
This variable specifies the extensions tried by latexmk when it
finds that a LaTeX run resulted in an error that a file has not
been found, and the file is given without an extension. This
- typically happens when LaTeX commands of the form input{file} or
- includegraphics{figure}, when the relevant source file does not
- exist.
+ typically happens when LaTeX commands of the form \input{file}
+ or \includegraphics{figure}, when the relevant source file does
+ not exist.
+
+ In this situation, latexmk searches for custom dependencies to
- 18 May 2010 20
+ 27 July 2010 20
@@ -1338,10 +1353,9 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- In this situation, latexmk searches for custom dependencies to
make the missing file(s), but restricts it to the extensions
specified by the variable %latex_input_extensions. The default
- extensions are
+ extensions are 'tex' and 'eps'.
(For Perl experts: %latex_input_extensions is a hash whose keys
are the extensions. The values are irrelevant.) Two subrou-
@@ -1395,10 +1409,13 @@ LATEXMK(1L) LATEXMK(1L)
sary because one part of the command name ("Program Files") con-
tains a space which would otherwise be misinterpreted.
+ $lpr_dvi ["NONE lpr_dvi"]
+ The printing program to print dvi files.
+
- 18 May 2010 21
+ 27 July 2010 21
@@ -1407,9 +1424,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- $lpr_dvi ["NONE lpr_dvi"]
- The printing program to print dvi files.
-
$lpr_pdf ["NONE lpr_pdf"]
The printing program to print pdf files.
@@ -1464,27 +1478,27 @@ LATEXMK(1L) LATEXMK(1L)
%pdflatex_input_extensions
This variable specifies the extensions tried by latexmk when it
finds that a pdfLaTeX run resulted in an error that a file has
+ not been found, and the file is given without an extension.
+ This typically happens when LaTeX commands of the form
+ \input{file} or \includegraphics{figure}, when the relevant
+ source file does not exist.
- 18 May 2010 22
+ 27 July 2010 22
-LATEXMK(1L) LATEXMK(1L)
+LATEXMK(1L) LATEXMK(1L)
- not been found, and the file is given without an extension.
- This typically happens when LaTeX commands of the form
- input{file} or includegraphics{figure}, when the relevant source
- file does not exist.
In this situation, latexmk searches for custom dependencies to
make the missing file(s), but restricts it to the extensions
specified by the variable %pdflatex_input_extensions. The
- default extensions are
+ default extensions are 'tex', 'pdf', 'jpg, and 'png'.
(For Perl experts: %pdflatex_input_extensions is a hash whose
keys are the extensions. The values are irrelevant.) Two sub-
@@ -1535,10 +1549,15 @@ LATEXMK(1L) LATEXMK(1L)
$pdf_update_command [""]
When the pdf previewer is set to be updated by running a com-
mand, this is the command that is run. See the information for
+ the variable $pdf_update_method.
+
+ $pdf_update_method [1 under UNIX, 3 under MS-Windows]
+ How the pdf viewer updates its display when the pdf file has
+ changed. See the information on the variable $dvi_update_method
- 18 May 2010 23
+ 27 July 2010 23
@@ -1547,11 +1566,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- the variable $pdf_update_method.
-
- $pdf_update_method [1 under UNIX, 3 under MS-Windows]
- How the pdf viewer updates its display when the pdf file has
- changed. See the information on the variable $dvi_update_method
for the codes. (Note that information needs be changed slightly
so that for the value 4, to run a command to do the update, the
command is specified by the variable $pdf_update_command, and
@@ -1606,10 +1620,16 @@ LATEXMK(1L) LATEXMK(1L)
$preview_mode [0]
If nonzero, run a previewer to preview the document. Equivalent
to the -pv option. Which previewer is run depends on the other
+ settings, see the command line options -view=, and the variable
+ $view.
+ $printout_mode [0]
+ If nonzero, print the document using lpr. Equivalent to the -p
+ option. This is recommended not to be set from an RC file,
- 18 May 2010 24
+
+ 27 July 2010 24
@@ -1618,13 +1638,7 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- settings, see the command line options -view=, and the variable
- $view.
-
- $printout_mode [0]
- If nonzero, print the document using lpr. Equivalent to the -p
- option. This is recommended not to be set from an RC file, oth-
- erwise you could waste lots of paper.
+ otherwise you could waste lots of paper.
$print_type = ["ps"]
Type of file to printout: possibilities are "dvi", "none",
@@ -1677,25 +1691,25 @@ LATEXMK(1L) LATEXMK(1L)
$ps_update_command [""]
When the postscript previewer is set to be updated by running a
command, this is the command that is run. See the information
+ for the variable $ps_update_method.
+ $ps_update_method [0 under UNIX, 1 under MS-Windows]
+ How the postscript viewer updates its display when the ps file
+ has changed. See the information on the variable
+ $dvi_update_method for the codes. (Note that information needs
+ be changed slightly so that for the value 4, to run a command to
- 18 May 2010 25
+ 27 July 2010 25
-LATEXMK(1L) LATEXMK(1L)
+LATEXMK(1L) LATEXMK(1L)
- for the variable $ps_update_method.
- $ps_update_method [0 under UNIX, 1 under MS-Windows]
- How the postscript viewer updates its display when the ps file
- has changed. See the information on the variable
- $dvi_update_method for the codes. (Note that information needs
- be changed slightly so that for the value 4, to run a command to
do the update, the command is specified by the variable
$ps_update_command, and for the value 2, to specify update by
signal, the signal is specified by $ps_update_signal.)
@@ -1749,9 +1763,17 @@ LATEXMK(1L) LATEXMK(1L)
Directory to store temporary files that latexmk may generate
while running.
+ The default under MSWindows (including cygwin), is to set
+ $tmpdir to the value of the first of whichever of the system
+ environment variables TMPDIR or TEMP exists, otherwise to the
+ current directory. Under other operating systems (expected to
+ be UNIX/Linux, including OS-X), the default is the value of the
+ system environment variable TMPDIR if it exists, otherwise
+ "/tmp".
+
- 18 May 2010 26
+ 27 July 2010 26
@@ -1760,14 +1782,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- The default under MSWindows (including cygwin), is to set
- $tmpdir to the value of the first of whichever of the system
- environment variables TMPDIR or TEMP exists, otherwise to the
- current directory. Under other operating systems (expected to
- be UNIX/Linux, including OS-X), the default is the value of the
- system environment variable TMPDIR if it exists, otherwise
- "/tmp".
-
$view ["default"]
Which kind of file is to be previewed if a previewer is used.
The possible values are "default", "dvi", "ps", "pdf". The
@@ -1819,10 +1833,19 @@ CUSTOM DEPENDENCIES
needs to read a file, like a graphics file, whose extension is the to-
extension of a custom dependency. Then latexmk examines whether a file
exists with the same name, but with the corresponding from-extension,
+ as specified in the custom-dependency rule. If it does, then whenever
+ the destination file (the one with the to-extension) is out-of-date
+ with respect to the corresponding source file.
+
+ To make the new destination file, the Perl subroutine specified in the
+ rule is invoked, with an argument that is the base name of the files in
+ question. Simple cases just involve a subroutine invoking an external
+ program; this can be done by following the templates below, even by
+ those without knowledge of the Perl programming language. Of course,
- 18 May 2010 27
+ 27 July 2010 27
@@ -1831,15 +1854,6 @@ CUSTOM DEPENDENCIES
LATEXMK(1L) LATEXMK(1L)
- as specified in the custom-dependency rule. If it does, then whenever
- the destination file (the one with the to-extension) is out-of-date
- with respect to the corresponding source file.
-
- To make the new destination file, the Perl subroutine specified in the
- rule is invoked, with an argument that is the base name of the files in
- question. Simple cases just involve a subroutine invoking an external
- program; this can be done by following the templates below, even by
- those without knowledge of the Perl programming language. Of course,
experts could do something much more elaborate.
One other item in each custom-dependency rule labelled "must" above
@@ -1890,28 +1904,28 @@ LATEXMK(1L) LATEXMK(1L)
This causes the invocation of the fig2dev program to have quoted file-
names; it should therefore work with filenames containing spaces. How-
ever, not all software deals correctly with filenames that contain
+ spaces. Moreover, the rules, if any, for quoting filenames vary
+ between operating systems, command shells and individual pieces of
+ software, so this code may not always work.
+ If you use pdflatex instead of latex, then you will probably prefer to
+ convert your graphics files to pdf format, in which case you would
+ replace the above code in an initialization file by
+ add_cus_dep( 'fig', 'pdf, 0, 'fig2pdf' );
+ sub fig2pdf {
- 18 May 2010 28
+ 27 July 2010 28
-LATEXMK(1L) LATEXMK(1L)
- spaces. Moreover, the rules, if any, for quoting filenames vary
- between operating systems, command shells and individual pieces of
- software, so this code may not always work.
+LATEXMK(1L) LATEXMK(1L)
- If you use pdflatex instead of latex, then you will probably prefer to
- convert your graphics files to pdf format, in which case you would
- replace the above code in an initialization file by
- add_cus_dep( 'fig', 'pdf, 0, 'fig2pdf' );
- sub fig2pdf {
system("fig2dev -Lpdf $_[0].fig $_[0].pdf");
}
@@ -1961,30 +1975,30 @@ LATEXMK(1L) LATEXMK(1L)
Of course if you choose to write random data to the .nnd (or and .aux
file, etc) that changes on each new run, then you will have a problem.
+ For real experts: See the %hash_cal_ignore_pattern if you have to deal
+ with such problems.
+ Glossaries can be dealt with similarly.
- 18 May 2010 29
+OLD METHOD OF DEFINING CUSTOM DEPENDENCIES
+ In previous versions of latexmk, the only method of defining custom
+ dependencies was to directly manipulate the table of custom dependen-
+ cies. This is contained in the @cus_dep_list array. It is an array of
+ strings, and each string in the array has four items in it, each
+ 27 July 2010 29
-LATEXMK(1L) LATEXMK(1L)
- For real experts: See the %hash_cal_ignore_pattern if you have to deal
- with such problems.
- Glossaries can be dealt with similarly.
+LATEXMK(1L) LATEXMK(1L)
-OLD METHOD OF DEFINING CUSTOM DEPENDENCIES
- In previous versions of latexmk, the only method of defining custom
- dependencies was to directly manipulate the table of custom dependen-
- cies. This is contained in the @cus_dep_list array. It is an array of
- strings, and each string in the array has four items in it, each sepa-
- rated by a space, the from-extension, the to-extension, the "must"
+ separated by a space, the from-extension, the to-extension, the "must"
item, and the name of the subroutine for the custom dependency. These
were all defined above.
@@ -2033,11 +2047,21 @@ THANKS TO
AUTHOR
Current version, by John Collins (username collins at node
- phys.psu.edu). (Version 4.16a).
+ phys.psu.edu). (Version 4.17).
+
+ Released version can be obtained from CTAN: <http://www.tug.org/tex-
+ archive/support/latexmk/>, and from the author's website
+ <http://www.phys.psu.edu/~collins/software/latexmk/>.
+ Modifications and enhancements by Evan McLean (Version 2.0)
+ Original script called "go" by David J. Musliner (RCS Version 3.2)
+
+
+
- 18 May 2010 30
+
+ 27 July 2010 30
@@ -2046,11 +2070,6 @@ AUTHOR
LATEXMK(1L) LATEXMK(1L)
- Released version can be obtained from CTAN: <http://www.tug.org/tex-
- archive/support/latexmk/>, and from the author's website
- <http://www.phys.psu.edu/~collins/software/latexmk/>.
- Modifications and enhancements by Evan McLean (Version 2.0)
- Original script called "go" by David J. Musliner (RCS Version 3.2)
@@ -2110,6 +2129,10 @@ LATEXMK(1L) LATEXMK(1L)
- 18 May 2010 31
+
+
+
+
+ 27 July 2010 31
diff --git a/Master/texmf-dist/scripts/latexmk/latexmk.pl b/Master/texmf-dist/scripts/latexmk/latexmk.pl
index 08fdc5b4ebe..b5e5fe77ff5 100755
--- a/Master/texmf-dist/scripts/latexmk/latexmk.pl
+++ b/Master/texmf-dist/scripts/latexmk/latexmk.pl
@@ -108,8 +108,8 @@ use warnings;
$my_name = 'latexmk';
$My_name = 'Latexmk';
-$version_num = '4.16a';
-$version_details = "$My_name, John Collins, 18 May 2010";
+$version_num = '4.18';
+$version_details = "$My_name, John Collins, 27 July 2010";
use Config;
@@ -176,40 +176,16 @@ else {
## 5. Parsing of log file instead of source file is used to
## obtain dependencies, by default.
##
-## Modification log from 22 Jan 2010 onwards in detail
+## Modification log from 23 Jun 2010 onwards in detail
##
-## 18 May 2010, John Collins Remove unlink $$Pdest in do_viewfile
-## 17 May 2010, John Collins Correct sleep time to 1 sec
-## if s<0 (otherwise infinite delay)
-## or if 0<s<1 (otherwise zero delay)
-## 10 May 2010, John Collins Deal with filenames in log file that are
-## messed up by pdfTeX warnings not preceeded
-## by a new line
-## 18 Apr 2010, John Collins Clean up comment from previous mod.
-## 16 Apr 2010, John Collins V. 4.15c. Correct line wrapping issue.
-## 12 Apr 2010, John Collins V. 4.15b. Change
-## use Digest;
-## to
-## use Digest::MD5;
-## for TeX Live compatibility. Needed also to change
-## my $md5 = Digest->MD5;
-## to
-## my $md5 = Digest::MD5->new;
-##
-## 8 Apr 2010, John Collins V. 4.15a. Better defaults for system
-## configuration file under cygwin
-## 7 Apr 2010, John Collins V. 4.15: Change defaults on
-## $latex_silent_switch and $pdflatex_silent_switch
-## to make them TeXLive compatible always
-## 26 Mar 2010, John Collins V. 4.14b. Make sure md5 calc
-## doesn't bomb out on directory
-## Parse log file: if apparent dependent
-## is directory, remove it from list.
-## 27 Feb 2010, John Collins V. 4.14a. List failed primaries
-## 22 Jan 2010, John Collins V. 4.14. Try to fix problem that with -pvc
-## failure on latex should force a wait until
-## a user file is changed. But latexmk keeps
-## doing dvips, dvipdf, etc.
+## 27 Jul 2010, John Collins Clean up some comments.
+## This is release version for 4.18.
+## 23 Jul 2010, John Collins Only produce "Removing no-longer-needed
+## dependent" messages when diagnostics are
+## on.
+## 23 Jun 2010, John Collins Add test in log file for natbib's
+## citation-undefined warning
+## 23 Jun 2010, John Collins V. 4.18
##
## 1998-2010, John Collins. Many improvements and fixes.
## See CHANGE-log.txt for full list, and CHANGES for summary
@@ -879,8 +855,6 @@ $dvi_filter = ''; # DVI filter command
$ps_filter = ''; # Postscript filter command
$force_mode = 0; # =1 to force processing past errors
-$force_include_mode = 0;# =1 to ignore non-existent files when testing
- # for dependency. (I.e., don't treat them as error)
$go_mode = 0; # =1 to force processing regardless of time-stamps
# =2 full clean-up first
$preview_mode = 0;
@@ -1222,8 +1196,6 @@ while ($_ = $ARGV[0])
elsif (/^-nodependents$/ || /^-dependents-$/) { $dependents_list = 0; }
elsif (/^-dvi$/) { $dvi_mode = 1; }
elsif (/^-dvi-$/) { $dvi_mode = 0; }
- elsif (/^-F$/) { $force_include_mode = 1; }
- elsif (/^-F-$/) { $force_include_mode = 0; }
elsif (/^-f$/) { $force_mode = 1; }
elsif (/^-f-$/) { $force_mode = 0; }
elsif (/^-g$/) { $go_mode = 1; }
@@ -1568,7 +1540,7 @@ elsif ( ($sleep_time < 1) && ( $sleep_time != 0 ) ) {
}
elsif ( $sleep_time == 0 ) {
warn "$My_name: sleep_time was configured to zero.\n",
- " Do you really want to do this? It will give 100% CPU usage.";
+ " Do you really want to do this? It will give 100% CPU usage.\n";
}
# Make convenient forms for lookup.
@@ -2288,7 +2260,6 @@ sub find_basename
#************************************************************
sub make_preview_continuousB {
- # Version for use with makeB
local @changed = ();
local @disappeared = ();
local @no_dest = (); # Non-existent destination files
@@ -2370,29 +2341,9 @@ CHANGE:
if ( $MSWin_fudge_break && ($^O eq "MSWin32") ) {
$SIG{BREAK} = $SIG{INT} = 'DEFAULT';
}
- if ( $failure > 0 ) {
- if ( !$failure_msg ) {
- $failure_msg = 'Failure to make the files correctly';
- }
- @pre_primary = (); # Array of rules
- @post_primary = (); # Array of rules
- @one_time = (); # Array of rules
- &rdb_classify_rules( \%possible_primaries, keys %requested_filerules );
- # There will be files changed during the run that are irrelevant.
- # We need to wait for the user to change the files.
-
- # So set the GENERATED files from (pdf)latex as up-to-date:
- rdb_for_some( [keys %current_primaries], \&rdb_update_gen_files );
-
- # And don't watch for changes for post_primary rules (ps and pdf
- # from dvi, etc haven't been run after an error in (pdf)latex, so
- # are out-of-date by filetime criterion, but they should not be run
- # until after another (pdf)latex run:
- foreach (@post_primary) { delete $rules_to_watch{$_}; }
-
- $failure_msg =~ s/\s*$//; #Remove trailing space
- warn "$My_name: $failure_msg\n",
- " ==> You will need to change a source file before I do another run <==\n";
+ # Start viewer if needed.
+ if ( ($failure > 0) && (! $force_mode) ) {
+ # No viewer yet
}
elsif ( ($view_file ne '') && (-e $view_file) && $updated && $viewer_running ) {
# A viewer is running. Explicitly get it to update screen if we have to do it:
@@ -2414,7 +2365,6 @@ CHANGE:
}
local $retcode = 0;
rdb_one_rule( 'view', sub { $retcode = &rdb_run1;} );
-# PREVIOUS local $retcode = rdb_makeB ( 'view' );
if ( $retcode != 0 ) {
if ($force_mode) {
warn "$My_name: I could not run previewer\n";
@@ -2427,14 +2377,38 @@ CHANGE:
$viewer_running = 1;
$$Pneed_to_get_viewer_process = 1;
} # end analyze result of trying to run viewer
- } # end start viewer
- rdb_show_rule_errors();
- if ( $first_time || $updated || $failure ) {
- print "\n=== Watching for updated files. Use ctrl/C to stop ...\n";
- }
- $waiting = 1; if ($diagnostics) { warn "WAITING\n"; }
- &catch_break;
- $have_break = 0;
+ } # end start viewer
+ if ( $failure > 0 ) {
+ if ( !$failure_msg ) {
+ $failure_msg = 'Failure to make the files correctly';
+ }
+ @pre_primary = (); # Array of rules
+ @post_primary = (); # Array of rules
+ @one_time = (); # Array of rules
+ &rdb_classify_rules( \%possible_primaries, keys %requested_filerules );
+ # There will be files changed during the run that are irrelevant.
+ # We need to wait for the user to change the files.
+
+ # So set the GENERATED files from (pdf)latex as up-to-date:
+ rdb_for_some( [keys %current_primaries], \&rdb_update_gen_files );
+
+ # And don't watch for changes for post_primary rules (ps and pdf
+ # from dvi, etc haven't been run after an error in (pdf)latex, so
+ # are out-of-date by filetime criterion, but they should not be run
+ # until after another (pdf)latex run:
+ foreach (@post_primary) { delete $rules_to_watch{$_}; }
+
+ $failure_msg =~ s/\s*$//; #Remove trailing space
+ warn "$My_name: $failure_msg\n",
+ " ==> You will need to change a source file before I do another run <==\n";
+ }
+ rdb_show_rule_errors();
+ if ( $first_time || $updated || $failure ) {
+ print "\n=== Watching for updated files. Use ctrl/C to stop ...\n";
+ }
+ $waiting = 1; if ($diagnostics) { warn "WAITING\n"; }
+ &catch_break;
+ $have_break = 0;
WAIT: while (1) {
sleep( $sleep_time );
if ($have_break) { last WAIT; }
@@ -2659,8 +2633,6 @@ sub print_help
" -e <code> - Execute specified PERL code\n",
" -f - force continued processing past errors\n",
" -f- - turn off forced continuing processing past errors\n",
- " -F - Ignore non-existent files when testing for dependencies\n",
- " -F- - Turn off -F\n",
" -gg - Super go mode: clean out generated files (-CA), and then\n",
" process files regardless of file timestamps\n",
" -g - process regardless of file timestamps\n",
@@ -2983,6 +2955,10 @@ LINE:
warn "$My_name: $1 \n";
$bad_citation = 1;
}
+ if (/Package natbib Warning: (Citation[^\001]*undefined)./) {
+ warn "$My_name: $1 \n";
+ $bad_citation = 1;
+ }
if ( /^Document Class: / ) {
# Class sign-on line
next LINE;
@@ -3149,36 +3125,49 @@ LINE:
# filename (on VAX/VMS) may include '[' and ']' (directory
# separators)
# filenames (on MS-Win) commonly include space.
+ # filenames on UNIX can included space.
+ # Miktex quotes filenames
+ # But web2c doesn't. Then
+ # (string message
+ # is ambiguous: is the filename "string" or "string message".
+ # Allow both as candidates, since user filenames with spaces
+ # are rare. System filenames with spaces are common, but
+ # they are normally followed by a newline rather than messages.
# First step: replace $_ by whole of line after the '('
# Thus $_ is putative filename followed by other stuff.
$_ = $1;
+ # Array of new candidate include files; sometimes more than one.
+ my @new_includes = ();
+ my $quoted = 0;
if ( /^\"([^\(^\)^\"]+)\"/ ) {
# Quoted file name, as from MikTeX
+ $quoted = 1;
}
- elsif ( /^([^\(^\)]*?)\s\[/ ) {
- # Terminator: space then '['
- # Use *? in condition: to pick up first ' [' as terminator
- # 'file [' should give good filename.
+ elsif ( /^([^\(^\)]*?)\s+[\[\{\<]/ ) {
+ # Terminator: space then '[' or '{' or '<'
+ # Use *? in condition: to pick up first ' [' (etc)
+ # as terminator
}
- elsif ( /^([^\(^\)]*)\s(?=\()/ ) {
+ elsif ( /^([^\(^\)]*)\s+(?=\()/ ) {
# Terminator is ' (', but '(' isn't in matched string,
# so we keep the '(' ready for the next match
}
elsif ( /^([^\(^\)]*)(\))/ ) {
# Terminator is ')'
}
- elsif ( /^([^\(^\)]*?)\s*\{/ ) {
- # Terminator: arbitrary space then '{'
- # Use *? in condition: to pick up first ' [' as terminator
- # 'file [' should give good filename.
- }
else {
#Terminator is end-of-string
}
$_ = $'; # Put $_ equal to the unmatched tail of string '
my $include_candidate = $1;
$include_candidate =~ s/\s*$//; # Remove trailing space.
+ if ( !$quoted && ($include_candidate =~ /(\S+)\s/ ) ){
+ # Non-space-containing filename-candidate
+ # followed by space followed by message
+ # (Common)
+ push @new_includes, $1;
+ }
if ( $include_candidate eq "[]" ) {
# Part of overfull hbox message
next INCLUDE_CANDIDATE;
@@ -3191,14 +3180,13 @@ LINE:
# treated this as a special case. For safety check here:
$include_candidate =~ s/^\"(.*)\"$/$1/;
- # Make list of new include files; sometimes more than one.
- my @new_includes = ($include_candidate);
+ push @new_includes, $include_candidate;
if ( $include_candidate =~ /^(.+)\[([^\]]+)\]$/ ) {
# Construct of form 'file1[file2]', as produced by pdflatex
if ( -e $1 ) {
# If the first component exists, we probably have the
# pdflatex form
- @new_includes = ($1, $2);
+ push @new_includes, $1, $2;
}
else {
# We have something else.
@@ -4000,7 +3988,7 @@ sub rdb_set_from_logB {
rdb_ensure_file( $from_rule, $source );
delete $old_sources{$source};
}
- if ($diagnostics>-1 ) {
+ if ($diagnostics) {
foreach ( keys %old_sources ) {
print "Removing no-longer-needed dependent '$_' from rule '$from_rule'\n";
}
@@ -4080,7 +4068,7 @@ NEW_SOURCE:
foreach (keys %$PHsource) {
if ( ! exists $dependents{$_} ) {
print "Removing no-longer-needed dependent '$_' from rule '$rule'\n"
- if $diagnostics>-1;
+ if $diagnostics;
push @files_not_needed, $_;
}
}
@@ -4546,7 +4534,7 @@ sub rdb_makeB {
"make new source files\n";
next PASS;
}
- elsif ( ! $failure ) {
+ elsif ( $force_mode || (! $failure) ) {
next PASS;
}
}
diff --git a/Master/texmf/doc/man/man1/latexmk.1 b/Master/texmf/doc/man/man1/latexmk.1
index 9a1205a08ee..21bbc3766b7 100644
--- a/Master/texmf/doc/man/man1/latexmk.1
+++ b/Master/texmf/doc/man/man1/latexmk.1
@@ -1,4 +1,4 @@
-.TH LATEXMK 1L "18 May 2010" ""
+.TH LATEXMK 1L "27 July 2010" ""
.SH NAME
latexmk \- generate LaTeX document
.SH SYNOPSIS
@@ -228,7 +228,7 @@ Example usage: To use dviselect to select only the even pages of the dvi file:
.TP
.B -diagnostics
Print detailed diagnostics during a run. This may help for debugging
-problems or to understand \fI.latexmk\fR's behavior in difficult
+problems or to understand \fIlatexmk\fR's behavior in difficult
situations.
.TP
.B -dvi
@@ -431,7 +431,11 @@ option.
The preview-continuous option \fB-pvc\fR can only work with one file.
So in this case you will normally only specify one filename on
the command line. It is also incompatible with the
-\fB-p\fR and \fB-pv\fR options, so it turns these options off
+\fB-p\fR and \fB-pv\fR options, so it turns these options off.
+
+The \fB-pvc\fR option also turns off force mode (\fB-f\fR), as is
+normally best for continuous preview mode. If you really want force
+mode, use the options in the order \fB-pvc -f\fR.
With a good previewer the display will be automatically updated.
(Under \fIsome but not all\fR versions of UNIX/Linux "gv -watch" does
@@ -730,14 +734,21 @@ how I've handled the problem.
\fBCommand names containing spaces\fR: Under MS-Windows it is common
that the name of a command includes spaces, since software is often
-installed in a subdirectory of "C:\Program Files". Such command names
+installed in a subdirectory of "C:\\Program Files". Such command names
should be enclosed in double quotes, as in
.PP
$lpr_pdf = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p %S';
.PP
+(Note about the above example: Forward slashes are equivalent to
+backslashes in filenames under MS-Windows, provided that the filename
+is inside double quotes. It is easier to use forward slashes in
+examples like the one above, since then one does not have to worry
+about the rules for dealing with forward slashes in strings in the
+Perl language.)
+
\fBUsing MS-Windows file associations\fR: A useful trick under modern
-versions of MS-Windows (e.g., WinXP) is to use just the command
-'start' by itself:
+versions of MS-Windows (e.g., WinXP) is to use just the
+command 'start' by itself:
.PP
$dvi_previewer = 'start %S';
.PP
@@ -1122,13 +1133,13 @@ but also specify options to the program. E.g.,
This variable specifies the extensions tried by latexmk when it finds
that a LaTeX run resulted in an error that a file has not been found,
and the file is given without an extension. This typically happens when
-LaTeX commands of the form \input{file} or \includegraphics{figure},
+LaTeX commands of the form \\input{file} or \\includegraphics{figure},
when the relevant source file does not exist.
In this situation, latexmk searches for custom dependencies to make
the missing file(s), but restricts it to the extensions specified by
-the variable %latex_input_extensions. The default extensions are
-'tex' and 'eps'.
+the variable %latex_input_extensions. The default extensions
+are 'tex' and 'eps'.
(For Perl experts: %latex_input_extensions is a hash whose keys are
the extensions. The values are irrelevant.) Two subroutines are
@@ -1235,13 +1246,13 @@ of a dvi file.
This variable specifies the extensions tried by latexmk when it finds
that a pdfLaTeX run resulted in an error that a file has not been found,
and the file is given without an extension. This typically happens when
-LaTeX commands of the form \input{file} or \includegraphics{figure},
+LaTeX commands of the form \\input{file} or \\includegraphics{figure},
when the relevant source file does not exist.
In this situation, latexmk searches for custom dependencies to make
the missing file(s), but restricts it to the extensions specified by
-the variable %pdflatex_input_extensions. The default extensions are
-'tex', 'pdf', 'jpg, and 'png'.
+the variable %pdflatex_input_extensions. The default extensions
+are 'tex', 'pdf', 'jpg, and 'png'.
(For Perl experts: %pdflatex_input_extensions is a hash whose keys are
the extensions. The values are irrelevant.) Two subroutines are
@@ -1704,7 +1715,7 @@ e-mail addresses are not written in their standard form to avoid being
harvested by worms and viruses.)
.SH AUTHOR
Current version, by John Collins (username collins at node phys.psu.edu).
-(Version 4.16a).
+(Version 4.17).
Released version can be obtained from CTAN:
<http://www.tug.org/tex-archive/support/latexmk/>, and from the
diff --git a/Master/texmf/doc/man/man1/latexmk.man1.pdf b/Master/texmf/doc/man/man1/latexmk.man1.pdf
index aabdd5954d1..9faf5bbb9d4 100644
--- a/Master/texmf/doc/man/man1/latexmk.man1.pdf
+++ b/Master/texmf/doc/man/man1/latexmk.man1.pdf
Binary files differ