Problème avec emacs23 et asy-mode

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
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.
fbaldit

Problème avec emacs23 et asy-mode

Message non lu par fbaldit »

Bonjour,
je viens de passer d'emacs sous debian lenny (j'ai oublié quelle version) à emacs23 sous squeeze en version 23. J'ai réinstallé asymptote depuis les sources (v. 2.08). J'ai vérifié qu'asymptote fonctionne en ligne de commande.

Je cherche, comme je le faisais avant, à utiliser le mode asy-mode.el d'emacs pour pouvoir éditer et compiler des documents comportants du tex et du code asymptote (avec \usepackage[inline]{asymptote}). J'ai suivi la procédure indiquée dans asy-model.el. Dans mon .emacs

* j'ai ajouté le chemin d'accès au dossier contenant le fichier asy-mode.el
* j'ai activé le "two-mode-mode" et indiqué où se trouve le fichier
* j'ai rajouté les lignes à propos du "asy-insinuate-latex"

Quand j'ouvre un fichier .tex que j'arrivais à compiler sous l'ancienne install:

* je peux bien activer le mode lasy-mode: M+x lasy-mode Ret
* quand le curseur est sur du code asymptote le mode asymptote est bien activé
* sur du code asymptote C-c C-c fonctionne (génère et visualise la figure asymptote)

Par contre, la commande M+return, qui est censée faire la chaîne pdflatex->asy->pdflatex->pdfviewer ne marche plus. Cela produit un pdf mais SANS les figures asymptotes. M+return provoque la création de deux fichiers .asy. Dans le buffer d'emacs de la compilation je lis par exemple

Code : Tout sélectionner

Package asymptote Warning: file `DS6-S1-100511-1.tex' not found on input line 313.
Je parviens à mes fins en ligne de commande avec:

Code : Tout sélectionner

pdflatex toto.tex
asy toto-1.asy (1ère figure)
asy tot-2.asy  (2ème fig)
pdflatex toto.tex
Mais je ne vois vraiment pas pourquoi ça ne fonctionne plus comme avant. Si certains d'entre vous ont une idée, je suis vraiment preneur. Merci d'avance.
Frédéric.

Rq: au lancement d'emacs j'ai un "warning" à propos des lignes de mon .emacs ("asy-insinuate-latex") , mais je ne pense pas que ce soit très grave.
Clembou

Re: Problème avec emacs23 et asy-mode

Message non lu par Clembou »

Le fichier asy-mode n'a pas été mis jour depuis bel lurette donc il en est à compiler comme aux anciennes versions, c'est-à-dire pdflatex créé un fichier monfichier.asy et asy-mode compile monfichier.asy... Il y a sûrement un moyen pour corriger cela mais je n'ai pas encore trouvé.

Pour compiler les fichiers asy, j'utilise la commande "asy monfichier-*"
fbaldit

Re:[Résolu] Problème avec emacs23 et asy-mode

Message non lu par fbaldit »

Bonjour,
voici la solution que j'ai trouvée, qui m'a été indiquée par Philippe Ivaldi:

1) installer latexmk (chez moi, sous squeeze, paquet latexmk)

2) dans son .emacs rajouter:
(setq lasy-pdflatex-command "latexmk -pdf")
(setq lasy-latex-command "latexmk -ps")

3) dans son répertoire de démarrage, créer un .latexmkrc contenant
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");

Alors, lorsque le mode lasy-mode est activé dans un .tex contenant du code asymptote en inline, la commande M+return fonctionne bien chez moi comme elle doit.

Par ailleurs, un coup d'oeil sur le man de latexmk révèle que cette commande est très intéressante sous latex, et je pense que ça vaut vraiment le coup de l'approfondir.

Cdlt,
Frédéric.