Script latexmk

Tout ce qui concerne le langage Asymptote. Ce langage est supporté sur le forum via les balises asy.

Modérateur : gdm_asy

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Script latexmk

Message par maurice »

Bonjour,

Je viens de passer de la version 2.00 à 2.04.
Dans ce post, GM parle d'un script perl très pratique qui s'appelle latexmk à partir de la version 2.02 :
GMaths a écrit :La possibilité d'utiliser le script perl latexmk est très très pratique : essayer, c'est l'adopter.
Car on a l'impression de ne faire qu'une seule compilation... et surtout, seules les images modifiées sont compilées.
On a l'impression maintenant de travailler avec pstricks ou tikz : il n'y aura plus l'argument d'une compilation plus lourde.
Est ce que quelqu'un peut m'en dire plus sur ce script ?

Merci
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

rebouxo
Modérateur global
Modérateur global
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: Script latexmk

Message par rebouxo »

C'est super. Tu te fais un make ou un fichier batch et latexmk gére tout tout seul. Tu as juste à lui dire ce que tu veux comme document final (ps, pdf, dvi). J'ai juste un problème, quand j'utilise latexmk je n'ai plus les glyphes des ligatures.

Et comme j'attends que mandriva passe à texlive 2008, bref je ne suis pas allé voir plus loin, en me disant que lorsque je passerais à une version plus récente je n'aurais peut-être pas ce bug.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

Bonsoir,

J'ai essayé il y a quelques temps, mais soit ma version de latexmk n'est pas assez récente, soit c'est ma version de perl (versions des dépots d'ubuntu 10.04), pour que ça fonctionne avec asymptote. Je crois que GM avait réussi à le faire fonctionner en installant la dernière version de perl.
Comme je n'en ai pas particulièrement besoin, je ne suis pas allé voir plus loin non plus...

Christophe

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Script latexmk

Message par maurice »

J'ai essayé d'installer latexmk.
La seule chose que j'ai faite c'est de mettre le fichier latexmk.pl dans /home/maurice/bin puis renommé latexmk.

Code : Tout sélectionner

latexmk test.tex
Le script compile mon fichier .tex, crée les fichiers test-1.asy, test-2.asy, ... mais pas les fichiers test-1.pdf, test-2.pdf, ... (test-1.eps ...)

A la fin de la compilation j'obtiens :

Code : Tout sélectionner

Package asymptote Warning: file `test-2.eps' not found on input line 108.
Package asymptote Warning: file `test-3.eps' not found on input line 124.
Package asymptote Warning: file `test-4.eps' not found on input line 178.

[1] (./test.aux) )
Output written on test.dvi (1 page, 5576 bytes).
Transcript written on test.log.
Latexmk: Missing input file: 'test-1.eps' from line
  'Package asymptote Warning: file `test-1.eps' not found on input line 94.'
Latexmk: Missing input file: 'test-2.eps' from line
  'Package asymptote Warning: file `test-2.eps' not found on input line 108.'
Latexmk: Missing input file: 'test-3.eps' from line
  'Package asymptote Warning: file `test-3.eps' not found on input line 124.'
Latexmk: Missing input file: 'test-4.eps' from line
  'Package asymptote Warning: file `test-4.eps' not found on input line 178.'
Latexmk: Log file says output to 'test.dvi'
Latexmk: All targets (test.dvi) are up-to-date
Si je lance

Code : Tout sélectionner

latexmk -pdf test.tex
j'ai plein de
Non-PDF special ignored!
Non-PDF special ignored!
Non-PDF special ignored!
Non-PDF special ignored!{/usr/share/texmf/fonts/map/pdftex/updmap/pdftex.map}
Non-PDF special ignored!
Non-PDF special ignored!
Sur le site officiel d'asymptote, on a :
An even better method for processing a LaTeX file with embedded Asymptote code is to use the latexmk utility from

http://www.ctan.org/tex-archive/support/latexmk/

after putting the rules

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");

in a file latexmkrc in the same directory. The command

latexmk -pdf latexusage

will then call Asymptote automatically, recompiling only the figures that have changed.
J'ai donc créé un fichier nommé latexmkrc situé lui aussi dans /home/maurice/bin et j'ai les mêmes erreurs.

Le script est mal installé ?
Comment l'utilisé

Merci d'avance
Maurice

