XeLaTex “! Illegal unit of measure (pt inserted)”

  • Creatore
    Topic
  • #116064
    Up
    0
    Down
    ::


    Per l’applicazione di firme a documenti latex uso da anni un pacchetto personalizzato di cui vi allego il codice: Tex_signature.

    Per la prima volta mi sono trovato ad usare xelatex (in seguito alla necessità di usare font particolari) e lo stesso codice riporta l’errore:

    `! Illegal unit of measure (pt inserted).

    p
    l.9 \mysignature

    {full}

    ? `

    Di seguito un esempio minimale che compila correttamente con pdflatex, mentre con xelatex da l’errore di cui sopra:
    `\documentclass{article}
    \usepackage[signature=my_signature, empty, nojob]{mysignature}

    \begin{document}

    \mysignature

    {full}

    \end{document}`

    Note:
    Per testare velocemente il codice è sufficiente scaricare la cartella completa da github che contiene già una firma d’esempio e un documento d’esempio,

    Compilando con xelatex lo stesso errore viene riportato, Ho provato a commentare diverse parti del codice del pacchetto senza successo, lo stesso errore riportato riguardo l’unità “pt” persiste anche rimuovendo o cambiando l’unità alla riga 74, unico posto ove compare qua.

    Cercando su google ho trovato soltanto errori tra xelatex e graphicx riguardo il clipping e null’altro.

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


        Sebbene tu abbai fornito tutte le informazioni per eseguire il file di test predisposto dall’autore di mysignature.sty, e io abbia scaricato dal suo github il pacchetto intero, la cosa non è stata semplice, perché ha messo la firma in una cartella subordinata, man nel filee sorgente del file di test non ha indicato dove si trovi la firma; bisogna (ri)definire \SigSorurce, e poi la cosa funziona.

        Ho controllato con pdflatex, xelatex, e lualatex; in effetti con xelatex non funziona, ma con lualatex funziona benissimo. Quindi questa è la prima cosa che puoi fare.

        Il motivo? xelatex ha un’uscita in un formato DVI esteso (per gestire le codifiche multibyte dei font unicode), ma quando clicchi sul bottone per farti compilare il file sorgente con xelatex, in effetti lanci uno script che invia il file DVI esteso in una “pipe” che trasporta direttamente quel file a xdvipdfmx, un programma esterno che trasforma i DVI estesi in PDF. In altre parole il compilatore xelatex non produce direttamente il file PDF, ma è un altro programma che vi provvede.

        Ora l’interprete pdftex (che è quello che in definitiva legge il file latex.ltx trasformato con opportune configurazioni nel file latex.fmt; operazioni che sono dietro le quinte e l’utente finale non si accorge di queste cose a meno che non sia un affezionato lettore dei file .log) dispone anche delle unità di misura px, mentre l’interprete xetex, non conosce queste unità di misura. Luatex, invece le conosce.

        Ecco quindi perché con xelatex la cosa apparentemente non funziona, ma non è apparenza; semplicemente sostituisce quelle unità con i pt; non sono la stessa cosa, ma quando premi il tasto S dopo che il programma si ferma segnalando l’errore, la compilazione procede e la firma va al suo posto; ovviamente quel messaggio d’errore non invita a incoraggiare il programma a proseguire senza fare storie, quindi è meglio evitare di usare xelatex e vivere felici con pdflatex o lualatex: secondo me lualatex, che ha le funzionalità di pdflatex e gestisce i font OpenType più meno come Xelatex e in più esegue i comandi scritti con il linguaggio Lua, unisce tutto quel che serve e ne da anche di più. L’unico difetto è che lualatex ci mette un paio di secondi in più per partire; direi che per un paio di secondi si può anche chiudere un occhio

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

    Go to top