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

pb auctex?

16 réponses
Avatar
Thierry WYBRECHT
Bonjour,
Je viens de mettre à jour sur mon mac emacs (la version modifiée de
Vincent Goulet, la 25.1)
qui marche bien, sauf qu'elle a perdu la reconnaissance des commandes
définies dans mon
fichier source (ex: si je fais C-c <entrée> dev <tab>, elle me
complétait la commande \devoir définie
dans le source). QU'est-ce qui a changé entre la 24 et la 25 qui
pourrait expliquer cette perte?

Merci

6 réponses

1 2
Avatar
jj.retorre
jeu. 02 mars 2017, Thierry WYBRECHT disait :
On 2017-03-02 06:51:51 +0000, Jean-Jacques Rétorré said:
mer. 01 mars 2017, Thierry WYBRECHT disait :
On 2017-03-01 18:37:58 +0000, Jean-Jacques Rétorré said:
mer. 01 mars 2017, Thierry WYBRECHT disait :
Bonjour,
Je viens de mettre à jour sur mon mac emacs (la version mo difiée de
Vincent Goulet, la 25.1)
qui marche bien, sauf qu'elle a perdu la reconnaissance des commandes
définies dans mon
fichier source (ex: si je fais C-c <entrée> dev <tab>, ell e me
complétait la commande devoir définie
dans le source). QU'est-ce qui a changé entre la 24 et la 25 qui
pourrait expliquer cette perte?
Merci

Un fichier de style ?
La complétion de dev vient d'un fichier de style personnel pour autant
que je sache. Il faut le copier dans l'espace des fichiers de style li é
à la version 25.
Déjà, il faudrait l'identifier.
Chercher dans TeX-style-path ou TeX-style-global TeX-style-local etc..
(info "(auctex )Style files")

Je crois que j'ai trouvé, je pense que le coupable est template.el , situé dans
mon ~/emacs-scripts, et qui n'est pas pris en compte (une vieille
extension qui date
de 2003, et bien pratique). Pourquoi n'est-elle pas prise en compte,
je l'ignore.
D'autres extensions dans le même répertoire (latex-tempo par exemple)
le sont.

J'utilise avec bonheur cette extension qui n'a d'effet que lors de la
création d'un nouveau document. Il est vrai qu'il peut contenir du code
elisp qui s'active à ce moment. AMHA, si c'est ça il vaut mieu x le
virer. Il y a quand même mieux dans AUCTeX.

Je jette l'éponge, trop de problèmes. Je suis revenu à la version
précédente (24.5.1) !
Merci pour votre aide quand même!

