come creare una macro per abbreviare del testo [risolto]

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 9 anni fa da davidebond.
  • Creatore
    Topic
  • #111217
    davidebond
    Partecipante
      Up
      0
      Down
      ::


      Salve. Tutti sappiamo creare una macro per evitare di scrivere dei comandi lunghi. Per esempio:

      `
      \newcommand{\tql}{\textquoteleft}
      `

      In certi casi, il testo è sottinteso dal segno #. La mia domanda è invece: come si può creare una macro per evitare di scrivere del testo lungo? Per esempio, come si può scrivere un comando che abbrevi la scrittura di ” Le\’sniewski” per evitare errori o, per esempio, del testo che viene ripetuto più volte nel documento?

      Grazie.

      Ciao,

      davide

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #111218
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Nello stesso modo:`\newcommand\Lesniewski{Le\'sniewski}`Volendo si potrebe caricare anche il pacchetto xspace nel preambolo e definire invece`\newcommand\Lesniewski{Le\'sniewski\xspace}`Così facendo il comando “intelligente” \xspace si accorge se è immediatamente seguito da uno spazio o da un altro segno per cui inserisce da solo la fine della macro mettendo lui lo spazio esplicito; In sostanza si può scrivere nel testo` … come dice \Lesniewski nel suo fondamentale lavoro…` senza essere obbligati a mettere un riempitivo qualsiasi dopo la macro, per esempio `\Lesniewski\ oppure \Lesniewski{} o simili`Invece se scrivi ` … \Lesniewski, il famoso scienziato polacco, dice che…` il comando \xspace si accorge di essere immediatamente seguito da una virgola e non aggiunge nessuno spazio.

          Va da sé che se vuoi abbreviare ulteriormente, puoi definire il comando \Les, invece di \Lesniewski e risparmi ancora di più senza rinunciare alla correttezza di quanto viene effettivamante composto

        • #111219
          davidebond
          Partecipante
            Up
            0
            Down
            ::


            È vero. Grazie, non ci avevo mai pensato. Ecco il mio file di prova:

            `
            \documentclass{amsart}
            \usepackage{xspace}

            \newcommand\csb{if there exist injective functions $f : A \to B$ and $g : B \to A$ between the sets $A$ and $B$, then there exists a bijective function $h : A \to B$. In terms of the cardinality of the two sets, this means that if $\vert A\vert \leq \vert B\vert$ and $\vert B\vert \leq \vert A\vert$, then $\vert A\vert = \vert B\vert$; that is, $A$ and $B$ are equipollent\xspace}

            \begin{document}

            \noindent The Cantor-Schr\”oder-Bernstein's Theorem says that, \csb.

            \end{document}
            `

            Grazie per il suggerimento del pacchetto xspace che non conoscevo.

            Ciao,

            davide

        Visualizzazione 1 filone di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top