Polyglossia, XeLaTeX e Extra \else

  • Creatore
    Topic
  • #87068
    franen
    Partecipante
      Up
      0
      Down
      ::


      `\documentclass{book}
      \usepackage{ifxetex}
      \ifxetex
      \usepackage{fontspec}
      \usepackage{polyglossia}
      \setmainlanguage{italian}
      \else
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage[italian]{babel}
      \fi
      \begin{document}
      Ciao
      \end{document}` Compilando con XeLaTeX mi dà un errore di [tt]Extra \else[/tt]. Se commento la riga di [tt]\setmainlanguage[/tt] l’errore non si presenta. Questo file, a memoria, compilava bene con la TL2012. Ora ho la TL2013 aggiornata a stamattina.
      Idee? (Credo sia lo stesso problema trovato sulla classe delle guide tematiche…)

      Fran

      EDIT: Con alcune lingue la compilazione funziona (english, latin, french, breton), con altre no (italian, german)

    Visualizzazione 6 filoni di risposte
    • Autore
      Risposte
      • #87069
        Up
        0
        Down
        ::


        Interessante, penso sia lo stesso problema che ha la classe [tt]guidatematica[/tt], anche lì appare un errore a un [tt]\else[/tt].

        Edit: non avevo letto la tua osservazione sulla classe [tt]guidatematica[/tt], ma solo l’errore

        Edit 2: esempio un po’ più minimo, fontspec non è colpevole:
        `\documentclass{article}
        \usepackage{ifxetex}
        \ifxetex
        \usepackage{polyglossia}
        \setmainlanguage{italian}
        \else
        \usepackage{babel}
        \fi
        \begin{document}
        \end{document}`
        e confermo che non appare se non si pone [tt]italian[/tt] come lingua principale di [tt]polyglossia[/tt].

      • #87070
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Ho già scritto in un altro filenoche non posso occuparmene fino a lunedì, quando ritornerò in Italia.

          Il fatto che si presenti con l’italiano e non con altre lingue mi fa pensare ad un errore in gloss-italian.ldf, non nel file di classe, ma è evidente che finché non posso usare il mio iMac, dove ho già installato MacTeX 2013, non posso fare nessuna verifica.

        • #87071
          Up
          0
          Down
          ::

          OldClaudio” post=86461Ho già scritto in un altro filenoche non posso occuparmene fino a lunedì, quando ritornerò in Italia.

          Il fatto che si presenti con l’italiano e non con altre lingue mi fa pensare ad un errore in gloss-italian.ldf, non nel file di classe, ma è evidente che finché non posso usare il mio iMac, dove ho già installato MacTeX 2013, non posso fare nessuna verifica.

          Questa è l’unica differenza fra il [tt]gloss-italian.ldf[/tt] di TeX Live 2012 e 2013, c’è solo un [tt]\let[/tt] in più
          `% diff -u /opt/texlive/2012/texmf-dist/tex/xelatex/polyglossia/gloss-italian.ldf /opt/texlive/2013/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
          — /opt/texlive/2012/texmf-dist/tex/xelatex/polyglossia/gloss-italian.ldf 2012-05-01 01:31:41.000000000 +0200
          +++ /opt/texlive/2013/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf 2013-06-22 17:10:09.236597000 +0200
          @@ -100,6 +100,7 @@
          %%% ORIGINAL END %%%

          %%% CHANGES START %%% by Enrico Gregorio
          +\let\xpgit@savedvalues\empty
          \AtEndPreamble{% the user or the class might define different values
          \edef\xpgit@savedvalues{%
          \clubpenalty=\the\clubpenalty\space`

        • #87072
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Non mi dice niente; può darsi benissimo che a pari classe (in cui quel \let non dovrebbe portare nessuna alterazione sostanziale per la coprensione del problema), i vari programmi siano cambaiti in modo tale che lo stesso contenuto del file gloss-italian.ldf non sia più compatibile con il passato; dopo di che la correzione potrebbe essere nella parte modificata da Enrico, come nella parte scritta da me.

            Abbiate pazienza fino a martedì, visto che lunedì rientro di notte.

          • #87073
            Up
            0
            Down
            ::

            OldClaudio” post=86466Abbiate pazienza fino a martedì, visto che lunedì rientro di notte.

            Non era per metterti fretta, sto solo dando indizi a chiunque voglia tuffarsi nella caccia al bug 🙂

          • #87074
            Up
            0
            Down
            ::


            Aggiornamento: Massimiliano Dominici ha individuato l’errore nel file [tt]babelsh.def[/tt] di [tt]polyglossia[/tt], che definisce le shortand di babel: https://github.com/GuITeX/guidatematica/issues/4#issuecomment-19859527

            Aggiornamento 2: Massimiliano ha anche riportato il bug allo sviluppatore di [tt]polyglossia[/tt]: https://github.com/reutenauer/polyglossia/issues/50

          • #87075
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Benissimo; Massimiliano ha scritto allo sviluppatore di polyglossia per indicargli l’errore e dirgli come correggere, ma oggi appena tornato a casa ho aggiornato TeXLive, ma nessuna correzione è stata portata nella distribuzione di polyglossia.

              Per coloro che hanno bisogno subito di usare babelsh.def corretta indico come fare:
              1) copiare babelsh.def dalla cartella …/texmf-ditr/tex/latex/polyglossia/ in un’analoga cartella situata sull’albero personale: …/texmf/tex/latex/poliglossia/
              2) aprire il file nell’albero personale e aggiunge alla fine della riga 65 [tt]\fi[/tt]
              3) salvare e l’extra \else sparisce e la compilazione con xelatex funziona a dovere.

              Ricordatevi di elimiare questa copia personale di babelsh.def quando il file ufficiale verrà aggiornato, altrimenti ulteriori eventuali modifiche risulteranno inapplicabile, in quanto l’albero personale ha la precedenza sugli alberi di sistema.

              Invece il problema di \mathbb nasce da un mio errore/dimenticanza; in attesa che io abbia caricato su github la versione corretta della classe e della sua documentazione (notare che il repository è aperto a chiunque voglia collaborare; quindi fatevi sotto; correggete senza aspettare che lo faccia io 😉 ) basta:
              1) aprire il file guidatematica-doc.tex
              2) nella riga magica relativa al programma, se il vostro editor è sufficientemente intelligente per riconoscerla e usarla, cambiate XeLaTeX in pdfLaTeX
              3) dopo l’unica riga esistente con l’istruzione \usepackage (riga9) aggiungete un’altra riga:`\unless\ifxetex\usepackage{amsmath,amssymb}\fi`4) compilate con pdflatex.

              Ciao
              Claudio

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

          Go to top