latexmk.1L

Langue: en

Autres versions - même langue

Version: 257969 (debian - 07/07/09)

Section: 1 (Commandes utilisateur)

NAME

latexmk - generate LaTeX document

SYNOPSIS

latexmk [options] [file ...]

DESCRIPTION

LatexMk completely automates the process of compiling a LaTeX document. Essentially, it is a highly specialized relative 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 and/or hardcopy version of the document. It can also be set to run continuously with a previewer; in that case the latex program, etc, are rerun whenever one of the source files is modified.

Latexmk will normally determine which are the source files by examining the log file. It has an option to parse the TeX file instead --- see later. When latexmk is run, it will examine the timestamps on the source files. If any of the source files have been changed since the last document generation, latexmk will run the various LaTeX processing 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 styles four, or even more, runs may be needed. If necessary, latexmk will also run bibtex and/or makeindex.

[If the option -it to scan the LaTeX file is used, the main LaTeX file and all input and included files (recursively) are scanned for LaTeX commands for inputting and including other TeX files and figure files. Then on subsequent runs, latexmk with the -it switch reads the dependency information from this file. If the dependencies of the document are changed (e.g., by adding or removing an \input command), an additional pass of latexmk -i or latexmk -I will update the dependency file.]

Latexmk has two different previewing options. In the simple -pv option, a dvi, postscript or pdf previewer is automatically run after generating the dvi, postscript or pdf version of the document. The type of viewer is selected automatically depending on the -ps, -pdf or -pdfps options. The kind of file to be viewed can also be explicitly selected by using the -view option (-view=ps, etc).

The second previewing option is the powerful -pvc option (mnemonic: "preview continuously"). Particularly when a document is reaching the final stages of editing, it is often useful to have a previewer open continuously and have it update its display whenever changes are made to the source file(s), and this is done by the -pvc option. With this option, latexmk runs a previewer for the document, and then latexmk repeatedly monitors the source files of the document to see if any changes have been made since the last dependent file was produced. When changes are detected, latexmk runs the appropriate LaTeX commands to regenerate the .dvi, .ps and/or .pdf files (depending on the which of the -ps, -pdf and -pdfps options was specified). A good previewer (like gv) will then automatically update its display. Thus the user can simply edit a file and, when the changes are written to disk, latexmk completely automates the cycle of updating the .dvi (and possibly the .ps and .pdf) file, and refreshing the previewer's display. It's not quite WYSIWYG, but usefully close.

For other previewers, the user will have to manually make the previewer update its display, which can be (xdvi and gsview) as forcing a redraw of its display.

Latexmk has the ability to print a banner in gray diagonally across each page when making the postscript file. It can also, if needed, call an external program to do other postprocessing on the generated files.

Latexmk is highly configurable, both from the command line and in configuration files, so that it can accommodate a wide variety of user needs and system configurations.

LATEXMK OPTIONS AND ARGUMENTS

(All options can be introduced by single or double "-" characters, e.g., "latexmk -help" or "latexmk --help".)
file
One or more files can be specified. If no files are specified, latexmk will, by default, run on all files in the current working directory with a ".tex" extension. This behavior can be changed: see the sections concerning the @default_files variables.

