Anomalia nell’output di XeLaTeX con Polyglossia e MacTeX 2019

  • Creatore
    Topic
  • #117105
    Up
    0
    Down
    ::


    Buon pomeriggio a tutti,
    da qualche tempo mi capita un’anomalia compilando documenti nei quali utilizzo polyglossia con XeLaTeX.
    Allego di seguito un esempio minimo (qui è con memoir, ma è lo stesso con altre classi) e una foto dell’output che ottengo (ho una MacTeX 2019 su iOS 10.15.2 – con la MacTeX 2018 non succede).

    `\documentclass[a4paper,twoside,onecolumn,openright,final]{memoir}

    \usepackage{polyglossia}
    \setmainlanguage{italian}
    \setotherlanguage{english}

    \begin{document}
    Ecco che compare questo spazio tra le virgolette e la parola “\foreignlanguage{english}{word}”.
    \end{document}`

    Grazie di ogni riscontro e di ogni aiuto.

    Giovanni
    [attachment=2364]Schermata2020-01-28alle14.22.45.png[/attachment]

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


        Purtoppo è un problema noto co Catalina, l’ultimo OSX (che io per fortuna non ho ancora aggiornato e lavoro ancora con Mojave). Il problema è già stato segnalato.

        Per ora te la cavi definendo`\newcommand\toglispazi{\csname @killglue\endcsname}` che deve essere inserito subito dopo le virgolette aperte e prima della parola che segue

        Poi speriamo tutti quanti che o dal lato MacTeX o dal lato Mac OSX le cose vengano sistemate.

      • #117107
        samiel
        Partecipante
          Up
          0
          Down
          ::


          non so se e cosa c’entri il sistema operativo,
          ma lo stesso bug si produce anche in Linux

          m

        • #117108
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            samiel” post=117533non so se e cosa c’entri il sistema operativo,
            ma lo stesso bug si produce anche in Linux

            m

            E anche sotto Windows.
            Siamo forse di fronte a una caccia allo spazio spurio?

            Questo invece per LuaLaTeX non da problemi:
            `% !TeX program = lualatex
            \documentclass[a4paper,twoside,onecolumn,openright,final]{memoir}

            \usepackage[italian,english]{babel}

            \begin{document}
            Ecco che compare questo spazio tra le virgolette e la parola “\foreignlanguage{english}{word}”.
            \end{document}`

            R.

          • #117109
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              È choaro che non poso provare con Windods e Linux perché non ne dispongo, ma iltuo esempio minimo compilabile funziona perfettamente sul mio Mac con OS 10.14.6 Mojave con tutti e tre i programmi; co XelaTeX e LuaLaTeX i font di default sono i LatinModern nella versione OpenType; cone pdfLaTeX, non avendo specificatonessun pacchetto, sono i Computer modern.

              Sembra invece che il Mac OS 10.15.0 Catalina, che io non ho, abbia problemi con i font non standard; ricordate le 4 pagine di messaggi che fra tutti ci siamo scambiati su un post di @gregorius? Ho il sospetto che il problema risieda in Catalian.

              Ora voglio provare con l’esempio di @Yokanaan, se riesco a ricustruirlo.

              [EDIT]
              Fatto girare con l’esempio di @Yokanaan, con polyglossia non riesce, mentre con babel viene perfetto. Sempre sul mio Mac.

              Dunque sembra che l’inghippo dipenda da polyglossia.

              La soluzione per @Yokanaan, dunque sarebbe quella di sostituire come segue:`% !TEX TS-program = XeLaTeX
              \documentclass[a4paper,twoside,onecolumn,openright,final]{memoir}

              %\usepackage{polyglossia}
              %\setmainlanguage{italian}
              %\setotherlanguage{english}

              \usepackage[english,italian]{babel}

              \begin{document}
              Ecco che compare questo spazio tra le virgolette e la parola “\foreignlanguage{english}{word}”.
              \end{document}`

              Mettendo le virgolette dentro l’argomento di \foreignlanguage, così`% !TEX TS-program = XeLaTeX
              \documentclass[a4paper,twoside,onecolumn,openright,final]{memoir}

              \usepackage{polyglossia}
              \setmainlanguage{italian}
              \setotherlanguage{english}
              %\usepackage[english,italian]{babel}

              \begin{document}
              Ecco che compare questo spazio tra le virgolette e la parola \foreignlanguage{english}{“word”}.
              \end{document}`lo spazio spurio sparisce fra la virgoletta aperta e word, ma lo spazio prima della virgoletta aperta è visibilmente più grande di quello che c’è fra le altre parole; sospetto fortemente, quindi, di \foreignlanguage, versione di polyglossia. E questo è un guaio, perché il curatore di polyglossia “ha altro da fare” (eufemismo…)

            • #117110
              Up
              0
              Down
              ::


              Grazie di cuore a tutti!
              Sulle prime avevo pensato di fare un downgrade a Mojave, ma poi ho provato a sostituire polyglossia con babel ed è andato tutto piuttosto bene, salvo che in qualche (raro) paragrafo dove avevo bisogno di citare qualche parola ebraica ottenevo risultati aberranti [cf. immagine 1] (e a quanto ho trovato in giro sembra che il problema sia di non definitiva soluzione).

              [attachment]C:\fakepath\Schermata 2020-01-30 alle 07.44.31-min.png[/attachment]

              Oltre a questo, in concomitanza con la sostituzione di polyglossia con babel mi compaiono quegli strani cerchi all’inizio di paragrafi prossimi all’ambiente {paracol} [cf. immagine 2], quindi mi serviva tornare a uno status quo piú stabile. Piuttosto che fare il downgrade di sistema, tuttavia, ho optato finalmente per farlo della MacTeX (con la versione 2018 sembra funzionare tutto).

              [attachment=2365]Schermata2020-01-30alle07.44.15.png[/attachment]


              @OldClaudio
              mi ha incuriosito con l’eufemistico accenno al curatore di polyglossia, ma le curiosità servono a poco: una cosa che invece può forse tornare utile è la constatazione che l’anomalia da cui siamo partiti non mi pare riscontrarsi col comando per la lingua latina, mentre con gli altri sí. Chi sa leggere il codice del pacchetto potrebbe provare a verificare questa cosa.

              Di nuovo grazie a tutti e buona giornata.

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


                Guarda, non è semplice leggere il codice quando succedono cose di questo genere; recentemente, con un pacchetto che ho scritto io, ho scoperto un errore che produceva uno spazio spurio. Ho tracciato coni comandi del pacchetto trace , limitandomi a due sole righe di codice e mi sono dovuto sbobbare circa 60 000 righe di traccia; per mia fortuna sono riuscito ad individuare l’errore, ma ero facilitato dal fatto che sapevo esattamente che cosa il codice avrebbe dovuto fare; ci ho messo un paio d’ore ma l’ho scoperto e l’ho corretto.
                È molto difficile analizzare queste cose quando riguardano codice sono fatto da altri.

              • #117112
                Up
                0
                Down
                ::



                @OldClaudio
                , ho il piacere di confermarvi che con MacTex 2020 il problema scompare!

              • #117113
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Grazie. era una notizia in cui speravamo, non solo tu ed io, ma ho ricevuto segnalazioni di comportamenti simili.

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

              Go to top