summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-07 22:45:46 +0000
committerKarl Berry <karl@freefriends.org>2010-04-07 22:45:46 +0000
commitc7c3b090320a234149dbe23315e2a15a2773ac79 (patch)
tree921ba795c2bad3591bf1179400313342de1cffda /Master/texmf-dist
parent5a9522a6e88de6af77e31a3ea7b9cf522673a8e9 (diff)
latexmk 4.15 (7apr10)
git-svn-id: svn://tug.org/texlive/trunk@17741 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/support/latexmk/CHANGES14
-rw-r--r--Master/texmf-dist/doc/support/latexmk/README6
-rw-r--r--Master/texmf-dist/doc/support/latexmk/example_rcfiles/README18
-rw-r--r--Master/texmf-dist/doc/support/latexmk/example_rcfiles/glossary_latexmkrc30
-rw-r--r--Master/texmf-dist/doc/support/latexmk/example_rcfiles/sagetex_latexmkrc21
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.pdfbin78205 -> 78893 bytes
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.txt523
-rwxr-xr-xMaster/texmf-dist/scripts/latexmk/latexmk.pl120
8 files changed, 403 insertions, 329 deletions
diff --git a/Master/texmf-dist/doc/support/latexmk/CHANGES b/Master/texmf-dist/doc/support/latexmk/CHANGES
index a8f4eca829a..32ee82dc0c9 100644
--- a/Master/texmf-dist/doc/support/latexmk/CHANGES
+++ b/Master/texmf-dist/doc/support/latexmk/CHANGES
@@ -130,3 +130,17 @@ From v. 4.12 to v. 4.13
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.
+
diff --git a/Master/texmf-dist/doc/support/latexmk/README b/Master/texmf-dist/doc/support/latexmk/README
index 98b0a264248..971046c0df8 100644
--- a/Master/texmf-dist/doc/support/latexmk/README
+++ b/Master/texmf-dist/doc/support/latexmk/README
@@ -1,5 +1,5 @@
-Latexmk, version 4.13a, 16 January 2010
----------------------------------------
+Latexmk, version 4.15, 7 April 2010
+-----------------------------------
Latexmk completely automates the process of generating a LaTeX document.
Essentially, it is a highly specialized cousin of the general make
@@ -89,7 +89,7 @@ I hope you find this useful.
John Collins
---------------------------- "latexmk -h" ----------------------------
-Latexmk 4.13a: Automatic LaTeX document generation routine
+Latexmk 4.15: Automatic LaTeX document generation routine
Usage: latexmk [latexmk_options] [filename ...]
diff --git a/Master/texmf-dist/doc/support/latexmk/example_rcfiles/README b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/README
index 0fa2d6345da..3d67f54d6c0 100644
--- a/Master/texmf-dist/doc/support/latexmk/example_rcfiles/README
+++ b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/README
@@ -2,13 +2,21 @@ The files in this directory provide suggestions for customizing an
initialization file ("rc file") for latexmk. See the latexmk
documentation for general information on its initialization files.
-NOTES: 1. These examples are developed by particular users to solve
-particular problems. You may have to customize them for your own
-needs. So read the comments carefully, and understand how the
-examples are working.
+Not only do these files provide solutions to particular problems, but
+they can be also used as inspiration for solutions to other cases.
+NOTES:
-2. Another source of examples is in Herb Schulz's distribution of
+1. The examples are not complete rc files, but contain fragments that
+ you can copy to one of your .latexmkrc/latexmkrc files.
+
+2. These examples are developed by particular users to solve
+ particular problems. You may have to customize them for your own
+ needs. So read the comments carefully, and understand how the
+ examples are working.
+
+3. Another source of examples is in Herb Schulz's distribution of
TexShop, at http://homepage.mac.com/herbs2, for some further
examples. (The file Latexmk321jTeXShop.zip is the one you want.)
It shows how to use glossaries, epstopdf, pdftricks and pst-pdf.
+
diff --git a/Master/texmf-dist/doc/support/latexmk/example_rcfiles/glossary_latexmkrc b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/glossary_latexmkrc
new file mode 100644
index 00000000000..55edecba09c
--- /dev/null
+++ b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/glossary_latexmkrc
@@ -0,0 +1,30 @@
+# This shows how to use the glossary package
+# (http://www.ctan.org/tex-archive/macros/latex/contrib/glossary) and
+# the glossaries package
+# (http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries)
+# with latexmk. Note that there are important differences between
+# these two packages, so you should take careful note of the comments
+# below.
+
+
+
+# 1. For glossaries using glossary package
+
+add_cus_dep('glo', 'gls', 0, 'makeglo2gls');
+sub makeglo2gls {
+ system("makeindex -s '$_[0]'.ist -t '$_[0]'.glg -o '$_[0]'.gls '$_[0]'.glo");
+}
+
+
+
+# 2. For acronyms using glossary package:
+
+add_cus_dep('acr', 'acn', 0, 'makeacr2acn');
+sub makeacr2acn {
+ system("makeindex -s '$_[0]'.ist -t '$_[0]'.alg -o '$_[0]'.acn '$_[0]'.acr");
+}
+
+
+# ===> 3. If you use the package glossaries rather than the package
+# glossary, you need to EXCHANGE acn and acr in the above.
+
diff --git a/Master/texmf-dist/doc/support/latexmk/example_rcfiles/sagetex_latexmkrc b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/sagetex_latexmkrc
new file mode 100644
index 00000000000..67e97595f27
--- /dev/null
+++ b/Master/texmf-dist/doc/support/latexmk/example_rcfiles/sagetex_latexmkrc
@@ -0,0 +1,21 @@
+# This is to allow the use of sagetex package
+# (http://www.ctan.org/tex-archive/macros/latex/contrib/sagetex)
+# with latexmk. Sagetex outputs a file with the extension .sage.
+# This file is to be processed by sage software (http://sagemath.org)
+# to make a file with extension .sout. This file is then read in by
+# sagetex during a later run of (pdf)latex.
+#
+# This can be done by normal custom dependency. However the .sage
+# contains unimportant information about line numbers for error
+# reporting. It is useful not to rerun sage if this is the only
+# information that has changed in the .sage file. So the
+# hash_calc_ignore_pattern variable is used to configure latexmk to
+# ignore this lines when computing whether the .sage file has
+# changed.
+
+
+add_cus_dep('sage', 'sout', 0, 'makesout');
+$hash_calc_ignore_pattern{'sage'} = '^( _st_.goboom|print .SageT)';
+sub makesout {
+ system("sage '$_[0].sage'");
+} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/latexmk/latexmk.pdf b/Master/texmf-dist/doc/support/latexmk/latexmk.pdf
index c36fef5c841..c346a97ada0 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 7f6651ea67a..aa14153be62 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
- 16 January 2010 2
+ 7 April 2010 2
@@ -193,7 +193,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 3
+ 7 April 2010 3
@@ -259,7 +259,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 4
+ 7 April 2010 4
@@ -325,7 +325,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 5
+ 7 April 2010 5
@@ -391,7 +391,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 6
+ 7 April 2010 6
@@ -457,7 +457,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 7
+ 7 April 2010 7
@@ -523,7 +523,7 @@ LATEXMK(1L) LATEXMK(1L)
- 16 January 2010 8
+ 7 April 2010 8
@@ -562,12 +562,18 @@ LATEXMK(1L) LATEXMK(1L)
-silent
Run commands silently, i.e., with options that reduce the amount
of diagnostics generated. For example, with the default set-
- tings for commands under UNIX, the command "latex -interac-
- tion=batchmode" is used for latex.
+ tings, the command "latex -interaction=batchmode" is used for
+ latex.
Also reduce the number of informational messages that latexmk
generates.
+ To change the options used to make the commands run silently,
+ you need to configure latexmk with changed values of its config-
+ uration variables, the relevant ones being $bib-
+ tex_silent_switch, $dvips_silent_switch, $latex_silent_switch,
+ and $pdflatex_silent_switch.
+
-v, -version
Print version number of latexmk.
@@ -580,22 +586,23 @@ 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.
- Options -p, -pv and -pvc are mutually exclusive. So each of these
- options turns the others off.
+ 7 April 2010 9
- 16 January 2010 9
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ this case you will normally only specify one filename on the command
+ line.
+
+ Options -p, -pv and -pvc are mutually exclusive. So each of these
+ options turns the others off.
EXAMPLES
@@ -645,17 +652,10 @@ CONFIGURATION/INITIALIZATION (RC) FILES
Each RC file is a sequence of Perl commands. Naturally, a user can use
this in creative ways. But for most purposes, one simply uses a
sequence of assignment statements that override some of the built-in
- settings of Latexmk. Straightforward cases can be handled without
- knowledge of the Perl language by using the examples in this document
- as templates. Comment lines are introduced by the "#" character.
-
- Note that command line options are obeyed in the order in which they
- are written; thus any RC file specified on the command line with the -r
- option can override previous options but can be itself overridden by
- 16 January 2010 10
+ 7 April 2010 10
@@ -664,6 +664,13 @@ CONFIGURATION/INITIALIZATION (RC) FILES
LATEXMK(1L) LATEXMK(1L)
+ settings of Latexmk. Straightforward cases can be handled without
+ knowledge of the Perl language by using the examples in this document
+ as templates. Comment lines are introduced by the "#" character.
+
+ Note that command line options are obeyed in the order in which they
+ are written; thus any RC file specified on the command line with the -r
+ option can override previous options but can be itself overridden by
later options on the command line. There is also the -e option, which
allows initialization code to be specified in latexmk's command line.
@@ -711,25 +718,25 @@ FORMAT OF COMMAND SPECIFICATIONS
of how the commands are specified.
Placeholders: Supposed you wanted latexmk to use the command elatex in
- place of the regular latex command, and suppose moreover that you
- wanted to give it the option "--shell-escape". You could do this by
- the following setting:
- $latex = 'elatex --shell-escape %O %S';
- The two items starting with the % character are placeholders. These
+ 7 April 2010 11
- 16 January 2010 11
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ place of the regular latex command, and suppose moreover that you
+ wanted to give it the option "--shell-escape". You could do this by
+ the following setting:
+ $latex = 'elatex --shell-escape %O %S';
+ The two items starting with the % character are placeholders. These
are substituted by appropriate values before the command is run. Thus
%S will be replaced by the source file that elatex will be applied to,
and %O will be replaced by any options that latexmk has decided to use
@@ -777,26 +784,26 @@ LATEXMK(1L) LATEXMK(1L)
bibliography file, the setting for the bibtex command should therefore
be
- $bibtex = 'bibtex %O %B';
- Generally, you should use %B rather than %R. Similarly for most pur-
- poses, the name %T of the primary texfile is not a useful placeholder.
- See the default values in the section "List of configuration variables
- usable in initialization files" for what is normally the most
+ 7 April 2010 12
- 16 January 2010 12
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ $bibtex = 'bibtex %O %B';
+ Generally, you should use %B rather than %R. Similarly for most pur-
+ poses, the name %T of the primary texfile is not a useful placeholder.
- appropriate usage.
+ See the default values in the section "List of configuration variables
+ usable in initialization files" for what is normally the most appropri-
+ ate usage.
If you omit to supply any placeholders whatever in the specification of
a command, latexmk will supply what its author thinks are appropriate
@@ -843,24 +850,25 @@ LATEXMK(1L) LATEXMK(1L)
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
- name NONE is used, as in
- $lpr = 'NONE lpr';
- This typically is used when an appropriate command does not exist on
- your system. The string after the "NONE" is effectively a comment.
+ 7 April 2010 13
- 16 January 2010 13
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ Not using a certain command: If a command is not to be run, the command
+ name NONE is used, as in
+
+ $lpr = 'NONE lpr';
+ This typically is used when an appropriate command does not exist on
+ your system. The string after the "NONE" is effectively a comment.
Options to commands: Setting the name of a command can be used not only
for changing the name of the command called, but also to add options to
@@ -907,28 +915,28 @@ LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES
$banner_intensity [0.95]
Equivalent to the -bi option, this is a decimal number between 0
and 1 that specifies how dark to print the banner message. 0 is
- black, 1 is white. The default is just right if your toner car-
- tridge isn't running too low.
+ black, 1 is white. The default is just right if your toner
- $banner_message ["DRAFT"]
- The banner message to print across each page when converting the
- dvi file to postscript. This is equivalent to the -bm option.
- $banner_scale [220.0]
- A decimal number that specifies how large the banner message
- will be printed. Experimentation is necessary to get the right
+ 7 April 2010 14
- 16 January 2010 14
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ cartridge isn't running too low.
+ $banner_message ["DRAFT"]
+ The banner message to print across each page when converting the
+ dvi file to postscript. This is equivalent to the -bm option.
+ $banner_scale [220.0]
+ A decimal number that specifies how large the banner message
+ will be printed. Experimentation is necessary to get the right
scale for your message, as a rule of thumb the scale should be
about equal to 1100 divided by the number of characters in the
message. The Default is just right for 5 character messages.
@@ -975,19 +983,9 @@ LATEXMK(1L) LATEXMK(1L)
to regenerate the bbl file(s) from their source bib database
file(s).
- But sometimes, the bib file(s) are not available (e.g., for a
- document obtained from an external archive), but the bbl files
- are provided. In that case use of BibTeX will result in incor-
- rect overwriting of the precious bbl files. The variable $bib-
- tex_use controls whether this happens. Its possible values are:
- 0: never use BibTeX. 1: only use BibTeX if the bib files exist.
- 2: run BibTeX whenever it appears necessary to update the bbl
- files, without testing for the existence of the bib files.
-
-
- 16 January 2010 15
+ 7 April 2010 15
@@ -996,6 +994,15 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ But sometimes, the bib file(s) are not available (e.g., for a
+ document obtained from an external archive), but the bbl files
+ are provided. In that case use of BibTeX will result in incor-
+ rect overwriting of the precious bbl files. The variable $bib-
+ tex_use controls whether this happens. Its possible values are:
+ 0: never use BibTeX. 1: only use BibTeX if the bib files exist.
+ 2: run BibTeX whenever it appears necessary to update the bbl
+ files, without testing for the existence of the bib files.
+
$cleanup_includes_generated [0]
If nonzero, specifies that cleanup also deletes files that are
detected in log file as being generated (see the \openout lines
@@ -1041,28 +1048,28 @@ LATEXMK(1L) LATEXMK(1L)
are specified on the command line then the files you specify by
setting @default_files are processed.
- Three examples:
- @default_files = ("paper_current");
- @default_files = ("paper1", "paper2.tex");
- @default_files = ("*.tex", "*.dtx");
+ 7 April 2010 16
- Note that more than file may be given, and that the default
- extension is ".tex". Wild cards are allowed. The parentheses
- 16 January 2010 16
+LATEXMK(1L) LATEXMK(1L)
+ Three examples:
+ @default_files = ("paper_current");
-LATEXMK(1L) LATEXMK(1L)
+ @default_files = ("paper1", "paper2.tex");
+ @default_files = ("*.tex", "*.dtx");
+ Note that more than file may be given, and that the default
+ extension is ".tex". Wild cards are allowed. The parentheses
are because @default_files is an array variable, i.e., a
sequence of filename specifications is possible.
@@ -1107,28 +1114,28 @@ LATEXMK(1L) LATEXMK(1L)
$dvips ["dvips %O -o %D %S"]
The program to used as a filter to convert a .dvi file to a .ps
file. If pdf is going to be generated from pdf, then the value
- of the $dvips_pdf_switch -- see below -- will be included in the
- options substituted for "%O".
- $dvips_landscape ["dvips -tlandscape %O -o %D %S"]
- The program to used as a filter to convert a .dvi file to a .ps
- file in landscape mode.
- $dvips_pdf_switch ["-P pdf"]
- Switch(es) for dvips program when pdf file is to be generated
- from ps file.
+ 7 April 2010 17
- 16 January 2010 17
+LATEXMK(1L) LATEXMK(1L)
+ of the $dvips_pdf_switch -- see below -- will be included in the
+ options substituted for "%O".
-LATEXMK(1L) LATEXMK(1L)
+ $dvips_landscape ["dvips -tlandscape %O -o %D %S"]
+ The program to used as a filter to convert a .dvi file to a .ps
+ file in landscape mode.
+ $dvips_pdf_switch ["-P pdf"]
+ Switch(es) for dvips program when pdf file is to be generated
+ from ps file.
$dvips_silent_switch ["-q"]
Switch(es) for dvips program when silent mode is on.
@@ -1173,6 +1180,18 @@ LATEXMK(1L) LATEXMK(1L)
$force_mode [0]
If nonzero, continue processing past minor latex errors includ-
ing unrecognized cross references. Equivalent to specifying the
+
+
+
+ 7 April 2010 18
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
-f option.
@generated_exts [( aux , bbl , idx , ind , lof , lot , out , toc ,
@@ -1186,17 +1205,6 @@ LATEXMK(1L) LATEXMK(1L)
options), and (b) in the determination of whether a rerun of
(pdf)LaTeX is needed after a run that gives an error.
-
-
- 16 January 2010 18
-
-
-
-
-
-LATEXMK(1L) LATEXMK(1L)
-
-
(Normally, a change of a source file during a run should provoke
a rerun. This includes a file generated by LaTeX, e.g., an aux
file, that is read in on subsequent runs. But after a run that
@@ -1238,6 +1246,18 @@ LATEXMK(1L) LATEXMK(1L)
But the changing line has no real effect, since it is a comment.
You can instruct latex to ignore the offending line as follows:
+
+
+
+ 7 April 2010 19
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
$hash_calc_ignore_pattern{'eps'} = '^%%CreationDate: ';
This creates a rule for files with extension .eps about lines to
@@ -1252,23 +1272,11 @@ LATEXMK(1L) LATEXMK(1L)
$kpsewhich ["kpsewhich %S"]
The program called to locate a source file when the name alone
- is not sufficient. Most filenames used by latexmk have
-
-
-
- 16 January 2010 19
-
-
-
-
-
-LATEXMK(1L) LATEXMK(1L)
-
-
- sufficient path information to be found directly. But some-
- times, notably when .bib files are found from the log file of a
- bibtex run, the name of the file, but not its path is known.
- The program specified by $kpsewhich is used to find it.
+ is not sufficient. Most filenames used by latexmk have suffi-
+ cient path information to be found directly. But sometimes,
+ notably when .bib files are found from the log file of a bibtex
+ run, the name of the file, but not its path is known. The pro-
+ gram specified by $kpsewhich is used to find it.
See also the @BIBINPUTS variable for another way that latexmk
also uses to try to locate files; it applies only in the case of
@@ -1304,6 +1312,18 @@ LATEXMK(1L) LATEXMK(1L)
tines are provided for manipulating this and the related vari-
able %pdflatex_input_extensions, add_input_ext and
remove_input_ext. They are used as in the following examples
+
+
+
+ 7 April 2010 20
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
are possible lines in an initialization file:
remove_input_ext( 'latex', 'tex' );
@@ -1322,38 +1342,32 @@ LATEXMK(1L) LATEXMK(1L)
$latex_silent_switch ["-interaction=batchmode"]
Switch(es) for the LaTeX processing program when silent mode is
- on. Under MS-Windows, the default value is changed to
-
-
-
- 16 January 2010 20
-
-
-
-
+ on.
-LATEXMK(1L) LATEXMK(1L)
+ If you use MikTeX, you may prefer the results if you configure
+ the options to include -c-style-errors, e.g., by the following
+ line in an initialization file
+ $latex_silent_switch = "-interaction=batchmode -c-style-
+ errors";
- "-interaction=batchmode -c-style-errors", as used by MikTeX and
- fpTeX.
$lpr ["lpr %O %S" under UNIX/LINUX, "NONE lpr" under MS-WINDOWS]
The command to print postscript files.
- Under MS-Windows (unlike UNIX/LINUX), there is no standard pro-
+ Under MS-Windows (unlike UNIX/LINUX), there is no standard pro-
gram for printing files. But there are ways you can do it. For
example, if you have gsview installed, you could use it with the
option "/p":
$lpr = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p';
- If gsview is installed in a different directory, you will need
- to make the appropriate change. Note the combination of single
- and double quotes around the name. The single quotes specify
- that this is a string to be assigned to the configuration vari-
- able $lpr. The double quotes are part of the string passed to
- the operating system to get the command obeyed; this is neces-
+ If gsview is installed in a different directory, you will need
+ to make the appropriate change. Note the combination of single
+ and double quotes around the name. The single quotes specify
+ that this is a string to be assigned to the configuration vari-
+ able $lpr. The double quotes are part of the string passed to
+ the operating system to get the command obeyed; this is neces-
sary because one part of the command name ("Program Files") con-
tains a space which would otherwise be misinterpreted.
@@ -1363,13 +1377,25 @@ LATEXMK(1L) LATEXMK(1L)
$lpr_pdf ["NONE lpr_pdf"]
The printing program to print pdf files.
- Under MS-Windows you could set this to use gsview, if it is
+ Under MS-Windows you could set this to use gsview, if it is
+
+
+
+ 7 April 2010 21
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
installed, e.g.,
$lpr = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p';
- If gsview is installed in a different directory, you will need
- to make the appropriate change. Note the double quotes around
+ If gsview is installed in a different directory, you will need
+ to make the appropriate change. Note the double quotes around
the name: this is necessary because one part of the command name
("Program Files") contains a space which would otherwise be mis-
interpreted.
@@ -1379,68 +1405,67 @@ LATEXMK(1L) LATEXMK(1L)
The index processing program.
$max_repeat [5]
- The maximum number of times latexmk will run latex/pdflatex
- before deciding that there may be an infinite loop and that it
+ The maximum number of times latexmk will run latex/pdflatex
+ before deciding that there may be an infinite loop and that it
needs to bail out, rather than rerunning latex/pdflatex again to
- resolve cross-references, etc. The default value covers all
+ resolve cross-references, etc. The default value covers all
normal cases.
- (Note that the "etc" covers a lot of cases where one run of
+ (Note that the "etc" covers a lot of cases where one run of
latex/pdflatex generates files to be read in on a later run.)
$new_viewer_always [0]
- This variable applies to latexmk only in continuous-preview
+ This variable applies to latexmk only in continuous-preview
mode. If $new_viewer_always is 0, latexmk will check for a pre-
- viously running previewer on the same file, and if one is run-
- ning will not start a new one. If $new_viewer_always is non-
-
-
-
- 16 January 2010 21
-
-
-
-
-
-LATEXMK(1L) LATEXMK(1L)
-
-
- zero, this check will be skipped, and latexmk will behave as if
+ viously running previewer on the same file, and if one is run-
+ ning will not start a new one. If $new_viewer_always is non-
+ zero, this check will be skipped, and latexmk will behave as if
no viewer is running.
$pdf_mode [0]
- If zero, do NOT generate a pdf version of the document. If
- equal to 1, generate a pdf version of the document using pdfla-
+ If zero, do NOT generate a pdf version of the document. If
+ equal to 1, generate a pdf version of the document using pdfla-
tex. If equal to 2, generate a pdf version of the document from
the ps file, by using the command specified by the $ps2pdf vari-
- able. If equal to 3, generate a pdf version of the document
+ able. If equal to 3, generate a pdf version of the document
from the dvi file, by using the command specified by the $dvipdf
variable.
Equivalent to the -pdf-, -pdf, -pdfdvi, -pdfps options.
$pdflatex ["pdflatex %O %S"]
- The LaTeX processing program in the version that makes a pdf
+ The LaTeX processing program in the version that makes a pdf
file instead of a dvi file.
%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
+ 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.
- 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
+
+
+ 7 April 2010 22
+
+
+
+
+
+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 %pdflatex_input_extensions. The
default extensions are
- (For Perl experts: %pdflatex_input_extensions is a hash whose
- keys are the extensions. The values are irrelevant.) Two sub-
- routines are provided for manipulating this and the related
- variable %latex_input_extensions, add_input_ext and
- remove_input_ext. They are used as in the following examples
+ (For Perl experts: %pdflatex_input_extensions is a hash whose
+ keys are the extensions. The values are irrelevant.) Two sub-
+ routines are provided for manipulating this and the related
+ variable %latex_input_extensions, add_input_ext and
+ remove_input_ext. They are used as in the following examples
are possible lines in an initialization file:
remove_input_ext( 'pdflatex', 'tex' );
@@ -1449,30 +1474,24 @@ LATEXMK(1L) LATEXMK(1L)
add_input_ext( 'pdflatex', 'asdf' );
- add the extension 'asdf to pdflatex_input_extensions. (Natu-
- rally with such an extension, you should have made an appropri-
+ add the extension 'asdf to pdflatex_input_extensions. (Natu-
+ rally with such an extension, you should have made an appropri-
ate custom dependency for latexmk, and should also have done the
- appropriate programming in the LaTeX source file to enable the
- file to be read. The standard extensions are handled by pdfla-
+ appropriate programming in the LaTeX source file to enable the
+ file to be read. The standard extensions are handled by pdfla-
tex and its graphics/graphicx packages.)
$pdflatex_silent_switch ["-interaction=batchmode"]
- Switch(es) for the pdflatex program (specified in the variable
- $pdflatex when silent mode is on. Under MS-Windows, the default
- value is changed to "-interaction=batchmode -c-style-errors", as
- used by MikTeX and fpTeX.
-
-
-
-
- 16 January 2010 22
-
+ Switch(es) for the pdflatex program (specified in the variable
+ $pdflatex when silent mode is on.
+ If you use MikTeX, you may prefer the results if you configure
+ the options to include -c-style-errors, e.g., by the following
+ line in an initialization file
-
-
-LATEXMK(1L) LATEXMK(1L)
+ $latex_silent_switch = "-interaction=batchmode -c-style-
+ errors";
$pdf_previewer ["start acroread %O %S"]
@@ -1491,6 +1510,18 @@ 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
+
+
+
+ 7 April 2010 23
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
the variable $pdf_update_method.
$pdf_update_method [1 under UNIX, 3 under MS-Windows]
@@ -1534,17 +1565,6 @@ LATEXMK(1L) LATEXMK(1L)
ting the variable to -1 is used to indicate that $pscmd is not
to be used.
-
-
- 16 January 2010 23
-
-
-
-
-
-LATEXMK(1L) LATEXMK(1L)
-
-
$postscript_mode [0]
If nonzero, generate a postscript version of the document.
Equivalent to the -ps option.
@@ -1556,6 +1576,18 @@ LATEXMK(1L) LATEXMK(1L)
If nonzero, run a previewer to view the document, and continue
running latexmk to keep .dvi up-to-date. Equivalent to the -pvc
option. Which previewer is run depends on the other settings,
+
+
+
+ 7 April 2010 24
+
+
+
+
+
+LATEXMK(1L) LATEXMK(1L)
+
+
see the command line options -view=, and the variable $view.
$preview_mode [0]
@@ -1603,10 +1635,17 @@ LATEXMK(1L) LATEXMK(1L)
WINDOWS will cause to be run whatever command the system has
associated with .ps files.)
+ Note that gv could be used with the -watch option updates its
+ display whenever the postscript file changes, whereas ghostview
+ does not. However, different versions of gv have slightly dif-
+ ferent ways of writing this option. You can configure this
+ variable apppropriately.
+ WARNING: Linux systems may have installed one (or more) versions
- 16 January 2010 24
+
+ 7 April 2010 25
@@ -1615,13 +1654,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- Note that gv could be used with the -watch option updates its
- display whenever the postscript file changes, whereas ghostview
- does not. However, different versions of gv have slightly dif-
- ferent ways of writing this option. You can configure this
- variable apppropriately.
-
- WARNING: Linux systems may have installed one (or more) versions
of gv under different names, e.g., ggv, kghostview, etc, but
perhaps not one called gv.
@@ -1672,11 +1704,14 @@ LATEXMK(1L) LATEXMK(1L)
This is an obsolete variable, replaced by the @default_files
variable.
- For backward compatibility, if you choose to set
+ For backward compatibility, if you choose to set $tex-
+ file_search, it is a string of space-separated filenames, and
+ then latexmk replaces @default_files with the filenames in $tex-
+ file_search to which is added "*.tex".
- 16 January 2010 25
+ 7 April 2010 26
@@ -1685,10 +1720,6 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- $texfile_search, it is a string of space-separated filenames,
- and then latexmk replaces @default_files with the filenames in
- $texfile_search to which is added "*.tex".
-
$tmpdir [See below for default]
Directory to store temporary files that latexmk may generate
while running.
@@ -1746,7 +1777,7 @@ CUSTOM DEPENDENCIES
- 16 January 2010 26
+ 7 April 2010 27
@@ -1810,13 +1841,9 @@ LATEXMK(1L) LATEXMK(1L)
return value is the value returned by the last (and only) statement,
i.e., the invocation of system, which returns the value 0 on success.
- If you use filenames with spaces in them, and if your LaTeX system and
- all other relevant software correctly handle such filenames, then you
- could put single quotes around filenames in the command line that is
-
- 16 January 2010 27
+ 7 April 2010 28
@@ -1825,6 +1852,9 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ If you use filenames with spaces in them, and if your LaTeX system and
+ all other relevant software correctly handle such filenames, then you
+ could put single quotes around filenames in the command line that is
executed:
add_cus_dep( 'fig', 'eps', 0, 'fig2eps' );
@@ -1876,24 +1906,24 @@ LATEXMK(1L) LATEXMK(1L)
file will cause this to happen:
add_cus_dep('ndx', 'nnd', 0, 'makendx2nnd');
- sub makendx2nnd {
- system("makeindex -o $_[0].nnd $_[0].ndx");
- }
- (You will need to modify this code if you use filenames with spaces in
- them, to provide correct quoting of the filenames.)
+ 7 April 2010 29
- 16 January 2010 28
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ sub makendx2nnd {
+ system("makeindex -o $_[0].nnd $_[0].ndx");
+ }
+ (You will need to modify this code if you use filenames with spaces in
+ them, to provide correct quoting of the filenames.)
Those of you with experience with Makefiles, will undoubtedly be con-
cerned that the .ndx file is written during a run of latex/pdflatex and
@@ -1942,21 +1972,10 @@ SEE ALSO
BUGS
Sometimes a viewer (gv) tries to read an updated .ps or .pdf file after
its creation is started but before the file is complete. Work around:
- manually refresh (or reopen) display. Or use one of the other preview-
- ers and update methods.
-
- (The following isn't really a bug, but concerns features of preview-
- ers.) Preview continuous mode only works perfectly with certain pre-
- viewers: Xdvi on UNIX/LINUX works for dvi files. Gv on UNIX/LINUX
- works for both postscript and pdf. Ghostview on UNIX/LINUX needs a
- manual update (reopen); it views postscript and pdf. Gsview under MS-
- Windows works for both postscript and pdf, but only reads the updated
- file when its screen is refreshed. Acroread under UNIX/LINUX views
- pdf, but the file needs to be closed and reopened to view an updated
- 16 January 2010 29
+ 7 April 2010 30
@@ -1965,6 +1984,17 @@ BUGS
LATEXMK(1L) LATEXMK(1L)
+ manually refresh (or reopen) display. Or use one of the other preview-
+ ers and update methods.
+
+ (The following isn't really a bug, but concerns features of preview-
+ ers.) Preview continuous mode only works perfectly with certain pre-
+ viewers: Xdvi on UNIX/LINUX works for dvi files. Gv on UNIX/LINUX
+ works for both postscript and pdf. Ghostview on UNIX/LINUX needs a
+ manual update (reopen); it views postscript and pdf. Gsview under MS-
+ Windows works for both postscript and pdf, but only reads the updated
+ file when its screen is refreshed. Acroread under UNIX/LINUX views
+ pdf, but the file needs to be closed and reopened to view an updated
version. Under MS-Windows, acroread locks its input file and so the
pdf file cannot be updated. (Remedy: configure latexmk to use gsview
instead.)
@@ -1978,7 +2008,7 @@ THANKS TO
AUTHOR
Current version, by John Collins (username collins at node
- phys.psu.edu). (Version 4.13a).
+ phys.psu.edu). (Version 4.15).
Released version can be obtained from CTAN: <http://www.tug.org/tex-
archive/support/latexmk/>, and from the author's website
@@ -2011,21 +2041,6 @@ AUTHOR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 16 January 2010 30
+ 7 April 2010 31
diff --git a/Master/texmf-dist/scripts/latexmk/latexmk.pl b/Master/texmf-dist/scripts/latexmk/latexmk.pl
index e721d8f2e05..bf3a7f7ee38 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.13a';
-$version_details = "$My_name, John Collins, 16 January 2010";
+$version_num = '4.15';
+$version_details = "$My_name, John Collins, 7 April 2010";
use Config;
@@ -176,51 +176,22 @@ else {
## 5. Parsing of log file instead of source file is used to
## obtain dependencies, by default.
##
-## Modification log from 25 Nov 2009 onwards in detail
+## Modification log from 22 Jan 2010 onwards in detail
##
-## 16 Jan 2010, John Collins V. 4.13a.
-## Correct bug in deleting extra files (I wasn't
-## consistent about periods in file extensions)
-## Delete unused subroutines
-## 13 Jan 2010, John Collins V. 4.13
-## 27 Dec 2009, John Collins Correct position of inserting bbl into list
-## of generated extensions.
-## Correct clean_up. It stopped deleting aux
-## file.
-## $bibtex_use defaults to 1.
-## 15 Dec 2009, John Collins Option not to do bibtex
-## (to allow for case that bbl files
-## are available, but no bibtex).
-## 27 Nov 2009, John Collins Solve problem that changes in \include
-## files weren't reflected in changes
-## in bibtex source files.
-## Remove excess recalculations of md5 in
-## startup and when initializing rule
-## from fdb_latexmk file.
-## Fdb_latexmk now has data for all rules
-## need for making target files,
-## not just rules accessible from primary
-## rules.
-## 26 Nov 2009, John Collins In testing for changes, when filetime
-## has changed, but file is unchanged,
-## update filetime in rule.
-## This saves excessive md5 calculations.
-## 25 Nov 2009, John Collins Fixed issue with fdb_get and 1-second
-## granularity of file timestamps.
-## The issue was that if runs of
-## latex (etc) occur within the
-## 1-second time granularity, file
-## contents can change even though
-## the file's time and size are
-## unchanged, falsifying an
-## assumption made by fdb_get, but
-## only when the old time is the
-## same as the run time of a command
-## that uses the file.
-## Avoided excess md5 calculations at
-## startup.
+## 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.
##
-## 1998-2009, John Collins. Many improvements and fixes.
+## 1998-2010, John Collins. Many improvements and fixes.
## See CHANGE-log.txt for full list, and CHANGES for summary
##
## Modified by Evan McLean (no longer available for support)
@@ -446,6 +417,8 @@ $new_viewer_always = 0; # If 1, always open a new viewer in pvc mode.
$quote_filenames = 1; # Quote filenames in external commands
+
+
#########################################################################
################################################################
@@ -506,10 +479,6 @@ if ( $^O eq "MSWin32" ) {
$search_path_separator = ';'; # Separator of elements in search_path
- # For both fptex and miktex, the following makes error messages explicit:
- $latex_silent_switch = '-interaction=batchmode -c-style-errors';
- $pdflatex_silent_switch = '-interaction=batchmode -c-style-errors';
-
# For a pdf-file, "start x.pdf" starts the pdf viewer associated with
# pdf files, so no program name is needed:
$pdf_previewer = 'start %O %S';
@@ -613,10 +582,6 @@ elsif ( $^O eq "cygwin" ) {
# of executable: native NT v. cygwin.
# So the user will have to override this.
- # For both fptex and miktex, the following makes error messages explicit:
- $latex_silent_switch = '-interaction=batchmode -c-style-errors';
- $pdflatex_silent_switch = '-interaction=batchmode -c-style-errors';
-
# We will assume that files can be viewed by native NT programs.
# Then we must fix the start command/directive, so that the
# NT-native start command of a cmd.exe is used.
@@ -1583,8 +1548,8 @@ $quell_uptodate_msgs = $silent;
#?? Unneeded now: $save_bibtex_mode = $bibtex_mode;
$failure_count = 0;
-$last_failed = 0; # Flag whether failed on making last file
- # This is used for showing suitable error diagnostics
+@failed_primaries = ();
+
FILE:
foreach $filename ( @file_list )
{
@@ -1812,10 +1777,7 @@ continue {
}
if ( ($failure > 0) || ($error_message_count > 0) ) {
$failure_count ++;
- $last_failed = 1;
- }
- else {
- $last_failed = 0;
+ push @failed_primaries, $filename;
}
&ifcd_popd;
}
@@ -1827,11 +1789,13 @@ if ( $do_cd && ($#dir_stack > -1) ) {
}
if ($failure_count > 0) {
- if ( $last_failed <= 0 ) {
- # Error occured, but not on last file, so
- # user may not have seen error messages
+ if ( $#file_list > 0 ) {
+ # Error occured, but multiple files were processed, so
+ # user may not have seen all the error messages
warn "\n------------\n";
- warn "$My_name: Some operations failed.\n";
+ show_array(
+ "$My_name: Some operations failed, for the following tex file(s)",
+ @failed_primaries);
}
if ( !$force_mode ) {
warn "$My_name: Use the -f option to force complete processing.\n";
@@ -2346,6 +2310,7 @@ sub make_preview_continuousB {
# Set $first_time to flag first run (to save unnecessary diagnostics)
CHANGE:
for (my $first_time = 1; 1; $first_time = 0 ) {
+ my %rules_to_watch = %requested_filerules;
$updated = 0;
$failure = 0;
$failure_msg = '';
@@ -2367,11 +2332,22 @@ CHANGE:
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 as up-to-date
+
+ # 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";
@@ -2420,7 +2396,7 @@ CHANGE:
WAIT: while (1) {
sleep($sleep_time);
if ($have_break) { last WAIT; }
- if ( rdb_new_changes(@targets) ) {
+ if ( rdb_new_changes(keys %rules_to_watch) ) {
if (!$silent) {
warn "$My_name: Need to remake files.\n";
&rdb_diagnose_changes( ' ' );
@@ -3198,7 +3174,14 @@ LINE:
CANDIDATE:
foreach my $candidate (keys %dependents) {
my $code = $dependents{$candidate};
- if ( -e $candidate ) {
+ if ( -d $candidate ) {
+ # If $candidate is directory, it was presumably found from a
+ # mis-parse, so remove it from the list. (Misparse can
+ # arise, for example from a mismatch of latexmk's $log_wrap
+ # value and texmf.cnf value of max_print_line.)
+ delete $dependents{$candidate};
+ }
+ elsif ( -e $candidate ) {
if ( exists $generated_log{$candidate} ){
$dependents{$candidate} = 6;
}
@@ -5667,7 +5650,6 @@ sub rdb_file_exists {
#************************************************************
sub rdb_update_gen_files {
- # Call: fdb_updateA
# Assumes rule context. Update source files of rule to current state.
rdb_do_files(
sub{
@@ -5962,6 +5944,10 @@ sub get_checksum_md5 {
# STDIN:
open( $input, '-' );
}
+ elsif ( -d $source ) {
+ # We won't use checksum for directory
+ return 0;
+ }
else {
open( $input, '<', $source )
or return 0;