EDIT : Je viens de lire ton message chellier et si j'ai bien compris : version de perl pas assez récente (v5.10.1 dépots de fédora) ?
Dernière modification par maurice le jeudi 02 septembre 2010, 21:21, modifié 1 fois.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

Bonsoir

Bon comme je suis modo va falloir que je m'y mette.
Latexmk est un script perl, un make dédié à latex, il va t'enchaîner toutes les compilations nécessaires (latex, bibtex).
Dans la distribution asymptote (répertoire doc) il y a un latexmkrc qui ajoute les règles les figures dans les environnements {asy}.
Je viens de tester et oui en une seule commande, latexmk fait :
1) compilation latex 2) compilation asy 3) compilation latex
Je suppose qu'avec une biblio il fait aussi le bibtex.
J'ai mis le fichier là où se trouve le fichier tex pas /usr/bin !

Il faut avoir perl, ce qui peut uniquement poser des problèmes aux windowsiens.

@monvoisinhavrais: un ecm ?

O.G.

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

J'ai le même type d'erreur.
Si tu as la dernière version de latexmk (moi j'ai celle des dépots), c'est peut-être que ta version de perl n'est pas suffisamment récente.

Christophe

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

@ OG : tu as quelle version de perl ?

Christophe

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

Re

J'ai consulté la doc de latexmk. Le fichier latexmkrc d'Asymptote peut être renommé $HOME/.latexmkrc.
Ça marche (on peut ajouter ses propres règles).

Je précise : Ubuntu10.4, texlive2009 installation à la vanille et perl 5.10.1

O.G.

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

chellier a écrit :J'ai le même type d'erreur.
Si tu as la dernière version de latexmk (moi j'ai celle des dépots), c'est peut-être que ta version de perl n'est pas suffisamment récente.
Où est le fichier latexmkrc ?

O.G.

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

OG a écrit :Où est le fichier latexmkrc ?
Avec le fichier tex.

J'ai la même version de perl :? mais texlive2009 des dépots.

Christophe

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

Re

Il faudrait tester un exemple latex simple (un seul paquet : asymptote), en latex (et pas pdflatex) et avec une figure asymptote simple.
Copier le fichier latexmkrc là où se trouve test.tex et tenter un latexmk -r latexmkrc test.tex (pas de dvi qui traîne)

latexmk est en 4.15c
Vu le log c'est plutôt une incompréhension de latexmk quant à la règle asy.

O.G

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

le fichier tex :

Code : Tout sélectionner

\documentclass[a4paper,10 pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[francais]{babel}
\usepackage{asymptote}

\begin{document}

{\Large Nouvelle compilation asymptote}
\vspace{1cm}

\begin{asy}
size(6cm);
draw((0,0)--(2,2),bp+red);
\end{asy}

\end{document}
la console :

Code : Tout sélectionner

latexmk -r latexmkrc Newcompilpdf.tex
Subroutine asy redefined at latexmkrc line 1.
Subroutine asy redefined at latexmkrc line 1.
This is latexmk, John Collins, 2 June 2004, version: 3.07a.
**** Report bugs etc to John Collins <collins at phys.psu.edu>. ****
------------
Run number 1 of latex [Newcompilpdf.tex]
------------
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
 restricted \write18 enabled.
entering extended mode
(./Newcompilpdf.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, farsi, arabic, croatian, bulgarian, ukrainian, russian, czech, slov
ak, danish, dutch, finnish, french, basque, ngerman, german, german-x-2009-06-1
9, ngerman-x-2009-06-19, ibycus, monogreek, greek, ancientgreek, hungarian, san
skrit, italian, latin, latvian, lithuanian, mongolian2a, mongolian, bokmal, nyn
orsk, romanian, irish, coptic, serbian, turkish, welsh, esperanto, uppersorbian
, estonian, indonesian, interlingua, icelandic, kurmanji, slovenian, polish, po
rtuguese, spanish, galician, catalan, swedish, ukenglish, pinyin, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo))
(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
(/usr/share/texmf-texlive/tex/latex/base/utf8.def
(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu)
(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu)
(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu)))
(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
(/usr/share/texmf-texlive/tex/latex/base/t1enc.def))
(/usr/share/texmf/tex/latex/lm/lmodern.sty)
(/var/lib/texmf/tex/generic/babel/babel.sty
(/usr/share/texmf-texlive/tex/generic/babel/frenchb.ldf
(/usr/share/texmf-texlive/tex/generic/babel/babel.def)
*************************************
* Local config file frenchb.cfg used
*
(/usr/share/texmf-texlive/tex/generic/babel/frenchb.cfg)))
(/usr/share/texmf-texlive/tex/latex/carlisle/scalefnt.sty)
(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty)
(/usr/local/share/texmf/tex/latex/asymptote/asymptote.sty
(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty)
(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
(/etc/texmf/tex/latex/config/color.cfg)
(/usr/share/texmf-texlive/tex/latex/graphics/dvips.def)
(/usr/share/texmf-texlive/tex/latex/graphics/dvipsnam.def))
(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty)
(/etc/texmf/tex/latex/config/graphics.cfg))))
No file Newcompilpdf.aux.
(/usr/share/texmf/tex/latex/lm/t1lmr.fd)