If a file is specified without an extension, then the ".tex" extension is automatically added, just as LaTeX does. (e.g. If you specify:

        latexmk foo

then latexmk will operate on the file "foo.tex".

-bm <message>
A banner message to print diagonally across each page when converting the dvi file to postscript. The message must be a single argument on the command line so be careful with quoting spaces and such.

Note that if the -bm option is specified, the -ps option is assumed and the postscript file is always generated, even if it is newer than the dvi file.

-bi <intensity>
How dark to print the banner message. A decimal number between 0 and 1. 0 is black and 1 is white, default is 0.95 which is OK unless your toner cartridge is getting low.
-bs <scale>
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. Default is 220.0 which is just right for 5 character messages.
-commands
List the commands used by latexmk for processing files, and then exit.
-c
Clean up (remove) all regenerateable files generated by latex and bibtex except dvi, postscript and pdf.
-C
Clean up (remove) all regenerateable files generated by latex and bibtex including aux, dep, dvi, postscript and pdf.
-c1
Clean up (remove) all regenerateable files generated by latex and bibtex except aux and dep.
-d
Set draft mode. This prints the banner message "DRAFT" across your page when converting the dvi file to postscript. Size and intensity can be modified with the -bs and -bi options. The -bm option will override this option as this is really just a short way of specifying:

        latexmk -bm DRAFT

Note that if the -d option is specified, the -ps option is assumed and the postscript file is always generated, even if it is newer than the dvi file.

-dF
Dvi file filtering. The argument to this option is a filter which will generate a filtered dvi file with the extension ".dviF". All extra processing (e.g. conversion to postscript, preview, printing) will then be performed on this filtered dvi file.

Example usage: To use dviselect to select only the even pages of the dvi file:

        latexmk -dF 'dviselect even' foo.tex

-dvi
Generate dvi version of document.
-dvi-
Turn off generation of dvi version of document. (This may get overridden, if some other file is made (a .ps file) that is generated from the dvi file, or if no generated file at all is requested.)
-diagnostics
Whenever a log file is parsed to determine the input and included files, print a list of these files.
-f
Force latexmk to continue document processing despite errors. Normally, when latexmk detects that latex has found an error which will not be resolved by further processing, the program terminates.
-f-
Turn off the forced processing-past-errors such as is set by the -f option. This could be used to override a setting in a configuration file.
-F
Force latexmk to include files that don't exist when generating dependency files. A warning is produced instead of an error message and the program terminating. If the file name is not an absolute path, it is assumed to be relative to the current working directory. (Note: This option is only relevant if you are using the -it to obtain the dependency information from the tex files. The default is to obtain this information from the log file and it that case the -F option has no effect.)
-F-
Turn off -F.
-g
Force latexmk to process document, disregarding the timestamps of the source files. This option is useful, for example, if you change some options and wish to reprocess the files.
-g-
Turn off -g.
-h, -help
Print help information.
-i
Generate new dependency file if root file is newer than dependency file or dependency file does not exist. The dependency information is taken from the log file or the source file, depending on the setting made by the -il and -it switches.
-i-
Turn off -i.
-il
Extract dependency information from log file. This is normally the best method, so it is the default. However, some packages do not put information on files read in the log file, and then it may be better to tell latexmk to get the information from the TeX file(s) --- see the switch -it. (Default)
-it
Extract dependency information by scanning the source TeX file(s), rather than the log file. This is the method used by earlier versions of latexmk. It relies on parsing TeX files, which can be confused by definitions of new commands, etc. Normally it is better to tell latexmk to scan the log file --- see the switch -il.
-I
Always generate new dependency file, even if newer dependency file exists. The dependency information is taken from the log file or the source file, depending on the setting made by the -il and -it switches.
-I-
Turn off -I.
-l
Run in landscape mode, using the landscape mode for the previewers and the dvi to postscript converters.
-l-
Turn off -l.
-p
Print out the file. By default, this is done using lpr after generating the postscript version. But you can use the -print=... option to print the dvi or pdf files instead, and you can configure this in a start up file (by setting the $print_type variable.

Under MS-Windows you must have configured the print commands used by latexmk.

This option is incompatible with the -pv and -pvc options, so it turns them off.

-pdf
Generate pdf version of document using pdflatex.
-pdfdvi
Generate pdf version of document from the dvi file, by default using dvipdf.
-pdfps
Generate pdf version of document from the ps file, by default using ps2pdf.
-pdf-
Turn off generation of pdf version of document. (This can be used to override a setting in a configuration file. It may get overridden if some other option requires the generation of a pdf file.)
-print=dvi, -print=ps, -print=pdf
Define which kind of file is printed. This option also ensures that the requisite file is made, and turns on printing.
-ps
Generate postscript version of document.
-ps-
Turn off generation of postscript version of document. This can be used to override a setting in a configuration file. (It may get overridden by some other option that requires a postscript file, for example a request for printing.)
-pF
Postscript file filtering. The argument to this option is a filter which will generate a filtered postscript file with the extension ".psF". All extra processing (e.g. preview, printing) will then be performed on this filtered postscript file.

Example usage: Use psnup to print two pages on the one page:

        latexmk -ps -pF 'psnup -2' foo.tex

or

        latexmk -ps -pF "psnup -2" foo.tex

Whether to use single or double quotes round the "psnup -2" will depend on your command interpreter, in particular on the operating system.

-pv
Run file previewer. If the -view option is used, this will select the kind of file to be previewed (dvi, ps or pdf). Otherwise the viewer views the "highest" kind of file selected, by the -dvi, -ps, -pdf, -pdfps options, in the order dvi, ps, pdf (low to high). If no file type has been selected, the dvi previewer will be used. This option is incompatible with the -p and -pvc options, so it turns them off.
-pv-
Turn off -pv.
-pvc
Run a file previewer and continually update the .dvi, .ps, and/or .pdf files whenever changes are made to source files (see the Description above). Which of these files is generated and which is viewed is governed by the other options, and is the same as for the -pv option. This option also turns on the -f option, since it is normally desirable in preview-continuous-mode to continue working even if errors are found. 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. It is also incompatible with the -p and -pv options, so it turns these options off

With a good previewer the display will be automatically updated. (Under UNIX "gv -watch" does this for postscript files; it would also do it for pdf files except for an apparent bug in gv that causes an error when the newly updated pdf file is read.) Other previewers will need a manual update.

Important note: the acroread program on MS-Windows locks the pdf file, and prevents new versions being written, so it is a bad idea to use acroread to view pdf files in preview-continuous mode. It is better to use a dvi or ps viewer, as set by one of the -view=dvi and -view=ps options.

Note that if latexmk dies because it encounters an error, the "forked" previewer will continue to run. Successive invocations with the -pvc option will not fork new previewers, but latexmk will use the existing previewer. (At least this will happen when latexmk is running under an operating system where it knows how to determine whether an existing previewer is running.)

-pvc-
Turn off -pvc.
-quiet
Same as -silent
-r <rcfile>
Read the specified initialization file ("RC file") before processing. Be careful about the ordering: Standard initialization files --- see the section below on "Initialization (RC) files" --- are read first, then the options on the command line in the order they are given. Thus an initialization file specified with the -r option can override both the standard initialization files and previously specified options. But all of these can be overridden by later options. See below for more details about initialization (RC) files.
-silent
Run commands silently, i.e., with options that reduce the amount of diagnostics generated. For example, with the default settings for commands under UNIX, the command "latex -interaction=batchmode" is used for latex.

Also reduce the number of informational messages that latexmk generates.

-v, -version
Print version number of Latexmk.
-verbose
Opposite of -silent. This is the default setting.
-view=default, -view=dvi, -view=ps, -view=pdf
Set the kind of file used when previewing is requested (e.g., by the -pv or -pvc switches). The default is to view the "highest" kind of requested file (in the order dvi, ps, pdf).

The preview-continuous option -pvc can only work with one file. So in 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

 
 % latexmk thesis    # run latex enough times to resolve
                     cross-references 
 
 % latexmk -pvc -ps thesis# run latex enough times to resolve
                     cross-references, make a postscript
                     file, start a previewer.  Then
                     watch for changes in the source
                     file thesis.tex and any files it
                     uses.  After any changes rerun latex
                     the appropriate number of times and
                     remake the postscript file.  If latex
                     encounters an error, latexmk will
                     keep running.
 
 % latexmk -c        # remove .aux, .log, .bbl, .blg, .dep,
                     .dvi, .pdf, .ps & .bbl files
 
 

INITIALIZATION (RC) FILES

There are four initialization files ("RC files") that latexmk can read at startup:

1) The system RC file, if it exists.
   On a UNIX system, latexmk searches for following places for its
   system RC file, in the following order, and reads the first it finds:
   "/opt/local/share/latexmk/LatexMk",
   "/usr/local/share/latexmk/LatexMk",
   "/usr/local/lib/latexmk/LatexMk".
   On a MS-WINDOWS system it looks for "C:\latexmk\LatexMk".

2) The user's RC file in "$HOME/.latexmkrc", where $HOME is the value of the environment variable HOME. On UNIX and clones (including LINUX), this variable is set by the system; on MS-Windows, the user may choose to set it.

