Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    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 : 2
    Points
    2

    Par défaut Suppression de lignes avec critère

    Bonjour,

    j'utilise emacs+latex, je voudrais transformer des cours en formulaires.

    Il faut transformer un fichier f1 en f2 en supprimant certaines lignes:
    celles qui ne sont pas dans certains blocs de balises (\section{}, \propriete{}, \theoreme{} ,...). Les débuts de balises sont toujours en début de ligne.

    Je pensais utiliser:
    - isearch-forward pour trouver une balise de bloc à conserver
    - forward-sexp pour me déplacer à la fin de la balise

    Questions:
    1-est-ce qu'il vaut mieux enregistrer une macro (je sais le faire) ou écrire une fonction lisp (je ne maîtrise pas...)

    2-comment gérer:
    - le ou dans la recherche: chercher \section ou \propriete ou \theoreme
    - jusqu'à arriver à la fin du fichier

    Exemple:

    f1
    ------------------------------------------------------------
    \section{}

    bla bla bla bla
    bla bla bla bla bla

    \propriete{texte texte
    maths maths
    maths
    texte texte}

    bla bla bla bla
    bla bla

    \autreBalise{texte
    maths maths
    texte}
    ------------------------------------------------------------

    f2
    ------------------------------------------------------------
    \section{}

    \propriete{texte texte
    maths maths
    maths
    texte texte}

    ------------------------------------------------------------

    Merci d'avance.

  2. #2
    Membre Expert
    Inscrit en
    avril 2008
    Messages
    979
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 979
    Points : 2 157
    Points
    2 157

    Par défaut

    Citation Envoyé par crespo12 Voir le message
    Bonjour,

    j'utilise emacs+latex, je voudrais transformer des cours en formulaires.

    Il faut transformer un fichier f1 en f2 en supprimant certaines lignes:
    celles qui ne sont pas dans certains blocs de balises (\section{}, \propriete{}, \theoreme{} ,...). Les débuts de balises sont toujours en début de ligne.

    Je pensais utiliser:
    - isearch-forward pour trouver une balise de bloc à conserver
    - forward-sexp pour me déplacer à la fin de la balise

    Questions:
    1-est-ce qu'il vaut mieux enregistrer une macro (je sais le faire) ou écrire une fonction lisp (je ne maîtrise pas...)
    Tu peux commencer par écrire une macro, puis appeler une des fonctions comme edit-kbd-macro qui te montre le code correspondant et t'en inspirer pour écrire le code.

    2-comment gérer:
    - le ou dans la recherche: chercher \section ou \propriete ou \theoreme
    avec une regexp:
    Code :
    (re-search-forward (concat "^" "\\\\" "\\(" (mapconcat 'symbol-name '(section propriete theoreme) "\\|") "\\)"))
    - jusqu'à arriver à la fin du fichier
    Code :
    1
    2
    3
    4
    5
    (while (re-search-forward (concat "^\\\\" "\\(" (mapconcat 'symbol-name '(section propriete theoreme) "\\|") "\\)") (not 'bound) 'noerror)
        (forward-sexp)
        (setq beg-of-stuff (point))
        etc.
    )

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •