AUCTEX latex+dvips+ps2pdf

Le
Jules T. MARTIN
Bonsoir,

Je travaille avec emacs + auctex sur Mac OS X 10.6.7 avec MacTeX 2010
(= TeXLive 2010).

J'aimerais inclure dans le menu "Command" la compilation avec latex
suivi de dvips puis de ps2pdf pour créer un fichier pdf à partir d'un
fichier latex. Que dois-je écrire dans mon fichier ".emacs" pour
cela ?

Merci pour vos réponses.

Jules T.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Yves Baudais
Le #23472731
Bonjour,

e 16.06.2011 23:02, Jules T. MARTIN a écrit :
Bonsoir,

Je travaille avec emacs + auctex sur Mac OS X 10.6.7 avec MacTeX 2010
(= TeXLive 2010).

J'aimerais inclure dans le menu "Command" la compilation avec latex
suivi de dvips puis de ps2pdf pour créer un fichier pdf à partir d'un
fichier latex. Que dois-je écrire dans mon fichier ".emacs" pour
cela ?



Question : pourquoi ne pas compiler directement avec PDFLaTeX ou
"pdfoutput=1" ? Pour que ça fonctionne il ne faut pas mettre
l'extension "graphiques", avoir une version pdf des fichiers
correspondants, utiliser pdftricks et consort pour traiter du code
Postscript.
Maintenant pour ajouter une commande, c'est dans le fichier tex.el.
Il y a une "fonction" "TeX-command-list" et, comme son nom le dit, ça
définit la liste des commandes (appelée avec ^C^C sous emacs). Mes
compétences en Lips s'arrêtent là. Une mauvaise solution serait de
lancer la commande "Other" et d'exécuter un script contenant les
commandes. Mais c'est vraiment une mauvaise idée qui fonctionne :-)

Jean-Yves
Lucas Levrel
Le #23475031
Le 16 juin 2011, Jules T. MARTIN a écrit :
J'aimerais inclure dans le menu "Command" la compilation avec latex
suivi de dvips puis de ps2pdf pour créer un fichier pdf à partir d'un
fichier latex. Que dois-je écrire dans mon fichier ".emacs" pour
cela ?



Bonjour,

Je ne réponds pas exactement à la demande, mais ça peut aider. J'ai mis
ça :

