% !TEX TS-program = pdflatexmk
% !TEX encoding = UTF-8 Unicode

\documentclass[11pt,french]{article}
\usepackage[a4paper,twoside,textheight=26cm,heightrounded]{geometry}
\usepackage[utf8]{inputenc}

%\documentclass[11pt,french]{article}
%\usepackage[utf8]{inputenc}
%\usepackage[letterpaper,body={6.0in,9.5in},vmarginratio=1:1]{geometry}

\usepackage{xcolor}

\usepackage[compact]{titlesec}

\newcommand{\MacTeX}{Mac\kern-.13em\TeX}
\newcommand{\BibTeX}{B\textsc{i\kern-.025em  b}\kern-.13em\TeX}
\newcommand{\TS}{\textsf{\TeX Shop}}

\newcommand{\optkey}{\textsf{Opt}}
\newcommand{\ctlkey}{\textsf{Ctl}}
\newcommand{\cmdkey}{\textsf{Cmd}}
\newcommand{\esckey}{\textsf{Esc}}
\newcommand{\tabkey}{\textsf{Tab}}
\newcommand{\shiftkey}{\textsf{Shift}}

\newcommand{\mnu}[1]{\textsf{#1}}
\newcommand{\cmd}[1]{\textsf{#1}}
\newcommand{\To}{\,\(\to\)\,}
\newcommand{\Toto}{\,\(\leftrightarrow\)\,}


%Polices : Fourier for math | Utopia (scaled) for rm | Helvetica for ss | Latin Modern for tt
\usepackage[upright]{fourier} % math & rm
\usepackage[scaled=0.85]{berasans}
\usepackage[scaled=0.85]{beramono}
%\usepackage[scaled=0.875]{helvet} % ss
%\renewcommand{\ttdefault}{lmtt} %tt\usepackage{scrtime}

%Babel
\usepackage{babel}
\addto\captionsfrench{\def\tablename{\scshape Tableau}}
\frenchbsetup{ShowOptions,og=«,fg=»}
\usepackage{xfrac}
\usepackage[decimalsymbol=comma,unitsep=cdot,digitsep=thick,mode=text,sepfour=true,valuesep=thick]{siunitx}
\usepackage[np,autolanguage]{numprint}

%Caption, float, microtype
\usepackage{caption}
\usepackage{float}
\usepackage[final,babel]{microtype}

%HYPERREF
\usepackage[colorlinks=true,linkcolor=black,urlcolor=blue]{hyperref}
\begin{document}
\title{Utilisation de\\ \texttt{latexmk} avec \TS\thanks{Traduit par René Fritz le 4 juillet 2011.}}
%\title{Quick Start Guide\\ to using\\ \texttt{latexmk} with \TS}
\author{Herbert Schulz\\\small\href{mailto:herbs2@mac.com}{herbs2@mac.com}}
\date{}


\maketitle
\thispagestyle{empty}

\section{Qu'est-ce que \texttt{latexmk} ?}
%\section*{What is \texttt{latexmk}?}

%Compiling a \texttt{tex} file containing cross-references, bibliographic references and/or indexes is a multi-pass process; i.e., you've got to run \texttt{(pdf/xe)latex} multiple times with possible intermediate runs of \texttt{bibtex} and/or \texttt{makeindex} until all references are resolved. The \texttt{latexmk} \texttt{perl} program, rewritten and presently maintained by John Collins\footnote{The \texttt{latexmk} web site is <\url{http://www.phys.psu.edu/~collins/software/latexmk-jcc/}>. You can get the latest version of \texttt{latexmk} at <\url{http://www.phys.psu.edu/~collins/software/latexmk-jcc/versions.html}>. }, automates this multi-pass process. By default it first runs \texttt{(pdf/xe)latex} on a source file, determines file dependencies by examining the \texttt{log} and \texttt{aux} files produced by the run and then automatically runs \texttt{bibtex}\footnote{As of version 4.22 \texttt{latexmk} will automatically choose between running \texttt{bibtex} or \texttt{biber} as required.} and/or \texttt{makeindex}, if needed, and the correct number of additional runs of \texttt{(pdf/xe)latex} to generate the bibliography, index and cross-references. Recent versions of \texttt{latexmk} also work correctly with the \texttt{nomencl} package as well as the  \texttt{glossary} and \texttt{glossaries} packages and other packages that produce multiple bibliographies or indexes.

La compilation d'un fichier \texttt{tex} renfermant des références croisées, des références bibliographiques ou des index est un processus itératif, c.-à-d., que (\texttt{pdf/xe})\texttt{latex} doit être exécuté plusieurs fois avec, éventuellement, des exécutions intermédiaires de \texttt{bibtex} ou \texttt{makeindex} jusqu'à ce que toutes les références soient résolues. Le programme \texttt{perl}, \texttt{latexmk}, réécrit et actuellement maintenu par John Collins\footnote{Le site web de \texttt{latexmk} est <\url{http://www.phys.psu.edu/~collins/software/latexmk-jcc/}>.
Vous pouvez obtenir la dernière version de \texttt{latexmk} sur <\url{http://www.phys.psu.edu/~collins/software/
latexmk-jcc/versions.html}>.}, automatise ce processus itératif. Par défaut, il compose le source d'abord avec (\texttt{pdf/xe})\texttt{latex}, détermine les dépendances du fichier en examinant les journaux et fichiers auxiliaires produits par la compilation, et puis exécute automatiquement \texttt{bibtex}\footnote{Depuis la version 4.22 \texttt{latexmk} choisira automatiquement de composer avec \texttt{bibtex} ou \texttt{biber} comme convenu.} ou \texttt{makeindex}, si nécessaire, et le nombre exact de compositions supplémentaires avec (\texttt{pdf/xe})\texttt{latex} pour produire la bibliographie, l'index et les références croisées. Les versions récentes de \texttt{latexmk} fonctionnent aussi correctement avec les extensions \texttt{nomencl}, \texttt{glossary} et \texttt{glossaries}, ainsi qu'avec d'autres extensions qui produisent des bibliographies multiples ou des index.


%\section{Quick Start!}
%
%This section will get you started quickly. Unless you are trying to customize the behavior of the supplied engines or want to use the more esoteric engines this really is all you need!

\section{Prise en main rapide}

Cette section vous permettra de démarrer rapidement. Sauf si vous essayez de personnaliser le comportement des moteurs fournis ou si vous voulez utiliser les moteurs les plus ésotériques, c'est vraiment tout ce qu'il vous faut !

%\subsection{Quick Install.}
%
%To activate the \texttt{latexmk} \texttt{engine} files simply move all the files with extension \texttt{.engine} from \path{~/Library/TeXShop/Engines/Inactive/Latexmk/} two folder levels up, to \path{~/Library/TeXShop/Engines/}, and (re-)start \TS. (Note: \path{~/Library/} is the \cmd{Library} folder in your \cmd{HOME} folder.) When you click on the popup engine menu on the Source toolbar the newly enables engines names should appear; see Figure (\ref{fig:popupmenus}) to see how that menu changes. \textbf{Note: the engine names will \emph{not} appear in the \texttt{Typeset} Menu.}

\subsection{Installation rapide}

Pour activer les fichiers \texttt{engine} de \texttt{latexmk} il suffit de déplacer tous les fichiers de suffixe \texttt{.engine}  depuis \path{~/Library/TeXShop/Engines/Inactive/Latexmk/}, deux dossiers en amont, vers \path{~/Library/TeXShop/Engines/}, et de redémarrer \TS\ (\path{~/Library/} est le dossier \cmd{Library} de votre dossier \cmd{HOME}). Lorsque vous cliquez sur le menu déroulant des moteurs, dans la barre d'outils du source, les noms des nouveaux moteurs activés devraient apparaître ; consultez la \textsc{Fig.}\ref{figs:popupmenus} pour voir l'évolution du menu. \textbf{\textsc{Remarque} : les noms des moteurs n'apparaissent \emph{pas} dans le menu \mnu{Composition}.}
 %%%%%%%%%%%%%%%%%%%
 
%\subsection{Quick Use.}
%
%At the top of your Source file place the line
%\begin{verbatim}
%% !TEX TS-program = pdflatexmk
%\end{verbatim}
%to use the \texttt{pdflatexmk} engine which will use \texttt{pdflatex} to typeset your document. Substitute \texttt{latexmk} or \texttt{xelatexmk} for \texttt{pdflatexmk} to use \texttt{latex} or \texttt{xelatex} to typeset your Source. From then simply using \texttt{Typeset}\(\to\)\texttt{Typeset} (\texttt{Cmd-T}) will run through the complete process of fully typesetting your document.

\subsection{Utilisation rapide}

Au début de votre fichier Source placez la ligne
\begin{verbatim}
%! TEX TS-program = pdflatexmk
\end{verbatim}
pour que le moteur \texttt{pdflatexmk} utilise \texttt{pdflatex} pour composer votre document. Pour utiliser \texttt{latex} ou \texttt{xelatex} pour composer votre source, remplacez \texttt{pdflatexmk} par \texttt{latexmk} ou \texttt{xelatexmk}. Dès lors, il suffit simplement d'utiliser \mnu{Composition}\To\mnu{Composer} (\cmd{Cmd-T}) pour que le processus complet se déroule jusqu'à l'entière mise en page de votre document. 

\begin{figure}
\centering
\includegraphics[width=2in]{figs/avant}\qquad\includegraphics[width=2in]{figs/apres}
%\caption{Default and updated versions of the engine pop-up menu after installing the \texttt{latexmk} engines.\label{figs:popupmenus}}
\caption{Évolution du menu des moteurs après l'installation des moteurs \texttt{latexmk}.\label{figs:popupmenus}}
\end{figure}

%\section{What is here?}
%
%There is a set of nine \texttt{engine} files to be placed in \path{~/Library/TeXShop/Engines/}. There is a \texttt{tslatexmk} folder already placed in \path{~/Library/TeXShop/bin/}. The files in that folder consist of the \texttt{latexmk} program, nine basic initialization (\texttt{rc}) files used by the nine \texttt{engine} files, a common file for personal settings (\texttt{latexmkrcDONTedit}) and two shell scripts used for \texttt{pdftricks} and \texttt{pst-pdf} figure processing. When any of the new engines is first run the \texttt{latexmkrcDONTedit} file will automatically be copied to \path{~/Library/TeXShop/bin/latexmkrcedit} if it doesn't already exist. You may copy the file there manually if you wish. \textbf{Any changes or additions to the configuration (e.g., new dependencies and rules) should be placed in the \texttt{laxtexmkrcedit} file. When \TS\ is updated the files in the \path{~/Library/TeXShop/bin/tslatexmk} may automatically get updated; don't edit them or your changes may get lost.}
%

\section{De quoi s'agit-il ?}

Il y a un ensemble de neuf fichiers \texttt{engine} à placer dans \path{~/Library/TeXShop/Engines/}. Il y a un dossier \texttt{tslatexmk} déjà placé dans \path{~/Library/TeXShop/bin/}. Les fichiers de ce dossier comprennent le programme \texttt{latexmk}, neuf fichiers d'initialisation de base (\texttt{rc}) utilisés par les neuf fichiers \texttt{engine}, un fichier commun pour les réglages personnels (\texttt{latexmkrcDONTedit}) et deux scripts shell utilisés pour le traitement de figure par \texttt{pdftricks} et \texttt{pst-pdf}. À la première exécution de l'un des nouveaux moteurs le fichier \texttt{latexmkrcDONTedit} sera automatiquement copié dans \path{~/Library/TeXShop/bin/latexmkrcedit} s'il  n'existe pas déjà. Vous pouvez copier le fichier manuellement à cet endroit si vous le souhaitez. \textbf{Tout les changements ou ajouts à la configuration (p. ex., de nouvelles dépendances et règles) doivent être placés dans le fichier \texttt{laxtexmkrcedit}. Lorsque \TS\ est mis à jour les fichiers dans le répertoire \path{~/Library/TeXShop/bin/tslatexmk} peuvent être automatiquement mis à jour ; ne les modifiez pas sous peine de perdre vos modifications}.

%\section{Using \texttt{latexmk} with \TS.}
%
%\textbf{NOTE: If you are updating to this version of \texttt{latexmk} for \TS\ from a previous version you need only activate the engine files, as noted above, and restart \TS\ after installing the files.
%%(You should also remove \texttt{makeglos.pl} and \texttt{makeglossaries} from  \path{~/Library/TeXShop/bin/} if they were installed with a previous version of \texttt{latexmk} for \TS\ since they are no longer used.)
%}
%
%
%There are nine \texttt{engine} files; two for running \texttt{latex} (one with a final run through \texttt{dvips} and \texttt{ps2pdf} [\texttt{latexmk.engine}] and one with a final run through \texttt{dvipdfmx} [\texttt{dvipdfmxmk.engine]}), one for using \texttt{pdflatex} [\texttt{pdflatexmk.engine}], one for using \texttt{xelatex} [\texttt{xelatexmk.engine}], one for using \texttt{lulatex} [\texttt{lulatexmk.engine}], two for using the \texttt{pdftricks} or \texttt{pst-pdf} packages with \texttt{pdflatex} [\texttt{pdftricksmk.engine} or \texttt{pst-pdfmk.engine} respectively] and one for use with files that use the \texttt{asymptote} package [\texttt{asymptotemk.engine}]. The final engine is a very basic engine for typesetting \texttt{dtx} files for a package into the final documentation [\texttt{dtxmk.engine}]. The exact form of the commands and options used are in the corresponding \texttt{rc} file (e.g., \texttt{latexmkrc} for the \texttt{latexmk.engine}) in \path{~/Library/TeXShop/bin/tslatexmk/} and shouldn't be changed.
%
%You can use these \texttt{engine} files by using the drop down menu on the source tool bar or placing the line
%\begin{verbatim}
%% !TEX TS-program = pdflatexmk
%\end{verbatim}
%(for using \texttt{pdflatex}---similar lines for \texttt{latex} and \texttt{xelatex}, etc.) at the top of your document\footnote{For the dtxmk engine the line should be placed just below the initial ``\texttt{\% \textbackslash iffalse}'' line of the \texttt{dtx} file.}; then simply using \texttt{Typeset} (\texttt{\cmdkey-T}) will automatically run the proper \texttt{engine}. Note: these engines \emph{don't} appear under the \mnu{Typeset} Menu but only under the pop-up menu on the source toolbar. Figure (\ref{fig:popupmenus}) shows the default and updated pop-up menu after installing the \texttt{latexmk} engine files.
%\begin{figure}
%\centering
%\includegraphics[width=2in]{figs/OriginalTypesetPopup}\qquad\includegraphics[width=2in]{figs/UpdatedTypesetPopup}
%\caption{Default and updated versions of the engine pop-up menu after installing the \texttt{latexmk} engines.}\label{fig:popupmenus}
%\end{figure}
%
%Detailed information about using \texttt{latexmk} with the \texttt{epstopdf}, \texttt{pdftricks} and \texttt{pst-pdf} packages is discussed later.
%
%I have only tested these engines with relatively trivial distributed documents (which include other files using \verb|\include| commands) but it appears that \texttt{latexmk} deals with them properly. Note that when compiling a file with name \texttt{rootname.tex} a file with name \texttt{rootname.fdb\_latexmk}\footnote{The dependency file had extension \texttt{dep} in previous versions of \texttt{latexmk} but didn't do a complete job of keeping track of those dependencies.} is created. This file contains the dependency information for the distributed document so making changes in an included file will force the recompile of the root document by \texttt{latexmk}.


\section{Utilisation de \texttt{latexmk} avec \TS}%%%

\noindent\textbf{\textsc{Remarque}. -- Si vous mettez à jour \texttt{latexmk} à partir d'une ancienne version, il vous suffit d'activer les fichiers du moteur, comme indiqué ci-dessus, et de redémarrer \TS\ après l'installation des fichiers.}

Il y a neuf fichiers \texttt{engine}, deux pour exécuter \texttt{latex} (un en passant par \texttt{dvips} et \texttt{ps2pdf} [\texttt{latexmk.engine}] et un en passant par \texttt{dvipdfmx} [\texttt{dvipdfmxmk.engine}]), un pour exécuter \texttt{pdflatex} [\texttt{pdflatexmk.engine}], un pour exécuter \texttt{xelatex} [\texttt{xelatexmk.engine}], un pour exécuter \texttt{lulatex} [\texttt{lulatexmk.engine}], deux pour utiliser les extensions \texttt{pdftricks} ou \texttt{pst-pdf} avec \texttt{pdflatex} [\texttt{pdftricksmk.engine} ou \texttt{pst-pdfmk.engine}, respectivement] et un pour des fichiers qui utilisent l'extension \texttt{asymptote} [\texttt{asymptotemk.engine}]. Enfin, un moteur très basique, sert à composer les fichiers \texttt{dtx} d'une extension vers son document final [\texttt{dtxmk.engine}]. La forme précise des commandes et options utilisées se trouve dans le fichier \texttt{rc} correspondant (p. ex., \texttt{latexmkrc} pour \texttt{latexmk.engine}) situé dans \path{~/Library/TeXShop/bin/tslatexmk/} et ne devrait pas être changée.

Vous pouvez utiliser ces fichiers \texttt{engine} soit à partir du menu déroulant de la barre d'outils du source ou en plaçant la ligne
\begin{verbatim}
%! TEX TS-program = pdflatexmk
\end{verbatim}
(pour l'utilisation de \texttt{pdflatex} --- il y a des lignes similaires pour le \texttt{latex} et \texttt{xelatex}, etc.) en haut de votre document\footnote{Pour le moteur \texttt{dtxmk} cette ligne doit être placée juste au-dessous de la ligne initiale « \texttt{\% \textbackslash iffalse} » du fichier \texttt{dtx}.} ; et il suffira d'utiliser \mnu{Composer} (\cmdkey-\cmd{T}) pour exécuter automatique le moteur requis. \textsc{Remarque} : ces moteurs \emph{n'apparaissent pas} dans le menu \mnu{Composition} mais seulement dans le menu déroulant de la barre d'outil du source. La \textsc{Fig.}~\ref{figs:popupmenus} montre l'évolution de ce menu après l'installation des moteurs \texttt{latexmk}.

L'utilisation détaillée de \texttt{latexmk} avec les extensions \texttt{epstopdf}, \texttt{pdftricks} et \texttt{pst-pdf} est discutée ci-après.

Je n'ai testé ces moteurs qu'avec des documents distribués de façon relativement banale (qui incluent d'autres fichiers en utilisant les commandes \verb|\include|) mais il semble que \texttt{latexmk} les traite correctement. Notez que lors de la compilation d'un fichier nommé \texttt{rootname.tex} un fichier nommé \texttt{rootname.fdb\_latexmk}\footnote{Dans la version précédente de \texttt{latexmk} le fichier de dépendance possédait le suffixe \texttt{dep},  mais il ne remplissait pas complètement sa fonction de conservation des traces de ces dépendances.} est créé. Ce fichier contient l'information de dépendance du document distribué de sorte que la modification d'un fichier inclus forcera une nouvelle compilation du document maître \emph{(root)} par \texttt{latexmk}.

%\subsection{Using the \texttt{epstopdf} package with \texttt{latexmk}.}
%
%\subsubsection{A word about \MacTeX\ 2009 \& 2010}
%
%There are two changes to the graphics sub-system that first appear in \MacTeX\ 2009:
%\begin{enumerate}
%\item
%The \texttt{epstopdf} package now defaults to using the \texttt{[update,append]} option. This has consequences if you don't use extensions when you include graphics files in your document.
%\item
%The default conversion is now \texttt{foo.eps}\,\(\to\)\,\texttt{foo-eps-converted-to.pdf}\footnote{This suffix can be customized.} to prevent any problems with overwriting a \texttt{foo.pdf} .
%\end{enumerate}
%The second of the changes to \texttt{epstopdf} leads to problems with \texttt{latexmk} version 4.08 and earlier since the base file name changes. To make the latest \texttt{epstopdf} operate properly with latexmk version 4.08 and earlier I suggest creating an \texttt{epstopdf.cfg} file, to be placed in \path{~/Library/texmf/tex/latex/config} and containing the line
%\begin{verbatim}
%\epstopdfsetup{update,prepend,prefersuffix=false,suffix=}
%\end{verbatim}
%making \texttt{epstopdf} behave as before; the conversion becomes \texttt{foo.eps}\,\(\to\)\,\texttt{foo.pdf}. Using \texttt{latexmk} version 4.10 or later requires no changes to \texttt{epstopdf} behavior but you may still do so if you wish to retain the pre-2009 behavior. You can find out the version number of the \texttt{latexmk} program you are using by running the command
%\begin{verbatim}
%~/Library/TeXShop/bin/tslatexmk/latexmk -v
%\end{verbatim}
%in \texttt{Terminal}.
%
%Starting with \MacTeX\ 2010 the \texttt{graphic(x/s)} package will automatically load the \texttt{epstopdf} package if it detects that the file is being compiled using \texttt{pdftex} in \texttt{pdf} mode (normal for \texttt{pdflatex}). You no longer need to explicitly use the \texttt{epstopdf} package. Not only that but, if you haven't defined custom conversion and are only trying to convert \texttt{eps}\(\to\)\texttt{pdf} there isn't even a need to use the \texttt{--shell-escape} flag: edit the \texttt{latexmkrcedit} file to eliminate it from all of the engines.


\subsection{Utilisation de l'extension \texttt{epstopdf} avec \texttt{latexmk}}

\subsubsection{Un mot de \MacTeX\ 2009 \& 2010}

Dans \MacTeX\ 2009, il y a deux modifications du sous-ensemble graphique :
\begin{enumerate}
\item 
L'extension \texttt{epstopdf} utilise maintenant, par défaut, l'option [\texttt{update,append}]. Cela a des conséquences si vous n'utilisez pas les suffixes lorsque vous incluez des fichiers graphiques dans votre document.
\item 
Pour prévenir tous problèmes d'écrasement d'un \texttt{toto.pdf}, la conversion par défaut est maintenant \texttt{toto.eps}\To\texttt{toto-eps-converted-to.pdf}\footnote{Ce suffixe peut être personnalisé.}.
\end{enumerate}

Ce second changement d'\texttt{epstopdf} engendre des problèmes avec les versions 4.08, et antérieures, de \texttt{latexmk} puisque le nom du fichier de base change. Pour que le dernier \texttt{epstopdf} fonctionne correctement avec les versions 4.08, et antérieures, de \texttt{latexmk} je suggère de créer un fichier \texttt{epstopdf.cfg}, qui sera placé dans \path{~/Library/texmf/tex/latex/config} et contiendra la ligne

\begin{verbatim}
\epstopdfsetup{update,prepend,prefersuffix=false,suffix=}
\end{verbatim}
afin qu'\texttt{epstopdf} se comporte comme avant ; la conversion devient \texttt{toto.eps}\To\texttt{toto.pdf}. À partir de la version 4.10, \texttt{latexmk} ne nécessite aucune modification du comportement d'\texttt{epstopdf} mais vous pouvez encore le faire si vous souhaitez conserver le comportement d'avant 2009. Vous trouverez le numéro de la version du programme \texttt{latexmk} que vous utilisez en exécutant la commande

\begin{verbatim}
~/Library/TeXShop/bin/tslatexmk/latexmk -v
\end{verbatim}
dans le \texttt{Terminal}

Dans le \MacTeX\ 2010, l'extension \texttt{graphic(x/s)} va automatiquement charger l'extension \texttt{epstopdf} si elle détecte que le fichier est compilé à l'aide \texttt{pdftex} en mode \texttt{pdf} (normal pour \texttt{pdflatex}). Vous n'avez plus besoin d'utiliser explicitement l'extension \texttt{epstopdf}. En outre, si vous n'avez pas défini de conversion personnalisée et essayez seulement de convertir \texttt{eps}\To\texttt{pdf} il n'est même pas nécessaire d'utiliser l'indicateur \texttt{-shell-escape} : modifiez le fichier \texttt{latexmkrcedit} pour l'éliminer de l'ensemble des moteurs.

%\subsubsection{Working with \texttt{epstopdf}}
%
%Versions of \texttt{epstopdf} from 1.5 on will automatically update a previously generated \texttt{pdf} file if the corresponding \texttt{eps} file is updated\footnote{Versions of \texttt{epstopdf} earlier than 1.5 never updated the \texttt{pdf} file once it existed.}. To let \texttt{latexmk} ``know'' that it should allow runs of \texttt{pdflatex} if the corresponding \texttt{eps} file is updated the necessary \texttt{rc} files (the ones that run \texttt{pdflatex} rather than \texttt{latex}; \texttt{pdflatexmkrc}, \texttt{pdftricksmkrc}, \texttt{pst-pdfmkrc} and \texttt{asymptotemkrc}) contain a special dependency and rule
%\begin{verbatim}
%add_cus_dep('eps', 'pdf', 0, 'cus_dep_require_primary_run');
%\end{verbatim}
%which passes \texttt{latexmk} the proper behavior.
%
%If you are using \texttt{epstopdf} 1.5 or later with earlier \TeX\ distributions you should invoke it using the \texttt{[update,prepend]} options. For versions of \texttt{epstopdf} earlier than 1.5 you should edit the \texttt{pdflatexmkrc}, \texttt{pdftrcksmkrc}, \texttt{pst-pdfmkrc} and \texttt{asymptotemkrc} files by commenting out the original dependency (place a \texttt{\#} before the line
%\begin{verbatim}
%add_cus_dep('eps', 'pdf', 0, 'cus_dep_require_primary_run');
%\end{verbatim}
%in that file) and uncommenting the new dependency (remove the \texttt{\#} from the start of the line
%\begin{verbatim}
%#add_cus_dep('eps', 'pdf', 0, 'cus_dep_delete_dest');
%\end{verbatim}
%in that same file). This will have \texttt{latexmk} remove the \texttt{pdf} file before running \texttt{pdflatex} so \texttt{epstopdf} will recreate the \texttt{pdf} file. NOTE: These files may be automatically updated when \TS\ is updated and you may lose your changes!
%
%In version 1.5 and later of the \texttt{epstopdf} package you can also specify non-default processing for the \texttt{eps} to \texttt{pdf} conversion\footnote{The default processing uses the \texttt{epstopdf} command which, in turn, uses \texttt{ghostscript}.}. Since \texttt{latexmk} lets the \texttt{epstopdf} package to do all of the necessary processing of the \texttt{eps} file any customized processing defined in the \texttt{tex} source file will be used.


\subsubsection{Utilisation d'\texttt{epstopdf}}

Depuis la version 1.5, \texttt{epstopdf} mettra à jour automatiquement un fichier \texttt{pdf} déjà produit si le fichier \texttt{eps} correspondant est mis à jour\footnote{Les versions d'\texttt{epstopdf} antérieures à 1.5 ne mettaient jamais à jour le fichier \texttt{pdf} dès qu'il existait.}. Pour que \texttt{latexmk} « sache » s'il doit permettre des excutions de \texttt{pdflatex} si le fichier \texttt{eps} correspondant est mis à jour, les fichiers \texttt{rc} nécessaires (ceux qui exécutent \texttt{pdflatex} plutôt que \texttt{latex} : \texttt{pdflatexmkrc}, \texttt{pdftricksmkrc}, \texttt{pst-pdfmkrc} et \texttt{asymptotemkrc}) contiennent une dépendance et règle spéciale

\begin{verbatim}
add_cus_dep(’eps’, ’pdf’, 0, ’cus_dep_require_primary_run’);
\end{verbatim}
qui transmet à \texttt{latexmk} le comportement approprié.

À partir de la version 1.5 d'\texttt{epstopdf}, si vous utilisez des distributions \TeX\ plus anciennes, vous devez l'appeler avec les options [\texttt{update,prepend}]. Pour les versions d'\texttt{epstopdf} antérieures à 1,5, vous devez éditer les fichiers \texttt{pdflatexmkrc}, \texttt{pdftrcksmkrc}, \texttt{pst-pdfmkrc} et \texttt{asymptotemkrc} en excluant par un commentaire la dépendance d'origine (placez un \# devant la ligne
\begin{verbatim}
add_cus_dep(’eps’, ’pdf’, 0, ’cus_dep_require_primary_run’);
\end{verbatim}
dans ce fichier) et ôter le commentaire de la nouvelle dépendance (enlevez le \# situé au début de la ligne
\begin{verbatim}
#add_cus_dep(’eps’, ’pdf’, 0, ’cus_dep_delete_dest’);
\end{verbatim}
dans le même fichier). Alors, \texttt{latexmk} supprimera le fichier pdf avant de lancer \texttt{pdflatex} si bien qu'\texttt{epstopdf} recréera le fichier \texttt{pdf}. \textsc{Remarque} : ces fichiers peuvent être automatiquement mis à jour lorsque \TS\ est mis à jour et vous risquez de perdre vos modifications !

À partir de la version 1.5 de l'extension \texttt{epstopdf} vous pouvez également spécifier un traitement, propre, de la conversion des \texttt{eps} en \texttt{pdf}\footnote{Le traitement par défaut utilise la commande \texttt{epstopdf} qui, à son tour, utilise \texttt{ghostscript}.}. Puisque \texttt{latexmk} permet à l'extension \texttt{epstopdf} de faire tout le traitement nécessaire du fichier \texttt{eps}, n'importe quel traitement personnalisé défini dans le fichier source \texttt{tex} sera utilisé.

%\subsection{Using the \texttt{pdftricks} package with \texttt{latexmk}.}
%
%The \texttt{pdftricks} package allows the inclusion of \texttt{pstricks} graphics in documents compiled with \texttt{pdflatex}. The package generates a file for each postscript figure included in the document. Each of those figure files is then processed to produce a \texttt{pdf} file containing a figure with a tight enclosing bounding box. The \texttt{pdftricksmk} engine included with this version of \texttt{latexmk} processes the original file, the figure files, etc., all only if they have changed. To use the engine place the line
%\begin{verbatim}
%% !TEX TS-program = pdftricksmk
%\end{verbatim}
%at the start of the file and Typeset the file. The processing steps for each of the figure files is \texttt{latex}\(\to\)\texttt{dvips}\(\to\)\texttt{ps2pdf}\(\to\)\texttt{pdfcrop} to ensure the proper bounding box is created for each figure. \textbf{NOTE: you must use the \texttt{[noshell]} option to the \texttt{pdftricks} package or \texttt{latexmk} will get into a run-on condition. All figure processing will be taken care of by \texttt{latexmk}.}


\subsection{Utilisation de l'extension \texttt{pdftricks} avec \texttt{latexmk}}

L'extension \texttt{pdftricks} permet l'inclusion de graphiques \texttt{pstricks} dans les documents compilés avec \texttt{pdflatex}. L'extension produit un fichier pour chaque figure postscript incluse dans le document. Chacun de ces fichiers figure est ensuite traité pour produire un fichier \texttt{pdf} contenant une figure enfermée dans une boîte englobante. Le moteur \texttt{pdftricksmk} inclus dans cette version de \texttt{latexmk} traite le fichier d'origine, les fichiers de figure, etc., tous, seulement s'ils sont modifiés. Pour utiliser le moteur placez la ligne
\begin{verbatim}
%! TEX TS-program = pdftricksmk
\end{verbatim}
au début du fichier et composez-le. Les étapes de traitement pour chacun des fichiers de figure sont \texttt{latex}\To\texttt{dvips}\To\texttt{ps2pdf}\To\texttt{pdfcrop} pour garantir que la boîte englobante appropriée soit créée pour chaque figure. \textbf{\textsc{Remarque} : vous devez utiliser l'option [\texttt{noshell}] pour l'extension \texttt{pdftricks} sinon \texttt{latexmk} va tourner sans arrêt. Tous les traitements de figure seront pris en charge par \texttt{latexmk}}.

%\subsection{Using the \texttt{pst-pdf} package with \texttt{latexmk}.}
%
%The \texttt{pst-pdf} package also allows the inclusion of \texttt{pstricks} graphics in documents compiled with \texttt{pdflatex}. When the source file is compiled with \texttt{latex} a \texttt{dvi} file containing all of the figures is created. Further processing through the sequence \texttt{dvips}\(\to\)\texttt{ps2pdf}\(\to\)\texttt{pdfcrop} produces a single file that contains all of the figures with proper bounding boxes. A run of \texttt{pdflatex} on the source file then includes all of the figures previously generated. The \texttt{pst-pdfmk} engine takes care of all of the intermediate processing of the figures as well as the final run(s) of \texttt{pdflatex}, etc. To use the engine place the line
%\begin{verbatim}
%% !TEX TS-program = pst-pdfmk
%\end{verbatim}
%at the start of the file and Typeset the file.


\subsection{Utilisation de l'extension \texttt{pst-pdf} avec \texttt{latexmk}}

L'extension \texttt{pst-pdf} permet également l'insertion de graphiques \texttt{pstricks} dans les documents compilés avec \texttt{pdflatex}. Lorsque le fichier source est compilé avec \texttt{latex} un fichier \texttt{dvi} contenant l'ensemble des figures est créé. Un traitement ultérieur à travers la séquence \texttt{dvips}\To\texttt{ps2pdf}\To\texttt{pdfcrop} produit un fichier unique qui contient toutes les figures avec les bonnes boîtes englobantes. Une exécution de \texttt{pdflatex} sur le fichier source inclut alors toutes les figures précédemment produites. Le moteur \texttt{pst-pdfmk} prend soin de tous les traitements intermédiaires des figures ainsi que de(s) exécutions(s) finale(s) de \texttt{pdflatex}, etc. Pour utiliser le moteur placez la ligne
\begin{verbatim}
% !TEX TS-program = pst-pdfmk
\end{verbatim}
au début du fichier et composez-le. 

%\subsection{The \texttt{glossary}, \texttt{glossaries} and such packages.}
%
%Packages that produce multiple and custom indexes, glossaries, etc., use one of two naming schemes for the multiple files they create:
%\begin{enumerate}
%\item
%The first uses standard extensions but special files names for the generated files. \texttt{Latexmk} can keep track of changes in and ``knows'' how to process these files. The \texttt{multibib} and \texttt{multind} packages are examples that use this method.
%\item
%The second uses the source file name for the file but uses custom extensions to create the files. \texttt{Latexmk} needs ``help'' to know how to process these files in the form of dependencies and rules. Dependencies tell \texttt{latexmk} what the input and output extensions are and which rule to use to go from input to output. The \texttt{index}, \texttt{glossary} and \texttt{glossaries} packages are examples that use this second method.
%\end{enumerate}
%
%In addition, while the \texttt{glossaries} package supersedes the \texttt{glossary} package the order of the file extensions created by acronym and custom lists, processed by \texttt{makeindex} and then read in by subsequent runs of \texttt{(xe/pdf)latex} are reversed in the two packages. This latest version of \texttt{latexmk} configured for \TS\ works correctly for both packages. If you need to create your own custom lists see the examples in the \texttt{latexmkrcedit} file for creating dependancies and rules for \texttt{latexmk}.


\subsection{Extensions du genre \texttt{glossary} et \texttt{glossaries}}

Les extensions qui produisent des index multiples et personnalisés, des glossaires, etc., utilisent l'un des deux systèmes de nommage pour les nombreux fichiers qu'elles créent :
\begin{enumerate}
\item 
Le premier utilise des suffixes standard mais des noms de fichiers spéciaux pour les fichiers produits. \texttt{Latexmk} peut conserver la trace de leurs modifications et « sait » comment les traiter. Les extensions \texttt{multibib} et \texttt{multind}, p. ex., utilisent ce système.
\item 
Le second emploie le nom du fichier source, mais utilise des suffixes personnalisés pour créer les fichiers. \texttt{Latexmk} a besoin « d'aide » pour savoir comment traiter ces fichiers selon les dépendances et les règles. Les dépendances disent à \texttt{latexmk} quelles sont les suffixes d'entrée et de sortie et quelle règle utiliser pour passer de l'entrée à la sortie. Les extensions \texttt{index}, \texttt{glossary} et \texttt{glossaries}, p. ex., utilisent ce second système.
\end{enumerate}

En outre, quand l'extension \texttt{glossaries} remplace l'extension \texttt{glossary}, l'ordre des suffixes de fichier créés par acronyme et listes personnalisées, produits par \texttt{makeindex}, puis lus pendant des exécutions ultérieures de (\texttt{xe/pdf})\texttt{latex} est inversé dans ces deux extensions. Cette dernière version de \texttt{latexmk} configurée pour \TS\ fonctionne correctement pour ces deux extensions. Si vous avez besoin de créer vos propres listes personnalisées voyez les exemples dans le fichier \texttt{latexmkrcedit} pour créer les dépendances et les règles pour \texttt{latexmk}.

%\section{What these engines won't do, etc.}
%
%There are many features of \texttt{latexmk} that aren't used in these simple \texttt{engine} files. See the documentation for \texttt{latexmk} in the supplied full distribution.
%
%The placement of the \texttt{latexmk} program in \path{~/Library/TeXShop/bin/tslatexmk/} is non-standard; that directory is not on the standard path. It is possible to put the program in \path{/usr/local/bin/} or use the version of \texttt{latexmk} that is part of \MacTeX-2008 and later and it will then be usable from the command line. If you use the program in one of those locations you should modify the \texttt{engine} files to reflect the change in location.
%
%The contents of the \texttt{rc} files corresponds to the the settings for commands for \TS\ on my system. They are simply text files. Please read the \texttt{latexmk} documentation before changing the contents.
%
%Finally, changes in \texttt{eps} files \emph{included in figures} created by the \texttt{pdftricks} or \texttt{pst-pdf} packages are \emph{not} detected by this packaging \texttt{latexmk} at this time. I hope to correct that problem at a later date.

\section{Ce que ces moteurs ne font pas, etc.}

De nombreuses caractéristiques de \texttt{latexmk} ne sont pas utilisées dans ces simples fichiers \texttt{engine}. Voir la documentation de \texttt{latexmk} fournie dans la distribution complète.

Le placement du programme \texttt{latexmk} dans \path{~/Library/TeXShop/bin/tslatexmk/} n'est pas standard ; ce répertoire n'est pas le chemin d'accès standard. Il est possible de mettre ce programme dans \path{/usr/local/bin/} ou d'utiliser la version de \texttt{latexmk} qui fait partie de \MacTeX\ 2008 (ou version ultérieure), et il sera alors utilisable à partir de la ligne de commande. Si vous utilisez ce programme dans un de ces endroits, vous devez modifier les fichiers \texttt{engine} afin d'indiquer le changement d'emplacement.

Le contenu des fichiers \texttt{rc} correspond aux paramètres des commandes pour \TS\ sur mon système. Ce sont de simples fichiers texte. S'il vous plaît lisez la documentation \texttt{latexmk} avant de changer le contenu.

Enfin, les changements dans les fichiers \texttt{eps} \emph{inclus dans les figures} créées par les extensions \texttt{pdftricks} ou \texttt{pst-pdf} ne sont pas détectés par cette conception de \texttt{latexmk} pour le moment. J'espère pouvoir corriger ce problème ultérieurement.

%\section{Update for \TS\ 2.18 (and later) with \MacTeX\ 2008 (ditto).}
%
%The \texttt{rc} files for this version of \texttt{latexmk} for use with \TS\ have been updated to allow use of \texttt{synctex}, a \texttt{tex\(\leftrightarrow\)pdf} synchronization technology, with \texttt{\MacTeX-2008} and \TS\ 2.18. If you are using \texttt{\MacTeX-2007} or earlier \TeX\ distributions and the inconsequential error message about an unknown option bothers you, remove the \texttt{--synctex=1} options provided in the supplied \texttt{rc} files.

\section{Mise à jour depuis \TS\ 2.18 et \MacTeX\ 2008}

Les fichiers \texttt{rc} de cette version de \texttt{latexmk} pour une utilisation avec \TS\ ont été mis à jour pour permettre l'utilisation de \texttt{synctex}, une technologie de synchronisation \texttt{tex}\Toto\texttt{pdf}, avec \texttt{\MacTeX-2008} et \TS\ 2.18. Si vous utilisez \texttt{\MacTeX-2007} ou des distributions \TeX\ plus récentes et que le message d'erreur, sans conséquence, concernant une option inconnue vous dérange, retirez les options \texttt{--synctex=1} présentes dans les fichiers \texttt{rc} fournis.

%\section{Update for \TS\ 2.30 (and later).}
%
%The \texttt{--file-line-error} flag has been set for all compiles in the basic \texttt{rc} files. \TS\ 2.30 and later uses the information provided by this flag to localise the location of compile errors when you use the \texttt{Go to Error} command.

\section{Mise à jour depuis \TS\ 2.30}

Le drapeau \texttt{--file-line-error} a été placé pour toutes les compilations dans les fichiers \texttt{rc} de base. \TS\ 2.30 et les versions suivantes utilisent les informations fournies par cet indicateur pour localiser l'emplacement des erreurs de compilation lorsque vous utilisez la commande \texttt{Go to Error}.

%\section{Update for \TS\ 2.32 (and later).}
%
%Starting with \TS\ 2.32 when \TS\ is updated any updates to the files in the \path{~/Library/TeXShop/bin/tslatexmk/} folder will automatically be installed. Any changes directly made to those files will be lost. Most of the extra dependencies and rules that were common to all the \texttt{rc} files have been moved to the new \path{~/Library/TeXShop/bin/latexmkrcedit} file and all additional personal dependencies and rules should be moved to that file. The \texttt{latexmkrcedit} file will \emph{not} be updated automatically.


\section{Mise à jour depuis \TS\ 2.32}

À partir de \TS\ 2.32 quand \TS\ est mis à jour toutes les mises à jour des fichiers du dossier \path{~/Library/TeXShop/bin/tslatexmk/} sont automatiquement effectuées. Toutes les modifications faites directement sur ces fichiers seront perdues. La plupart des dépendances et des règles supplémentaires qui étaient communes à tous les fichiers \texttt{rc} ont été déplacées vers le nouveau fichier du répertoire \path{~/Library/TeXShop/bin/latexmkrcedit} et toutes les dépendances supplémentaires personnelles et les règles devraient être transférées dans ce fichier. Le fichier \texttt{latexmkrcedit} ne sera \emph{pas} mis à jour automatiquement.

%\section*{Installation}
%
%Déplacez tous les fichiers du dossier\\[5pt]
%%Move all the files from the \\[5pt]
%\path{~/Library/TeXShop/Engines/Inactive/latexmk/}\\[5pt] 
%%folder
%(\path{~/Library/} est le dossier \texttt{Library} dans votre dossier \texttt{HOME}) deux dossiers en amont de \\[5pt]
%\path{~/Library/TeXShop/Engines/}\\[5pt] 
%et ensuite redémarrez \TS.
%
%\section*{Utilisation de \texttt{latexmk}}
%%\section*{Using \texttt{latexmk}}
%
%Pour composer votre document source avec \texttt{pdflatex} avec l'aide de \texttt{latexmk}, ajoutez la ligne suivante en tête du fichier source:
%\begin{verbatim}
%%! TEX TS-program = pdflatexmk
%\end{verbatim}
%remplacez  \texttt{pdflatexmk} par \texttt{latexmk} pour composer le fichier avec \texttt{latex} ou par \texttt{xelatexmk} pour composer le fichier avec \texttt{xelatex}.
%
%\vspace{5pt plus 2pt minus 1pt}\noindent
%Essayez-le… J'espère qu'il vous plaira.


%To typeset your source document with \texttt{pdflatex} with the assistance of 
%\texttt{latexmk}, add the following line as the \emph{first line} of the source file:
%\begin{verbatim}
%
%\end{verbatim}
%substituting \texttt{latexmk} for \texttt{pdflatexmk} to typeset the file with \texttt{latex} or \texttt{xelatexmk} to typeset the file with \texttt{xelatex}.
%
\vspace{5pt plus 2pt minus 1pt}\noindent
Try it\dots\ I hope you like it.
%Essayez le\dots\ J'espère que aimerez.

%\end{document}

\vspace{5pt plus 2pt minus 1pt}
\noindent Good Luck,\\
Herb Schulz\\
(\href{mailto:herbs2@mac.com}{herbs2@mac.com})

\end{document}
