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

top interne

2 réponses
Avatar
Ph. Ivaldi
Bonsoir,

Décidément j'ai des comptes à régler avec Emacs en ce moment :-)

Je suis en train d'implémenter le support des fichiers maîtres/esclaves
dans asy-mode.el et tout marche bien sauf en mode hybride LaTeX/Asy dans
un fichier TeX esclave (dans un maître, pas de problème).

Dans un fichier .tex esclave en lasy-mode (hybride LaTeX/Asy donc) la
cpu grimpe à 100% quand on bascule en asy-mode (curseur entre les
balises \begin{asy}\end{asy}) et reviens à la normale quand on en sort.
D'ailleurs le basculement en asy-mode ne se fait pas puisqu'un
M-: major-mode <ret> donne toujours latex-mode.
On dirait que two-mode-mode boucle et oscille entre asy-mode et
latex-mode avec une préférence marquée pour latex.

Il doit y avoir une processus spécial dans un fichier esclave en
latex-mode qui n'existe pas dans un fichier maître...
Ce processus perturberait le fragile two-mode-mode.
Un spécialiste de AucTeX peut-il éclairer ma pâle lanterne ?

Merci,
--
Philippe Ivaldi.
http://www.piprime.fr/

2 réponses

Avatar
Ph. Ivaldi
Changement de titre du sujet; ce n'était pas le bon...
--
Philippe Ivaldi.
http://www.piprime.fr/
Avatar
Ph. Ivaldi
J'ai trouvé le responsable:

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../essai"
%%% End:

Quand two-mode-mode change de mode, il relit les variables locales et
donc revient en latex-mode et donc relis les variables locales et
ainsi de suite.

Je ne vois pas pourquoi AucTeX force le mode LaTeX en utilisant une
variable locale sur un .tex; c'est pas toujours du latex-mode un .tex
avec Auctex ?

Si c'est la cas et pour rester cohérent, il faudrait mettre cette ligne
à tout buffer .tex.
Bon... j'ai peut-être loupé un truc ?

Si personne n'y voit à redire, j'ajoute ces quelques ligne dans asy-mode.el:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
(defadvice TeX-add-local-master (after asy-adjust-local-variable ())
"Delete the line that defines the mode in a file .tex because
two-mode-mode reread the local variables after switching mode."
(when (string= (file-name-extension buffer-file-name) "tex")
(goto-char (point-min))
(delete-matching-lines
"mode: latex"
(re-search-forward
"^([^n]+)Local Variables:")
(re-search-forward (regexp-quote
(concat (match-string 1)
"End:"))) nil)))
(ad-activate 'TeX-add-local-master)
8<------8<------8<------8<------8<------8<------8<------8<------8<------

Au passage, dans TeX-add-local-master, il y a un
(concat "^([^n]+)Local " "Variables:")
que je comprends pas trop à quoi sert le concat.

--
Philippe Ivaldi.
http://www.piprime.fr/