Preambolo unico per pdflatex, xelatex e lualatex

  • Creatore
    Topic
  • #64573
    admin
    Amministratore del forum
      Up
      0
      Down
      ::


      Salve a tutti.

      Devo rendere compilabile un documento sia con pdflatex che con lualatex (volendo anche xelatex). Girando in rete ho trovato qualcosa come questo

      `\documentclass{article}

      \usepackage{ifpdf,ifxetex,ifluatex}

      \ifpdf
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}
      \fi

      \ifxetex
      \usepackage{fontspec}
      \setmainfont{Times New Roman}
      \usepackage{polyglossia}
      \setdefaultlanguage{italian}
      \fi

      \ifluatex
      \usepackage{fontspec}
      \setmainfont{Times New Roman}
      \usepackage{polyglossia}
      \setdefaultlanguage{italian}
      \fi

      \begin{document}%

      \ifluatex
      This is Lua\LaTeX.
      \else\ifxetex
      This is Xe\LaTeX.
      \else\ifpdf
      This is pdf\LaTeX.
      \fi\fi\fi
      \end{document}`
      Con pdflatex e xelatex va bene, ma con lualatex ottengo

      `! Undefined control sequence.
      \xpg@error
      {Your xelatex format appears to be outdated!
      Please up…
      l.14 }{}`
      Perché? Come risolvo?

      Grazie
      Orlando

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


          Hai aggiornato ad oggi? Polyglossia oggi è stato aggiornato e non ha piì bisogno di xkeyval.
          Ho il sospetto che richieda anche la ricreazione dei formati.
          Aprendo il nuovo file polyglossia.sty ho visto che quella macro viene usata proprio all’inizio, ma, sebbene abbia il prefisso xpg come le altre macro di polyglossia, non sembra definita da polyglosssia.

          Dopo che il test \ifcsundef{…} la usa, una decina di righe dopo essa viene definita mediante \providecommand; siccome l’errore ti viene segnalato col numero di riga 14 (di polyglossia.sty) si tratta proprio del suo primo uso.

          A me funziona, ma ho aggiornato tutto quanto oggi.

          Nota che quell’\if suona proprio così:
          `
          \ifcsundef{newXeTeXintercharclass}{%
          \xpg@error{Your~ xelatex~ format~ appears~ to~ be~ outdated!^^J
          ~~~~Please~ update~ your~ system~ and~ recreate~ it~ with~ fmtutil.}
          }{}
          `

          e la seconda riga raccomanda di aggiornare il sistema e di ricreare i formati (non farlo con fmtutil ma con fmutil-sys che li ricrea per tutta la macchina, quindi per tutti gli utenti — devi dare il comando sudo fmtutil-sys -all da terminale)

        • #64575
          Up
          0
          Down
          ::


          Polyglossia non è compatibile con LuaLaTeX. Inoltre il test \ifpdf dà vero con LuaLaTeX.
          `\documentclass[a4paper]{article}
          \usepackage{ifxetex,ifluatex}

          \newif\ifxetexorluatex
          \ifxetex\xetexorluatextrue\else\ifluatex\xetexorluatextrue\fi\fi

          %% Output and input encoding
          \ifxetexorluatex\else
          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \fi

          %% Font selection
          \ifxetexorluatex
          \usepackage{fontspec}
          \setmainfont{Times New Roman}
          \else
          \usepackage{txfonts}
          \fi

          %% Languages
          \ifxetex
          \usepackage{polyglossia}
          \setmainlanguage{italian}
          \else
          \usepackage[italian]{babel}
          \fi`
          Comunque è illusorio pensare di avere un documento che vada bene per tutti e tre i motori.

          Ciao
          Enrico

        • #64576
          admin
          Amministratore del forum
            Up
            0
            Down
            ::

            OldClaudio” post=63674A me funziona, ma ho aggiornato tutto quanto oggi.

            OldClaudio” post=63674la seconda riga raccomanda di aggiornare il sistema e di ricreare i formati (non farlo con fmtutil ma con fmutil-sys che li ricrea per tutta la macchina, quindi per tutti gli utenti — devi dare il comando sudo fmtutil-sys -all da terminale)

            Ho aggiornato tutto quanto, ed ho ricreato i formati con fmutil-sys (sudo non mi serve perché sono su Windows), ma continua a non funzionare.

            egreg9″ post=63676Comunque è illusorio pensare di avere un documento che vada bene per tutti e tre i motori.

            Il codice funziona (manca solo un ifpdf)

            `\usepackage{ifpdf,ifxetex,ifluatex}`
            Il fatto è che sto cercando di mettere su una classe personalizzata per eleborati universitari da mettere nell’albero locale e voglio fare in modo da poterla rendere compatibile con tutti e tre i motori.

            Per ora il problema sembra risolto, a meno di non incontrare altri problemi con qualche altro pacchetto caricato di default.

            Grazie mille
            Orlando

          • #64577
            Up
            0
            Down
            ::

            ansys” post=63684

            Comunque è illusorio pensare di avere un documento che vada bene per tutti e tre i motori.

            Il codice funziona (manca solo un ifpdf)

            `\usepackage{ifpdf,ifxetex,ifluatex}`
            Il fatto è che sto cercando di mettere su una classe personalizzata per eleborati universitari da mettere nell’albero locale e voglio fare in modo da poterla rendere compatibile con tutti e tre i motori.

            Per ora il problema sembra risolto, a meno di non incontrare altri problemi con qualche altro pacchetto caricato di default.

            Grazie mille
            Orlando

            A che ti serve \ifpdf? Illusorio comunque; ci sono svariate difficoltà nell’inserire babel fra i pacchetti caricati da una classe.

            Ciao
            Enrico

          • #64578
            admin
            Amministratore del forum
              Up
              0
              Down
              ::

              egreg9″ post=63686

              [quote=”egreg9″ post=63676]Comunque è illusorio pensare di avere un documento che vada bene per tutti e tre i motori.

              Il codice funziona (manca solo un ifpdf)

              `\usepackage{ifpdf,ifxetex,ifluatex}`
              Il fatto è che sto cercando di mettere su una classe personalizzata per eleborati universitari da mettere nell’albero locale e voglio fare in modo da poterla rendere compatibile con tutti e tre i motori.

              Per ora il problema sembra risolto, a meno di non incontrare altri problemi con qualche altro pacchetto caricato di default.

              Grazie mille
              Orlando

              A che ti serve \ifpdf? Illusorio comunque; ci sono svariate difficoltà nell’inserire babel fra i pacchetti caricati da una classe.

              Ciao
              Enrico[/quote]
              Sto iniziando a pensare che forse è meglio lasciar perdere i tre motori e perfezionare la classe solo per pdflatex.

              egreg9″ post=63686ci sono svariate difficoltà nell’inserire babel fra i pacchetti caricati da una classe.

              Perché?

              Grazie
              Orlando

            • #64579
              Up
              0
              Down
              ::

              ansys” post=63692

              ci sono svariate difficoltà nell’inserire babel fra i pacchetti caricati da una classe.

              Perché?

              http://tug.org/pracjourn/2007-1/gregorio
              Ciao
              Enrico

            • #64580
              admin
              Amministratore del forum
                Up
                0
                Down
                ::

                egreg9″ post=63693

                [quote=”egreg9″ post=63686]ci sono svariate difficoltà nell’inserire babel fra i pacchetti caricati da una classe.

                Perché?

                http://tug.org/pracjourn/2007-1/gregorio
                Ciao
                Enrico[/quote]
                Grazie mille, appena posso ne farò una lettura.
                Sto iniziando a rendermi conto che creare (modificare) classi e pacchetti non è così semplice 🙁 .

                Ciao
                Orlando

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

            Go to top