Re: Kerning dell’apostrofo in Adobe Jenson Pro

#84564
OldClaudio
Partecipante
    Up
    0
    Down
    ::



    @samiel
    , ho dei dubbi sulla corretta formazione dei font virtuali, o meglio dei loro file che contengono le loro metriche (i tfm, per intenderci).

    Infatti in greco codificato LGR la sequenza, per esempio, [tt]’w[/non forma una crenatura (kerning) fra l’apostrofo e la omega minuscola, ma forma una legatura, cioè, quindi, i due caratteri apostrofo e omega non vengono accostati, ma vengono sostituiti da omega con l’accento acuto, ciò da un altro carattere.

    Ora le due dichiarazioni o comandi \greek e \otherlanguage{greek} fanno cose diverse; se posso immaginare correttamente quello che le rande funzionalmente diverse è che \otherlanguage{greek} (che è il vero comando che viene eseguito all’apertura dell’ambiente, dopo che si è aperto un gruppo, che varrà chiuso con \end{otherlanguae}) non esegue quella magia di \lowercase… \edef{~}{‘} che viene eseguita con il comando \greek. Questa magia in sostanza sembra dire che l’apostrofo è uguale a se stesso, ma non è così semplice, è un vero “dirty trick” con il quale si fanno cose, appunto, magiche, e che solo i wizard sanno fare (io non sono un wizard); c’è di mezzo un gioco di categorie dei caratteri, della effettiva posizione dell’apostrofo ricavato dai font OpenType, probabilmente dall’indirizzo che identifica la virgoletta alta aperta semplice, mentre l’apostrofo ASCII che usi nella definizione è il vero apostrofo, non la virgoletta alta. Insomma si tratta di raffinatezze che sfuggono alla comprensione di noi che non siamo non dotati di poteri magici.

    Quello che ti suggerirei di fare è di estrarre la magia e assegnarla ad un comando, per esempio
    `\def\adjustapostrophe{\begingroup\lccode`\~=`\'
    \lowercase{\endgroup\edef~}{'}}` (l’ambiente code in questa posizione sembra non volerne sapere) poi di ridefinire \greek (facoltativo; in realtà lo puoi lasciare così com’è, ma se lo vuoi ridefinire, lo fai così: ) `\DeclareRobustCommand{\greek}{%
    \fontencoding{LGR}\fontfamily{MinionPro-OsF}\selectfont
    \def\encodingdefault{LGR}
    \adjustapostrophe
    }`
    Poi all’interno di otherlanguage, all’inizio dell’argomento, aggiungi:`
    \begin{otherlanguage}{greek}\adkustapostrophe s'wzein t`a fain'omena\end{otherlanguage}`

    Ovviamente potresti rideifnre il comportamanto del comando di apertura dell’ambiente otherlanguage, come potresti aggiungere alle definizioni di \extrasgreek e \noextrasgreek quel comando \adjustapostrophe in modo da attivarlo quando entri in greco e di disattivarlo quando ne esci.

    Si tratta di pezze (patch, tacón, e simili) ma il tutto dipende da come sono stati estratti i font Type 1 dai font MinionPro-OsF con il programma di installazione e creazione di tali font che hai usato.

    Forse Enrico può trovare qualcosa che sia un rammendo più elegante, invece che una volgare toppa.

    Go to top