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

[(La)TeX] Remplacement en mode math uniquement

3 réponses
Avatar
Denis Bitouzé
Bonjour,

un peu pris par le temps et ne connaissant que mal les expressions
r=E9guli=E8res, je sollicite les comp=E9tences de certains virtuoses de ce
forum (non, non, je n'en fais pas trop).

Dans un fichier .tex, que j'=E9dite avec le mode d'AucTeX, je
souhaiterais effectuer certains remplacements (en l'occurrence ", " par
"," mais peut importe) mais uniquement en modes math=E9matiques,
d=E9limit=E9s par, au choix,

-- $ et $
-- \[ et \]
-- \begin{equation} et \end{equation}=20
-- \begin{equation*} et \end{equation*}=20
-- \begin{align} et \end{align}=20
-- \begin{align*} et \end{align*}=20

et d'autres encore...

J'ai un peu test=E9, pour un truc plus simple, M-x replace-regexp mais
j'ai =E9t=E9 g=EAn=E9 par le fait que le remplacement n'est pas interactif,=
au
contraire de M-%...

Merci d'avance pour toute piste...
--=20
Denis

3 réponses

Avatar
Ralf Angeli
* Denis Bitouzé (2007-11-13) writes:

Dans un fichier .tex, que j'édite avec le mode d'AucTeX, je
souhaiterais effectuer certains remplacements (en l'occurrence ", " par
"," mais peut importe) mais uniquement en modes mathématiques,
délimités par, au choix,

-- $ et $
-- [ et ]
-- begin{equation} et end{equation}
-- begin{equation*} et end{equation*}
-- begin{align} et end{align}
-- begin{align*} et end{align*}

et d'autres encore...

J'ai un peu testé, pour un truc plus simple, M-x replace-regexp mais
j'ai été gêné par le fait que le remplacement n'est pas interactif, au
contraire de M-%...



Si tu veux quelque chose interactif:

C-M-% , RET ,(if (texmathp) "," ", ") RET

Si tu veux quelque chose non-interactif:

M-x replace-regexp RET , RET ,(if (texmathp) "," ", ") RET

--
Ralf
Avatar
Denis Bitouzé
Le Tue, 13 Nov 2007 20:53:22 +0100
Ralf Angeli a écrit :

Si tu veux quelque chose interactif:

C-M-% , RET ,(if (texmathp) "," ", ") RET



Merci mais... euh... ça ne marche pas chez moi :

-- ça cherche (et trouve) des occurrences de "," alors que je
cherche celles de ", " ;
-- ça cherche (et trouve) des occurrences en dehors des modes maths
alors que je voudrais ça ne cherche que dans ces modes ;
-- pour les occurrences qui sont à l'intérieur de modes maths, si je
tape « y », ça laisse telles quelles les occurrences et ne les
remplace pas.

Je me suis peut-être mal exprimé. Je voudrais ne chercher les ", "
qu'en modes mathématiques et alors les remplacer (interactivement) par
",".

Encore merci !
--
Denis
Avatar
Ralf Angeli
* Denis Bitouzé (2007-11-14) writes:

Le Tue, 13 Nov 2007 20:53:22 +0100
Ralf Angeli a écrit :

Si tu veux quelque chose interactif:

C-M-% , RET ,(if (texmathp) "," ", ") RET



Merci mais... euh... ça ne marche pas chez moi :

-- ça cherche (et trouve) des occurrences de "," alors que je
cherche celles de ", " ;



Il y a une espace après la virgule dans l'instruction plus haut. Ça
veut dire, si tu veux chercher ", " tu dois entrer la virgule plus
l'espace.

-- ça cherche (et trouve) des occurrences en dehors des modes maths
alors que je voudrais ça ne cherche que dans ces modes ;



Oui, parce qu'on peut entrer le test du mode math seulement dans le
deuxième argument de `query-replace-regexp', exclure les ", " qui ne
se trouve pas dans le mode math n'est pas possible.

-- pour les occurrences qui sont à l'intérieur de modes maths, si je
tape « y », ça laisse telles quelles les occurrences et ne les
remplace pas.



Oui, l'instruction seulement remplace les ", " qui sont dans le mode
math.

Je me suis peut-être mal exprimé. Je voudrais ne chercher les ", "
qu'en modes mathématiques et alors les remplacer (interactivement) par
",".



Je ne sais pas une solution pour ça sans programmer une fonction
spéciale.

--
Ralf