3) The RC file in the current working directory called "latexmkrc".

4) Any RC file(s) specified on the command line with the -r option.

Each RC file is a sequence of Perl commands. Usually it will be just a sequence of assignment statements that override the built-in settings of Latexmk. 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.

RC VARIABLES IN INITIALIZATION FILES

Many of the available variables that can be set are shown in the next section. Syntax for the statements in an initialization file is of the form:

                   $bibtex = 'bibtex';

for the setting of a string variable,

                   $preview_mode = 1;

for the setting of a numeric variable, and

                   @default_files = ('paper', 'paper1');

for the setting of an array of strings.

Some of the variables set the names of the commands that latexmk uses. Here are some tricks to note for these:

"Detaching" a command: If a command is to be run detached this is indicated by preceding it with "start", as in

                   $dvi_previewer = 'start xdvi';

This will be translated to whatever is appropriate for your operating system. (Note: in some circumstances, latex will always run a command detached. This is the case for a previewer in preview continuous mode, since otherwise previewing continuously makes no sense.)

Command names containing spaces: Under MS-Windows it is common that the name of a command includes spaces, since software is often installed in a subdirectory of "C:Program Files". Such command names should be enclosed in double quotes, as in


  $lpr_pdf = '"c:/Program Files/Ghostgum/gsview/gsview32.exe" /p';

