Auxiliary scripts for latexmk
=============================

John Collins (collins at phys.psu.edu)
23 Jun 2010

Latexmk can be configured to use different programs than the standard
ones to perform its tasks.  If a user finds that the default behavior
is not what is desired, it is frequently possible to use a script
replacing a standard program to acheive the desired effect.  It is
also possible to have a script to run some other programs as well as
latexmk to do certain tasks.  A certain amount of creativity works
wonders. 

In this directory are some scripts that you may find useful.  They
have been provided by other users (who I thank) or by myself.  They
were written to perform certain jobs desired by these users, so they
may have some very special features that are not useful to everytone.
You may well need to modify them for your own needs, and you will
probably need to read through them in detail to understand what they
do.  They can also be quite operating system specific.

For all these scripts, the instructions assumes that the script is in
the path for executables, and that you have done whatever your OS
needs you to do to make the script executable.

1.  startacroread

    This is specific for UNIX/LINUX systems (script running under
    bash).  It solves a problem that when acroread is used as a pdf
    viewer and latexmk is used in preview-continuous mode, acroread
    does not automatically update its display when the pdf file
    changes.

    Prerequisites:
                    UNIX-style OS
                    bash           (command shell)
                    acroread
                    pdfopen and pdfclose from the xpdfopen package
                     (see http://www.tug.org/tex-archive/support/xpdfopen/)

    To use:

       Put the following lines in a startup file for latexmk

              $pdf_previewer = "start startacrobat";
              $pdf_update_method = "2";

       This will, of course, only have an effect when latexmk will
       have you view pdf files.

    Advantage:

       Use of acroread (under UNIX/LINUX) for viewing pdf files, with
       automatic update when latexmk -pvc is used.

    Disadvantage:

       Acroread does not retain its page position; it returns to the
       first page.  (Both gv and xpdf are better for this.)

    Notes:

       The viewer window disappears and then reappears as the
       foreground window.

       This solution cannot be easily adapted under MSWindows, since
       the MSWindows version of acroread locks the pdf file, so that a
       new version cannot be written.

   Thanks: Thorsten Bonow



2.  l1

    For UNIX/LINUX, possibly cygwin, although I haven't tried.

    It is a replacement for latex that brings up a window there are
    errors.  It first runs latex to completion (without a stop if
    there are errors).   Then if there are errors, it makes their
    description (from the log file) into a dvi file, which it brings
    up in a separate window.

    Advantage:

       Automatic display of log file, in middle of workflow when using
       latexmk in preview-continuous mode.

    Disadvantage:

       Log files are verbose.  A single line error message in a latex
       run is often easier to read.

    Thanks:  Tom Schneider


3.  l2

    A version of l1 with command-line options for changing its
    behavior.


4.  kickxdvi

    A script for making xdvi update its display.  Used by l1.

5.  dvipdfm_call
    dvipdfmx_call
    dvipdfm_call.bat
    dvipdfmx_call.bat

    Scripts for using dvipdfm or dvipdfmx with the same command-line
    syntax as dvipdf.

    To get latexmk to use dvipdfm or dvipdfmx to convert dvi files to
    pdf files, it USED to be necessary to configure latexmk to use one
    of these scripts.  But since v. 4.01, latexmk has more flexible
    configuration methods.  Currently, to use dvipdfm, just put the
    following in one of latexmk's initialization files (e.g.,
    ~/.latexmkrc):

         $dvipdf = "dvipdfm %O -o %D %S";

    (To use dvipdfmx, just change the string dvipdfm to dvipdfmx.)
    The command specified here is used when latexmk is requested to
    make pdf files by conversion from dvi files, e.g., by the
    latexmk's command-line option -pdfdvi.

    But I leave the scripts here.  For OLD versions of latexmk, you
    would have used the configuration line 

         $dvipdf = 'dvipdfm_call';     #OBSOLETE
    or
         $dvipdf = 'dvipdfmx_call';    #OBSOLETE
    
    These still work, but they are obsolete.    

    For Unix-like systems, including linux and Mac OS-X, use the
    scripts dvipdfm_call and dvipdfmx_call.
    For MS-Windows systems use the batch files dvipdfm_call.bat and
    dvipdfmx_call.bat.

6.  completion.bash

    Bash script by Christoph Junghans that implements a bash
    completion function for latexmk.
