[Résolu] Latex sur emacs24 et auctex

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Latex sur emacs24 et auctex

Messagepar fred_maths » Lundi 05 Juin 2017, 17:01

Bonjour,

j'aimerai passer a emacs 24 au lieu de texstudio.
je débute avec cet editeur qui a l'air très puissant.
j'ai donc installé auctex via les package elpa
mais pas moyen de compiler un pauvre .tex avec C-c C-c ?
J'ai testé la commande
Code: Tout sélectionner
    M-x TeX-toggle-PDF-via-dvips-ps2pdf
proposé par gigiair ici latex-f6/nouvelle-commande-auctex-pour-pstricks-t16473.html
mais cela me retourne no match bien que le mode mode TeX-pdf soit actif.

Est qu'il y a des ligne a ajouter dans le .emacs
merci de votre aide
Dernière édition par fred_maths le Lundi 12 Juin 2017, 21:04, édité 1 fois.
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 23
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Latex sur emacs24 et auctex

Messagepar gigiair » Lundi 05 Juin 2017, 19:01

Normal. La fonction toggle-PDF-via-dvips-ps2pdf était une fonction de ma fabrication qui bascule la valeur de PDF-via-dvips-ps2pdf entre t et nil. Bien facile à écrire en elisp.
Code: Tout sélectionner
TeX-PDF-via-dvips-ps2pdf is a variable defined in ‘tex.el’.
Its value is nil

  Automatically becomes buffer-local when set.
  This variable is obsolete since 11.90;
  use ‘TeX-PDF-from-DVI’ instead.

Depuis AUCTeX 11-90, la variable PDF-via-dvips-ps2pdf est obsolete, et donc je ne l'emploie plus.
Pour activer la compilation dvi->ps->PDF il faut maintenant modifier la variable TeX-PDF-from-DVI comme il est dit dans l'aide d'AUCTeX.
Le plus simple si l'on souhaite qu'un fichier soit compilé dans ce mode est d'ajouter une variable de fichier
Code: Tout sélectionner
%%% Local Variables:
%%% TeX-PDF-mode: t
%%% TeX-PDF-from-DVI: t
%%% End:

Ça se fait très simplement par la commande
Code: Tout sélectionner
M-x add-file-local-variable RET TeX-PDF-from-DVI RET t RET
M-x add-file-local-variable RET TeX-PDF-mode RET t RET

Il faut bien entendu utiliser l'auto-complétion pour taper ces identifiants sans faute d'orthographe.
Je me suis mitonné une commande qui bascule ces valeurs automatiquement, mais comme je ne suis pas très sûr de sa fiabilité, je ne la publie pas. C'est un exercice de débutant en elisp.

J'ai oublié de préciser : si on ne veut pas avoir à se taper toute la séquece de C-c C-c pour obtenir le pdf final (latex ... dvips ps2pdf ) on peut compiler par C-c C-a et tout s'enchaîne automatiquement, avec le nombre de compilations latex nécessaires.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2290
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Latex sur emacs24 et auctex

Messagepar fred_maths » Lundi 05 Juin 2017, 22:55

Merci pour ta réponse très claire ...
je suis débutant en emacs 24 et pour l'instant je ne connais pas le lisp
il y a très peu de tutoriel explicite sur le net sur auctex donc j'apprends assez lentement
merci a plus si je trouve des choses intéressantes
je posterai merci
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 23
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: Latex sur emacs24 et auctex

Messagepar gigiair » Mardi 06 Juin 2017, 07:11

Emacs 25 qui intègre la gestion des packages est préférable à 24.
Emacs possède un système d'aide très complet et très pratique, mais son accès en mode texte un peu à contre courant des tendances actuelles du logiciel peut être déroutant pour le débutant.
Toutes les variables, toutes les fonctions sont en général documentées et leur documentation est accessible par C-h C-v ou C-c C-f.
C-h ? pour voir toutes les aides
Elisp n'est pas indispensable pour utiliser Emacs, mais permet ce comprendre le fonctionnement du fichier .emacs
C'est un langage très amusant et très simple à utiliser.
C-h d m Emacs Lisp Intro

Pour ceux qui voudraient se lancer et apprécier les possibilités de personnalisation et d'extension d'Emacs, je propose cet ajout dans le .emacs pour redéfinir la touche F12 du clavier d'un PC.

La touche f12 est d'abord définie comme une touche préfixe, puis des combinaisons de touches préfixées par f12 sont définies globalement (pour tous les modes)

