Il existe un autre sujet relatif à TeXworks (et latexmk) sur ce forum, où il est question de surcroit de leur utilisation avec Asymptote : il faut d'abord lire celui-ci.
////////////////////////////////////
////////////////////////
////////////
- Il faut, avant tout, savoir, sans entrer dans les détails, qu'il peut y avoir des subtilités de syntaxes, légèrement différentes (essentiellement des problèmes de guillemets), pour les options de latexmk suivant que :
- le système est windows ou unix/linux...
- la saisie des options s'effectue
- en console ;
- dans texworks via les menus ;
- directement dans le fichier de configuration tools.ini de texworks.
- Les syntaxes (analogues pour latexmk-via-pdflatex et latexmk-via-latex) qui fonctionnent bien dans texworks sont :
- Si on saisit les profils via l'interface :
- Pour obtenir un pdf via pdflatex : Attention : Une mise en garde pour l'exemple ci-dessus et les exemples qui suivent !
Il est possible de modifier l'ordre de certains arguments mais il y a quelque chose à comprendre sur -e, avant de se l'autoriser.
Des explications suivent. Lire notamment le NOTA BENE de fin de message. - Pour obtenir un pdf via latex/ps/pdf :
- Pour obtenir un pdf via pdflatex :
- Si on saisit les profils via l'interface :
- Si on saisit les profils directement dans tools.ini :
- Pour obtenir un pdf via pdflatex :
Code : Tout sélectionner
[001]
name=LaTeXmk
program=latexmk.exe
arguments=-e, "$pdflatex=q/pdflatex -synctex=1 %O -shell-escape %S/", -pdf, $fullname - Pour obtenir un pdf via latex/ps/pdf :
Code : Tout sélectionner
[002]
name=LaTeXmkpspdf
program=latexmk.exe
arguments=-e, "$latex=q/latex -synctex=1 %O -shell-escape %S/", -pdfps, $fullname
Attention : veiller à lire le Nota Bene qui suit... pour avoir conscience :- de la syntaxe de l'argument -e pour ne pas se méprendre sur ce que l'on peut inverser ou supprimer dans les exemples qui précédent ;
- des différences de syntaxes entre MS-Windows et UNIX/LINUX pour les guillemets... !!
- Pour obtenir un pdf via pdflatex :
////////////////////////////////////
////////////////////////
////////////
NOTA BENE :
- la virgule après -e est une astuce pour que cela se passe bien dans texworks... mais il ne faut pas que cela donne à croire que -e est une option à part entière : c'est le début d'une option dont la ligne suivante est la chaine de caractères qui s'y rattache.-e <code>
Execute the specified initialization code before processing.
The code is Perl code of the same form as is used in latexmk's initialization files -- for more details, see the information on the -r option, and the section about "Configuration/initialization (RC) files".
The code is typically a sequence of assignment statements separated by semicolons.
The code is executed when the -e option is encountered during latexmk's parsing of its command line.
See the -r option for a way of executing initialization code from a file.
An error results in latexmk stopping.
Multiple instances of the -r and -e options can be used, and they are executed in the order they appear on the command line.
Some care is needed to deal with proper quoting of special characters in the code on the command line.
For example, suppose you want to set the latex command to use its -shell-escape option, then under UNIX/LINUX you could use the line
Code : Tout sélectionner
latexmk -e '$latex=q/latex %O -shell-escape %S/' file.tex
Note that the single quotes block normal UNIX/LINUX command shells from treating the characters inside the quotes as special.
(In this example, the q/.../ construct is a Perl idiom equivalent to using single quotes. This avoids the complications of getting a quote character inside an already quoted string in a way that is independent of both the shell and the
operating-system.)
The above command line will NOT work under MS-Windows with cmd.exe or command.com or 4nt.exe.
For MS-Windows with these command shells you could use
Code : Tout sélectionner
latexmk -e "$latex=q/latex %O -shell-escape %S/" file.tex
or
Code : Tout sélectionner
latexmk -e "$latex='latex %O -shell-escape %S'" file.tex
The last two examples will NOT work with UNIX/LINUX command shells.
A noter, dans l'explication ci-dessus, la différence de syntaxe entre MS-Windows et UNIX/LINUX pour les guillemets !! - la synchronisation via synctex (qui permet de faire des allers retours entre tex et pdf) fonctionne aussi bien avec les deux modes latexmk-via-pdflatex et latexmk-via-latexpspdf (alors qu'il a pu être écrit sur la toile que cela ne fonctionnait qu'en passant par pdflatex.
Le sens le plus utile des deux étant celui, pour moi, qui consiste, en visualisant un pdf, à pouvoir faire un clic droit pour "Aller au source" (pour notamment modifier quelque chose ou récupérer un morceau de code) : - penser à supprimer l'extension .exe pour la ligne Programme... pour ceux qui ne sont pas sous windows !