=head1 NAME autolatex - compile large TeX projects =head1 SYNOPSIS autolatex [options] F [F ...] =head1 DESCRIPTION AutoLaTeX is a tool for managing small to large sized LaTeX projects. The typical AutoLaTeX input file is simply a series of variable definitions in a Makefile for the project. This Makefile was automatically generated by a provided Perl script. The user can easily perform all required steps to do such tasks as: preview the document, or produce a PDF file. AutoLaTeX will keep track of files that have changed and how to run the various programs that are needed to produce the output. One of the best feature of AutoLaTeX is to provide translation rules to automatically generate the figures which will be included into the PDF. As a quick example, consider a project which has a single LaTeX file, mydoc.tex, as its input. To produce a .pdf file you might use the following sequence of commands: pdflatex mydoc.tex bibtex mydoc.tex pdflatex mydoc.tex pdflatex mydoc.tex pdflatex mydoc.tex The triple invocation of LaTeX is to ensure that all references have been properly resolved and any page layout changes due to inserting the references have been accounted for. The sequence of commands isn't horrible, but it still is several commands. To use AutoLaTeX for this project, you would use the command line: autolatex -f mydoc.tex Note that the Makefile file is automaticaly generated into the current directory. For larger projects which may need to run programs to export drawings to Postscript files for inclusion or run BibTeX to generate bibliographies, the generation of .pdf (or other) files becomes increasingly complicated to run manually. With AutoLaTeX, such operations are still very simple: you have nothing to do. Hopefully this introduction has provided an adequate example for how AutoLaTeX can simplify the management of LaTeX based documents. The AutoLaTeX system is simple enough for small projects and powerful enough for large projects. The remainder of this manual will provide complete documentation on the use of AutoLaTeX as well as configuration and installation instructions. =head1 TARGETS AutoLaTeX provides a fixed set of targets, the argument to the make command, for all projects. The default target is view whose ultimate goal is to provide an on-screen preview of the formatted document. For additional information on the make program, please refer to the documentation for your copy of make. The targets provided by AutoLaTeX are: =over 4 =item B Same as view. =item B Cleans the current working directory by removing all LaTeX output and other output files created during processing of the project. =item B Same as clean. In addition, emacs ~ files and other backup files are removed. The generated figures are also removed. =item B Performs all processing required to produce the .pdf/.dvi/.ps file for the project. =item B Same as gen_doc. In addition launch the document viewer. =item B Performs all processing that permits to generate the bibliography (bibtex). =item B Performs all processing that permits to generate the index (makeindex). =item B Performs the automatic generation of the figures. =item B Commit the changes into a SCM system (CVS or SVN). =item B Update the local copy with the changes from a SCM system (CVS or SVN). =item B Display the filenames of the figures. =item B Show the value of the environment variable PATH =item B Show several important variable values (usefull for debugging) =back =head1 OPTIONS =over 4 =item B<--[no]auto> Enable or disable the auto generation of the figures. =item B<--createconfig[=S]> Do not the compilation the LaTeX project, but create a coniguration file. The created configuration file depends on the S value. If the S is equal to S, AutoLaTeX will create the configuration file dedicated to a project. Otherwhise it will create the configuration file of a user. The project configuration file is path/to/project/.autolatex_project.cfg on Unix platforms, and path\to\project\autolatex_project.cfg on other platforms. The default user configuration file is $HOME/.autolatex on Unix platforms, C:\Documents and Settings\User\Local Settings\Application Data\autolatex.conf on Windows platforms, and $HOME/autolatex.conf on other plateforms. =item B<--createist> Create a default MakeIndex style file into the project directory. The created file will be named 'default.ist'. If a file with this name already is existing, it will be overwritten. =item B<--createmakefile> Do not the compilation the LaTeX project, but create a Makefile in the project's directory that will permits to compile it. =item B<--defaultist> Allow AutoLaTeX to use MakeIndex with the default style (ist file). The default style is provided by AutoLaTeX. The options --index and --noindex also permit to change the behavior of AutoLaTeX against MakeIndex =item B<--dvi> Do the compilation to produce a DVI document. =item B<--exclude=S> Avoid AutoLaTeX to load the translator called S. See bellow for the available translators. The option --include permits to include a translator; and the option -I permits to specify where to find translator scripts. =item B<-f=F> =item B<--file=F> Specify the main LaTeX file to compile. If this option is not specified, AutoLaTeX will search for F. =item B<--fixconfig[=F]> Fix the syntax of a configuration file. If the F is not specified on the command line, AutoLaTeX will try to fix the project configuration, or the user configuration if no project configuration file was found. =item B<-?> =item B<--help> Display this manual. =item B<-I=S> Notify AutoLaTeX that it could find translator scripts inside the specified directories. The specified S could be a list of paths separated by the operating system's path separator (':' on Unix, ';' for Windows for example). The option --exclude permits to exclude a translator; and the option --include permits to exclude a translator. =item B<--include=S> Force AutoLaTeX to load the translator called S. See bellow for the available translators. The option --exclude permits to exclude a translator; and the option -I permits to specify where to find translator scripts. =item B<--index[=F]> Allow AutoLaTeX to use MakeIndex. If this option was specified with a value, the F value will be assumed to be an .ist file to pass to MakeIndex. If this option was specified without a value, AutoLaTeX will use MakeIndex and tries to detect a MakeIndex style file (.ist file) inside the project directory. If no project's .ist file was found, AutoLaTeX will not pass a style to MakeIndex. The options --defaultist and --noindex also permit to change the behavior of AutoLaTeX against MakeIndex =item B<--noindex> Avoid AutoLaTeX to use MakeIndex. The options --index and --defaultist also permit to change the behavior of AutoLaTeX against MakeIndex =item B<-o=F> =item B<--output=F> Specify where the generated F should be created instead of the project's directory. =item B<--pdf> Do the compilation to produce a PDF document. The compilation is based on pdflatex instead of using the old compilation process: latex, dvips, ps2pdf. =item B<--ps> Do the compilation to produce a Postscript document. The compilation is based on the old compilation process: latex, dvips. =item B<--pspdf> Do the compilation to produce a PDF document. The compilation is based on old compilation process: latex, dvips, ps2pdf; instead of using pdflatex. =item B<--set S=S> Set the internal value of AutoLaTeX named S with the specified S. Internal values are limited and corresponds to the "set" directives from the configuration file syntax. =item B<-v> Each time this option was specified, AutoLaTeX is more verbose. =item B<--version> Display the version of AutoLaTeX. =item B<--view[=F]> =item B<--noview> Enable or disable the document viewer at the end of the compilation. The path of the document viewer could be specify with F. If not specified, AutoLaTeX will check for the tools F, F, F, F, and F. =back =head1 AUTO GENERATION OF FIGURES A translator is used to convert a source figure into a target figure which is supported by LaTeX. This converter is an external program (eg. epstopdf) or an internal script (eg. gnuplot2eps). Each supporter translation is stored inside a .mk file. This file contains the definition of the variables for the shell command line to launch, and make rules to automatocally call the converter on each figures of the LaTeX project. The supported formats for calls of translator are: =over 4 =item a) binfile [flags] [inputflags] inputfile [outputflags] outputfile [postflags] =item b) binfile [flags] [outputflags] outputfile [inputflags] inputfile [postflags] =item c) binfile [flags] inputflags=inputfile outputflags=outputfile [postflags] =item d) binfile [flags] outputflags=outputfile inputflags=inputfile [postflags] =item e) binfile [flags] [inputflags] inputfile outputflags=outputfile [postflags] =item f) binfile [flags] outputflags=outputfile [inputflags] inputfile [postflags] =item g) binfile [flags] inputflags=inputfile [outputflags] outputfile [postflags] =item h) binfile [flags] [outputflags] outputfile inputflags=inputfile [postflags] =item i) binfile [flags] [inputflags] inputfile [postflags] > outputfile =item j) binfile [flags] inputflags=inputfile [postflags] > outputfile =back The supported translations are: =over 4 =item B based on L tool. The input filename extension is '.eps'. This translator is automatically included by AutoLaTeX even if you exclude it from the the command line. =over 12 =item Name: eps2pdf_epstopdf =item Use external converter: epstopdf =item Use internal converter: =item Input format: .eps =item Output format: .pdf =item Provide make rules: no =item Provide makefile macros: $(EPS2PDF_SHELL_CMD) =item Command line, format: f) =back =item B based on L tool. The input filename extension is '.eps'. This translator is automatically included by AutoLaTeX even if you exclude it from the the command line. =over 12 =item Name: eps2pdf_ps2pdf =item Use external converter: ps2pdf =item Use internal converter: =item Input format: .eps =item Output format: .pdf =item Provide make rules: no =item Provide makefile macros: $(EPS2PDF_SHELL_CMD) =item Command line, format: a) =back =item B based on L and L tools. The input filename extension is '.fig'. =over 12 =item Name: fig2pdf =item Use external converter: fig2dev =item Use internal converter: eps2pdf =item Input format: .fig =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(FIG2EPS_SHELL_CMD) =item Command line, format: a) =back =item B based on L and L tools. The input filename extension is '.ltx.fig' and the output filename extensions are '.pdf' and '.tex'. PDF part: =over 12 =item Name: fig2pdf+tex =item Use external converter: fig2dev =item Use internal converter: eps2pdf =item Input format: .ltx.fig =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(FIG2PSTEX_SHELL_CMD) =item Command line, format: a) =back TeX part: =over 12 =item Name: fig2pdf+tex =item Use external converter: fig2dev =item Use internal converter: fig2pstex_t =item Input format: .ltx.fig =item Output format: .tex =item Provide make rules: yes =item Provide makefile macros: $(FIG2PSTEX_T_SHELL_CMD) =item Command line, format: a) =back =item B based on L and L tools. The input filename extension is '.plot'. =over 12 =item Name: plot2pdf =item Use external converter: gnuplot =item Use internal converter: eps2pdf =item Input format: .ltx.plot =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(FIG2PSTEX_SHELL_CMD) =item Command line, format: i) =back =item B based on L and L tools. The input filename extension is '.ltx.plot' and the output filename extensions are '.pdf' and '.tex'. PDF part: =over 12 =item Name: plot2pdf+tex =item Use external converter: gnuplot =item Use internal converter: gnuplot2pstex, eps2pdf =item Input format: .plot =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(PLOT2PSTEX_SHELL_CMD) =item Command line, format: a) =back TeX part: =over 12 =item Name: plot2pdf+tex =item Use external converter: gnuplot =item Use internal converter: gnuplot2pstex, eps2pdf =item Input format: .ltx.plot =item Output format: .tex =item Provide make rules: yes =item Provide makefile macros: $(PLOT2PSTEX_T_SHELL_CMD) =item Command line, format: a) =back =item B based on L and L tools. The input filename extension is '.svg'. =over 12 =item Name: svg2pdf =item Use external converter: inkscape =item Use internal converter: eps2pdf =item Input format: .svg =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(SVG2EPS_SHELL_CMD) =item Command line, format: e) =back =item B based on L tool. The input filename extension is '.svg'. =over 12 =item Name: svg2png =item Use external converter: inkscape =item Use internal converter: =item Input format: .svg =item Output format: .png =item Provide make rules: yes =item Provide makefile macros: $(SVG2PNG_SHELL_CMD) =item Command line, format: e) =back =item B based on L and L tools. The input filename extension is '.xmi'. =over 12 =item Name: xmi2pdf_umbrello =item Use external converter: umbrello =item Use internal converter: xmi2eps_umbrello, eps2pdf =item Input format: .xmi =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(XMI2EPS_SHELL_CMD) =item Command line, format: a) =back =item B based on L and on the translator L. The input filename extension is '.xmi'. =over 12 =item Name: xmi2pdf_xmi2svg =item Use external converter: xmi2svg =item Use internal converter: svg2pdf =item Input format: .xmi =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(XMI2SVG_SHELL_CMD) =item Command line, format: i) =back =item B based on L and on the translator L. The input filename extension is '.xmi'. =over 12 =item Name: xmi2pdf_uml2svg =item Use external converter: uml2svg =item Use internal converter: svg2pdf =item Input format: .xmi =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(XMI2SVG_SHELL_CMD) =item Command line, format: i) =back =item B based on L tool. This translator assumes that bitmaps are compressed. The input filename extensions is '..gz' where is one of 'png', 'jpg', 'jpeg', 'gif', 'bmp', or 'pdf'. This translator permits to store in the project compressed figures as raw material for the LaTeX compiler. The bitmaps are uncompressed in a file with the same name as the source, except that the '.gz' was removed from the name. =over 12 =item Name: imggz2img =item Use external converter: zcat =item Use internal converter: =item Input format: .png.gz .jpeg.gz .jpg.gz .gif.gz .pdf.gz .bmp.gz =item Output format: .png .jpeg .jpg .gif .pdf .bmp =item Provide make rules: yes =item Provide makefile macros: $(IMGGZ2IMG_SHELL_CMD) =item Command line, format: i) =back =item B based on L and L tools. The input filename extension is '.dia'. =over 12 =item Name: dia2pdf =item Use external converter: dia =item Use internal converter: eps2pdf =item Input format: .dia =item Output format: .pdf =item Provide make rules: yes =item Provide makefile macros: $(DIA2EPS_SHELL_CMD) =item Command line, format: f) =back =back =head1 LATEX STYLE PACKAGE AutoLaTeX provides a LaTeX style called autolatex.sty. It provides the following functions: =over 4 =item B<\includefigurewtex{width}{filename}> include a figure from a .pstex_t file =back =head1 CONFIGURATION FILE =head2 Location of the Configuration Files The configuration files used by AutoLaTex could be a several places: =over 4 =item * System Configuration (for all users): inside the directory where AutoLaTeX was installed (usually /usr/lib/autolatex on Unix systems). =item * User Configuration: two cases: the configuration directory named S<$HOME/.autolatex> on Unix, or SuserE\Local Settings\Application Data\autolatex> on Windows exists; or not. In the first case, the configuration file is stored inside the directory and is named S. In the second case, the configuration file is inside the user directory and is named S<$HOME/.autolatex> on Unix, and SuserE\Local Settings\Application Data\autolatex.conf> on Windows. =item * Project Configuration: the configuration file in the same directory as the main TeX file of the project. It is named S<.autolatex_project.cfg> on Unix and S on Windows. =back =head2 Syntax of the Configuration Files The configuration files respect a syntax similar to the Windows .ini files. A comment starts with the characters '#' or ';' and it finishes at the end of the line. Each configuration directive must be inside a configuration section. A configuration section is declared by its name between brackets. Example: C<[mysection]> Each directive must be declared as: C Several section names are reserved by AutoLaTeX, the others are assumed to be the configuration for the translators. =head3 [Viewer] section This section permits to configure the viewer used by AutoLaTeX. The recognized directives are: =over 4 =item I : Indicates if AutoLaTeX must launch a viewer after LaTeX compilation. Accepted values: C or C. =item I : Is the path or the command line of the viewer to launch. Accepted value: any command line. =back =head3 [Generation] section This section permits to configure the generation process used by AutoLaTeX. The recognized directives are: =over 4 =item I
: specifies the basename of the main TeX file to compile. This option is available only inside the project's configuration file. =item I : indicates if AutoLaTeX automatically generates the figures. Accepted values: C or C =item I : indicates the type of generation. Accepted values: =over 8 =item C - use pdflatex =item C - use latex =item C - use latex and dvips =item C - use latex, dvips and ps2pdf =back =item I : specifies the style that must be used by makeindex. This is a list of values separated by comas. The values should be: =over 8 =item CfilenameE> - if a filename was specified, AutoLaTeX assumes that it is the .ist file; =item C<@system> - AutoLaTeX uses the system default .ist file (in AutoLaTeX distribution); =item C<@detect> - AutoLaTeX will tries to find a .ist file in the project's directory. If none was found, AutoLaTeX will not pass a style to makeindex; =item C<@none> - AutoLaTeX assumes that no .ist file must be passed to MakeIndex; =item CemptyE> - AutoLaTeX assumes that no .ist file must be passed to MakeIndex. =back If the list contains more than one value, AutoLaTeX will do the corresponding behaviors in turn. =item I : specifies additional directories from which translator scripts could be loaded. This is a list of paths separated by comas or the path separator of your operating system (S<:> on Unix, S<;> on Windows). If a path contains a coma character, you must enclose it in quotes. =item I : specifies the GNU make tool command line. Accepted value: any command line. =item I : specifies the LaTeX tool command line. Accepted value: any command line. =item I : specifies the BibTeX tool command line. Accepted value: any command line. =item I : specifies the dvips tool command line. Accepted value: any command line. =item I : specifies the ps2pdf tool command line. Accepted value: any command line. =item I : specifies the options to pass to the LaTeX tool. Accepted value: any command line. =item I : specifies the options to pass to the LaTeX tool only in draft mode. Accepted value: any command line. =item I : specifies the options to pass to the BibTeX tool. Accepted value: any command line. =item I : specifies the options to pass to the dvips tool. Accepted value: any command line. =item I : specifies the options to pass to the ps2pdf tool. Accepted value: any command line. =item I : specifies the command line for a "touch" Unix-like command. Accepted value: any command line. =item I : specifies the command line for a "echo" Unix-like command. Accepted value: any command line. =item I : specifies the command line for a "echo >&2" Unix-like command. Accepted value: any command line. =item I : specifies the command line for a "find" Unix-like command. Accepted value: any =back =head3 [Clean] section This section permits to configure the cleaning features of AutoLaTeX (targets S and S). The recognized directives are: =over 4 =item I : is a list of files to remove when the target 'clean' is invoked. Shell wildcards are allowed. =item I : is a list of files to remove when the target 'cleanall' is invoked. Shell wildcards are allowed. =back =head3 [Scm] section This section permits to configure the SCM support of AutoLaTeX (CVS, SVN or others). The recognized directives are: =over 4 =item I : specifies the command line to use when commit the changes. =item I : specified the command line to use when update the local copy. =back =head3 Translator section A translator section has the same name as the translator it configures. The recognized directives are: =over 4 =item I : indicates if the translator should be loaded by default. Accepted values: C or C. =back =head1 VARIABLES DEFINED BY AUTOLATEX The variables used by AutoLaTeX can be categorized roughly into two groups. The first set of variables are typically used to configure the whole behavior of AutoLaTeX. These variables can be overridden on the command line for maximum flexibility. The second set of variables are set by in the variable translation scripts. =head2 General Variables =over 4 =item I: The name of the LaTeX document to compile without the trailing '.tex'. Default value = Main. =item I: Boolean value (yes or no) that indicates if the PDF viewer should be launched. Default value = yes. =item I: Boolean value (yes or no) that indicates if the figures included in the LaTeX document should be automatically generated from picture sources. Default value = yes. =item I: Path of the PDF viewer to use. If not set, AutoLaTeX will check for acroread, kpdf, evince and xpdf (in this order). No default value. =item I: Shell command of the SCM command to use to update the local copy. No default value. =item I: Shell command of the SCM command to use to commit the local copy. No default value. =item I: Shell command for generating the PDF document. Default value = pdflatex. =item I: Command line options to pass to the LaTeX compiler when it will be launched in draft mode. Default value = --draftmode. =item I: Command line options to pass to the LaTeX compiler. No default value. =item I: Shell command for generating the bibliography entries. Default value = bibtex. =item I: Parameters that must be passed to the bibtex command. No default value. =item I: Shell command for generating the index entries. Default value = makeindex. =item I: Parameters that must be passed to the makeindex command. No default value. =item I: Name of the style file (.ist) that makeindex must use. If a value was set, the option "-s file.ist" will be passed to makeindex. No default value. =item I: Shell command for generating the Postcript document. Default value = dvips. =item I: Parameters that must be passed to the dvips command. No default value. =item I: Shell command for generating the PDF document from Postcript document. Default value = ps2pdf. =item I: Parameters that must be passed to the ps2pdf command. No default value. =item I: Shell command for the Unix-like command touch. Default value = autolatex_touch. =item I: Shell command for the Unix-like command echo. Default value = autolatex_echo. =item I: Shell command for the Unix-like command echo >&2. Default value = autolatex_echo_err. =item I: Shell command for the Unix-like command find. Default value = autolatex_find. =back =head2 Translator variables (Replace xxx_ by the name of the translator in upper case) =over 4 =item I: Command to launch. =item I: Command line options to pass to the converter. =item I: Options which must appear just before then input filename. =item I: Options which must appear just before then input filename. =item I: Options which must appear just after all the rest on the command line. =item I: Switch the order of the output options and the input option. If set to yes, the output options will appear before the input options. If set to no, the input options will appear before the output options. =item I: If set to yes, the output options will be ignored and the command's standard output will be sent to the target file. =back =head1 GRAPHIC USER INTERFACE A graphical user interface is available since version 5.0 to configure and launch AutoLaTeX process. The available user interfaces are: =over 4 =item B : a GTK-based user interface. =back =head1 BUG REPORT AND FEEDBACK To report bugs, provide feedback, suggest new features, etc. visit the AutoLaTeX Project management page at or send email to the author at L. =head1 SYSTEM REQUIREMENTS To configure and install AutoLaTeX, you will need a Unix-like operating system or shell with a compatible GNU make. You need to install the package Compress::Zlib to compile and install AutoLaTeX. This package is not required for the execution of AutoLaTeX. In addition, to compile AutoLaTeX, you need to install the 'msgfmt' command which is a part of 'gettext'. To use AutoLaTeX, you will require: =over 4 =item latex. The development of AutoLaTeX was done using Thomas Esser's TeX distribution, teTeX, version 1.0.7. More information on teTeX can be found at . =item Either GNU make version 3.80 or higher. For information on GNU make, see . The GNU make version requirement is firm. AutoLaTeX will not work with versions of GNU make prior to 3.80. It is highly unlikely that AutoLaTeX will be ported to older GNU make versions due to the lack of some important features in older versions. =item Either Perl version 5.004 or higher. =item The Perl package Config::Simple. =item The Perl package Locale::gettext =back =head1 INSTALLATION Installation of AutoLaTeX consists of launching the Makefile.PL script to generate a Makefile that permits to compile and install AutoLaTeX. The basic commands are: C C C C C =head1 AUTOLATEX LICENSE S Copyright (c) 1998-2007 Stéphane GALLAND This program is free software; you can redistribute it and/or modify it under the terms of the GNU L as published by the L; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file S. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. =head1 MANUAL COPYRIGHT S Copyright (c) 1998-2007 Stéphane Galland Egalland@arakhne.orgE. Permission is granted to copy, distribute and/or modify this document under the terms of the L, Version 1.2 or any later version published by the L; with the Invariant Sections being S and S, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the file name S. =head1 SEE ALSO L, L, L, L, L, L, L, L, L