[Resolved] [LuaJitLaTeX] Errore con codifica TU

  • Creatore
    Topic
  • #109668
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao a tutti.
      Ho elaborato dei sorgenti in LuaJitLaTeX che si connettono a database e compongono dei report.
      Questo lavoro non è accademico ma fa parte di un progetto per la messa a norma di un elevato numero di impianti.

      Dopo uno degli ultimi aggiornamenti alla TeX Live 2016 in ambiente Windows 10, ricevo il seguente errore in avvio di compilazione:
      `*************************************************
      * fontspec warning: “tu-clash”
      *
      * I have found the tuenc.def encoding definition file but the TU encoding is
      * not defined by the LaTeX2e kernel; attempting to correct but you really
      * should update to the latest version of LaTeX2e.
      *************************************************
      (c:/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
      (c:/texlive/2016/texmf-dist/tex/latex/base/tuenc.def
      ! Missing \endcsname inserted.

      \def
      l.252 … \UnicodeEncodingName {}{“007E}

      ?
      Processo interrotto dall'utente`
      causato dalla compilazione del seguente sorgente:
      `% !TeX program = LuaJitLaTeX

      \documentclass{article}
      \usepackage{fontspec}
      \begin{document}
      Ciao!
      \end{document}`

      L’errore non si verifica in LuaLaTeX e riguarda, dato il sorgente MWE, qualcosa di “sistema”.
      Ho indagato ma non sono riuscito a capire dove sia l’inghippo e come risolvere nel frattempo che venga poi risolto in successivi aggiornamenti.
      Mi preme però che i sorgenti LuajitLaTeX funzionino alla perfezione… per consegnare il progetto.
      Potete aiutarmi?
      Grazie.
      R.

    Visualizzazione 7 filoni di risposte
    • Autore
      Risposte
      • #109669
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Sono riuscito a creare il formato luajitlatex.fmt ma non riesco a lavorarci su nemmeno dalla linea di comando.

          Tuttalvia il tuo MWE con lualatex funziona benissimo, come dici anche tu. quindi il problema deve essere collegato a luajittex e/o al suo formato.

          Mi pere di ricordare che anche tu avessi avuto dei problemini a creare un engine o comunque un eseguibile luajitlatex da usare da linea di comando con il formato giusto. è vero o ricordo male? Ne avevi scritto qualcosa sul forum? in che messaggio?

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

            OldClaudio” post=109896Sono riuscito a creare il formato luajitlatex.fmt ma non riesco a lavorarci su nemmeno dalla linea di comando.

            Tuttalvia il tuo MWE con lualatex funziona benissimo, come dici anche tu. quindi il problema deve essere collegato a luajittex e/o al suo formato.

            Mi pere di ricordare che anche tu avessi avuto dei problemini a creare un engine o comunque un eseguibile luajitlatex da usare da linea di comando con il formato giusto. è vero o ricordo male? Ne avevi scritto qualcosa sul forum? in che messaggio?

            Ciao Claudio,
            ne ho scritto nell’articolo per Ars23 non ancora pubblicato.
            Il problema si riferiva al fatto che TeX Live su Linux non prevede un eseguibile luajitlatex.
            In windows l’eseguibile c’è ma da qualche giorno ho questo problema.
            Non capisco perché con LuaLaTeX funziona e con LuajitLaTeX no.
            Il formato dovrebbe essere lo stesso.

            Se hai crerato il formato puoi compilare con luajittex con l’opzione fmt:`$ luajittex –fmt=luajitlatex `

            Se premo invio forzando la continuazione della compilazione, il pdf viene prodotto ma ha un glifo tilde in prima posizione.
            Ho convertito i nuovi report a LuaLaTeX creado file intermedi. Infatti con LuaLaTeX non risco ha installare un driver Lua per il database… perché appunto lavoro sotto Windows dove compilare binding non è banale.
            Per questi report non ho il tempo di riconvertirli a LuaLaTeX creando file intermedi perché non è banale.

            Nel file tuenc.def mi sembra tutto in ordine, anche alla riga 252.
            Grazie.
            R.

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


              Ciao.
              A quanto pare qualcosa di strano nel file tuenc.def c’è.
              Le righe incriminate sono proprio alla linea 251 e 252 e sono le seguenti:
              `\DeclareTextComposite{\^} \UnicodeEncodingName {}{“005E}
              \DeclareTextComposite{\~} \UnicodeEncodingName {}{“007E}`
              come vedete il primo argomento è vuoto, mentre tutte le righe successive hanno una lettera.
              Ho inserito una lettera a caso e tutto è tornato normale.
              Mi vien da dire: tanto lavoro per nulla.

              Non ho idea del perché. Del perché LuajitLaTeX ne è sensibile e LuaLaTeX no.
              Tra l’altro il file sembra essere sotto il controllo del LaTeX3 team.
              Un saluto.
              R.

            • #109672
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                In effetti mi mancava la riga giusta per luajittex con l’opzione del formato espressa come opzione con doppia lineetta. In fetti a me viene scritto`…
                *************************************************
                * fontspec warning: “tu-clash”
                *
                * I have found the tuenc.def encoding definition file but the TU encoding is
                * not defined by the LaTeX2e kernel; attempting to correct but you really
                * should update to the latest version of LaTeX2e.
                *************************************************
                (/usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
                (/usr/local/texlive/2016/texmf-dist/tex/latex/base/tuenc.def)
                (/usr/local/texlive/2016/texmf-dist/tex/latex/base/tulmr.fd)

                LaTeX Font Warning: Font shape `TU/cmr/m/n' undefined
                (Font) using `TU/lmr/m/n' instead on input line 105.

                (load luc: /Users/claudio/Library/texlive/2016/texmf-var/luatex-cache/generic/f
                onts/otl/lmroman10-regular.lub))
                …`ma poi l’errore non provoca un arresto e nel file prodotto non compare nessuna tilde.

                Gli errori che compaiono nel tuo ultimo messaggio sembra che non abbiano effetto qui da me; ho aggiornato MacTeX il 27/2 la sera tardi, quindi 3 giorni fa. Le due righe “incriminate”`\DeclareTextComposite{\^} \UnicodeEncodingName {}{“005E}
                \DeclareTextComposite{\~} \UnicodeEncodingName {}{“007E}`servono per definire il caret e la tilde isolata da usare come simboli autonomi, in modo che quando scrivi [tt]\~{}[/tt] ti venga la tilde da sola; anolagamente per il caret/circonflesso. Qualche riga più in basso compaiono i comandi simili con ona A o una a come primo argomento, per cui la tilde viene messa sopra la A o la a. Poco prima ci sono le due righe che contengono i simboli unicode per \^ e \~ e dal codice che hanno ho il sospetto che siano indicati come “self combining accents”; non ho verificato sulla tabella unicode, ma è un sospetto che ha un suo senso.

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


                  Ciao.
                  Hai solo il tu-clash OK. Lo emette fontspec, ma non hai l’errore di Missing \endcsname inserted.
                  Invece io ho l’errore.
                  A leggere a pagina 91 del source2e, il comando incriminato è definito come:
                  `\DeclareTextComposite{command}{encoding}{argument}{slot}`
                  Quindi per la riga in tuenc.def 251 uguale a:
                  `\DeclareTextComposite{\^} \UnicodeEncodingName{A}{“005E}`
                  viene chiamato il comando:
                  `
                  \DeclareTextComposite{\^}{TU}{A}{“0053}
                  `
                  OK. Vuol dire che definisco \^A come il codice “0053 nella codifica TU.
                  Ergo l’argomento non può essere vuoto, ergo è un bug.

                  Rimane da capire perché LuaLaTeX ne è immune.
                  R

                • #109674
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Segnala il bug al team che gestisce luajittex 🙂

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


                      Non saprei.
                      Il file tuenc.def è gestito dal LaTeX3 team.
                      In effetti si tratta della nuova codifica Unicode per il formato LaTeX quando i motori di composizione sono Lua-powered.
                      Non so nemmeno come fare e a chi fare la segnalazione.
                      R.

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


                        OK. Risolto.
                        Si trattava di rigenerare il formato luajitlatex perché sul pc avevo un formato non aggiornato in locale.
                        Vuol dire che in passato per qualche motivo, ho generato con il comando fmtutil una copia nella cartella personale che ha la precedenza su quella di sistema.

                        Infatti, se sono installate più copie dello stesso formato viene utilizzata quella locale, così è stato inutile rigenerare i formati nell’ambiente globale.
                        Ho quindi dato un:
                        `$ fmtutil -byfmt luajitlatex`
                        ed è andato tutto a posto.

                        Tuttavia non è consigliabile usare un formato personale. Non viene mai aggiornato da tlmgr, che è poi il motivo del problema che mi ha fatto perdere parecchio tempo (anche se ora conosco meglio come funzionano i formati).
                        Per cancellare il formato personale prima scoprite dove si trova con il comando:
                        `$ kpsewhich –expand-var '$TEXMFVAR'`

                        In quella cartella dovrebbe esserci la cartella web2c apritela e cancellate la cartella luajitlatex.

                        Mai usare fmtutil, usare sempre e solo fmtutil-sys…

                        Ringrazio il LaTeX Team e in particolare David Carlisle.
                        Alla prossima.
                        Grazie mille.
                        R.

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

                    Go to top