Plain, spazio tra lettere di una stessa parola.

  • Creatore
    Topic
  • #64998
    Up
    0
    Down
    ::


    Salve.

    Esiste un modo per salvare in un registro \dimen lo spazio tra due lettere contigue di una stessa parola?

    Vorrei scrivere, per un logo, parole con l’iniziale di un font grande e il resto delle lettere con un font piccolo. Ma senza un adeguato kerning l’iniziale sembra `staccata’ dal resto della parola; vorrei quindi misurare e modificare lo spazio tra lettere.

    Grazie, ciao.

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #64999
      Up
      0
      Down
      ::


      p.s. — Prima che mi si dica “fai delle prove”, ne ho fatta una, la seguente:

      `
      \setbox0=\hbox{s}
      \dimen0=\wd0
      \setbox0=\hbox{a}
      \advance\dimen0 by\wd0
      \setbox0=\hbox{sa}
      \advance\dimen0 by-\wd0
      Il registro \string\dimen0 contiene \the\dimen0
      \bye`

      dal quale sembra che si possa evincere che due lettere contigue hanno una distanza di 0pt; resta però il fatto che fonts diversi sembrano `staccare’ tra di loro.

      Ciao.

    • #65000
      Up
      0
      Down
      ::

      Sam Qasbah” post=64056Salve.

      Esiste un modo per salvare in un registro \dimen lo spazio tra due lettere contigue di una stessa parola?

      Vorrei scrivere, per un logo, parole con l’iniziale di un font grande e il resto delle lettere con un font piccolo. Ma senza un adeguato kerning l’iniziale sembra `staccata’ dal resto della parola; vorrei quindi misurare e modificare lo spazio tra lettere.

      Puoi misurare la crenatura inserita automaticamente tra due lettere con
      `\setbox0=\hbox{VA}
      \setbox2=\hbox{V\kern0pt A}
      \dimen0=\wd0
      \advance\dimen0 by -\wd2`
      In \dimen0 avrai la crenatura inserita. Nel caso specifico troverai -1.11113pt. Nel file .tfm c’è, per la verità, -1.11112 pt; questo è dovuto a vari fattori, ma la differenza è di 1sp (cioè 1/65536 di punto).

      Se fai la prova con “sa” trovi 0pt, perché il font cmr10 non prevede crenatura fra queste due lettere.

      In ogni caso, se fra due lettere inserisci una crenatura esplicita, TeX non farà alcun aggiustamento automatico (ho usato questa proprietà per il calcolo di prima).

      Ciao
      Enrico

    • #65001
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        La risposta che ti ha dato Enrica non fa una grinza, ci mancherebbe altro, ma secondo me non risponde alla tua domanda, ma alla domanda: Quanto vale l’accostamento fra due lettere dello stesso font?

        La scatola di ogni lettera (come anche il supporto metallico dei vecchi caratteri mobili) non contiene solo la lettera ma anche le spalle, cioè gli spazi bianchi minimi a destra e a sinistra.

        Il tuo coalcolo non può misurare questo spazio, perché, senza crenatura, tra la s e la a dello stesso font lo psazio fra le due lettere non è inserito da qualche programma, ma fa parte della scatola che contiene ciscuna lettera.

        Ora se tu vuoi disegnare un logo accostando una grande maiuscola, tratta da un certo font, ad altre lettere di copro minore tratte da un altro font, non puoi nemmeno misurare la crenatura, perché fa lettere di font diversi pdftex, xetex, luatex non inseriscono nessun accostamento.

        Risultato: devi procedere per tentativi finché l’occhio non ti dice che va bene. Se devi accostare una Q da 20pt a una A del maiuscoletto del corpo a 10pt (solo per esempio, perché un logo con queste due lettere di dimensioni così diverse farebbe semplicemente pena) allora cominci a mettere una accanto all’altra separate da \kern 0pt; poi metti successivamente dei valori negativi di punto in punto poi in seconda approssimazione di decimo di punto in decimo di punto, finché la forma concava della grande Q e la forma “convessa” (invece di sporgere in fuori si ritrae verso il centro, ma non si tratta di un profilo geometricamente convesso) della piccola A maiuscoletta non stano bene assieme, nel senso che non sono né troppo distanti né troppo vicine. Ma solo l’occhio ti può dire quando va bene.

      • #65002
        Up
        0
        Down
        ::

        OldClaudio” post=64060La risposta che ti ha dato Enrica non fa una grinza, ci mancherebbe altro, ma secondo me non risponde alla tua domanda, ma alla domanda: Quanto vale l’accostamento fra due lettere dello stesso font?

        E’ vero, la mia domanda, espressa con altre parole, era esattamente: è possibile misurare lo spazio di spalla di un certo carattere?
        Ciò non toglie che, a mio parere, Enrico abbia comunque risposto alla mia domanda, seppure per vie `laterali’. E, come al solito, la sua risposta è stata in grado di mostrare orizzonti inaspettati.

        OldClaudio” post=64060
        Il tuo coalcolo non può misurare questo spazio, perché, senza crenatura, tra la s e la a dello stesso font lo psazio fra le due lettere non è inserito da qualche programma, ma fa parte della scatola che contiene ciscuna lettera.

        Questo lo sospettavo, ma speravo in qualche risorsa sorprendente scovata da qualche stregone del TeX.

        Ti ringrazio molto per la risposta distesa ed esaustiva. Ho un ultimo dubbio: il codice che ho riportato nel primo post (e che ho un pò ottimizzato per ridurre l’allocazione a due soli registri) se applicato al cmr10 restituisce in \dimen0 0.0pt; se invece uso un certo font commerciale opentype a circa 12 pt restituisce in \dimen0 0.036pt (compilato con XeTeX).

        Questo dovrebbe significare che la somma della singola `s’ e della singola `a’ è maggiore della sillaba `sa’ appunto di 0.036pt. Peraltro questo valore è lo stesso di quello che ottengo con il codice di Enrico
        `\setbox0=\hbox{sa}
        \dimen0=\wd0
        \setbox0=\hbox{s\kern0pt a}
        \advance\dimen0 by-\wd0
        Il registro \string\dimen0 contiene \the\dimen0
        # Il registro \dimen0 contiene -0.036pt`

        Questa crenatura `automatica’ è imposta dal disegnatore del font o viene applicata da XeTeX per un qualche motivo tipografico?

        Grazie, ciao.

      • #65003
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          XeTeX, a seconda di quali opzioni siano state usate per caricare i fofnt, può spazieggiare, come pure i font OpenType possono avere delle crenature (accostamenti) non presenti nei font soliti; quei 0.036pt di accostamento possono benissimo essere una crenatura automatica del font che hai usato. Il codice di Enrico e il tuo misurano, appunto l’accostamento/kerning introdotto dai font, ma non sono in grado di misurare le spalle.

          Ingrandendo moltissimo i caratteri dello stesso font li si potrebbe stampare ciascuno in un file pdf; scontornali con pdfcrop, sperando che sia sufficientmente precisi, per poi ricomporre le due immagini in una scatola da misurare; lo stesso si potrebbe fare per la sillaba sa, e confrontare le larghezze dell’unione delle due prime scatole e delle due seconde.
          Meglio ancora; si potrebbe misurare la larghezza della habox che contiene `s’, e la larghezza della scatola che contiene l’immagine scontornata della `s’; analogamente per la `a’; elaborando i dati raccolti si potrebbero probabilmente determinare le spalle destre e sinistre di ciascuna lettera. In realtà le spalle da misurare sono quattro e le misure fatte sono tre; bisogna fare qualche ipotesi per rendere definito il problema.

          Ma davvero l’accostamento a occhio non ti piace? Si tratta di un solo logo; non di un programma per costruire infiniti loghi.

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

      Go to top