Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

AUCTEX latex+dvips+ps2pdf

12 réponses
Avatar
Jules T. MARTIN
Bonsoir,

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

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

Merci pour vos r=E9ponses.

Jules T.

10 réponses

1 2
Avatar
Jean-Yves Baudais
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
Avatar
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 ?



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
Avatar
Jules T. MARTIN
On 17 juin, 22:08, Lucas Levrel wrote:
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.
Avatar
Lucas Levrel
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
Avatar
Jules T. MARTIN
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.
Avatar
Stéphane Dutailly
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.

Avatar
Jean-Yves Baudais
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
Avatar
Lucas Levrel
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
Avatar
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
Avatar
vincent.belaiche
Stéphane Dutailly writes:

(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 {" "}")
(?# "numbernumexpr" "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:ProgrammeSumatraPDFSumatraPDF.exe %o")
)));
))
1 2