Using MS-Windows file associations: A useful trick under modern versions of MS-Windows (e.g., WinXP) is to use just the command

                   $dvi_previewer = 'start';

Under recent versions of MS-Windows, this will cause to be run whatever program the system has associated with dvi files. (The same applies for a postscript viewer and a pdf viewer.)

Not using a certain command: If a command is not to be run, the command name NONE is used, as in

                   $lpr = 'NONE lpr';

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 command. Suppose you want latexmk to use latex with source specials enabled. Then you might use the following line in an initialization file:

                   $latex = 'latex --src-specials';

Advanced tricks: Normally latexmk assumes certain behavior for commands and in particular it assumes certain kinds and ordering of command line arguments. Sometimes this assumption is wrong. For example you might want to use Distiller to convert postscript files to pdf files. You cannot simply change the name of the ps2pdf conversion program, as in

                   $ps2pdf = 'distiller'; ######### WRONG

because the command line arguments will be wrong. In such a situation, your best bet is to write a batch file (under MS-Windows) or a script (under UNIX) that will do the conversion. Then you set

                   $ps2pdf = 'special_script';

Your script will be invoked by latexmk in its usual way as "Special_script file.ps file.pdf". Your script calls Distiller with Distiller's correct arguments.

LIST OF RC VARIABLES IN INITIALIZATION FILES

Default values are indicated in brackets.

$banner [0]
If nonzero, the banner message is printed across each page when converting the dvi file to postscript. Without modifying $banner_message, this is equivalent to specifying the -d option.

Note that if $banner is nonzero, the $postscript_mode is assumed and the postscript file is always generated, even if it is newer than the dvi file.

$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 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. This is equivalent to the -bs option.
$bibtex [bibtex]
The BibTeX processing program.
$bibtex_silent_switch [-terse]
Switch(es) for the BibTeX processing program when silent mode is on.
$cleanup_mode [0]
If nonzero, specifies cleanup mode: 1 for full cleanup, 2 for cleanup except for dvi, ps and pdf files, 3 for cleanup except for dep and aux files. This variable is equivalent to specifying one of the -c, -c1, or -C options. There should be no need to set this variable from an RC file.
$clean_ext []
Extra extensions of files for latexmk to remove when the -c option is selected.
$clean_full_ext []
Extra extensions of files for latexmk to remove when the -C option is selected.
@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 you want only some of these files to be processed. In this case you set the (PERL array variable) @default_files in an initialization file (e.g., the file "latexmkrc" in the current directory). Then if no files 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');

Note that more than file may be given, and that the default extension is '.tex'. Wild cards are allowed.

