IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lisp Discussion :

emacs macro latex


Sujet :

Lisp

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 6
    Points
    6
    Par défaut emacs macro latex
    Bonjour,

    je suis débutant en emacs+latex, je voudrais savoir si je peux créer la fonction suivante:
    - soit sous forme de macro
    - ou en lisp dans mon .emacs

    Une fois que j'ai sélectionné à la souris plusieurs mots, je voudrais que ma fonction rajoute des balises personnelles autour de ces mots.

    Exemple:
    sélection multiple
    ------------------------------------------------------------
    bla bla bla motSelectionné bla
    bla bla bla bla motSelectionné bla
    ------------------------------------------------------------
    résultat après appel fonction ou macro
    ------------------------------------------------------------
    bla bla bla \tx{motSelectionné} bla
    bla bla bla bla \tx{motSelectionné} bla
    ------------------------------------------------------------

    Merci d'avance.

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Quand ton mot est sélectionné (supposons que le curseur soit à la fin de la sélection), tu peux taper ton accolade fermante. Ensuite, C-x C-x te ramène au début de la sélection où tu peux taper ton "\tx{". Refais C-x C-x pour remettre le curseur à sa place.

    Tu peux donc en faire une macro.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    en fait, je voulais d'abord sélectionner tous les mots à encadrer par \tx{} (plusieurs dizaines dans un document) puis appliquer une seule fois la macro.

    Cela sous-entendait une sélection multiple "à la word" avec CTRL enfoncé, mais je viens de me rendre compte que ça ne marche pas sous Emacs...

    Je viens de trouver une package multi-select.el, je vais essayer de l'utiliser en ce sens...

    Merci pour la réponse.

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Au final, le but est de faire du remplacement, donc M-x replace-string est le plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    M-x replace-string
    motSelectionné
    \tx{motSelectionné}
    Si besoin, il y a aussi query-replace (ou M-%) qui demande confirmation pour chaque occurrence, replace-regexp (qui permet de remplacer selon une expression rationnelle) et query-replace-regexp (ou C-M-%).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 6
    Points
    6
    Par défaut solution
    Bonjour,

    merci pour la réponse, mais en fait je n'ai pas été assez précis dans mon explication, je remets donc mon exemple:

    Exemple:
    sélection multiple
    ------------------------------------------------------------
    bla bla bla Selections_1 bla
    bla bla bla bla selections_2 bla
    ------------------------------------------------------------
    résultat après appel fonction ou macro
    ------------------------------------------------------------
    bla bla bla \tx{Selections_1} bla
    bla bla bla bla \tx{selections_2} bla
    ------------------------------------------------------------

    avec Selections_ des sélections de un ou plusieurs mots et pas les mêmes...
    c'est pourquoi M-x replace-string ne suffit pas.

    J'ai réussi à obtenir le résultat voulu en utilisant la fonction multi-select-wrap-perso du package multi-select.el dans la fonction suivante:

    (defun insert-tx-select () "insert \tx sur selection"(interactive)
    (multi-select-wrap-perso "\\tx\{" "}"))

    Pour obtenir multi-select-wrap-perso, j'ai modifié une fonction du package qui insérait un préfixe et un suffixe autour de la multi-sélection mais demandait les deux arguments de manière intéractive.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par crespo12 Voir le message
    Bonjour,

    merci pour la réponse, mais en fait je n'ai pas été assez précis dans mon explication, je remets donc mon exemple:

    Exemple:
    sélection multiple
    ------------------------------------------------------------
    bla bla bla Selections_1 bla
    bla bla bla bla selections_2 bla
    ------------------------------------------------------------
    résultat après appel fonction ou macro
    ------------------------------------------------------------
    bla bla bla \tx{Selections_1} bla
    bla bla bla bla \tx{selections_2} bla
    ------------------------------------------------------------

    avec Selections_ des sélections de un ou plusieurs mots et pas les mêmes...
    c'est pourquoi M-x replace-string ne suffit pas.

    J'ai réussi à obtenir le résultat voulu en utilisant la fonction multi-select-wrap-perso du package multi-select.el dans la fonction suivante:

    (defun insert-tx-select () "insert \tx sur selection"(interactive)
    (multi-select-wrap-perso "\\tx\{" "}"))

    Pour obtenir multi-select-wrap-perso, j'ai modifié une fonction du package qui insérait un préfixe et un suffixe autour de la multi-sélection mais demandait les deux arguments de manière intéractive.
    Bonjour,

    il existe une manière qui me semble plus habituelle pour un emacsien:
    elle consiste à faire une macro (ou une fonction à lier à une clé) qu'on appelle sur chaque sélection.
    par exemple: sélectionner le premier mot puis définir la macro par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C-x ( C-w \tx{ C-y } C-x )
    puis sélectionner autre chose et exécuter la macro par
    L'inconvénient par rapport à la sélection multiple, c'est qu'il faut retaper "C-x e" pour chaque nouvelle sélection.
    )jack(

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de macros de dessin en LaTeX
    Par Salamandar3500 dans le forum Programmation (La)TeX avancée
    Réponses: 1
    Dernier message: 06/06/2013, 20h44
  2. LaTeX avec Emacs + Auctex
    Par joseph.vidal-rosset dans le forum Editeurs / Outils
    Réponses: 1
    Dernier message: 23/05/2013, 10h37
  3. Réponses: 0
    Dernier message: 26/05/2009, 14h44
  4. Emacs & latex
    Par sbrisard dans le forum Editeurs / Outils
    Réponses: 11
    Dernier message: 01/02/2009, 11h41
  5. Preview Latex pour emacs
    Par askunky dans le forum Editeurs / Outils
    Réponses: 2
    Dernier message: 12/02/2007, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo