Dans TeXStudio en appuyant sur ALT+ DELdans une macro LaTeX comme celle-ci \macroname{content}
alors que le curseur se trouve juste avant le premier, {
cela supprimera tout sauf son content
(comme indiqué ci-dessous).
Placez le curseur (point) juste avant la première accolade:
Hit ALT+ DELet vous obtenez:
Comment y parvenir dans Emacs?
Mise
à jour Selon la clarification de T.Verron, il y a un problème C-c C-f C-d
car il se plaint d'une erreur de parenthèse déséquilibrée lorsqu'il est exécuté dans certaines macros dans LaTeX. Prenons l'exemple ci-dessous:
jette cette erreur:
up-list: Scan error: "Unbalanced parentheses", 8074, 1
. \ textenglish {} appartient au package polyglossia.
Comment se débarrasser de cette mise en garde?
TeX-font-list
) ou non. Par exemple, essayez avec\section
ou\footnote
, AUCTeX connaît ces macros et les fait caractériser, maisC-c C-f C-d
se plaindra de parenthèses déséquilibrées.TeX-font-list
à jour cela pour inclure mes macros nouvellement introduites, cela reste une solution de contournement sous-optimale. Sinon, je ne sais pas ce qui empêche d'avoir une fonction eLISP pour y faire face!Réponses:
Essayez cette fonction:
Limitation: ne fonctionne pas avec les macros verbatim. Cette fonction générera une erreur (
Wrong type argument: integer-or-marker-p, nil
) si l'argument universel est supérieur au nombre de macros entourant le point.Liez la fonction à votre raccourci préféré. Par exemple
pour le lier M-DEL.
Si votre tampon a (
!
est le point)puis C-2 M-DELvous donnera
la source
(gr1(gr2(gr3(gr4))))
voulez - vous dire par un préfixeC-u
puis 2 il me donnera:(gr1(gr2))
? s'il en est ainsi, cela doit être brillant. J'espère que vous avez eu le temps de le faire.M-DEL
aimer dans TexStudio. Merci.gr3
dans votre cas. Voir la réponse mise à jour. Vous pouvez implémenter ce que vous avez suggéré endotimes
entourantwhen
la version originale de la réponse.Depuis le nœud manuel AUCTeX sur Changer la police :
la source
\emph{\randommacro{test}}
elle supprimera le\emph
).Voici une fonction simple pour supprimer la macro contenant au point:
D'où, avec
*
comme point:Compte tenu de la fonction ci-dessus, il s'agit d'une ligne unique pour supprimer toutes les macros au point:
D'où, encore une fois avec
*
comme point:la source