Package asymptote Warning: file `Newcompilpdf-1.eps' not found on input line 18
.

[1] (./Newcompilpdf.aux) )
Output written on Newcompilpdf.dvi (1 page, 388 bytes).
Transcript written on Newcompilpdf.log.
.aux file "./Newcompilpdf.aux" changed.  I must run latex again
The set of input files changed.  I must run latex again
------------
Run number 2 of latex [Newcompilpdf.tex]
------------
[b]etc. (3fois en tout)[/b]
:(

Christophe

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

C'est ton latexmk qui n'est pas à jour. En fait tu dois avoir celui de la distribution ubuntu et pas celui de texlive2009 (je viens de vérifier 3.07 c'est ça).
Par contre je ne sais pas si dans le deb de texlive2009 il y a la dernière de latexmk. As-tu texlive2009 full ?

O.G.

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

Re

Ce n'est pas dans un paquet texlive. Par contre une installation à la main est possible, suivre http://ctan.tug.org/tex-archive/support/latexmk/
mettre l'exécutable plutôt dans /usr/local/bin que /usr/local

O.G.

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

J'ai bien la version 3.07 et texlive-full.
J'avais aussi regardé sur le CTAN, mais je suis jamais chaud pour une installation hors dépots... (mais à la fin je le fais quand même !)

Christophe

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

Oui c'est la bonne attitude. Mais si tu prends la précaution du /usr/local/bin et que tu notes dans ton carnet ce que tu as fait ça ira...
Sinon attendre la maverick 10.10 : latexmk en version 4.13 (au stade alpha3)

O.G.

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

Bingo :D
Après installation de la version du CTAN (j'ai pas pu résister) ça marche. En effet, seules les figures modifiées sont recompilées.

Merci OG :D

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Script latexmk

Message par OG »

@Maurice : et toi ?
Visiblement tu as la bonne version de perl.
Quid de texlive ?
Comme tu copies dans /home/maurice/bin le latexmk.pl (bon réflexe d'ailleurs)
je suppose que c'est la version du CTAN (à jour donc).
Es-tu sûr que latexmk appelle ton /home/maurice/bin/latexmk ?
(latexmk -v te le dira)

O.G.

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Script latexmk

Message par maurice »

Apparemment j'ai raté quelques épisodes !
J'ai texlive 2007 des dépots (fédora)
C'est bien la version de CTAN que j'ai mis dans /home/maurice/bin
Ca marche en faisant

Code : Tout sélectionner

$ latexmk -r latexmkrc test.tex
suivi de

Code : Tout sélectionner

$ dvips -o test.ps test.dvi
OG a écrit :J'ai consulté la doc de latexmk. Le fichier latexmkrc d'Asymptote peut être renommé $HOME/.latexmkrc.
Ça marche (on peut ajouter ses propres règles).
Je vais essayer de le renommer. C'est vrai que si il faut copier latexmkrc à chaque fois dans le répertoire courant ce n'est pas très pratique.
Peut-on avoir une sortie directement en .ps ou .pdf ?

Pour moi, le contenu de ce fichier est assez obscur ...
Quelles règles on peut ajouter ? Comment ?

Merci
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: Script latexmk

Message par chellier »

Tu peux avoir directement un pdf par :

Code : Tout sélectionner

latexmk -pdf test.tex
Tu ne devrais pas avoir besoin d'une autre compilation.

Christophe