$dvi_filter [empty]
The dvi file filter to be run on the newly produced dvi file before other processing. Equivalent to specifying the -dF option.
$dvi_previewer [start xdvi under UNIX]
The command to invoke a dvi-previewer. [Default is "start" under MS-WINDOWS; under more recent versions of Windows, this will cause to be run whatever command the system has associated with .dvi files.]
$dvi_previewer_landscape [start xdvi]
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 system has associated with .dvi files.]
$dvipdf [dvipdf]
Command to convert dvi to pdf file. (WARNING: The default dvipdf script generates pdf files with bitmapped fonts, which don't look good when viewed by acroread. The script should be modified to give dvips the options "-P pdf" to ensure that type 1 fonts are used in the pdf file.)
$dvips [dvips]
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 appended.
$dvips_landscape [dvips -tlandscape]
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.
$dvi_update_method [2 under UNIX, 1 under MS-Windows]
How the dvi viewer updates its display when the dvi file has changed. 0 => update is automatic, 1=> manual update by user, which may only mean a mouse click on the
   viewer's window or may mean a more serious action. 2 => Send the signal SIGUSR1 (as for xdvi under UNIX), 3 => Viewer cannot do an update, because it locks the file. (As with acroread under MS-Windows.)
$force_generate_and_save_includes [0]
If nonzero, specifies that the dependency file should always be generated. Equivalent to specifying the -I option.
$force_mode [0]
If nonzero, continue processing past minor latex errors including unrecognized cross references. Equivalent to specifying the -f option. Note that specifying the -pvc sets $forec_mode to 1.
$force_include_mode [0]
If nonzero, force latexmk to include files that don't exist when generating dependency files. A warning is produced instead of an error message and the program terminating. If the file name is not an absolute path, it is assumed to be relative to the current working directory. Equivalent to specifying the -F option.
$generate_and_save_includes [0]
If nonzero, generates dependency file if it does not exist or is older than the root file (the base .tex file). Equivalent to specifying the -i option.
@generated_exts [( 'ind', 'lof', 'lot', 'toc')]
This contains a list of extensions for files that are generated (directly or indirectly) during a LaTeX run and that are read in by LaTeX in later runs. When latexmk generates a dependency list from the .log file, it will ignore files with the extensions in @generated_exts, since NORMALLY they are not true source files, and the time stamps of these may mislead latexmk as to whether the real output files are up-to-date.

The extensions "aux" and "bbl" are always excluded from the dependents, because they get special treatment, so they do not need to be in this list.

$go_mode [0]
If nonzero, process files regardless of timestamps. Equivalent to the -g option.
$includes_from_log [1]
If nonzero, extract dependency information from the log file, rather than the source TeX file(s); this is equivalent to the -il option. If zero, extract dependency information by scanning the source TeX file(s); this is equivalent to the -it option.
$index_mode [0 and then as determined from the results of a run]
If nonzero, run makeindex to produce index of document. Normally you should not need to set this variable in an RC file, since latexmk determines automatically if makeindex needs to be run.
$landscape_mode [0]
If nonzero, run in landscape mode, using the landscape mode previewers and dvi to postscript converters. Equivalent to the -l option.
$latex [latex]
The LaTeX processing program. Note that as with other programs, you can use this variable not just to change the name of the program used, but also specify options to the program. E.g.,

                    $latex = 'latex --src-specials';

$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 "-interaction=batchmode -c-style-errors", as used by MikTeX and fpTeX.
$lpr [lpr]
[Default is "NONE lpr" under MS-WINDOWS.] The printing program to print postscript files.

Under MS-Windows (unlike UNIX/LINUX), there is no standard program for printing files. But there are ways you can do it. For example, if you have gsview installed, you can 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 double quotes around the name: this is necessary because one part of the command name ('Program Files') contains a space which would otherwise be misinterpreted.

$lpr_dvi [NONE lpr_dvi]
The printing program to print dvi files.
$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 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 the name: this is necessary because one part of the command name ('Program Files') contains a space which would otherwise be misinterpreted.

$makeindex [makeindex]
The index processing program.
$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 pdflatex. If equal to 2, generate a pdf version of the document from the ps file, by using the command specified by the $ps2pdf variable. 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, and is stored in the dependency file if generated.
$pdflatex [pdflatex]
The LaTeX processing program in the version that makes a pdf file instead of a dvi file.
$pdflatex_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 "-interaction=batchmode -c-style-errors", as used by MikTeX and fpTeX.
$pdf_previewer [start acroread]
The command to invoke a pdf-previewer. [Default is changed to "start" on MS-WINDOWS; under more recent versions of Windows, this will cause to be run whatever command the system has associated with .pdf files.]

Potential problem under MS-Windows: if acroread is used as the pdf previewer, and it is actually viewing a pdf file, the pdf file cannot be updated. Thus makes acroread a bad choice of previewer if you use latexmk's previous-continuous mode (option -pvc) under MS-windows. This problem does not occur if ghostview, gv or gsview is used to view pdf files.

$pdf_update_method [1 under UNIX, 3 under MS-Windows]
How the pdf viewer updates its display when the pdf file has changed. See $dvi_update_method for the codes. Note that acroread under MS-Windows (but not UNIX) locks the pdf file, so the default value is then 3.
$pid_position = [1 under UNIX, -1 under MS-Windows]
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). The variable $pid_position is used to specify which word in lines of the output from $pscmd corresponds to the process ID. The first word in the line is numbered 0. The default value of 1 (2nd word in line) is correct for Solaris 2.6 and Linux. Setting the variable to -1 is used to indicate that $pscmd is not to be used.
$postscript_mode [0]
If nonzero, generate a postscript version of the document. Equivalent to the -ps option.
$preview_continuous_mode [0]
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, see the command line options $-view=.
$preview_mode [0]
If nonzero, run a previewer to preview the document. Equivalent to the -pv option. Which previewer is run depends on the other settings, see the command line options $-view=.
$printout_mode [0]
If nonzero, print the document using lpr. Equivalent to the -p option. Recommend that this is not set from an RC file or you could waste lots of paper.
$print_type = [ps]
Type of file to printout: possibilities are "dvi", "none", "pdf", or "ps".
$pscmd
[On UNIX, the default is "ps -f -u $ENV{USER}". On MS-WINDOWS the default in "NONE pscmd".] Command used to get all the processes currently run by the user. This is used by the -pvc option to determine if there is an already running previewer. The command line options for this command under the different flavors of UNIX are quite variable. The command given is suitable for Solaris 2.6 and for Linux. The variable $pid_position must also be set: see its description.
$ps2pdf [ps2pdf]
Command to convert ps to pdf file.
$ps_filter [empty]
The postscript file filter to be run on the newly produced postscript file before other processing. Equivalent to specifying the -pF option.
$ps_previewer [start gv -watch]
The command to invoke a ps-previewer. [Default is "start" on MS-WINDOWS; under more recent versions of Windows, this will cause to be run whatever command the system has associated with .ps files.]

