\hyphenation e le parole con il trattino

  • Creatore
    Topic
  • #8407
    Up
    0
    Down
    ::


    Devo inserire nel mio documento il testo TASC-INFM e vorrei evitare che venga spezzato a fine riga.

    Purtroppo con il comando \hyphenation{TASC-INFM} sembra quasi che stia suggerendo di proposito a Latex di spezzare la parola tra TASC e INFM, che ironicamente è l’opposto delle mie intenzioni… 🙂

    come posso fare?
    grazie
    LuCa

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #8408
      Up
      0
      Down
      ::


      Ciao Luca.

      Su due piedi, protresti inserire la parola che non vuoi spezzare in una scatola:
      `\hbox{TASC-INFM} `
      In teoria dovrebbe bastare.

      Nota che, se tu non avessi avuto bisogno del trattino, avrebbe potuto bastarti una tilde (che legava le parole con uno spazio bianco e impediva loro, per quanto possibile, di essere stampate su due righe differenti). In questo caso, inoltre, non ci sarebbe stato bisogno di ricorrere alla scatola, che forse potrebbe essere considerato un trucco non proprio pulitissimo…

    • #8409
      Up
      0
      Down
      ::

      `\hbox{TASC-INFM} `

      E, già che ci siamo, se ti è pesante scrivere \hbox{TASC-INFM} ogni volta che ti serve, potresti definire nel preambolo il comando:

      `\newcommand{\TASCINFM}{\hbox{TASC-INFM}}`

      così ti sarebbe sufficiente scrivere, ogni volta che ti occorre, solo \TASCINFM e non \hbox{TASC-INFM}. Siamo arrivati alla stessa lunghezza nella digitazione, così… 😉

    • #8410
      Up
      0
      Down
      ::


      Si certo, sono soluzione che avevo già immaginato. Ma di solito cerco di risolvere i problemi apportando modifiche al solo preambolo senza dover intervenire sul documento già scritto.
      In questo caso, per coerenza, dovrei sostituire il termine con il comando ovunque nel documento, anche dove non và a capo.

      Comunque le tue proposte funzionano, grazie dell’interessamento.
      Luca

    • #8411
      Up
      0
      Down
      ::

      di solito cerco di risolvere i problemi apportando modifiche al solo preambolo senza dover intervenire sul documento già scritto.

      Questo è giusto, ma mi sa che in questo caso non puoi farci niente. Ti riporto un esempio che talvolta compare anche nelle guide base di LaTeX (per esempio, su Una (mica tanto) breve introduzione a LaTeX2e, a pag. 26 (42)): se tu devi scrivere un documento, e in questo documento ti dicono espressamente che nella stringa “Ing. Bianchi” le parole “Ing.” e “Bianchi” non devono essere separate in nessun punto del documento, tu sei comunque costretto (se vuoi rispettare la consegna) a piazzare una tilde tra “Ing.” e “Bianchi” all’interno del tuo documento per ogni occorrenza di questa stringa, semplicemente perché non sai in che punto della riga essa andrà a finire. Anzi, se vedi proprio che tale stringa oggi casca a metà riga, non puoi comunque desumere alcun posizionamento assoluto della stessa, dal momento che tra un mese potrebbe insorgere la necessità di modificare quel testo, e la stringa che prima cadeva a metà ora viene spezzata…

      Nel dubbio, non hai altra scelta che inserire la tilde in tutte queste occorrenze, anche per quelle che, potenzialmente, potrebbero non averne mai bisogno.

      Almeno secondo me, quindi, il fatto di dover modificare tutte le occorrenze di “TASC-INFM” (in “\TASCINFM”) non è più grave di doverlo fare per tutte quelle di “ing. Bianchi” (in “ing.~Bianchi”); il vero problema è se la soluzione della scatola è pulita o no… 🙂

      Comunque, ho trovato un’altra fonte che, più o meno, corrobora la mia tesi.

      Comunque le tue proposte funzionano, grazie dell’interessamento.

      Grazie a te! A presto! 🙂

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

        Potresti definire nel preambolo il comando:
        `\newcommand{\TASCINFM}{\hbox{TASC-INFM}}`
        così ti sarebbe sufficiente scrivere, ogni volta che ti occorre, solo
        `\TASCINFM`
        Siamo arrivati alla stessa lunghezza nella digitazione, così…

        Penso che nel sorgente si debba poi scrivere
        `
        \TASCINFM{}
        `
        per avere la spazio dopo il comando.

        Quanto a
        `
        Ing.~Bianchi
        `
        meglio scriverlo sempre così, per evitare che LaTeX inserisca uno spazio maggiore fra “Ing.” e “Bianchi”, interpretendo il punto come punto fermo.

        Lorenzo

      • #8413
        Up
        0
        Down
        ::

        Penso che nel sorgente si debba poi scrivere
        `
        \TASCINFM{}
        `
        per avere la spazio dopo il comando.

        Non necessariamente, ci risparmiamo un carattere usando `\TASCINFM\`.

        Ciao.

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

          `\TASCINFM\`.

          Ciao Emiliano. E’ proprio la stessa cosa? Mi sembra di aver letto su Impara LaTeX che
          `
          \
          `
          sia uno spazio a dimensione fissa. Sempre su Impara LaTeX mi pare sia scritto che
          `
          ~
          `
          sia uno spazio insecabile a dimensione fissa (ma quest’ultima proprietà secondo me non è vera).

          Altro dubbio: non capisco perché non sia previsto in automatico in comandi come
          `
          \LaTeX testo
          `
          la spaziatura fra “LaTeX” e “testo”.

          Lorenzo

        • #8415
          Up
          0
          Down
          ::

          Altro dubbio: non capisco perché non sia previsto in automatico in comandi come
          `
          \LaTeX testo
          `
          la spaziatura fra “LaTeX” e “testo”.

          Perché in questo caso non potresti scrivere cose come “TeXnica” (ottenuto con “\TeX nica”).

        • #8416
          Up
          0
          Down
          ::

          `\TASCINFM\[color=darkblue][/color]`.

          […]E’ proprio la stessa cosa?[…]

          Credo che non lo sia. Il mio metodo prevede di indicare una spaziatura con il pretesto di interrompere il comando. A riguardo della spaziatura,

          * . Spaces append glue to the current list. The exact amount of glue depends on \spacefactor, the current font, and \spaceskip and \xspaceskip parameters, as described in Chapter 12.
          * \. A control-space command appends glue to the current list, using the same amount that a inserts when the space factor is 1000.

          \spacefactor è 1000 quando TeX processa materiale in box orizzontali, quindi durante il testo normale.

          Questo è un vizio che mi rimane da quando ancora scrivevo con TeX e pertanto credo che sia stato lo stesso Knuth a suggerirne l’utilizzo nel suo The TeXbook: capitolo 3, pagina 8, con la spiegazione applicata al logo “\TeX”.

          Ciao.

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


            Perfetto.

            Grazie a Lapo ed Emiliano,
            L.

          • #8418
            Up
            0
            Down
            ::

            [quote]`\TASCINFM\[color=darkblue][/color]`.

            […]E’ proprio la stessa cosa?[…]

            Credo che non lo sia. Il mio metodo prevede di indicare una spaziatura con il pretesto di interrompere il comando. A riguardo della spaziatura,

            * . Spaces append glue to the current list. The exact amount of glue depends on \spacefactor, the current font, and \spaceskip and \xspaceskip parameters, as described in Chapter 12.
            * \. A control-space command appends glue to the current list, using the same amount that a inserts when the space factor is 1000.

            \spacefactor è 1000 quando TeX processa materiale in box orizzontali, quindi durante il testo normale.

            Questo è un vizio che mi rimane da quando ancora scrivevo con TeX e pertanto credo che sia stato lo stesso Knuth a suggerirne l’utilizzo nel suo The TeXbook: capitolo 3, pagina 8, con la spiegazione applicata al logo “\TeX”.

            Ciao.[/quote]C’è qualche imprecisione. Quando si compone il logo \TeX, alla fine l’ultimo carattere è una X maiuscola senza alcuna protezione data da \hbox. Quindi lo space factor è 999.

            E infatti la definizione del comando \TeX data in LaTeX è `T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@`e quindi lo \spacefactor è rimesso a posto automaticamente come se la lettera fosse minuscola. Il tutto però ha rilevanza solo quando \TeX è seguito da un segno di interpunzione. Se vogliamo solo uno spazio dopo, “\TeX\ ” e “\TeX{} ” sono, all’atto pratico, del tutto equivalenti. Ma con la definizione data in Plain TeX,`(… \TeX). Probably`dà un risultato diverso rispetto a`(… \TeX\spacefactor1000). Probably`Per chi non lo sapesse, \@ è equivalente a dare \spacefactor1000.

            Ciao
            Enrico

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

              …Se vogliamo solo uno spazio dopo, “\TeX\ ” e “\TeX{} ” sono, all’atto pratico, del tutto equivalenti…

              Perfetto! Grazie per la spiegazione!

              Ciao,
              L.

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

          Go to top