summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/support/latexmk/CHANGES9
-rw-r--r--Master/texmf-dist/doc/support/latexmk/INSTALL119
-rw-r--r--Master/texmf-dist/doc/support/latexmk/README83
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.pdfbin85963 -> 86057 bytes
-rw-r--r--Master/texmf-dist/doc/support/latexmk/latexmk.txt392
-rwxr-xr-xMaster/texmf-dist/scripts/latexmk/latexmk.pl173
-rw-r--r--Master/texmf/doc/man/man1/latexmk.165
-rw-r--r--Master/texmf/doc/man/man1/latexmk.man1.pdfbin92907 -> 94058 bytes
8 files changed, 495 insertions, 346 deletions
diff --git a/Master/texmf-dist/doc/support/latexmk/CHANGES b/Master/texmf-dist/doc/support/latexmk/CHANGES
index 18bc1ea4857..d233a529cbc 100644
--- a/Master/texmf-dist/doc/support/latexmk/CHANGES
+++ b/Master/texmf-dist/doc/support/latexmk/CHANGES
@@ -210,8 +210,15 @@ From v. 4.18 to v. 4.20
-pdflatex=special_pdflatex_replacement_command
(This is not yet documented.)
-From v. 4.18 to v. 4.20
+From v. 4.20 to v. 4.21
Fix some problems with parsing quoted filenames in log file.
These prevented latexmk working correctly with latest version
of asymptote.sty.
Corrected potential bug in locating graphics files.
+
+From v. 4.21 to v. 4.22
+ Support use of biber (with the biblatex package) for generating
+ bibliographies, with automatic selection of bibtex or biber.
+
+From v. 4.22 to v. 4.22b
+ Compatibility with biber 0.7.2
diff --git a/Master/texmf-dist/doc/support/latexmk/INSTALL b/Master/texmf-dist/doc/support/latexmk/INSTALL
index d714fd99398..c5ac8fa473d 100644
--- a/Master/texmf-dist/doc/support/latexmk/INSTALL
+++ b/Master/texmf-dist/doc/support/latexmk/INSTALL
@@ -1,6 +1,6 @@
INSTALLING latexmk
==================
- (Version 4.20, 12 November 2010)
+ (Version 4.22, 1 January 2011)
John Collins
Physics Department
@@ -16,28 +16,25 @@
Latexmk is a "make" tool for building latex documents. It runs latex
and/or pdflatex the appropriate number of times to resolve cross
-references, and, if necessary, it also runs makeindex and/or bibtex when
-appropriate. Then it can make postscript files, print the result or
-preview it, as request. It can also be set to run continuously with a
-previewer; the latex program, etc, are rerun whenever one of the source
-files is modified.
-
-It automatically determines file dependencies from either the LaTeX .log
-file or the source .tex file. Compared with previous versions, the
-current version features: a fully reliable algorithm for deciding how
-many times to run latex, greatly improved automatic detection of dependent
-files, the ability to generate pdf files using pdflatex, and a continuous
-preview mode that actually works.
-
-Latexmk can be installed and used on UNIX (including LINUX), and MS
-Windows (tested under WinXP). It can presumably be used on other
-systems with suitable customization.
+references etc, and, if necessary, it also runs makeindex and/or
+bibtex (or biber) and other programs when appropriate. Then it can
+make postscript or pdf files, print the result or preview it, as
+requested. It can also be set to run continuously with a previewer;
+the latex program, etc, are then rerun whenever one of the source
+files is modified. Latexmk automatically determines file dependencies
+from the LaTeX .log file.
+
+Latexmk can be installed and used on UNIX (including LINUX and OS-X),
+and MS Windows (tested under WinXP). It can presumably be used on
+other systems with suitable customization.
On all systems, the prequisites are
a. A working installation of Perl. (See http://www.cpan.org/ if you
don't have one. Modern UNIX-like systems, particularly linux and
- OS-X, normally have perl installed by default.)
+ OS-X, normally have perl installed by default. As for MSWindows,
+ the TeXLive distribution (2009 or later) includes Perl, and also
+ includes latexmk.)
b. A working installation of TeX and LaTeX. (See http://www.ctan.org/ if
you don't have one.)
@@ -47,8 +44,9 @@ b. A working installation of TeX and LaTeX. (See http://www.ctan.org/ if
===========================
If you have installed a modern distribution of TeX and friends, you
-may find that latexmk is installed on your computer. If not, it can
-be installed by using your distribution's package manager.
+may find that latexmk is already installed on your computer. If not,
+you may be able to install it by using your distribution's package
+manager.
This is definitely the case for TeXLive 2009 or later, which is also
an essential component of MacTeX. I have also read that another major
@@ -71,8 +69,8 @@ distribution.
-Installing on UNIX/LINUX
-========================
+Installing on UNIX/LINUX/OS-X
+=============================
(Power users can modify these as appropriate.)
@@ -87,7 +85,9 @@ with the manual installation explained below.
2. Put the file latexmk.pl in a directory for executable files. For
example, for a system-wide installation, you could put it in
/usr/local/bin. But if you are an ordinary user, you can put the
- file somewhere where you have access.
+ file somewhere where you have access, and ensure that the PATH
+ environment variable includes the directory where latexmk is
+ installed.
3. Rename this file to latexmk.
@@ -99,24 +99,23 @@ with the manual installation explained below.
the program /usr/bin/env to find perl, provided only that the
perl executable can be found in the PATH for executables.
This insulates latexmk from the fact that the perl executable
- has a very system dependent location. The program /usr/bin/env
- is suppposed to be present on almost all modern UNIX/Linux
- systems.]
+ has a system-dependent location. The program /usr/bin/env is
+ present on almost all modern UNIX/Linux systems.]
5. (Optional) Copy the file latexmk.1 to an appropriate directory for man
pages, e.g., /usr/local/man/man1/.
6. Check whether the commands used by latexmk for executing latex etc
- are correct. The ones you have to worry about are those for
- previewing files ($pdf_previewer, $ps_previewer, and
+ are correct. The ones you particularly have to worry about are
+ those for previewing files ($pdf_previewer, $ps_previewer, and
$dvi_previwer), and most importantly $pscmd, and its associated
variable $pid_position --- see below. The command $pscmd is the
least obvious: it runs the command ps and is used in
preview_continuous_mode to determine whether a previewer is
already running. The format of the output of ps is highly system
- dependent. Latexmk should get it right under LINUX and Solaris.
+ dependent. Latexmk should get it right under LINUX and OS-X.
If latexmk does not get this or another command correct, put an
- override in a startup file.
+ override in a startup file:
a. For a system-wide installation, the correction should be in the
system startup file, which is any one of the files
@@ -143,6 +142,12 @@ with the manual installation explained below.
process ID number is in the first column of the output of the
command ps. See the latexmk.pl file for some examples.
+ To determine what commands latexmk currently uses run the
+ following:
+
+ latexmk --commands
+
+
7. If you need any modifications on the commands for running previewers,
like gv, note that prefixing a command by start, as in
@@ -158,7 +163,7 @@ with the manual installation explained below.
source file.)
8. You may also want to change the defaults on what kinds of output
- file makes. By default latexmk makes dvi files, but not
+ file latexmk makes. By default latexmk makes dvi files, but not
postscript or pdf files. If you (or people on your system)
generally make pdf files using pdflatex, it would be a good idea
to put the following in an appropriate initialization file:
@@ -167,8 +172,9 @@ with the manual installation explained below.
$postscript_mode = 0;
$dvi_mode = 0;
- See step 6 for the locations of these files (under UNIX-like
- systems). This change is likely to be particularly for Mac OS-X.
+ This change is particularly useful for Mac OS-X. See step 6 for
+ the locations of the initialization/configuration files (under
+ UNIX-like systems), where you should put this lines.
Installing on MS-Windows
@@ -228,7 +234,7 @@ with the manual installation explained below.
5. (Optional) Copy documentation file(s) to a suitable directory. The
only requirement on the directory is your convenience: some convenient
place to look up documentation. The relevant files are latexmk.txt
- which is a pure ASCII text file, and latexmk.ps which is a postscript
+ which is a pure ASCII text file, and latexmk.pdf which is a postscript
file.
6. Check whether perl is in the search path for executables. (E.g.,
@@ -293,35 +299,40 @@ with the manual installation explained below.
Other systems
=============
-You are on your own. The instructions for UNIX/LINUX and MS-Windows
-should help you to see what to do. Let me know (username collins at
-node phys.psu.edu) what happens, so that I can update these
-instructions and possibly latexmk as well.
+For other systems you are on your own. The instructions for
+UNIX/LINUX and MS-Windows should help you to see what to do. Let me
+know (username collins at node phys.psu.edu) what happens, so that I
+can update these instructions and possibly latexmk as well.
Tricky points
=============
-1. BEWARE of filenames with funny extensions, for example, two.part.tex,
- with a double extension. The behavior of TeX-related software is not
- consistent in this situation. You may, for example, find a log file
- named two.log or two.part.log, depending on which version of which
- implementation of TeX/LaTeX you use. Naturally, there is a
- possibility that latexmk will get confused, and not recognize, for
- example, that a dvi file has been generated. Latexmk has some
- configuration variables to deal with some of the possibilities, so you
- could try playing with them --- see the code. But it general, it is
- best to avoid such double extensions: they make your files
- non-portable. Do something like two-part.tex or two_part.tex
- instead.
+1. BEWARE of filenames with double extensions, for example,
+ two.part.tex. The behavior of TeX-related software is not
+ consistent in this situation. You may, for example, find a log
+ file named two.log or two.part.log, depending on which version of
+ which implementation of TeX/LaTeX you use. Naturally, there is a
+ possibility in this situation that latexmk will get confused, and
+ not recognize, for example, that a dvi file has been generated.
+ Latexmk has configuration variables to deal with some of the
+ possibilities, so you could try playing with them --- see the
+ code. But it general, it is best to avoid such double extensions:
+ they make your files non-portable. Do something like two-part.tex
+ or two_part.tex instead.
2. The same goes for filenames and directory names with spaces in them.
- Much software interprets spaces as separators between different file
- names or between filenames and other text.
+ Much software interprets spaces as separators between different
+ filenames or between filenames and other text. This can cause
+ problems in some of the programs called by latexmk. It can also
+ cause problems when latexmk parses a .log file to determine
+ dependency information. Latexmk does try to correctly treat
+ filenames with spaces, as do current implementations of the TeX
+ program.
3. If you need to remake documentation files, e.g., latexmk.pdf or
latexmk.txt, from the man page file latexmk.1, the following
- commands work (on my linux system at least):
+ commands work (on my linux and OS-X systems at least):
Postscript file from latexmk.1:
@@ -348,7 +359,7 @@ Version 2 was modified by Evan McLean.
The current version is by John Collins (username collins at node
phys.psu.edu) -- other contact details at the top. It is copyright
-1998-2010 by John Collins, and the previous authors; see the copyright
+1998-2011 by John Collins, and the previous authors; see the copyright
notice in the latexmk.pl file, which gives permission to use, copy,
modify, and distribute this software and its documentation under the
terms of the GNU Public License.
diff --git a/Master/texmf-dist/doc/support/latexmk/README b/Master/texmf-dist/doc/support/latexmk/README
index 3a19320f435..8f0f3a7fdb8 100644
--- a/Master/texmf-dist/doc/support/latexmk/README
+++ b/Master/texmf-dist/doc/support/latexmk/README
@@ -1,25 +1,28 @@
-Latexmk, version 4.21, 28 Dec. 2010
+Latexmk, version 4.22b, 9 Jan. 2011
-----------------------------------
-Latexmk completely automates the process of generating a LaTeX document.
-Essentially, it is a highly specialized cousin of the general make
-utility. Given the source files for a document, latexmk issues the
-appropriate sequence of commands to generate a .dvi, .ps, .pdf or hardcopy
-version of the document. It can also be set to run continuously with a
-previewer; the latex program, etc, are rerun whenever one of the source
-files is modified.
-
-Latexmk automatically determines file dependencies from either the LaTeX
-.log file or the source .tex file. Compared with previous versions, the
-current version features: a fully reliable algorithm for deciding how many
-times to run latex, greatly improved automatic detection of dependent
-files, the ability to generate pdf files using pdflatex, and a continuous
-preview mode that actually works.
-
-Please read the man page (or the corresponding text or postscript file)
-for a run down on what latexmk does and what all the features are. A copy
-of the fast help that can be seen by doing "latexmk -h" is at the end of
-this file.
+Latexmk completely automates the process of generating a LaTeX
+document. Essentially, it is a highly specialized cousin of the
+general make utility. Given the source files for a document, latexmk
+issues the appropriate sequence of commands to generate a .dvi, .ps,
+.pdf or hardcopy version of the document, including repeated running
+of the programs until cross references etc are resolved. Latexmk can also
+be set to run continuously with a previewer; the latex program, etc,
+are rerun whenever one of the source files is modified.
+
+Latexmk automatically determines file dependencies from the LaTeX .log
+file. It features: a fully reliable algorithm for deciding how many
+times to run latex and related programs, automatic detection of
+dependent files, the ability to generate pdf files using pdflatex or
+via dvi or postscript files, and the continuous-preview mode. For
+bibliographies, the current version now supports biber as well as the
+traditional bibtex. Which of bibtex or biber to use is determined
+automatically.
+
+Please read the man page (or the corresponding text or postscript
+file) for details of what latexmk does and what all the features are.
+A copy of the fast help that can be seen by doing "latexmk -h" is at
+the end of this file.
Latexmk is a perl script. It is licensed under the GNU General Public
License.
@@ -36,7 +39,7 @@ written by David J. Musliner. Now it is supported by
http://www.phys.psu.edu/~collins/
username collins at node phys.psu.edu
-(E-mail address obfuscated to avoid being harvested by worms and spammers)
+(E-mail address obfuscated to reduce harvesting by worms and spammers.)
The start of the script file has copyright notices and disclaimers. It
also has a modification history for those who are interested.
@@ -53,15 +56,19 @@ NOTES:-
3) Portability under non-UNIX systems:
Under other operating systems some other arrangement needs to be made
to run the file. For example under MS-Windows, the supplied batch file
- latexmk.bat will do this.
-
- You may also find it necessary to convert files to the correct local
- format for text files. As downloaded, the files are in UNIX format
- (line-ending is '\n'). On MS-Windows systems, the conversion to MSDOS
- format (with line-ending '\r\n') is normally UNnecessary, since much
- current software handles the UNIX format correctly. (The known
- software for which this statement applies includes MikTeX, fpTeX,
- emacs.)
+ latexmk.bat will do this. Under current TeXLive (2009 or later)
+ distribution, latexmk can be installed by TeXLive's package
+ manager, in which case an executable program is also installed to
+ run latexmk.pl, and an appropriate version of Perl is part of the
+ TeXLive system.
+
+ You may also find it necessary to convert files to the correct
+ local format for text files. As downloaded, the files are in UNIX
+ format (line-ending is '\n'). On MS-Windows systems, the
+ conversion to MSDOS format (with line-ending '\r\n') is normally
+ UNnecessary, since much current software handles the UNIX format
+ correctly. (The known current software for which this statement
+ applies includes MikTeX, TeXLive, emacs.)
4) Portability: The various commands to process LaTeX files made need to
be changed for particular installations. See the INSTALL file and the
@@ -73,25 +80,19 @@ NOTES:-
6) Latexmk can be downloaded from the author's site at
http://www.phys.psu.edu/~collins/software/latexmk/
- This site also includes previous versions, and possibly newer
+ This site also includes previous versions, and sometimes newer
versions under development.
7) Latexmk is archived on the CTAN tex archive --- see
- http://www.tug.org/ctan.html. By ftp it can be found in
- /tex-archive/support/latexmk on the following hosts (as well as on
- many other mirror sites): ftp://ftp.dante.de, ftp://ftp.tex.ac.uk,
- ftp://ctan.tug.org.
+ http://www.tug.org/ctan.html.
8) [If for some reason you need to find the obsolete version 2, it can
- also be found on CTAN, at /tex-archive/obsolete/support/latexmk/ on
- the above hosts.]
-
-
-I hope you find this useful.
+ also be found on CTAN, e.g., at
+ http://ctan.org/tex-archive/obsolete/support/latexmk/]
John Collins
---------------------------- "latexmk -h" ----------------------------
-Latexmk 4.21: Automatic LaTeX document generation routine
+Latexmk 4.22b: Automatic LaTeX document generation routine
Usage: latexmk [latexmk_options] [filename ...]
diff --git a/Master/texmf-dist/doc/support/latexmk/latexmk.pdf b/Master/texmf-dist/doc/support/latexmk/latexmk.pdf
index 0cb2e9bbe7f..bbffdf7b0cf 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 2a31fec47d7..7a3f1b53802 100644
--- a/Master/texmf-dist/doc/support/latexmk/latexmk.txt
+++ b/Master/texmf-dist/doc/support/latexmk/latexmk.txt
@@ -34,11 +34,11 @@ DESCRIPTION
In particular, it will repeat the run of LaTeX (or pdflatex) often
enough to resolve all cross references; depending on the macro packages
used. With some macro packages and document classes, four, or even
- more, runs may be needed. If necessary, latexmk will also run bibtex
- and/or makeindex. In addition, latexmk can be configured to generate
- other necessary files. For example, from an updated figure file it can
- automatically generate a file in encapsulated postscript or another
- suitable format for reading by LaTeX.
+ more, runs may be needed. If necessary, latexmk will also run bibtex,
+ biber, and/or makeindex. In addition, latexmk can be configured to
+ generate other necessary files. For example, from an updated figure
+ file it can automatically generate a file in encapsulated postscript or
+ another suitable format for reading by LaTeX.
Latexmk has two different previewing options. In the simple -pv
option, a dvi, postscript or pdf previewer is automatically run after
@@ -61,7 +61,7 @@ DESCRIPTION
- 28 December 2010 1
+ 9 January 2011 1
@@ -120,14 +120,14 @@ LATEXMK OPTIONS AND ARGUMENTS ON COMMAND LINE
-bibtex
When the source file uses bbl files for bibliography, run bibtex
- as needed to regenerate the bbl files.
+ or biber as needed to regenerate the bbl files.
This property can also be configured by setting the $bibtex_use
variable to 2 in a configuration file
- 28 December 2010 2
+ 9 January 2011 2
@@ -137,32 +137,32 @@ LATEXMK(1L) LATEXMK(1L)
-bibtex-
- Never run bibtex.
+ Never run bibtex or biber.
A common use for this option is when a document comes from an
external source, complete with its bbl file(s), and the user
does not have the corresponding bib files available. In this
situation use of the -bibtex- option will prevent latexmk from
- trying to run bibtex, which would result in overwriting of the
- bbl files.
+ trying to run bibtex or biber, which would result in overwriting
+ of the bbl files.
-bibtex-cond
When the source file uses bbl file(s) for the bibliography, run
- bibtex as needed to regenerate the bbl files, but only if the
- relevant bib file(s) exist. Thus when the bib files are not
- available, bibtex is not run, thereby avoiding overwriting of
- the bbl file(s). This is the default setting.
+ bibtex or biber as needed to regenerate the bbl files, but only
+ if the relevant bib file(s) exist. Thus when the bib files are
+ not available, bibtex or biber is not run, thereby avoiding
+ overwriting of the bbl file(s). This is the default setting.
(Note that it is possible for latexmk to decide that the bib
file does not exist, even though the bib file does exist and
- bibtex finds it. The problem is that the bib file may not be in
- the current directory but in some search path; the places
- latexmk and bibtex cause to be searched need not be identical.
- On modern installations of TeX and related programs this problem
- should not arise, since latexmk uses the kpsewhich program to do
- the search, and kpsewhich should use the same search path as
- bibtex. If this problem arises, use the -bibtex option when
- invoking latexmk.)
+ bibtex or biber finds it. The problem is that the bib file may
+ not be in the current directory but in some search path; the
+ places latexmk and bibtex or biber cause to be searched need not
+ be identical. On modern installations of TeX and related pro-
+ grams this problem should not arise, since latexmk uses the
+ kpsewhich program to do the search, and kpsewhich should use the
+ same search path as bibtex and biber. If this problem arises,
+ use the -bibtex option when invoking latexmk.)
-bm <message>
A banner message to print diagonally across each page when con-
@@ -193,7 +193,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 3
+ 9 January 2011 3
@@ -203,12 +203,12 @@ LATEXMK(1L) LATEXMK(1L)
-c Clean up (remove) all regeneratable files generated by latex and
- bibtex except dvi, postscript and pdf. These files are a combi-
- nation of log files, aux files, latexmk's database file of
- source file information, and those with extensions specified in
- the @generated_exts configuration variable. In addition, files
- with extensions by the $clean_ext configuration variable are
- removed.
+ bibtex or biber except dvi, postscript and pdf. These files are
+ a combination of log files, aux files, latexmk's database file
+ of source file information, and those with extensions specified
+ in the @generated_exts configuration variable. In addition,
+ files with extensions by the $clean_ext configuration variable
+ are removed.
This cleanup is instead of a regular make. See the -gg option
if you want to do a cleanup then a make.
@@ -222,9 +222,9 @@ LATEXMK(1L) LATEXMK(1L)
not deleted.
-C Clean up (remove) all regeneratable files generated by latex and
- bibtex. This is the same as the -c option with the addition of
- dvi, postscript and pdf files, and those with extensions in the
- $clean_full_ext configuration variable.
+ bibtex or biber. This is the same as the -c option with the
+ addition of dvi, postscript and pdf files, and those with exten-
+ sions in the $clean_full_ext configuration variable.
This cleanup is instead of a regular make. See the -gg option
if you want to do a cleanup than a make.
@@ -259,7 +259,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 4
+ 9 January 2011 4
@@ -325,7 +325,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 5
+ 9 January 2011 5
@@ -391,7 +391,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 6
+ 9 January 2011 6
@@ -401,14 +401,14 @@ LATEXMK(1L) LATEXMK(1L)
-nobibtex
- Never run bibtex.
+ Never run bibtex or biber.
A common use for this option is when a document comes from an
external source, complete with its bbl file(s), and the user
does not have the corresponding bib files available. In this
situation use of the -nobibtex option will prevent latexmk from
- trying to run bibtex, which would result in overwriting of the
- bbl files.
+ trying to run bibtex or biber, which would result in overwriting
+ of the bbl files.
-p Print out the document. By default it is the generated post-
script file that is printed. But you can use the -print=...
@@ -457,7 +457,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 7
+ 9 January 2011 7
@@ -523,7 +523,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 8
+ 9 January 2011 8
@@ -583,13 +583,13 @@ LATEXMK(1L) LATEXMK(1L)
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.
+ tex_silent_switch, $biber_silent_switch, $dvips_silent_switch,
+ $latex_silent_switch, and $pdflatex_silent_switch.
- 28 December 2010 9
+ 9 January 2011 9
@@ -655,7 +655,7 @@ CONFIGURATION/INITIALIZATION (RC) FILES
- 28 December 2010 10
+ 9 January 2011 10
@@ -721,7 +721,7 @@ HOW TO SET VARIABLES IN INITIALIZATION FILES
- 28 December 2010 11
+ 9 January 2011 11
@@ -787,7 +787,7 @@ FORMAT OF COMMAND SPECIFICATIONS
- 28 December 2010 12
+ 9 January 2011 12
@@ -853,7 +853,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 13
+ 9 January 2011 13
@@ -919,7 +919,7 @@ LATEXMK(1L) LATEXMK(1L)
- 28 December 2010 14
+ 9 January 2011 14
@@ -985,7 +985,7 @@ LIST OF CONFIGURATION VARIABLES USABLE IN INITIALIZATION FILES
- 28 December 2010 15
+ 9 January 2011 15
@@ -1025,6 +1025,13 @@ LATEXMK(1L) LATEXMK(1L)
without the kpsewhich command, you may need to set the variable @BIBIN-
PUTS.
+ $biber ["biber %O %S"]
+ The biber processing program.
+
+ $biber_silent_switch ["--onlylog"]
+ Switch(es) for the biber processing program when silent mode is
+ on.
+
$bibtex ["bibtex %O %S"]
The BibTeX processing program.
@@ -1033,25 +1040,18 @@ LATEXMK(1L) LATEXMK(1L)
on.
$bibtex_use [1]
- Under what conditions to run BibTeX. When latexmk discovers
- from the log file that one (or more) BibTeX-generated bibliogra-
- phies are used, it can run BibTeX whenever it appears necessary
- 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.
+ Under what conditions to run BibTeX or biber. When latexmk dis-
+ covers from the log file that one (or more) BibTeX/biber-gener-
+ ated bibliographies are used, it can run BibTeX or biber when-
+ ever it appears necessary 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
- 28 December 2010 16
+ 9 January 2011 16
@@ -1060,6 +1060,14 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ are provided. In that case use of BibTeX or biber will result
+ in incorrect overwriting of the precious bbl files. The vari-
+ able $bibtex_use controls whether this happens. Its possible
+ values are: 0: never use BibTeX or biber. 1: only use BibTeX or
+ biber if the bib files exist. 2: run BibTeX or biber whenever
+ it appears necessary to update the bbl files, without testing
+ for the existence of the bib files.
+
$cleanup_includes_cusdep_generated [0]
If nonzero, specifies that cleanup also deletes files that are
generated by custom dependencies. (When doing a clean up, e.g.,
@@ -1106,26 +1114,26 @@ LATEXMK(1L) LATEXMK(1L)
option is selected, i.e., extensions of files to remove when the
.dvi, etc files are to be cleaned-up.
- @cus_dep_list [()]
- Custom dependency list -- see section on "Custom Dependencies".
- @default_files [("*.tex")]
- Default list of files to be processed.
- Normally, if no filenames are specified on the command line,
- latexmk processes all tex files specified in the @default_files
+ 9 January 2011 17
- 28 December 2010 17
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ @cus_dep_list [()]
+ Custom dependency list -- see section on "Custom Dependencies".
+ @default_files [("*.tex")]
+ Default list of files to be processed.
+ Normally, if no filenames are specified on the command line,
+ latexmk processes all tex files specified in the @default_files
variable, which by default is set to all tex files ("*.tex") in
the current directory. This is a convenience: just run latexmk
and it will process an appropriate set of files. But sometimes
@@ -1171,26 +1179,27 @@ 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.]
+ of Windows, this will cause to be run whatever command the
- $dvipdf ["dvipdf %O %S %D"]
- Command to convert dvi to pdf file. A common reconfiguration is
- to use the dvipdfm command, which needs its arguments in a dif-
- ferent order:
- $dvipdf = "dvipdfm %O -o %D %S";
+ 9 January 2011 18
- 28 December 2010 18
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ system has associated with .dvi files.]
+ $dvipdf ["dvipdf %O %S %D"]
+ Command to convert dvi to pdf file. A common reconfiguration is
+ to use the dvipdfm command, which needs its arguments in a dif-
+ ferent order:
+
+ $dvipdf = "dvipdfm %O -o %D %S";
WARNING: The default dvipdf script generates pdf files with
bitmapped fonts, which do not look good when viewed by acroread.
@@ -1236,27 +1245,27 @@ LATEXMK(1L) LATEXMK(1L)
4 => run a command to do the update. The command is speci-
fied by the variable $dvi_update_command.
- See information on the variable $pdf_update_method for an exam-
- ple of updating by command.
+ See information on the variable $pdf_update_method for an
- $dvi_update_signal [Under UNIX: SIGUSR1, which is a system-dependent
- value]
- The number of the signal that is sent to the dvi viewer when it
- is updated by sending a signal -- see the information on the
- variable $dvi_update_method. The default value is the one
- appropriate for xdvi on a UNIX system.
+ 9 January 2011 19
- 28 December 2010 19
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ example of updating by command.
+ $dvi_update_signal [Under UNIX: SIGUSR1, which is a system-dependent
+ value]
+ The number of the signal that is sent to the dvi viewer when it
+ is updated by sending a signal -- see the information on the
+ variable $dvi_update_method. The default value is the one
+ appropriate for xdvi on a UNIX system.
$fdb_ext ["fdb_latexmk"]
The extension of the file which latexmk generates to contain a
@@ -1303,19 +1312,10 @@ LATEXMK(1L) LATEXMK(1L)
If nonzero, process files regardless of timestamps, and is then
equivalent to the -g option.
- %hash_calc_ignore_pattern
- !!!This variable is for experts only!!!
-
- 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
- is to be read in on the next run. The file contains a comment
- line giving its creation date and time. On the next run the
- 28 December 2010 20
+ 9 January 2011 20
@@ -1324,6 +1324,15 @@ LATEXMK(1L) LATEXMK(1L)
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
+ 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
+ is to be read in on the next run. The file contains a comment
+ line giving its creation date and time. On the next run the
time changes, latex sees that the eps file has changed, and
therefore reruns latex. This causes an infinite loop, that is
only terminated becaues latexmk has a limit on the number of
@@ -1369,26 +1378,25 @@ LATEXMK(1L) LATEXMK(1L)
The program called to locate a source file when the name alone
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
- .bib files.
+ 9 January 2011 21
- 28 December 2010 21
-
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ notably when .bib files are found from the log file of a bibtex
+ or biber run, the name of the file, but not its path is known.
+ The program 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
+ .bib files.
$landscape_mode [0]
If nonzero, run in landscape mode, using the landscape mode pre-
@@ -1436,25 +1444,25 @@ LATEXMK(1L) LATEXMK(1L)
its graphics/graphicx packages.
- $latex_silent_switch ["-interaction=batchmode"]
- Switch(es) for the LaTeX processing program 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
+ 9 January 2011 22
- 28 December 2010 22
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ $latex_silent_switch ["-interaction=batchmode"]
+ Switch(es) for the LaTeX processing program 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
$latex_silent_switch = "-interaction=batchmode -c-style-
errors";
@@ -1502,25 +1510,25 @@ LATEXMK(1L) LATEXMK(1L)
$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
- needs to bail out, rather than rerunning latex/pdflatex again to
- resolve cross-references, etc. The default value covers all
- normal cases.
- (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.)
+ 9 January 2011 23
- 28 December 2010 23
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ 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
+ normal cases.
+ (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
@@ -1569,17 +1577,9 @@ LATEXMK(1L) LATEXMK(1L)
removes the extension 'tex' from pdflatex_input_extensions
- 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-
- 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
-
- 28 December 2010 24
+ 9 January 2011 24
@@ -1588,7 +1588,14 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
- pdflatex and its graphics/graphicx packages.)
+ 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-
+ 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-
+ tex and its graphics/graphicx packages.)
$pdflatex_silent_switch ["-interaction=batchmode"]
@@ -1636,16 +1643,9 @@ LATEXMK(1L) LATEXMK(1L)
Arranging to use a command to get a previewer explicitly updated
requires three variables to be set. For example:
- $pdf_previewer = "start xpdf -remote %R %O %S";
- $pdf_update_method = 4;
- $pdf_update_command = "xpdf -remote %R -reload";
-
- The first setting arranges for the xpdf program to be used in
- its "remote server mode", with the server name specified as the
-
- 28 December 2010 25
+ 9 January 2011 25
@@ -1654,6 +1654,12 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ $pdf_previewer = "start xpdf -remote %R %O %S";
+ $pdf_update_method = 4;
+ $pdf_update_command = "xpdf -remote %R -reload";
+
+ The first setting arranges for the xpdf program to be used in
+ its "remote server mode", with the server name specified as the
rootname of the TeX file. The second setting arranges for
updating to be done in response to a command, and the third set-
ting sets the update command.
@@ -1702,16 +1708,10 @@ LATEXMK(1L) LATEXMK(1L)
Type of file to printout: possibilities are "dvi", "none",
"pdf", or "ps".
- $pscmd Command used to get all the processes currently run by the user.
- The -pvc option uses the command specified by the variable
- $pscmd to determine if there is an already running previewer,
- and to find the process ID (needed if latexmk needs to signal
- the previewer about file changes).
-
- 28 December 2010 26
+ 9 January 2011 26
@@ -1720,6 +1720,12 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ $pscmd Command used to get all the processes currently run by the user.
+ The -pvc option uses the command specified by the variable
+ $pscmd to determine if there is an already running previewer,
+ and to find the process ID (needed if latexmk needs to signal
+ the previewer about file changes).
+
Each line of the output of this command is assumed to correspond
to one process. See the $pid_position variable for how the
process number is determined.
@@ -1768,22 +1774,21 @@ LATEXMK(1L) LATEXMK(1L)
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.)
+ 9 January 2011 27
- 28 December 2010 27
-
+LATEXMK(1L) LATEXMK(1L)
-LATEXMK(1L) LATEXMK(1L)
+ 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.)
$ps_update_signal [Under UNIX: SIGHUP, which is a system-dependent
@@ -1835,15 +1840,10 @@ LATEXMK(1L) LATEXMK(1L)
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
- 28 December 2010 28
+ 9 January 2011 28
@@ -1852,6 +1852,11 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ $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"]
@@ -1901,15 +1906,10 @@ CUSTOM DEPENDENCIES
tion should return 0 if it was successful and a nonzero number
if it failed.
- It is invoked whenever latexmk detects that a run of latex/pdflatex
- 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
- 28 December 2010 29
+ 9 January 2011 29
@@ -1918,6 +1918,11 @@ CUSTOM DEPENDENCIES
LATEXMK(1L) LATEXMK(1L)
+ It is invoked whenever latexmk detects that a run of latex/pdflatex
+ 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.
@@ -1968,14 +1973,9 @@ LATEXMK(1L) LATEXMK(1L)
could put single quotes around filenames in the command line that is
executed:
- add_cus_dep( 'fig', 'eps', 0, 'fig2eps' );
- sub fig2eps {
- system("fig2dev -Lps '$_[0].fig' '$_[0].eps'");
- }
-
- 28 December 2010 30
+ 9 January 2011 30
@@ -1984,6 +1984,11 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ add_cus_dep( 'fig', 'eps', 0, 'fig2eps' );
+ sub fig2eps {
+ system("fig2dev -Lps '$_[0].fig' '$_[0].eps'");
+ }
+
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 spa-
@@ -2033,15 +2038,10 @@ LATEXMK(1L) LATEXMK(1L)
}
(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
- is always later than the .nnd last read in. Thus the .nnd appears to
- 28 December 2010 31
+ 9 January 2011 31
@@ -2050,6 +2050,11 @@ LATEXMK(1L) LATEXMK(1L)
LATEXMK(1L) LATEXMK(1L)
+ 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
+ is always later than the .nnd last read in. Thus the .nnd appears to
be perpetually out-of-date. This situation, of circular dependencies,
is endemic to latex, and latexmk in its current version works correctly
with circular dependencies. It examines the contents of the files (by
@@ -2098,16 +2103,11 @@ BUGS
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
+ ers.) Preview continuous mode only works perfectly with certain
- 28 December 2010 32
+ 9 January 2011 32
@@ -2116,6 +2116,11 @@ BUGS
LATEXMK(1L) LATEXMK(1L)
+ previewers: 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
@@ -2130,7 +2135,7 @@ THANKS TO
AUTHOR
Current version, by John Collins (username collins at node
- phys.psu.edu). (Version 4.21).
+ phys.psu.edu). (Version 4.22b).
Released version can be obtained from CTAN: <http://www.tug.org/tex-ar-
chive/support/latexmk/>, and from the author's website
@@ -2168,11 +2173,6 @@ AUTHOR
-
-
-
-
-
- 28 December 2010 33
+ 9 January 2011 33
diff --git a/Master/texmf-dist/scripts/latexmk/latexmk.pl b/Master/texmf-dist/scripts/latexmk/latexmk.pl
index b03c9a58da6..4353be4b11c 100755
--- a/Master/texmf-dist/scripts/latexmk/latexmk.pl
+++ b/Master/texmf-dist/scripts/latexmk/latexmk.pl
@@ -107,8 +107,8 @@ use warnings;
$my_name = 'latexmk';
$My_name = 'Latexmk';
-$version_num = '4.21';
-$version_details = "$My_name, John Collins, 28 December 2010";
+$version_num = '4.22b';
+$version_details = "$My_name, John Collins, 9 January 2011";
use Config;
@@ -177,6 +177,11 @@ else {
##
## Modification log from 23 Jun 2010 onwards in detail
##
+## 9 Jan 2011, John Collins Correct parsing of blg file for biber 0.7.2
+## 3 Jan 2011, John Collins Small correction on reading .fdb_file
+## 1 Jan 2011, John Collins Biber implementation
+## 30 Dec 2010, John Collins Version number to 4.22
+## Start for biber
## 28 Dec 2010, John Collins Version number to 4.21
## 1. Improved handling of quotes in filenames in log file:
## a. Clean double quotes in names from messages about files.
@@ -386,9 +391,11 @@ add_input_ext( 'latex', 'tex', 'eps' );
add_input_ext( 'pdflatex', 'tex', 'jpg', 'pdf' );
#show_input_ext( 'latex' ); show_input_ext( 'pdflatex' );
-## Command to invoke bibtex
+## Command to invoke biber & bibtex
+$biber = 'biber %O %B';
$bibtex = 'bibtex %O %B';
-# Switch(es) to make bibtex silent:
+# Switch(es) to make biber & bibtex silent:
+$biber_silent_switch = '--onlylog';
$bibtex_silent_switch = '-terse';
$bibtex_use = 1; # Whether to actually run bibtex to update bbl files
# 0: Never run bibtex
@@ -1527,6 +1534,7 @@ if ( $landscape_mode )
if ( $silent ) {
add_option( \$latex, " $latex_silent_switch" );
add_option( \$pdflatex, " $pdflatex_silent_switch" );
+ add_option( \$biber, " $biber_silent_switch" );
add_option( \$bibtex, " $bibtex_silent_switch" );
add_option( \$makeindex, " $makeindex_silent_switch" );
add_option( \$dvips, " $dvips_silent_switch" );
@@ -1620,11 +1628,6 @@ $quell_uptodate_msgs = $silent;
# Whether to quell informational messages when files are uptodate
# Will turn off in -pvc mode
-# Process for each file.
-# The value of $bibtex_mode set in an initialization file may get
-# overridden, during file processing, so save it:
-#?? Unneeded now: $save_bibtex_mode = $bibtex_mode;
-
$failure_count = 0;
@failed_primaries = ();
@@ -1917,7 +1920,7 @@ sub fix_cmds {
# Source only
if ( $_ && ! /%/ ) { $_ .= " %O %S"; }
}
- foreach ($bibtex) {
+ foreach ($biber, $bibtex) {
# Base only
if ( $_ && ! /%/ ) { $_ .= " %O %B"; }
}
@@ -2075,9 +2078,14 @@ sub rdb_make_links {
#?? foreach (sort keys %from_rules) {print "D='$_' F='$from_rules{$_}\n";}
rdb_for_all(
0,
- sub{
- if ( exists $from_rules{$file} ) { $$Pfrom_rule = $from_rules{$file}; }
-#?? print "$rule: $file, $$Pfrom_rule\n";
+ sub{
+ # Set from_rule, but only if it isn't set or is invalid.
+ # Don't forget the biber v. bibtex issue
+ if ( exists $from_rules{$file}
+ && ( (!$$Pfrom_rule) || (! exists $rule_db{$$Pfrom_rule} ) )
+ )
+ { $$Pfrom_rule = $from_rules{$file};
+ }
}
);
rdb_for_all(
@@ -2818,6 +2826,7 @@ sub print_commands
warn "Commands used by $my_name:\n",
" To run latex, I use \"$latex\"\n",
" To run pdflatex, I use \"$pdflatex\"\n",
+ " To run biber, I use \"$biber\"\n",
" To run bibtex, I use \"$bibtex\"\n",
" To run makeindex, I use \"$makeindex\"\n",
" To make a ps file from a dvi file, I use \"$dvips\"\n",
@@ -2857,6 +2866,63 @@ sub view_file_via_temporary {
#**************************************************
+sub check_biber_log {
+ # Check for biber warnings:
+ # Usage: check_biber_log( base_of_biber_run[, \@biber_source )
+ # return 0: OK, 1: biber warnings, 2: biber errors,
+ # 3: could not open .blg file.
+ # 10: only error is missing \citation commands.
+ # Side effect: add source files @biber_source
+ my $base = $_[0];
+ my $Pbiber_source = $_[1];
+ my $log_name = "$base.blg";
+ my $log_file = new FileHandle;
+ open( $log_file, "<$log_name" )
+ or return 3;
+ my $have_warning = 0;
+ my $have_error = 0;
+ my $missing_citations = 0;
+ my $no_citations = 0;
+ my $error_count = 0;
+ my $warning_count = 0;
+ while (<$log_file>) {
+ if (/> WARN /) {
+ print "Biber warning: $_";
+ $have_warning = 1;
+ $warning_count ++;
+ }
+ elsif (/> FATAL /) {
+ print "Biber error: $_";
+ $have_error = 1;
+ $error_count ++;
+ if ( /> FATAL - The file '[^']+' does not contain any citations!/ ) {
+ $no_citations++;
+ }
+ }
+ elsif ( /> INFO - Found .* '([^']+)'\s*$/
+ || /> INFO - Found '([^']+)'\s*$/
+ ) {
+ if ( defined $Pbiber_source ) {
+ push @$Pbiber_source, $1;
+ }
+ }
+ }
+ close $log_file;
+# print "$My_name: #Biber errors = $error_count, warning messages = $warning_count,\n ",
+# "missing citation messages = $missing_citations, no_citations = $no_citations\n";
+ if ( ! $have_error && $no_citations ) {
+ # If the only errors are missing citations, or lack of citations, that should
+ # count as a warning.
+ # HOWEVER: biber doesn't generate a new bbl. So it is an error condition.
+ return 10;
+ }
+ if ($have_error) {return 2;}
+ if ($have_warning) {return 1;}
+ return 0;
+} #END check_biber_log
+
+#**************************************************
+
sub check_bibtex_log {
# Check for bibtex warnings:
# Usage: check_bibtex_log( base_of_bibtex_run )
@@ -3811,7 +3877,7 @@ LINE:
rdb_create_rule( $rule, 'cusdep', '', $PAnew_cmd, 1,
$source, $dest, $base, 0, $run_time, 1 );
}
- elsif ( $rule =~ /^(makeindex|bibtex)\s*(.*)$/ ) {
+ elsif ( $rule =~ /^(makeindex|bibtex|biber)\s*(.*)$/ ) {
my $rule_generic = $1;
if ( ! $source ) {
# If fdb_file was old-style (v. 1)
@@ -3827,6 +3893,10 @@ LINE:
$dest = "$base.bbl";
$source = "$base.aux";
}
+ elsif ($rule_generic eq 'biber') {
+ $dest = "$base.bbl";
+ $source = "$base.bcf";
+ }
}
warn "$My_name: File-database '$in_name': setting rule '$rule'\n"
if $diagnostics;
@@ -4078,6 +4148,7 @@ sub rdb_set_from_logB {
# $reference_changed, $bad_reference $bad_citation
&parse_logB;
+# ?? !! Should also deal with .run.xml file
# Handle result on output file:
# 1. Non-existent output file, which is because of no content.
@@ -4129,19 +4200,37 @@ sub rdb_set_from_logB {
my @new_bib_files = ();
my @new_aux_files = ();
my @new_bst_files = ();
- &parse_aux( "$bbl_base.aux", \@new_bib_files, \@new_aux_files, \@new_bst_files );
- my $from_rule = "bibtex $bbl_base";
- print "!!!===Dealing with rule '$from_rule'\n"
- if ($diagnostics);
+ my @biber_source = ( "$bbl_base.bcf" );
+ my $bib_program = 'bibtex';
+ if ( exists $generated_log{"$bbl_base.bcf"} ) {
+ $bib_program = 'biber';
+ }
+ my $from_rule = "$bib_program $bbl_base";
+ print "======= Dealing with '$from_rule'\n" if ($diagnostics);
+ if ($bib_program eq 'biber') {
+ check_biber_log( $bbl_base, \@biber_source );
+ # Remove OPPOSITE kind of bbl generation:
+ rdb_remove_rule( "bibtex $bbl_base" );
+ }
+ else {
+ parse_aux( "$bbl_base.aux", \@new_bib_files, \@new_aux_files, \@new_bst_files );
+ # Remove OPPOSITE kind of bbl generation:
+ rdb_remove_rule( "biber $bbl_base" );
+ }
if ( ! rdb_rule_exists( $from_rule ) ){
- print " ===Creating rule '$from_rule'\n"
- if ($diagnostics);
- rdb_create_rule( $from_rule, 'external', $bibtex, '', 1,
- "$bbl_base.aux", $bbl_file, $bbl_base, 1, 0);
+ print " ===Creating rule '$from_rule'\n" if ($diagnostics);
+ if ( $bib_program eq 'biber' ) {
+ rdb_create_rule( $from_rule, 'external', $biber, '', 1,
+ "$bbl_base.bcf", $bbl_file, $bbl_base, 1, 0);
+ }
+ else {
+ rdb_create_rule( $from_rule, 'external', $bibtex, '', 1,
+ "$bbl_base.aux", $bbl_file, $bbl_base, 1, 0);
+ }
}
local %old_sources = ();
rdb_one_rule( $from_rule, sub { %old_sources = %$PHsource; } );
- foreach my $source ( @new_bib_files, @new_aux_files, @new_bst_files ) {
+ foreach my $source ( @new_bib_files, @new_aux_files, @new_bst_files, @biber_source ) {
print " === Source file '$source' for '$from_rule'\n"
if ($diagnostics);
rdb_ensure_file( $from_rule, $source );
@@ -4151,7 +4240,7 @@ sub rdb_set_from_logB {
foreach ( keys %old_sources ) {
print "Removing no-longer-needed dependent '$_' from rule '$from_rule'\n";
}
- }
+ }
rdb_remove_files( $from_rule, keys %old_sources );
print " ===Source file '$bbl_file' for '$rule'\n"
if ($diagnostics);
@@ -4222,7 +4311,6 @@ NEW_SOURCE:
print "No new source files for rule '$rule':\n";
}
}
-
my @files_not_needed = ();
foreach (keys %$PHsource) {
if ( ! exists $dependents{$_} ) {
@@ -4794,7 +4882,7 @@ sub rdb_makeB1 {
# Carries out make at level of given rule (all data available).
# Assumes contexts for recursion, make, and rule, and
# assumes that source files for the rule are to be considered
- # up-to-date.
+ # up-to-date.
if ($diagnostics) { print " MakeB1 $rule\n"; }
if ($failure & ! $force_mode) {return;}
if ( ! defined $pass{$rule} ) {$pass{$rule} = 0; }
@@ -4810,7 +4898,7 @@ sub rdb_makeB1 {
# (and setting to do this test)
# 2 => don't run bibtex because of setting
my @missing_bib_files = ();
- if ( $rule =~ /^bibtex/ ) {
+ if ( $rule =~ /^(bibtex|biber)/ ) {
$bibtex_not_run = 0;
if ($bibtex_use == 0) {
$bibtex_not_run = 2;
@@ -5050,7 +5138,6 @@ sub rdb_classify1 {
# Helper routine for rdb_classify_rules
# Applied as rule_act1 in recursion over rules
# Assumes rule context, and local variables from rdb_classify_rules
- #print "??======= '$rule' $depth $state ========== \n";
push @classify_stack, [$state];
if ( exists $possible_one_time{$rule} ) {
# Normally, we will have already extracted the one_time rules,
@@ -5127,6 +5214,27 @@ sub rdb_run1 {
$$Plast_result = 2;
$$Plast_message = "Bug or configuration error; incorrect command type";
}
+ if ( $rule =~ /^biber/ ) {
+ my $retcode = check_biber_log($$Pbase);
+ if ($retcode == 3) {
+ $$Plast_result = 2;
+ $$Plast_message = "Could not open biber log file for '$$Pbase'";
+ push @warnings, $$Plast_message;
+ }
+ elsif ($retcode == 2) {
+ $$Plast_message = "Biber errors: See file '$$Pbase.blg'";
+ push @warnings, $$Plast_message;
+ }
+ elsif ($retcode == 1) {
+ push @warnings, "Biber warnings for '$$Pbase'";
+ }
+ elsif ($retcode == 10) {
+ push @warnings, "Biber found no citations for '$$Pbase'";
+ # Biber doesn't generate a bbl file in this situation. So I cannot
+ # ignore the error the way I do with bibtex.
+ #$return = 0;
+ }
+ }
if ( $rule =~ /^bibtex/ ) {
my $retcode = check_bibtex_log($$Pbase);
if ($retcode == 3) {
@@ -5742,6 +5850,15 @@ sub rdb_one_file {
#************************************************************
+sub rdb_remove_rule {
+ # rdb_remove_rule( rule, ... )
+ foreach my $key (@_) {
+ delete $rule_db{$key};
+ }
+}
+
+#************************************************************
+
sub rdb_create_rule {
# rdb_create_rule( rule, command_type, ext_cmd, int_cmd, test_kind,
# source, dest, base,
diff --git a/Master/texmf/doc/man/man1/latexmk.1 b/Master/texmf/doc/man/man1/latexmk.1
index 7e0bc674c09..8b87e672467 100644
--- a/Master/texmf/doc/man/man1/latexmk.1
+++ b/Master/texmf/doc/man/man1/latexmk.1
@@ -1,4 +1,4 @@
-.TH LATEXMK 1L "28 December 2010" ""
+.TH LATEXMK 1L "9 January 2011" ""
.SH NAME
latexmk \- generate LaTeX document
.SH SYNOPSIS
@@ -30,7 +30,7 @@ programs as necessary. In particular, it will repeat the run of LaTeX
(or pdflatex) often enough to resolve all cross references; depending
on the macro packages used. With some macro packages and document
classes, four, or even more, runs may be needed. If necessary,
-\fIlatexmk\fR will also run bibtex and/or makeindex. In addition,
+\fIlatexmk\fR will also run bibtex, biber, and/or makeindex. In addition,
\fIlatexmk\fR can be configured to generate other necessary files.
For example, from an updated figure file it can automatically generate
a file in encapsulated postscript or another suitable format for
@@ -104,37 +104,41 @@ is automatically added, just as LaTeX does. Thus, if you specify:
then \fIlatexmk\fR will operate on the file "foo.tex".
.TP
.B -bibtex
-When the source file uses bbl files for bibliography, run bibtex as needed
-to regenerate the bbl files.
+When the source file uses bbl files for bibliography, run bibtex or
+biber as needed to regenerate the bbl files.
This property can also be configured by setting the \fI$bibtex_use\fR
variable to 2 in a configuration file
.TP
.B -bibtex-
-Never run bibtex.
+Never run bibtex or biber.
A common use for this option is when a document comes from an external
source, complete with its bbl file(s), and the user does not have the
corresponding bib files available. In this situation use of the
\fB-bibtex-\fR option will prevent \fIlatexmk\fR from trying to run
-\fIbibtex\fR, which would result in overwriting of the bbl files.
+\fIbibtex\fR or \fIbiber\fR, which would result in overwriting of the
+bbl files.
.TP
.B -bibtex-cond
When the source file uses bbl file(s) for the bibliography, run
-\fIbibtex\fR as needed to regenerate the bbl files, but only if the
+\fIbibtex\fR or \fIbiber\fR as needed to regenerate the bbl files, but
+only if the
relevant bib file(s) exist. Thus when the bib files are not
-available, \fIbibtex\fR is not run, thereby avoiding overwriting of
+available, \fIbibtex\fR or \fIbiber\fR is not run, thereby avoiding
+overwriting of
the bbl file(s). This is the default setting.
(Note that it is possible for \fIlatexmk\fR to decide that the bib
file does not exist, even though the bib file does exist and
-\fIbibtex\fR finds it. The problem is that the bib file may not be in
+\fIbibtex\fR or \fIbiber\fR finds it. The problem is that the bib
+file may not be in
the current directory but in some search path; the places
-\fIlatexmk\fR and \fIbibtex\fR cause to be searched need not be
+\fIlatexmk\fR and \fIbibtex\fR or \fIbiber\fR cause to be searched need not be
identical. On modern installations of TeX and related programs this
problem should not arise, since \fIlatexmk\fR uses the \fIkpsewhich\fR
program to do the search, and \fIkpsewhich\fR should use the same
-search path as \fIbibtex\fR. If this problem arises, use the
+search path as \fIbibtex\fR and \fIbiber\fR. If this problem arises, use the
\fB-bibtex\fR option when invoking \fIlatexmk\fR.)
.TP
.B -bm <message>
@@ -163,7 +167,7 @@ exit.
.TP
.B -c
Clean up (remove) all regeneratable files generated by \fIlatex\fR and
-\fIbibtex\fR except dvi, postscript and pdf. These files are a
+\fIbibtex\fR or \fIbiber\fR except dvi, postscript and pdf. These files are a
combination of log files, aux files, latexmk's database file of source
file information,
and those with extensions
@@ -183,7 +187,7 @@ dependencies and are also deleted. Otherwise these files are not deleted.
.TP
.B -C
Clean up (remove) all regeneratable files generated by \fIlatex\fR and
-\fIbibtex\fR. This is the same as the \fB-c\fR option with the
+\fIbibtex\fR or \fIbiber\fR. This is the same as the \fB-c\fR option with the
addition of dvi, postscript and pdf files, and those with extensions
in the \fI$clean_full_ext\fR configuration variable.
@@ -335,13 +339,14 @@ in its normal behavior that in preview-continuous mode it checks for
an already-running previewer.
.TP
.B -nobibtex
-Never run bibtex.
+Never run bibtex or biber.
A common use for this option is when a document comes from an external
source, complete with its bbl file(s), and the user does not have the
corresponding bib files available. In this situation use of the
\fB-nobibtex\fR option will prevent \fIlatexmk\fR from trying to run
-\fIbibtex\fR, which would result in overwriting of the bbl files.
+\fIbibtex\fR or \fIbiber\fR, which would result in overwriting of the
+bbl files.
.TP
.B -p
Print out the document. By default it is
@@ -502,6 +507,7 @@ generates.
To change the options used to make the commands run silently, you need
to configure \fIlatexmk\fR with changed values of its configuration
variables, the relevant ones being \fI$bibtex_silent_switch\fR,
+\fI$biber_silent_switch\fR,
\fI$dvips_silent_switch\fR, \fI$latex_silent_switch\fR, and
\fI$pdflatex_silent_switch\fR.
.TP
@@ -871,6 +877,12 @@ since it has a better method of searching for files using the
kpsewhich command. However, if your system is an unusual one without
the kpsewhich command, you may need to set the variable \fI@BIBINPUTS\fR.
.TP
+.B $biber ["biber %O %S"]
+The biber processing program.
+.TP
+.B $biber_silent_switch ["--onlylog"]
+\fBSwitch(es)\fR for the biber processing program when silent mode is on.
+.TP
.B $bibtex ["bibtex %O %S"]
The BibTeX processing program.
.TP
@@ -878,19 +890,19 @@ The BibTeX processing program.
\fBSwitch(es)\fR for the BibTeX processing program when silent mode is on.
.TP
.B $bibtex_use [1]
-Under what conditions to run BibTeX. When \fIlatexmk\fR discovers
-from the log file that one (or more) BibTeX-generated bibliographies
-are used, it can run BibTeX whenever it appears necessary to
+Under what conditions to run BibTeX or biber. When \fIlatexmk\fR discovers
+from the log file that one (or more) BibTeX/biber-generated bibliographies
+are used, it can run BibTeX or biber whenever it appears necessary 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 incorrect overwriting of the
-precious bbl files. The variable \fI$bibtex_use\fR 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.
+In that case use of BibTeX or biber will result in incorrect
+overwriting of the precious bbl files. The variable \fI$bibtex_use\fR
+controls whether this happens. Its possible values are: 0: never use
+BibTeX or biber. 1: only use BibTeX or biber if the bib files exist.
+2: run BibTeX or biber whenever it appears necessary to update the bbl
+files, without testing for the existence of the bib files.
.TP
.B $cleanup_includes_cusdep_generated [0]
If nonzero, specifies that cleanup also deletes files that are
@@ -1149,7 +1161,8 @@ function, e.g.,
The program called to locate a source file when the name alone is not
sufficient. Most filenames used by \fIlatexmk\fR have sufficient 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
+when .bib files are found from the log file of a bibtex or biber run,
+the name of
the file, but not its path is known. The program specified by
$kpsewhich is used to find it.
@@ -1755,7 +1768,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.21).
+(Version 4.22b).
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 fd4d993bfd0..40af01556d7 100644
--- a/Master/texmf/doc/man/man1/latexmk.man1.pdf
+++ b/Master/texmf/doc/man/man1/latexmk.man1.pdf
Binary files differ