(defun my-LaTeX-hook ()
(defun TeX-print (); adapté de TeX-view dans tex-buf.el
"Start dvips without confirmation.
dvips is started either on region or master file,
depending on the last command issued."
(interactive)
(let ((output-file (TeX-active-master (TeX-output-extension))))
(if (file-exists-p output-file)
(TeX-command "File" 'TeX-active-master 0)
(message "Output file %S does not exist." output-file))))
;
(define-key LaTeX-mode-map "C-cC-b" 'TeX-print)
;
(setq TeX-command-list
(append TeX-command-list
'(("PS to PDF" "ps2pdf %f" TeX-run-command t nil))))
;
(defun TeX-pstopdf (); adapté de TeX-view dans tex-buf.el
"Start ps2pdf without confirmation.
ps2pdf is started either on region or master file,
depending on the last command issued."
(interactive)
(let ((output-file (TeX-active-master "ps")))
(if (file-exists-p output-file)
(TeX-command "PS to PDF" 'TeX-active-master 0)
(message "Output file %S does not exist." output-file))))
;
(define-key LaTeX-mode-map "C-cC-n" 'TeX-pstopdf)
)
(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)


Et pour exécuter LaTeX, xdvi, dvips puis ps2pdf, je fais ^C^C, ^C^V, ^C^B
puis ^C^N. J'ai mis B et N parce que c'est à côté de C et V (j'ai
peut-être écrasé des raccourcis qui ne me servent pas). Ça ne fait pas
tout d'un coup, mais comme ça on garde plus de contrôle (en phase de
rédaction, pas besoin des deux derniers ; ou si on n'a pas besoin de
pdf...).

--
LL
Jules T. MARTIN
Le #23475491
On 17 juin, 22:08, Lucas Levrel
Le 16 juin 2011, Jules T. MARTIN a écrit :

> J'aimerais inclure dans le menu "Command" la compilation avec latex
> suivi de dvips puis de ps2pdf pour créer un fichier pdf à partir d' un
> fichier latex. Que dois-je écrire dans mon fichier ".emacs" pour
> cela ?





J'ai déjà des commandes séparées pour LaTeX, dvips et ps2pdf,
j'aimerais avoir une commande globale.

J'utilise cette suite de compilations car j'inclus parfois des codes
PostScript dans un fichier LaTeX.
Lucas Levrel
Le #23476821
Le 17 juin 2011, Jules T. MARTIN a écrit :

J'ai déjà des commandes séparées pour LaTeX, dvips et ps2pdf,
j'aimerais avoir une commande globale.



Est-ce qu'il ne suffit pas de mettre la suite de commandes dans
un defun ? (pas testé)

(defun TeX-fullmonty ();
(interactive)
(TeX-command-master)
(TeX-print)
(TeX-pstopdf))

--
LL
Jules T. MARTIN
Le #23481141
Finalement, après tâtonnements, j'ai réussi en écrivant :

("LaTeX + dvips + ps2pdf" "latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t)

Merci pour ceux qui m'ont répondu.

Jules T.
Stéphane Dutailly
Le #23484961
Bonjour à tous,
J'ai voulu faire un essai car cela m'intéresse aussi. Avec ce que j'ai
lu dans vos messages, j'ai mis dans mon .emacs ceci:

(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf" "latex %t && dvips %d -o %f &&
ps2pdf14 %f" TeX-run-command nil t))))

mais au lancement d'emacs j'obtiens:

Symbol's value as variable is void: TeX-command-list

Qu'ai je compris de travers?
Jules, concrètement, qu'avez-vous écrit dans votre .emacs?
Merci d'avance,
Stéphane

Le 19/06/2011 17:23, Jules T. MARTIN a écrit :
Finalement, après tâtonnements, j'ai réussi en écrivant :

("LaTeX + dvips + ps2pdf" "latex %t&& dvips %d -o %f&& ps2pdf14 %f"
TeX-run-command nil t)

Merci pour ceux qui m'ont répondu.

Jules T.

Jean-Yves Baudais
Le #23485821
Bonjour,

Le 20.06.2011 21:21, Stéphane Dutailly a écrit :
(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf" "latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t))))

mais au lancement d'emacs j'obtiens:

Symbol's value as variable is void: TeX-command-list



Si la variable est vide, c'est peut être qu'il faut charger le module
AUCTeX avant. Non ?

-- Jean-Yves
Lucas Levrel
Le #23486041
Le 20 juin 2011, Stéphane Dutailly a écrit :
(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf" "latex %t && dvips %d -o %f &&
ps2pdf14 %f" TeX-run-command nil t))))



Il faut mettre ça :

(defun my-LaTeX-hook ()
(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf"
"latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t))))
)
(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)


Ainsi la commande n'est lancée qu'au démarrage du LaTeX-mode.


--
LL
Stéphane Dutailly
Le #23488521
(defun my-LaTeX-hook ()
(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf"
"latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t))))
)
(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)


Ainsi la commande n'est lancée qu'au démarrage du LaTeX-mode.





Super, merci beaucoup, ça marche très bien.
Stéphane
vincent.belaiche
Le #23488881
Stéphane Dutailly
(defun my-LaTeX-hook ()
(setq TeX-command-list
(append TeX-command-list
'(("LaTeX + dvips + ps2pdf"
"latex %t && dvips %d -o %f && ps2pdf14 %f"
TeX-run-command nil t))))
)
(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)


Ainsi la commande n'est lancée qu'au démarrage du LaTeX-mode.





Super, merci beaucoup, ça marche très bien.
Stéphane



Salut,

il vaudrait mieux mettre ça dans le load hook que dans le mode hook,
sinon ça va rajouter la chose à chaque fois que tu ouvres un fichier en
mode LaTeX. Alternativement utiliser eval-after-load, ou bien utiliser
add-to-list au lieu de append.

Voici un exemple tiré de mon fichier d'init et utilisant eval-after-load:

(eval-after-load "latex"
'(progn
(TeX-add-style-hook
"texinfo"
(lambda ()
(TeX-add-symbols
'("acronym" TeX-arg-macro t)
'("tie" TeX-arg-macro t)
)))
(dolist (v '(
(94 "\textsuperscript{" "}")
(95 "\textsubscript{" "}")
(?( "" "" "\left(" "\right)")
(?m "\(" "\)" "" "")
(?v "\(\mmv {" "}\)" "\mmv {" "}")
(?# "\number\numexpr" "\relax ")
))
(add-to-list 'LaTeX-font-list v));
(let ((a (assoc "^pdf$" TeX-output-view-style)))
(when a
(setcdr a
; (list "." (concat
; (getenv "JPE_GSVIEW")
; " -e %o"))
(list "." "c:\Programme\SumatraPDF\SumatraPDF.exe %o")
)));
))
Publicité
Poster une réponse
Anonyme