- en rappelant que l'éditeur Texworks s'installe, lors de l'installation de MikTeX 2.9, dans sa version 0.4 ;
- en indiquant qu'il y a un deuxième sujet sur ce forum, traitant spécifiquement du couple texworks+latexmk, qu'il vaut peut-être mieux lire avant celui-ci.
Dans les modes de compilation proposés par défaut, on trouve ceci, via le menu Edition/Préférences/Composition :
![Image](http://marris.free.fr/img/2011-12-30_111908.jpg)
ce qui génère (à la première utilisation ou modification) un fichier tools.ini (qui atterrit dans C:\Users\VotrePseudoSousWindows\AppData\Local\MiKTeX\2.9\TeXworks\0.4 sous Windows7) avec le contenu suivant :
Code : Tout sélectionner
[001]
name=LaTeXmk
program=latexmk.exe
arguments=-e, "$pdflatex=q/pdflatex -synctex=1 %O %S/", -pdf, $fullname
showPdf=true
[002]
name=pdfTeX
program=miktex-pdftex.exe
arguments="-synctex=1", $fullname
showPdf=true
[003]
name=pdfLaTeX
program=miktex-pdftex.exe
arguments="-synctex=1", "-undump=pdflatex", $fullname
showPdf=true
[004]
name=pdfLaTeX+MakeIndex+BibTeX
program=texify.exe
arguments=--pdf, "--tex-option=-synctex=1", $fullname
showPdf=true
[005]
name=XeTeX
program=miktex-xetex.exe
arguments="-synctex=1", $fullname
showPdf=true
[006]
name=XeLaTeX
program=miktex-xetex.exe
arguments="-synctex=1", "-undump=xelatex", $fullname
showPdf=true
[007]
name=XeLaTeX+MakeIndex+BibTeX
program=texify.exe
arguments=--pdf, "--engine=xetex", "--tex-option=-synctex=1", $fullname
showPdf=true
[008]
name=ConTeXt (LuaTeX)
program=context.exe
arguments=--synctex, $fullname
showPdf=true
[009]
name=ConTeXt (pdfTeX)
program=texexec.exe
arguments=--synctex, $fullname
showPdf=true
[010]
name=ConTeXt (XeTeX)
program=texexec.exe
arguments=--synctex, --xtx, $fullname
showPdf=true
[011]
name=BibTeX
program=miktex-bibtex.exe
arguments=$basename
showPdf=false
[012]
name=MakeIndex
program=miktex-makeindex.exe
arguments=$basename
Il va être possible de modifier les modes de compilation par défaut... ou d'en ajouter ................. de deux façons différentes : par le menu Edition/Préférences/Composition... ou directement en éditant le fichier tools.ini.
Le mode de compilation préconisé pour compiler un fichier tex avec des figures en code Asymptote est : latexmk.
Précisons que latexmk est un script perl :
- qui va nécessiter, pour un utilisateur de Windows, d'installer un compilateur perl qu'il pourra par exemple trouver dans le dossier le plus récent à cette adresse http://downloads.activestate.com/ActivePerl/releases/ où il trouvera un fichier ActivePerl-*.**.*.****-MSWin32-x64-******.msi ou ActivePerl-*.**.*.****-MSWin32-x86-******.msi, à choisir suivant la version de Windows.
- qui va s'occuper, seul, de gérer les éventuelles compilations nécessaires suivant le contenu du fichier TeX.
Notamment, si un fichier comporte des figures en langage Asymptote, latexmk se chargera de compiler uniquement le code des nouvelles figures ou des figures modifiées depuis la dernière compilation.
Il est conseillé de d'abord tester le fonctionnement de latexmk sans la moindre figure Asymptote :
Premier test - On obtient ceci :
avec le code suivant :
Code : Tout sélectionner
% !TEX TS-program = latexmk
% !TEX encoding = UTF-8
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[upright]{fourier}
\usepackage[a4paper,%
hmargin={1cm,1cm},%
vmargin={1cm,1cm},%
nohead,nofoot]{geometry}
\setlength{\parindent}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
Test de TexWorks, avec compilation via LaTeXmk
\[ \int_{0}^{1}1+\frac{x}{x^2+1}
= \left[x+\frac{\ln\left(x^2+1\right)}{2}\right]_{0}^{1}
= 1 + \frac{\ln(2)}{2}
\]
\end{document}
Si la compilation de l'exemple précédent se passe mal, peut-être faut-il revoir spécifiquement la configuration du couple texworks+latexmk, par le biais de l'autre sujet de ce forum qui l'évoque et dont le lien vient d'être donné.
/////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////
///////////////////////
Pour la compilation, via latexmk, d'un fichier TeX comportant au moins une figure en langage Asymptote, il va être préalablement nécessaire :
- d'indiquer à latexmk ce qu'il doit faire des environnements asy.
Un réglage préalable consiste donc à copier le fichier latexmkrc (fourni dans le dossier d'installation d'Asymptote) dans votre dossier personnel C:\Users\VotrePseudoSousWindows\ (à adapter si votre version de Windows n'est pas Seven).
Ce fichier latexmkrc contient ceci par défaut :Code : Tout sélectionner
sub asy {return system("asy '$_[0]'");}
add_cus_dep("asy","eps",0,"asy");
add_cus_dep("asy","pdf",0,"asy");
add_cus_dep("asy","tex",0,"asy");
... mais il pourra être modifié pour passer des options particulières à latexmk.
Notamment, il sera expliqué ultérieurement comme le modifier pour déplacer les fichiers asy et pdf des images Asymptote dans un sous-dossier /asypdf/ du dossier où se trouve le fichier TeX que l'on compile. - de... rien faire de plus ! J'allais suggérer d'ajouter -shell-escape dans la ligne de commande du profil de latexmk dans Texworks... mais c'est apparemment inutile.
Deuxième test - On obtient ceci :
avec le code suivant :
Code : Tout sélectionner
% !TEX TS-program = latexmk
% !TEX encoding = UTF-8
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[upright]{fourier}
\usepackage[a4paper,%
hmargin={1cm,1cm},%
vmargin={1cm,1cm},%
nohead,nofoot]{geometry}
\setlength{\parindent}{0pt}
\usepackage{asymptote}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
Test de TexWorks, avec compilation via LaTeXmk,
d'un fichier \TeX{} comportant une figure...
\begin{asy}
size(3cm);
draw(unitcircle,2bp+red);
\end{asy}
... et même une deuxième figure Asymptote :
\hfil
\begin{asy}
size(3cm);
draw(unitsquare,blue+dashed);
\end{asy}
\end{document}
Si la liste des fichiers produits est longue :
TestTexworksLatexmkAsy.aux
TestTexworksLatexmkAsy.fdb_latexmk
TestTexworksLatexmkAsy.log
TestTexworksLatexmkAsy.pdf
TestTexworksLatexmkAsy.pre
TestTexworksLatexmkAsy.tex
TestTexworksLatexmkAsy.synctex.gz
TestTexworksLatexmkAsy-1.asy
TestTexworksLatexmkAsy-1.pdf
TestTexworksLatexmkAsy-2.asy
TestTexworksLatexmkAsy-2.pdf
texput.aux
texput.log
... il va être possible de :
- faire en sorte que les fichiers liés aux deux imagesTestTexworksLatexmkAsy-1.asy
TestTexworksLatexmkAsy-1.pdf
TestTexworksLatexmkAsy-2.asy
TestTexworksLatexmkAsy-2.pdf
ainsi que tous les fichiers asy et pdf liés aux images inclus dans les tex d'un dossier... atterrissent dans un même sous dossier /asypdf/. - de modifier le fichier latexmkrc pour mettre en place une procédure de suppression de tous les fichiers temporaires voulus, avec une seule commande.
Voir la suite pour des détails sur les deux remarques précédentes.
A noter la présence d'un fichier dont l'extension est fdb_latexmk, qu'il peut-être utile de supprimer... quand on veut que latexmk recompile tout sans tenir compte de compilations précédentes.
------------
Voilà un premier jet de ce tutoriel. Il sera édité ultérieurement pour être complété.
Les éventuelles questions ou suggestions sont à faire dans un sujet disjoint de celui-ci, ou éventuellement par MP... pour que j'ajoute ce qu'il manque au tutoriel.