Lingua araba e polyglossia: conflitto

  • Creatore
    Topic
  • #100245
    OldClaudio
    Partecipante
      Up
      0
      Down
      ::


      Posso facilmente immaginare che non siano molti i frequentatori del forum che scrivono in arabo usando XeLaTeX, e quindi polyglossia.

      Benché io di arabo conosca solo forse tre parole, mi è capitato di vdver scrivere poche parole. Mi sono documentato e ho visto che dovendo comporre con XeLaTeX, oltre a polyglossia per gestire le altre lingue del documento dovevo usare il pacchetto ArabXeTeX, la cui documentazione è molo ricca di informazioni utili, compreso un metodo per introdurre il testo arabo usando una tastiera latina.

      Ne consiglio la lettura, non foss’altro che per curiosità 🙂

      Bene, prima che caricassi il pacchetto ArabXeTeX tutto filava liscio; avevo anche caricato (indirettamente) il pacchetto bidi, che gestisce la composizione bidirezionale nei testi multilingue che contengono le lingue europee mescolate alle lingue del medio oriente. Solo che a quel punto veniva fuori il messaggio d’errore che il comando \aemph era già definito; questo comando serve per evidenziare del testo scritto in arabo e che è definito in ArabXeTeX; chi altri poteva aver definito quel comando; Ho esaminato il codice della classe e il codice di tutti i file caricati prima di begin{document} e finalmente con mi sorpresa ho scoperto che quel comando veniva definito da polyglossia, che ne differiva la definizione al momento di eseguire \begin{document}, l’istruzione che mi segnalava la presenza della doppia definizione.

      Bene; come dovuto ho informato il curatore di polyglossia, ma prima che appaia una versione corretta del pacchetto temo che passerà del tempo; comunico quindi ai pochi interessati che la correzione del conflitto è semplicissima; copiate il file polyglossia.sty nel vostro albero eprsonale (o locale se la vostra macchina è usata da più utenti) e modificate la riga 794 di quel file; originariamente questa riga contiene il testo eseguente:`\AtEndPreamble{\@ifpackageloaded{bidi}{\newcommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}}{}}`modificatela cambiando new con provide:`\AtEndPreamble{\@ifpackageloaded{bidi}{\providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}}{}}`Tutto qui, e il tuto funziona benissimo.
      Se avete messo polyglossia.sty corretta nel vostro albero personale con MiKTeX, rinfrescate il filename database; se l’avete messa nell’albero personale con MacTeX o TeXLive, non occorre rinfrescare nulla; se con queste due distribuzioni avete messo il file corretto nell’albero locale, rinfrescate il filename databse.

      Se e quando polyglossia.sty verrà corretto dal suo curatore, potrete eliminare questo file personale.

      Claudio

    • Devi essere connesso per rispondere a questo topic.

    Go to top