Note that gv with the -watch option updates its display whenever the postscript file changes, whereas ghostview does not.

$ps_previewer_landscape [start gv -swap -watch]
The command to invoke a ps-previewer in landscape mode. [Default is "start" on MS-WINDOWS; under more recent versions of Windows, this will cause to be run whatever command the system has associated with .ps files.]
$ps_update_method [0 under UNIX, 1 under MS-Windows]
How the postscript viewer updates its display when the ps file has changed. See $dvi_update_method for the codes.
$sleep_time [2]
The time to sleep (in seconds) between checking for source file changes when running the -pvc option.
$texfile_search []
This is an obsolete variable, replaced by the @default_files variable -- see the description of @default_files for how it works.

For backward compatibility, if you choose to set it, $texfile_search 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 [/tmp under UNIX, value of environment variable TEMP under MS-Windows]
Directory to store temporary files that latexmk generates while running. Currently it only has a minor use, when making a banner to insert in a postscript file. There should be no trailing separator. It should not be necessary to change this value except when running under Cygwin.

CUSTOM DEPENDENCIES

In any RC file a set of custom dependencies can be set up to convert a file with one extension to a file with another. An example use of this would be to allow latexmk to convert a .fig file to .eps to be included in the .tex file. A table of custom dependencies are set up by using the @cus_dep_list array. Each string in the array has four arguments, separated by a space:

from extension:
The extension of the file we are converting from (e.g. "fig").
to extension:
The extension of the file we are converting to (e.g. "eps").
must:
If non-zero, the file we are converting from must exist, if it doesn't exist latexmk will give an error message and exit unless the -f option is specified. If must is zero and the file we are converting from doesn't exist, then no action is taken.
function:
The name of the subroutine that latexmk should call to perform the file conversion. The first argument to the subroutine is the base name of the file to be converted without any extension. The subroutines are declared in the syntax of perl. The function should return 0 if it was successful and a nonzero number if it failed.

Example in an RC file to convert a .fig file to a .eps file:

@cus_dep_list = (@cus_dep_list, "fig eps 0 fig2eps");

sub fig2eps {
  system("fig2dev -Lps $_[0].fig $_[0].eps"); }

The subroutine fig2eps will only be called if the .fig file was modified more recently then the .eps file, or the .eps file does not exist.

If the return value of the subroutine is non-zero, then latexmk will assume an error occurred during the execution of the subroutine.

SEE ALSO

latex(1), bibtex(1).

BUGS

Search for .bib files is not correct if they are not in the current directory; the problem is that the log file generated by bibtex does not give the full path to the .bib files. The easiest fix at the moment is to set the BIBINPUTS environment variable to include explicitly the path containing your .bib files. Or you can set the $BIBINPUTS variable explicitly in one of latexmk's startup files.

If .bbl file exists and is used, but the .bib file does not exist, then latexmk should not try to run bibtex, but it does.

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.

(The following isn't really a bug, but concerns features of previewers.) Preview continuous mode only works perfectly with certain 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 use gsview instead.)

THANKS TO

David Coppit (username david at node coppit.org) made many useful suggestions that contributed to version 3. (Please note that the e-mail addresses are not written in their standard form to avoid being harvested by worms and viruses.)

IDENTIFICATION

Current version, with substantial modifications, enhancements and bug fixes by John Collins (username collins at node phys.psu.edu). (Version 3.07).
Modifications and enhancements by Evan McLean (Version 2.0)
Original script called "go" by David J. Musliner (RCS Version 3.2)