come fare un test

  • Creatore
    Topic
  • #102086
    claudio
    Partecipante
      Up
      0
      Down
      ::


      ci sono molti pacchetti del tipo \ifPDFTeX, \ifXeTeX, e \ifLuaTeX
      ma quando servono effettivamente questi pacchetti?
      Esistono delle checklist da verificare a priori?
      Mi viene in mente l’alternativa babel poliglossia ma è
      macroscopica nel sottile dove si va a cercare?
      ciao

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


          No, non ci sono molti pacchetti, almeno non quelli che hai indicato; c’è un solo pacchetto iftex.sty che definisce quei test \ifPDFTeX, \ifXeTeX, \ifLuaTeX. Esistono anche altri pacchetti che definiscono un solo test, ma per mia esperienza il pacchetto iftex è quello più efficace.
          Qui sul forum mi pare che ci sia stato diverso tempo fa un intervento molto autorevole di Enrico che ha messo in luce qualche criticità che si uò manifestare con questo pacchetto, ma nella mia esperienza non mi sono mai scontrato con nessuna criticità.

          Il punto che vorrei sottolineare è che oggi il motore di composizione è quasi sempre pdftex, anche quando si compone per produrre un file in formato dvi (ma c’è ancora qualcuno che lo fa?). Per questo motivo il pacchetto iftex va a esplorare la presenza di comandi specifici nativi, non di macro, di ciascuno dei tre motori di composizione e in questo modo sa dire esattamente quale motore si sta usando.

          Invece, per esempio, il pacchetto ifpdf.sty cerca solo se è definito il comando \pdfoutput, comando che è definito in pdftex.exe ma non in tex.exe (ho messo l’estensione .exe non per riferirmi a Windows in particolare, ma per specificare che sto parlando del programma eseguibile). Questo andava bene fino a una decina-quindicina di anni fa, quando xetex.exe e luatex.exe non esistevano e quando comporre con latex.exe voleva dire usare tex.exe e comporre con pdflatex.exe voleva dire usare pdftex.exe.

          Oggi non è più cosi: oggi sia ltex.exe sia pdflatex.exe usano pdftex.exe e funzionano diversamante perché nei rispettivi file di formato il contatore interno \pdfoutpt contiene valori diversi che dicono a pdftex.exe di comportarsi in modo diverso. luatex.exe è basato su una versione estesa di pdftex. Invece xetex.exe non produce direttamente un file pdf, ma un file dvi esteso che converte direttamente in formato pdf mediante un programma esterno che è una estensione di dvipdfm. ma nel costruire il programma xetex.exe si è fatta molta attenzione per incorporavi la maggior parte possibile delle funzionalità di pdftex.exe, non tutte, perché il formato di uscita è diverso. In un certo senso xetex.exe potrebbe essere abbandonato in favore di luatex.exe, ma, a cominciare da me, moltissimi utenti che necessitano di lavorare con font OpenType preferiscono usare xetex.exe, o meglio, xelatex.exe.

          Ecco quindi perché oggi è necessario usare i pacchetti giusti per controlalre con quale programma si sta compilando un dato documento.

          Il discorso di babele polyglossia è corretto, ma mentre pdflatex può usare solo babel, xelatex elualatex possono usare sia polyglossia sia babel, anche se in genere con polyglossia funzionano meglio e in particolare solo con polyglossia si possono usare i font OpenType, mentre se si usa babel con quei due programmi la gestione delle lingue e della loro sillabazione è corretta solo se NON si usano font OpenType.

          Usare quei test è importantissimo se nel ramo “falso” del test \ifPDFTeX si invoca il pacchetto \fontspec e si specificano i font OpenType da usare.

          Per ora non sono riuscito a trovare molte altre applicazioni di quei testi; una piccola applicazione diversa è quella che con XeTeX non si può leggere il tempo macchina e non si può calcolare in termini di elapsed type o di CPU time quanto dura al compilazione di una dato documento, mentre lo si può fare con pdftex e luatex. Ovviamante con luatex si può usare linterprete Lua, che con gli altri due programmi non si può usare.

          Quindi vedi che gli usi per i tre test ci sono anche se servono in generale (tranne babel/polglossia e i font Type!/OpenType) per funzionalità molto particolari e inconsuete (i sostenitori di Lua mi perdonino; Lua è formidabile, ma serve davvero solo per applicazioni molto particolari e non così frequenti; dipende dal tipo di lavori che uno fa di solito).

          Scusa la lunghezza del messaggio, ma ci vogliono parecchi “distinguo” quando si parla di queste cose.

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

      Go to top