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

appeler un scripr avec parametres depuis emacs

2 réponses
Avatar
reymarlioz
Bonjour,

j'ai un script shell a4toa5 qui prend comme param=E8tre un fichier.pdf,
(s ou d) et ({1-4}, ...) qui me transforme les pdf a4 en a5 en simple/
double exemplaire pour les pages {1-4}.

J'essaie de compl=E9ter une fonction en elisp fournie par P. Ivaldi et
G. Connan
pour l'appeler par un C-c C-z dans la fen=EAtre emacs de mon
fichier.tex, mais j'ai des pb pour le passage des param=E8tres :

;;; Pour le a4toa5
(defvar tom-reduce-command "~/bin/a4toa5 %s.pdf")
(defun tom-reduce (trdouble)
"Transformation en A5 du document A4"
(interactive "sUn exemplemplaire:s, double:d (defaut=3Dd) :")
(if (string=3D trdouble "") (setq doubletmp "d") (setq doubletmp
trdouble))
(let ((fnse (file-name-sans-extension (buffer-file-name))))
(shell-command (format
tom-reduce-command
(concat fnse " " doubletmp) )))
); fin de let
(eval-after-load "latex"
'(progn
(define-key LaTeX-mode-map (kbd "C-c C-z") 'tom-reduce)))
;;; fin du a4toa5

il me demande bien le param "s" ou "d", mais je n'arrive pas passer ce
param=E8tre =E0 l'appel de la commande 'tom-reduce-command. (le (concat
fnse " " doubletmp) ne fonctionne pas).

Ensuite, peut-on =E9crire deux (interactive ...) successivement ? (pour
demander le deuxi=E8me param=E8tre)

Merci pour votre aide,

Thomas Rey
http://mathtom.free.fr

2 réponses

Avatar
Ph. Ivaldi
Bonjour Thomas,

Voici ce que je te propose:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
(defvar tom-reduce-command "~/bin/a4toa5")
(defun tom-reduce (trdouble pages)
"Transformation en A5 du document A4"
(interactive "cSimple=s, double=d (defaut=d)nsPages: ")
(when (not (= trdouble 115)) (setq trdouble 100))
(let ((fnse (file-name-sans-extension (buffer-file-name))))
(shell-command (concat tom-reduce-command " " fnse ".pdf "
(char-to-string trdouble)
" " pages))))
8<------8<------8<------8<------8<------8<------8<------8<------8<------

Attention, j'ai modifié la variable 'tom-reduce-command', si tu veux
tester sans redémarrer Emacs remplace provisoirement le defvar par un
setq.
Dans 'interactive' chaque paramètre est séparé par un retour chariot
(code n).
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avatar
reymarlioz
On 3 déc, 16:15, Ph. Ivaldi wrote:
Bonjour Thomas,

Voici ce que je te propose:
.....
--
   Philippe Ivaldi.http://piprim.tuxfamily.org/



Génial ! Ca marche (comme à chaque fois que je te sollicite !) !

Merci,

Thomas
http://mathtom.free.fr