Code: Tout sélectionner
      ;; touche F12 windows & buffers
      (setq f12-keymap (make-sparse-keymap))
      (define-key global-map [f12] f12-keymap)
      (define-key f12-keymap [f12] 'delete-other-windows)      ;; C-x 1   -> F12 F12
      (define-key f12-keymap "o" 'other-window)                ;; C-x o   -> F12 o
      (define-key f12-keymap "b" 'balance-windows)             ;; C-x +   -> F12 b
      (define-key f12-keymap "M" 'maximize-window)             ;;            F12 M
      (define-key f12-keymap "m" 'minimize-window)             ;;            F12 m
      (define-key f12-keymap "k" 'delete-window)               ;; C-x 0   -> F12 k
      (define-key f12-keymap "v" 'scroll-other-window)         ;; C-M-v   -> F12 v
      (define-key f12-keymap "\M-v" 'scroll-other-window-down) ;; C-M-S-v -> F12 M-v
      (define-key f12-keymap "f" 'toggle-frame-maximized)      ;;            F12 f
      (define-key f12-keymap "s" 'switch-to-buffer)            ;; C-x b   -> F12 s
      (define-key f12-keymap "S" 'electric-buffer-list)        ;; C-x C-b -> F12 S
      (define-key f12-keymap "p" 'switch-to-prev-buffer)       ;;            F12 p
      (define-key f12-keymap "n" 'switch-to-next-buffer)       ;;            F12 n


  ;;;

  (defun visit-latex ()
  "Ouvre un buffer dired sur mon répertoire personnel LaTeX"
    (interactive)
    (dired "~/Documents/LaTeX/*.tex"))

  (define-key f12-keymap "l" 'visit-latex )   ;; F12 l

F12 F12 est une commande très utile car j'ai un très petit écran (12") et C-x 1 n'est pas très ergonomique.
F12 l me lance dired sur mon répertoire personnel de fichiers *.tex

Il est facile de prendre modèle pour se mitonner un ensemble de raccourcis pratiquement inépuisable.

Pour personnaliser des commandes AUCTeX, j'ai une technique un peu plus sophistiquée, car j'utilise pas mal de modes et je souhaite que les raccourcis d'AUCTeX ne soient actifs que quand ce mode est actif.
J'ai donc créé une fonction LaTeX-surcharge-clavier qui ensuite sera chargée automatiquement à toute activation de latex-mode par un add-hook.
J'ai créé deux fonctions pour insérer des caractères qui ne sont pas forcément disponibles, à titre d'exemple.

Code: Tout sélectionner
     (defun LaTeX-insère-euro ()
       "insère la chaîne `\euro{}'"
       (interactive)
       (insert "\\euro{}"))

     (defun LaTeX-insère-times ()
       "insère la chaîne `\times{}'"
       (interactive)
       (insert "\\times{}"))

     (defun LaTeX-surcharge-clavier ()
       "Reconfigure le clavier pour LaTeX"
       (define-key f5-keymap  [f5] 'TeX-command-master)              ;; C-c C-c -> F5 F5
       (define-key f5-keymap  "c"  'TeX-command-master)              ;; C-c C-c -> F5 c
       (define-key f5-keymap  "a"  'TeX-command-run-all)             ;; C-c C-a -> F5 a
       (define-key f5-keymap  "v"  'tex-view)                        ;; C-c C-v -> F5 v
       (define-key f5-keymap  "n" 'TeX-next-error)                   ;; C-c `   -> F5 n
       (define-key f5-keymap  "e" 'TeX-next-error)                   ;; C-c `   -> F5 e
   
       (define-key LaTeX-mode-map (kbd "C-*")  'LaTeX-insère-times)  ;; C-*
       (define-key LaTeX-mode-map (kbd "€")    'LaTeX-insère-euro)   ;; €
       )

     (add-hook 'LaTeX-mode-hook #'LaTeX-surcharge-clavier)


Comme vous pouvez le constater ça ne nécessite pas de grosses compétences en Emacs-lisp...

La commande TeX-next-error (C-c `) est particulièrement mal commode à saisir sur un clavier de PC français. La reconfiguration est donc bienvenue. J'ai doublonné (F5 n, F5 e) en cas d'oubli.
En cas de défaillance de mémoire (de l'utilisateur), F5 ? (comme F12 ? ou tout autre préfixe) rappelle toutes les liaisons de touches actives.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2290
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Latex sur emacs24 et auctex

Messagepar rebouxo » Mardi 06 Juin 2017, 22:50

Tiens bonne idée ce remappage. Je vais m'en inspirer.
Bon F12, c'est bien pour un 12 pouces, c'est clair, mais moi j'ai un 13 pouces, comment je fais :D

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6798
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Latex sur emacs24 et auctex

Messagepar gigiair » Mercredi 07 Juin 2017, 07:02

Emacs se veut universel multi-plateforme. C'est sans doute la raison pour laquelle les raccourcis clavier ne sont pas toujours des plus ergonomiques pour un clavier français sur PC.

Certains raccourcis d'origine sont franchement insupportables car très utilisés, c'est la raison pour laquelle j'ai cherché à les modifier. (C-x 1, C-c ` pour ne citer que ceux là). Les touches F5 - f12 étant disponibles pour les utilisateurs, avec la technique que j'ai indiqué, ça laisse pas mal de possibilités.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2290
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Latex sur emacs24 et auctex

Messagepar fred_maths » Samedi 10 Juin 2017, 19:58

J'ai toujours autant de difficultés à compiler en mode Latex avec emacs 25
j'ai bien utilisé les variables locales
Code: Tout sélectionner
% Local Variables:
% TeX-PDF-from-DVI: t
% TeX-PDF-mode: t
% End:

mais j'ai toujours le message d'erreur compiler en LaTeX !
Pourtant certaines parties de mon documents sont compilées à l'intérieur ???
J'utilise la classe sesamanuel et j'ai donc le message d'erreur suivant :
Code: Tout sélectionner
/home/fred/Dropbox/texmf/tex/latex/sesamanuel.cls:108: Class sesamanuel Error: Vous ne pouvez pas compiler en mode pdflatex
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 23
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: Latex sur emacs24 et auctex

Messagepar gigiair » Samedi 10 Juin 2017, 21:30

fred_maths a écrit:J'ai toujours autant de difficultés à compiler en mode Latex avec emacs 25
[Snip]

C'est pas normal.
J'ai vérifié avec cet ECM
(la valeur de TeX-PDF-from-DVI est "Dvips" et non t)
Si les variables de fichier sont modifiées après le chargement du fichier, il faut rafraîchir l'environnement de compilation par C-c C-n (TeX-normal-mode).
Code: Tout sélectionner
\documentclass[a4paper, francais]{sesamanuel}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\begin{document}
Ceci est un essai
\end{document}

% Local Variables:
% TeX-PDF-mode: t
% TeX-PDF-from-DVI: "Dvips"
% End:

Note que la valeur à donner à TeX-PDF-from-DVI est "Dvips" (on aurait pu aussi donner la valeur "Dvipdfm") mais t marche aussi.
Vérifier les valeurs de ces variables : le curseur étant sur le nom de la variable, C-h v affiche le statut de la variable et sa valeur.

Curieusement la compilation exige xetex ou luatex, mais si on refuse ce choix, ça passe quand même. C'est juste que xetex ou luatex sur une machine peu puissante comme la mienne, ça multiplie le temps de compilation par trois..

Si mon ECM ne passe pas, pourrait-tu poster le fichier log dans son intégralité ?
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2290
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Latex sur emacs24 et auctex

Messagepar fred_maths » Lundi 12 Juin 2017, 21:03

Merci pour ton aide ;-)
Ton ECM fonctionne avec la compilation ;-)
je vais revoir cette histoire de variable locale que je n'ai pas encore saisie pour
la compilation.
je poste ci dessous ou j'ai trouvé le ppa pour emacs 25
car il n'est pas a jour dans le gestionnaire de paquets de ubuntu 16.04, si cela peut aider quelqu'un.
Code: Tout sélectionner
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt-get update
sudo apt-get install emacs25
PC 1 :Ubuntu 14.04 LTSw 8 + Texlive 2017+emacs 24 avec auctex 11.90 + texstudio v 2.9.4
ou
PC 2 : Windows 8 + Texlve 2016 + texstudio v 2.9.4
fred_maths
Déca-utilisateur
 
Messages: 23
Inscription: Vendredi 02 Janvier 2015, 21:57
Statut actuel: Actif et salarié | Enseignant

Re: Latex sur emacs24 et auctex [résolu]

Messagepar gigiair » Mardi 13 Juin 2017, 08:34

Le mode de compilation dépend de variables qui peut être fixé d'une manière ou d'une autre. Les variables de fichiers sont un moyen commode de fixer le mode de compilation pour un fichier donné.
Pour parcourir l'aide sur les variables de fichier, évaluer dans n'importe quel buffer ( point après la parenthèse fermante C-x C-e)
Code: Tout sélectionner
(info  "(emacs)Specifying File Variables")

Il y a d'autres solutions.
L'activation d'une compilation dvi->dvips->pdf a été récemment changée dans AUCTeX, évaluer
Code: Tout sélectionner
(info "(auctex) Options for TeX Processors")

Personnellement je me suis mitonné une commande que j'active à la volée par C-c C-t C-d. C'est un petit bricolage qui marche avec AUCTeX-version = "11.90.2". Je n'ai aucune garantie qu'il fonctionnera pour les versions futures.
Code: Tout sélectionner
   (defcustom convertisseur-pdf-préféré
  "Dvips" "Dvips ou dvipdfmx"
    :type '(choice (const :tag  "Dvips" :value "Dvips")
         (const :tag  "dvipdfmx" :value "dvipdfmx"))
    :group 'TeX-command)
;;; J'ai défini cette variable customisable par coquetterie, on peut se contenter d'un setq ou d'un defvar ordinaire
;;; ou même placer directement la valeur de son choix dans le code qui suit

  (defun toggle-TeX-PDF-from-DVI ()
    "Bascule le mode TeX-PDF-from-DVI"
    (interactive)
    (if TeX-PDF-mode
   (message "Compilation pdf via %s"
       (if
           (setq TeX-PDF-from-DVI
            (if
                TeX-PDF-from-DVI
                nil
              convertisseur-pdf-préféré ))
           "dvi" "pdflatex"))
      (progn (TeX-PDF-mode) (toggle-TeX-PDF-from-DVI))))

   (define-key LaTeX-mode-map (kbd "C-c C-t C-d")   'toggle-TeX-PDF-from-DVI)


Quand la compilation se fait par TeX-PDF-from-DVI, il est indispensable de compiler par C-c C-a sinon il faut passer par toutes les étapes de la compilation par C-c C-c
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2290
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

cron