Utilizzare una variabile stringa.

  • Creatore
    Topic
  • #5185
    Up
    0
    Down
    ::


    Immagino sia possibile impostare una variabile di tipo stringa, come mi pare sia possibile impostare variabili contatore. Ad una prima ricerca sul forum non ho trovato nessuna indicazione sull’argomento, che non è trattato nemmeno sulle principali guide on-line; avrei perciò bisogno di qualche indicazione sui comandi per:
    – dichiarare
    – leggere
    – impostare
    una variabile stringa. Grazie.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #5186
      Up
      0
      Down
      ::

      Immagino sia possibile impostare una variabile di tipo stringa, come mi pare sia possibile impostare variabili contatore. Ad una prima ricerca sul forum non ho trovato nessuna indicazione sull’argomento, che non è trattato nemmeno sulle principali guide on-line; avrei perciò bisogno di qualche indicazione sui comandi per:
      – dichiarare
      – leggere
      – impostare
      una variabile stringa. Grazie.

      Non esistono variabili stringa nel linguaggio. Puoi simularle con comandi macro:`\newcommand{\my}{stringa}`Se vuoi anche maneggiarle, devi imparare a usare \def e \edef (TeXbook), dove trovi anche le “liste di oggetti” (token lists).
      Ciao
      Enrico

    • #5187
      Up
      0
      Down
      ::

      Non esistono variabili stringa nel linguaggio.

      Questo complica parecchio le cose. Cercherò di spiegare il mio problema tramite un piccolo esempio: forse esiste una soluzione appropriata al sistema che non richidiede questo tipo di variabili.

      Si ipotizzi di voler creare l’elenco dei giocatori di un club bocciofilo e che per qualche strano motivo sia necessario indicare il nome della squadra prima del nome del giocatore. Pensavo allora di utilizzare un comando per indicare automaticamente il nome della squadra prima di quello del giocatore (si immagini che i comandi inseriti svolgano il ruolo intuibile dal nome stesso del comando):

      `\newcommand[1]{giocaore}{\leggi{varStringa} – #1}
      ______________________________________________________

      \impostaVariabileStringa{varStringa}{Squadra rossa}
      \section{Squadra rossa}
      \giocatore{Mario}
      \giocatore{Alfredo}
      \giocatore{Lucio}

      \impostaVariabileStringa{varStringa}{Squadra verde}
      \section{Squadra verde}
      \giocatore{Bepi}
      \giocatore{Toni}
      \giocatore{Aldo}`

      in modo che si ottenga:

      Squadra rossa
      Squadra rossa – Mario
      Squadra rossa – Alfredo
      Squadra rossa – Lucio

      Squadra rossa
      Squadra verde – Bepi
      Squadra verde – Toni
      Squadra verde – Aldo

      La soluzione citata da egreg9 può essere appropriata?

    • #5188
      ev
      Partecipante
        Up
        0
        Down
        ::

        La soluzione citata da egreg9 può essere appropriata?

        Proposta:`\makeatletter
        \newcommand*{\impostanomesquadra}[1]{\def\@nome@squadra{#1}}
        \newcommand*{\nomesquadra}{\@nome@squadra}
        \newcommand*{\giocatore}[1]{\nomesquadra\ – #1}
        \makeatother

        \impostanomesquadra{Squadra rossa}
        \section{\nomesquadra}
        \giocatore{Mario}
        \giocatore{Alfredo}
        \giocatore{Lucio}

        \impostanomesquadra{Squadra verde}
        \section{\nomesquadra}
        \giocatore{Bepi}
        \giocatore{Toni}
        \giocatore{Aldo}`Esistono innumerevoli variazioni sul tema.

      • #5189
        Up
        0
        Down
        ::


        Sembra esattamente quello che cercavo; appena avrò un po’ di tempo cercherò di decifrare il tuo codice. Grazie anche a Enrico, che immagino volesse proprio indicare una soluzione di questo tipo: il fatto è che non avevo mai sentito parlare di \def e \edef (TeXbook), come pure del 90% dei comandi utilizzati nella maggior parte dei pacchetti.

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

    Go to top