Applicare una macro su più occorrenze

  • Creatore
    Topic
  • #27386
    Up
    0
    Down
    ::


    Ciao,

    Avrei bisogno di una macro che dati i seguenti 3 parametri:

    1) testo da cercare
    2) testo su cui cercare il testo passato come 1 parametro
    3) macro da eseguire su tute le occorrenze di #1 trovate in #2

    Mi servirebbe per mettere in grassetto tutte le occorrenze di una parola all’interno di un testo. L’ottimo sarebbe avere un parametro opzionale che indica su quale N-prime occorrenze applicarlo, tipo solo sulla prima, sulle prime 3, ecc…

    Quindi una roba tipo:

    \apply{parola}{E’ una parola fare una macro del genere! Come la pesco ‘sta parola? Parola! Parola!}{\textbf}[2]

    E mi vengono in grassetto le prime 2 occorrenze di “parola”.

    Grazie.
    Ciao.

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #27387
      Up
      0
      Down
      ::

      Ciao,

      Avrei bisogno di una macro che dati i seguenti 3 parametri:

      1) testo da cercare
      2) testo su cui cercare il testo passato come 1 parametro
      3) macro da eseguire su tute le occorrenze di #1 trovate in #2

      Mi servirebbe per mettere in grassetto tutte le occorrenze di una parola all’interno di un testo. L’ottimo sarebbe avere un parametro opzionale che indica su quale N-prime occorrenze applicarlo, tipo solo sulla prima, sulle prime 3, ecc…

      Quindi una roba tipo:

      \apply{parola}{E’ una parola fare una macro del genere! Come la pesco ‘sta parola? Parola! Parola!}{\textbf}[2]

      E mi vengono in grassetto le prime 2 occorrenze di “parola”.

      Problema piuttosto complicato: il meccanismo con cui TeX legge l’input non è molto flessibile e tu stai chiedendo parecchio. Per esempio, vuoi la distinzione fra maiuscolo e minuscolo? Ci possono essere lettere accentate? Ci possono essere segni di punteggiatura nel tuo testo?

      Non dico che sia impossibile: occorre esaminare il testo un carattere alla volta e paragonare la stringa ottenuta con il campione mettendo da parte ciò che non può funzionare e lavorando su ciò che invece può. Se poi aggiungiamo maiuscole e minuscole, c’è da tremare. 🙂

      Direi che una cosa del genere è un lavoro per PerlTeX: Perl è un linguaggio molto più adatto a fare quello che desideri. Se non conosci Perl, studialo. 🙂

      In che contesto ti servirebbe questa roba?

      Ciao
      Enrico

    • #27388
      Up
      0
      Down
      ::

      Ciao,
      In che contesto ti servirebbe questa roba?

      Ciao Enrico e ciao a tutti,

      Innanzitutto grazie per la risposta; dunque vorrei mettere in evidenza la prima occorrenza di una parola all’interno di una definizione (uso \newtheorem). Direi che non ho bisogno di maiuscole, né punteggiatura, però potrebbero capitarmi lettere accentate!
      Acc, credevo/speravo fosse stato più semplice!!! Ma esistono DML (basati su TeX o meno) che prevedono operazioni del genere? Senza dover scomodare Perl (o altri linguaggi), anche se non ho grossi problemi ad imparare nuovi linguaggi (conosco C++, Java, C#, e un po’ di Caml), però mi piacerebbe utilizzare una soluzione limpida e nativa.

      Grazie mille!
      Ciao

    • #27389
      Up
      0
      Down
      ::

      Ciao,
      In che contesto ti servirebbe questa roba?

      Ciao Enrico e ciao a tutti,

      Innanzitutto grazie per la risposta; dunque vorrei mettere in evidenza la prima occorrenza di una parola all’interno di una definizione (uso \newtheorem). Direi che non ho bisogno di maiuscole, né punteggiatura, però potrebbero capitarmi lettere accentate!
      Acc, credevo/speravo fosse stato più semplice!!! Ma esistono DML (basati su TeX o meno) che prevedono operazioni del genere? Senza dover scomodare Perl (o altri linguaggi), anche se non ho grossi problemi ad imparare nuovi linguaggi (conosco C++, Java, C#, e un po’ di Caml), però mi piacerebbe utilizzare una soluzione limpida e nativa.

      Temevo fosse qualcosa del genere. 🙂

      Se hai una zanzara in camera, chiami forse il servizio di disinfestazione per liberartene? Suvvia! Quante definizioni hai nel tuo lavoro? Non puoi davvero pensare che un “automatismo” possa sostituire efficacemente la mente umana.

      Ciao
      Enrico

Visualizzazione 2 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top