24, 25 je suppose qu'il s'agit des versions d'Emacs. Le problème n'est
pas lié à Emacs, mais à AUCTeX.
Est-il vraiment nécessaire d'utiliser une version personnalisée ? AUCTeX
s'installe et se met à jour très-très simplement avec packag e.el. Fini
le temps ou il fallait un Makefile. Je ne l'installe plus que comme ça
et je n'ai jamais eu le moindre souci.
Je suis passé à Emacs 25 depuis déjà un certain temps s ans aucun
souci. Je suis sous Debian.
N'ayant pas la machine sous la main, j'en suis réduit à des hypot hèses.
Lorsqu'un fichier LaTeX est chargé, ou lorsqu'on tape un usepackage,
AUCTeX recherche un fichier de style (elisp) fournissant une assistance
à la saisie.
Par exemple, si AUCTeX détecte la présence de usepackage{pstrick s} dans
l'entête, le fichier pstricks.elc est chargé, et toute une assist ance à
la saisie est activée pour les macros de pstricks. (pas pst-all :-( )
Si la macro devoir est décrite dans le fichier (TeX) devoir.sty, le
code elisp fournissant l'assistance à l'édition de la commande d evoir
est dans un fichier devoir.elc situé dans l'une des arborescences
décrites par la variable elisp TeX-style-path
Ce que je propose c'est de prendre note de l'arborescence de recherche
TeX-style-path dans les deux versions et de comparer.
Voir par exemple M-x customize-variable RET TeX-file-path
dans les deux configurations.
--
JJR.
Avatar
Thierry WYBRECHT
On 2017-03-08 08:40:34 +0000, Denis Bitouzé said:
Le 02/03/17 à 07h46, Jean-Jacques Rétorré a écrit :
Les fichiers de style d'Auctex contiennent du code elisp pour assister
la saisie de code relatif aux fichiers .sty LaTeX.
La lecture des premières lignes de (info "auctex") évoque l'existence de
ces fichiers de style non activés par défaut. Ça échappe à beaucoup
d'utilisateurs d'AUCTeX, pourtant c'est une feature (traduisez-moi) très
importante.

De ce point de vue, AUCTeX n'est quand même pas aussi pratique que, par
exemple, TeXstudio. Dans ce dernier, si un document contient par
exemple :
┌────
│ newcommand{toto}[1]{titi #1}
└────
saisir « tot » va proposer la complétion « toto{arg1} » qui, si
acceptée, va insérer :
┌────
│ toto{arg1}
└────
où « arg1 » est un paramètre fictif, ce qui a notamment comme
conséquence qu'il est d'emblée sélectionné et que, donc, commencer
à saisir un texte suffit à le remplacer.
En outre, de manière générale dans TeXstudio, les commandes « non
connues », c'est-à-dire non déclarées dans la classe ou les packages
chargés, sont mises en évidence (par un surlignage). Et c'est aussi le
cas des commandes créées au moyen de newcommand (autrement dit, toto
serait ici considérée comme connue).
Je n'utilise que Emacs pour mon propre travail, mais je connais assez
bien TeXstudio pour le conseiller aux personnes que je forme à LaTeX
(sauf si elles utilisent elles-mêmes Emacs) et pour en assurer la
traduction en français. ÀMHA, AUCTeX a des progrès à faire pour être
aussi pratique que lui (je ne parle bien sûr que de l'aspect IDE LaTeX,
pas des fonctionnalités générales d'édition qui restent supérieures chez
Emacs).

Merci à vous deux de vous être penchés sur mon problème, que j'ai
finalement résolu.
(passé par aquamacs, puis retour sur emacs 25.1)
Maintenant j'ai un autre truc de cassé (classique paraît-il avec un
mac): la correction avec
aspell Quelle m...e (problème cocaspell/ aspell installé via fink ou
brew ou ...)! Bon, pour le
moment, je tourne avec mon emacs 24 (que je ne lâcherai
pour rien au monde, pas même TeXstudio: avec AUCTeX, latex-tempo,
template, j'en oublie
peut-être, tout ça configuré à la mimine, patiemment, pendant des
années en glanant sur le
net, sans toujours bien comprendre ce que je faisais, son interface
épurée: je dois passer
pour un fou pour certains !).
Thierry
Avatar
jj.retorre
mer. 08 mars 2017, Denis Bitouzé disait :
Le 02/03/17 à 07h46, Jean-Jacques Rétorré a écrit :
Les fichiers de style d'Auctex contiennent du code elisp pour assister
la saisie de code relatif aux fichiers .sty LaTeX.
La lecture des premières lignes de (info "auctex") évoque l'ex istence de
ces fichiers de style non activés par défaut. Ça éch appe à beaucoup
d'utilisateurs d'AUCTeX, pourtant c'est une feature (traduisez-moi) tr ès
importante.

De ce point de vue, AUCTeX n'est quand même pas aussi pratique que, par
exemple, TeXstudio. Dans ce dernier, si un document contient par
exemple :
┌────
│ newcommand{toto}[1]{titi #1}
└────
saisir « tot » va proposer la complétion « toto{arg 1} » qui, si
acceptée, va insérer :
┌────
│ toto{arg1}
└────
où « arg1 » est un paramètre fictif, ce qui a notamme nt comme
conséquence qu'il est d'emblée sélectionné et que, do nc, commencer
à saisir un texte suffit à le remplacer.

Si, si, si AUCTeX propose quelque chose d'à peu près équival ent, et
depuis longtemps.
Si le fichier source se nomme ecm.tex par exemple, l'inclusion d'une
macro LaTeX dans ecm.tex va provoquer la création ou la modification
d'un fichier ecm.el quelque part dans le chemin des fichiers de style.
Après ça la commande TeX-insert-macro va proposer un gabarit pour saisir
la macro et ses paramètres, (comme pour toutes les autres macros
assistées par un fichier de style)
Dans cet exemple, le fichier ecm.el va contenir le code elisp
------
(TeX-add-symbols
'("toto" 1)
-----
Si on trouve ça trop sec, on peut enrichir le fichier de style, c'est du
code elisp comme un autre, on peut par exemple faire afficher des petits
lutins colorés pour applaudir l'exploit de la saisie de la macro. Chose
qu'on ne peut pas faire avec TeXStudio, j'imagine.
Il faut lire la doc à ce sujet sur TeX-insert-macro .
(describe-function 'TeX-insert-macro)
Pour forcer la création du fichier de style,
M-x TeX-normal-mode (C-c C-n)
On peut aussi par M-x TeX-auto-generate.
Normalement tout est automatique, ça se fait au chargement ou à la
sauvegarde du fichier, je n'ai pas trop regardé, je n'utilise pas cette
fonctionnalité. Il faut peut-être paramétrer quelques variab les.
Voir :
(info "(auctex)Writing Your Own Style Support")
(info "(auctex)Automatic Extraction of New Things")
Ce qui manque cruellement dans AUCTeX et dans Emacs en général, c 'est
une bonne doc en français qui prenne un peu l'utilisateur par la main
pour le conduire vers les bons trucs. La doc officielle, ça donne
l'impression qu'à la moindre question on va se retrouver avec un RTFM,
c'est pas folichon, mais il faut reconnaître que c'est plutôt pr écis et
complet.
--
JJR.
Avatar
Lucas Levrel
Le 12 mars 2017, à 22:01, Denis Bitouzé a écrit :
Le 08/03/17 à 19h38, Jean-Jacques Rétorré a écrit :
--------------------------
(defun grab-code-LaTeX-for-edit ()
"Capture du code Latex pour édition dans un fichier sous /tmp/LaTeX-BAC-A-SABLE.
Le point est censé être entre documentclass et
end{document}. Aucune vérification n'est faite.
Testé seulement sous Linux (Debian)"
(interactive)
(let ((latex-file ;; le nom du fichier créé par le système
(substring
(shell-command-to-string "mkdir -p /tmp/LaTeX-BAC-A-SABLE &&
mktemp -p /tmp/LaTeX-BAC-A-SABLE --suffix=.tex tex-ecm-XXXX")
0 -1)
)
beg
end)
(save-excursion (setq beg (search-backward "documentclass" )))
;; beg= début de fichier LaTeX
(save-excursion (setq end (search-forward "end{document}" )))
;; end= fin de fichier LaTeX
(unless (or (null beg) (null end)) (kill-ring-save beg end)
(find-file latex-file) (yank)
(save-buffer) (TeX-normal-mode)
))
)
-----------------------

Pas mal, merci ! Juste deux choses :
2. Je préférerais que ça se mette au début d'un fichier fixe dans lequel
je fais tous mes tests, sans écraser ce qui y était déjà. Si tu sais
comment faire, je prends volontiers :)

Je dirais bien qu'il faut virer le bloc (latex-file ...) et remplacer
(find-file latex-file) par (find-file "/chemin/fichier"), à tester sur un
fichier sans valeur parce que la fonction fait un (save-buffer) !
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
Avatar
Lucas Levrel
Le 12 mars 2017, à 22:01, Denis Bitouzé a écrit :
1. Au moment de la compilation, ça me demande quel doit être le document
maître. Comme la réponse est a priori toujours la même (le document
en cours), ce serait bien si ça pouvait être intégré.

Vu que tu utilises toujours le même fichier sans l'écraser, tu pourrais
utiliser un bloc Local Variables pour le définir. Mais n'est-ce pas
bizarre qu'il demande un doc maître pour un fichier qui commence par
documentclass ?
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
Avatar
jj.retorre
lun. 13 mars 2017, Denis Bitouzé disait :
Le 13/03/17 à 10h52, Jean-Jacques Rétorré a écrit :
En effet, autant pour moi. Le truc, c'est que, pour répondre à ton
incertitude plus bas, ça ne se fait qu'au chargement du fichier, et
pas à son enregistrement, ce qui fait que je n'avais jamais noté
cette fonctionnalité.

On peut la forcer par /M-x TeX-normal-mode/ et la fonctionnalité a un
effet immédiat (C-c C-n) .

Devrait ne pas être nécessaire.
Par ailleurs, l'autocomplétion sous TeXstudio apparaît dans une
pop-up d'une dizaine de lignes, ce qui fait qu'on remarque assez
rapidement cette fonctionnalité ; avec AUCTeX, le minibuffer étant
restreint à une ligne, ça ne saute pas au yeux (il faut TABer pour
voir toutes les 1res propositions).

Dans le genre, TeXstudio signale (en surlignant en rose) les
commandes qu'il estime non valides (parce que non définies par les
classe et packages chargés ou par un newcommand dans le fichier en
cours). Si AUCTeX propose aussi cela, ce n'est pas par défaut en tout
cas.

Il y a tellement de fonctionnalités proposées par Emacs

Est-ce le cas de celle que je mentionne ?
que beaucoup ne sont pas proposées par défaut (il faudrait qu'Emacs
soit capable de comprendre le désir de l'utilisateur). Il faut les
activer. Emacs c'est pour les gens conscients et responsables.

Mouais... À ce compte-là, aucune fonctionnalité ne devrait être activée
par défaut.

Il faut lire la doc. Le mécanisme des styles n'est pas activé par
défaut.
Il faut aussi respecter les usagers (comme moi) qui utilisent des
machines qui ont dix ans d'âge et qui n'ont pas envie de voir toutes les
ressources bouffées par une application qui exige 8Go de RAM pour se
lancer.
Normalement tout est automatique, ça se fait au chargement ou à la
sauvegarde du fichier, je n'ai pas trop regardé,

Chargement, donc, ce qui est dommage ÀMHA.

La création du fichier de style se fait à la sauvegarde, mais son
activation n'a aucun effet après la fermeture du fichier :-)

Argh ! Mais c'est nul, ça ! J'imagine que, à son ouverture, tout fichier
`.tex' est parsé et donc cette fonctionnalité devrait être activée à sa
réouverture.

Elle l'est, bien sûr, mais la prise en compte de newcommand ou autre,
ne peut quand même pas se faire avant que le code ne soit saisi !
--
JJR.
1 2