diff options
author | Karl Berry <karl@freefriends.org> | 2010-04-07 22:45:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-04-07 22:45:46 +0000 |
commit | c7c3b090320a234149dbe23315e2a15a2773ac79 (patch) | |
tree | 921ba795c2bad3591bf1179400313342de1cffda /Master/texmf-dist | |
parent | 5a9522a6e88de6af77e31a3ea7b9cf522673a8e9 (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/CHANGES | 14 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/README | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/example_rcfiles/README | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/example_rcfiles/glossary_latexmkrc | 30 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/example_rcfiles/sagetex_latexmkrc | 21 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/latexmk.pdf | bin | 78205 -> 78893 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/latexmk/latexmk.txt | 523 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/latexmk/latexmk.pl | 120 |
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 Binary files differindex c36fef5c841..c346a97ada0 100644 --- a/Master/texmf-dist/doc/support/latexmk/latexmk.pdf +++ b/Master/texmf-dist/doc/support/latexmk/latexmk.pdf 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; |