Parentesi e parole in corsivo: una questione di spaziatura

  • Creatore
    Topic
  • #120800
    Up
    0
    Down
    ::


    Buongiorno.

    Mi trovo ad affrontare la seguente questione di micro-tipografia. Quando una parola in corsivo viene a trovarsi all’inizio o alla fine di una frase tra parentesi, soprattutto in caso di lettere con discendenti o ascendenti, possono crearsi antiestetici “scontri” tra il discendente/ascendente e la parentesi:

    [attachment:1]C:\fakepath\Schermata 2022-01-30 alle 11.56.41.png[/attachment]

    [attachment=2677]Schermata2022-01-30alle11.59.54.png[/attachment]

    La cosa più ovvia, che è già una buona soluzione, sarebbe aggiustare a mano, mettendo un `\kern1pt` o qualcosa del genere. Richiede un po’ di attenzione al momento della rilettura delle bozze…

    È anche possibile cercare nel sorgente le sequenze `(\` (trova tutte le parentesi immediatamente seguite da un comando, che potrebbe essere \emph o \textit o anche un comando di parola straniera, tipo `\textgerman`) e `})`, e valutare caso per caso.

    La domanda è: qualcuno conosce o almeno può immaginare una strada per automatizzare la cosa – cioè per dire a LaTeX: dove trovi aperta parentesi e subito dopo un cambio di font a corsivo, o corsivo + parentesi chiusa, aggiungi sempre un tot di crenatura?

    Uso LuaLaTeX, che permette di manipolare i font in modi abbastanza profondi (cf. https://tex.stackexchange.com/questions/312154/how-to-adjust-font-features-in-luatex : ma le features sono per quanto ne so indipendenti dal cambio di stile).

    Grazie in anticipo a chi potrà dare qualche pista!

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #120801
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Il problema a cui fai riferimento si manifesta anche con il tond, anche se ciò avviene più freuentemente con il corsivo.
        Il problema nasce dal fatto che alcuni caratteri dritti o inclinati sporgono fuiri dal rettangolo verticale alto come l’ascendente, profondo come il discendente, e largo quanto la larghezza “teorica” del carattere. Nella pagina 407 della GuidaGuIT si discute proprio di questa cosa e in particolare del simbolo dell’unità di misura del femtofarad dove il simbolo f del femto batte contro la F del farad.

        Fin dal tempo del plain TeX, il problema rea noto e Knuth aveva definito il comando \/ (barra rovescia e barra normale) che calcola quanto il carattere fuoriesce dal rettangolo verticale e aggiunge uno spazio corrispondente.
        Puoi definirti un comando tipo questo`\newcommand*{\incisocorsivo}{(\/#1\/)}` ma siccome questo piccolo difetto si manifesta raramente, credo che tu faccia prima a inserire il comando \/ solo in quei casi in cui si manifesta; non è automatico, ma così sei sicuro che non ci siano inconvenienti.

      • #120802
        samiel
        Partecipante
          Up
          0
          Down
          ::


          Se puoi mettere mano al font, c’è un altro modo per risolvere, definitivo.
          Ma, appunto, solo se puoi (legalmente) modificare li font
          e sai usare almeno un po’ un font editor

          m

        • #120803
          Up
          0
          Down
          ::


          Grazie a tutti e due.


          @samiel
          : grazie dell’idea, non ci avevo pensato – ma temo di non avere il permesso di farlo. Controllerò…


          @OldClaudio
          : grazie, le tue spiegazioni sono come sempre interessanti. C’è una cosa che non capisco bene. La Guida, alla pagina che indichi, sembra indicare che quando si usa il comando (p. es. \emph{}) invece dell’istruzione generica LaTeX “sa” dove inizia e finisce il corsivo, e mette per suo conto la “correzione italica”. Dunque mi verrebbe da pensare che l’idea del comando \/ del TeX originario sia stata in qualche modo “integrata” nel meccanismo di LaTeX. È così?

          Segnalo anche che usando un font odf (BemboBookMTPro) con fontspec e lualatex il comando \/ non ha nessun risultato visibile:

          `(\emph{jf})\\
          (\/\emph{jf}\/)\\
          (\emph{\/jf\/})`

          mi dà

          [attachment=2680]Schermata2022-01-31alle09.25.59.png[/attachment]

          Forse LaTeX non ha a disposizione tutti i dati per calcolare la correzione per quello specifico font?

          Comunque resta la soluzione di aggiungere un po’ di \kern.

          Attachments:
          You must be logged in to view attached files.
        • #120804
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Se usi \emph devi mettere i due \/ dentro emph a contatto con il corsivo.
            A me questo codice`\documentclass[12pt]{article}
            \newcommand\incisocorsivo[1]{(\emph{\/#1\/})}

            \begin{document}\Huge
            \incisocorsivo{jf}
            \end{document}` dà il risultato voluto, anche se la correzione italica dà uno spazio leggermente maggiore a destra della f, rispetto a quello alla sinistr adella j. Può darsi che dipenda dalla metrica del font Computer Modern, quello di default, ma non ho provato con altri font.

            PS: ho provato con i newtxtext (Times) e con i newpxtext (Palatino) e non funziona a causa delle metriche. Con i Latin Modern funziona correttamente.

            PPS: effettivamente con i new**text font la soluzione che proponevo non funziona, ma, peggio ancora, la soluzione che proponevo non serve a nulla, perché la definizione di \emph e delle sue macro subalterne, come descritte nel file latex.ltx (il codice sorgente del formato LaTeX), contiene già di suo il controllo della correzione italica di sinistra e di destra. Quindi dimentica ciò che ho scritto. La soluzione di aggiungere a mano un pochino di crenatura diventa l’unica soluzione valida. Cambiare la metrica dei font, come suggerisce @samiel, probabilmente ha anche degli effetti collaterali se non la si fa alla perfezione tenendo conto delle adiacenze della j e della f con qualunque altro carattere che presenti questi problemi; l’editing dei font, anche disponendo degli strumenti giusti, è delicatissimo; basta un niente per rovinare un font. Certo si può lavorare su una copia diversa, in modo da non rovinare l’oriiginale, ma richiede molta professionalità che io stesso, che mi considero una persona con una lunga dimestichezza con i caratteri (ne ho disegnati alcune centinaia), non ho assolutamente.

          • #120805
            Up
            0
            Down
            ::

            Iacobus1983″ post=121322Grazie a tutti e due.


            @samiel
            : grazie dell’idea, non ci avevo pensato – ma temo di non avere il permesso di farlo. Controllerò…


            @OldClaudio
            : grazie, le tue spiegazioni sono come sempre interessanti. C’è una cosa che non capisco bene. La Guida, alla pagina che indichi, sembra indicare che quando si usa il comando (p. es. \emph{}) invece dell’istruzione generica LaTeX “sa” dove inizia e finisce il corsivo, e mette per suo conto la “correzione italica”. Dunque mi verrebbe da pensare che l’idea del comando \/ del TeX originario sia stata in qualche modo “integrata” nel meccanismo di LaTeX. È così?

            Segnalo anche che usando un font odf (BemboBookMTPro) con fontspec e lualatex il comando \/ non ha nessun risultato visibile:

            `(\emph{jf})\\
            (\/\emph{jf}\/)\\
            (\emph{\/jf\/})`

            mi dà

            [attachment=2680]Schermata2022-01-31alle09.25.59.png[/attachment]

            Forse LaTeX non ha a disposizione tutti i dati per calcolare la correzione per quello specifico font?

            Comunque resta la soluzione di aggiungere un po’ di \kern.

            Il comando [tt]\/[/tt] non fa magie. La correzione corsiva della parentesi è probabilmente nulla e il comando non guarda affatto che cosa segue. In un mondo ideale i font OpenType dovrebbero avere una variante stilistica per le parentesi dritte anche in corsivo e potrebbero definire crenature opportune per queste varianti.

            Nel mondo reale non c’è altro da fare che aggiungere manualmente la crenatura. Non ho il font Bembo, ma con Junicode il problema è lo stesso.
            `
            \documentclass{article}
            \usepackage{fontspec}

            \setmainfont{Junicode}

            \begin{document}

            ({\itshape jf}) % nessuna correzione

            (\emph{jf}) % correzione automatica alla fine

            (\,\emph{jf}) % crenatura manuale all'inizio

            \end{document}
            `

            [attachment=2681]Screenshot2022-01-31at12.07.11.png[/attachment]

            Ciao
            Enrico

            Attachments:
            You must be logged in to view attached files.
        Visualizzazione 4 filoni di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top