parole chiave con \newcommand

  • Creatore
    Topic
  • #24397
    Up
    0
    Down
    ::


    Salve a tutti.

    Ho un problemino che a dire la verità è più un capriccio.
    Nel scrivere un report devo più volte ripetere alcune parole chiavi.
    Siccome queste spesso le metto all’interno di box tipo \emph{}
    o \textsf{}, ho pensato fosse più rapido definire nuovi comandi
    con il nome della parola chiave tipo:

    \newcommand{\FOSS}{\emph{FOSS }}
    \newcommand{\Netcdf}{\textsf{NetCDF }}

    il problema è che ho dovuto come vedete mettere uno spazio finale
    perché se no la parola veniva attaccata alla seguente.
    Se però la parola è seguita da un simbolo di punteggiatura o all’interno
    di una parentesi, con questo spazio fissato, il simbolo è staccato
    dalla parola, esempio

    NetCDF , o (FOSS )

    come posso fare per evitare questo? immagino che stia sbagliando
    qualcosa nel definire il comando, vero?

    Grazie mille a tutti

    Stefano

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #24398
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::


        Puoi usare il pacchetto xspace progettato proprio per questo.

        Nel preambolo caricare il pacchetto: \usepackage{xspace}
        `\newcommand{\FOSS}{\emph{FOSS}\xspace}
        \newcommand{\Netcdf}{\textsf{NetCDF}\xspace} `.
        Ciao.

      • #24399
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::


          `\documentclass{article}
          \newcommand{\FOSS}{\emph{FOSS}}
          \begin{document}
          A volte il nome \FOSS{} deve essere seguito da uno spazio (come in questo caso); altre volte, invece, lo spazio non ci va: \FOSS. Lo stesso capita con comandi come \TeX, \LaTeX{} eccetera.
          \end{document}`

        • #24400
          Up
          0
          Down
          ::


          ottimo!!!

          direi che l’ultima soluzione è la migliore. Non devo scaricare nessun pacchetto aggiuntivo in questa maniera.

          Grazie mille a tutti e due comunque.

          Stefano

        • #24401
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::


            A pensarci bene, la soluzione con xspace sembra migliore. Anzi, la domanda di Stefano mi spinge alla seguente riflessione: perché i comandi come \TeX, \LaTeX, … si comportano proprio così (per quello che riguarda gli spazi seguenti)?
            `\documentclass{article}
            \usepackage{xspace}
            \newcommand{\tex}{\TeX\xspace}
            \begin{document}
            A volte il nome \tex deve essere seguito da uno spazio (come in questo caso); alte volte, invece, lo spazio non ci va: \tex. Se è necessario violare questa regola (per esempio per scrivere “cose strane''), bastano due graffe: Ars\tex{}nica.
            \end{document}`
            Ci possono essere effetti collaterali (che magari mi sfuggono)? Non sarebbe più semplice che i comandi predefiniti come \TeX e \LaTeX si comportassero così senza la necessità di caricare il pacchetto xspace? In altre parole, potremmo definire il comportamento predefinito di \TeX e \LaTeX come un bug di LaTeX (corretto da xspace)?

            Ciao,
            L.

          • #24402
            DMW
              Up
              0
              Down
              ::

              A pensarci bene, la soluzione con xspace sembra migliore. Anzi, la domanda di Stefano mi spinge alla seguente riflessione: perché i comandi come \TeX, \LaTeX, … si comportano proprio così (per quello che riguarda gli spazi seguenti)?
              `\documentclass{article}
              \usepackage{xspace}
              \newcommand{\tex}{\TeX\xspace}
              \begin{document}
              A volte il nome \tex deve essere seguito da uno spazio (come in questo caso); alte volte, invece, lo spazio non ci va: \tex. Se è necessario violare questa regola (per esempio per scrivere “cose strane''), bastano due graffe: Ars\tex{}nica.
              \end{document}`
              Ci possono essere effetti collaterali (che magari mi sfuggono)? Non sarebbe più semplice che i comandi predefiniti come \TeX e \LaTeX si comportassero così senza la necessità di caricare il pacchetto xspace? In altre parole, potremmo definire il comportamento predefinito di \TeX e \LaTeX come un bug di LaTeX (corretto da xspace)?

              Ciao,
              L.

              Poi non si possono scrivere cose tipo Ars\TeX nica o \TeX nico.:D

              Comunque io uso
              ` \TeX{} testo` o `\TeX\ testo`

              Anche se ritengo buona anche la soluzione con xspace.

              Ciao

              Andrea

            • #24403
              Up
              0
              Down
              ::

              A pensarci bene, la soluzione con xspace sembra migliore.

              Non necessariamente: come spiega la stessa documentazione di xspace, qualche volta ci possono essere piccoli problemi.

              Anzi, la domanda di Stefano mi spinge alla seguente riflessione: perché i comandi come \TeX, \LaTeX, … si comportano proprio così (per quello che riguarda gli spazi seguenti)?
              `\documentclass{article}
              \usepackage{xspace}
              \newcommand{\tex}{\TeX\xspace}
              \begin{document}
              A volte il nome \tex deve essere seguito da uno spazio (come in questo caso); alte volte, invece, lo spazio non ci va: \tex. Se è necessario violare questa regola (per esempio per scrivere “cose strane''), bastano due graffe: Ars\tex{}nica.
              \end{document}`
              Ci possono essere effetti collaterali (che magari mi sfuggono)? Non sarebbe più semplice che i comandi predefiniti come \TeX e \LaTeX si comportassero così senza la necessità di caricare il pacchetto xspace? In altre parole, potremmo definire il comportamento predefinito di \TeX e \LaTeX come un bug di LaTeX (corretto da xspace)?

              L’obbligo di chiudere un comando con qualcosa che non sia uno spazio costringerebbe a contorsioni molto più complicate di quanti problemi risolverebbe. Preferiresti dover scrivere
              `\vskip2pt`
              e chiudere ogni riga di definizioni con %, anche quelle che terminano con un comando? Io, sinceramente, no. Si può anche sostenere che la scelta di Knuth non sia stata la migliore possibile, tuttavia la questione è spiegata nelle prime pagine del TeXbook e di qualsiasi guida. Andrei molto cauto a usare la parola “bug” parlando di TeX. 🙂

              Ciao
              Enrico

            • #24404
              lorenzo.pantieri
              Partecipante
                Up
                0
                Down
                ::

                Poi non si possono scrivere cose tipo Ars\TeX nica o \TeX nico.

                Secondo me ti sbagli, Andrea. Con il pacchetto xspace basta scrivere {} e puoi comporre quello che vuoi!

                Come spiega la stessa documentazione di xspace, qualche volta ci possono essere piccoli problemi.

                Ok.

                Si può anche sostenere che la scelta di Knuth non sia stata la migliore possibile, tuttavia la questione è spiegata nelle prime pagine del TeXbook e di qualsiasi guida. Andrei molto cauto a usare la parola “bug” parlando di TeX.

                La vedo così. Il fatto che comandi come \TeX e \LaTeX “si mangino” gli spazi che seguono è noto. Che la soluzione al problemino sia scrivere un paio di parentesi graffe anche. Resta il fatto che questa soluzione è un pochino scomoda e poco “naturale”: le parentesi graffe possono scappare. Si tratta di una svista piuttosto frequente. Uno scrive beato
                `\LaTeX è un programma bellissimo!`
                ed ecco l’errore! È certo un’esagerazione chiamare questo un “bug”. Però si tratta IMHO di un aspetto che può essere migliorato. Il pacchetto xspace permette di scrivere in modo più naturale. Le eccezioni possono capitare, ma bastano due parentesi graffe per gestirle.

                In generale, penso che uno dei punti di forza di LaTeX sia la sua modularità: i pacchetti permettono di superare brillantemente le “limitazioni” del programma.

                Ciao,
                L.

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

            Go to top