PGF/TikZ vs. PSTricks

  • Creatore
    Topic
  • #73066
    Up
    0
    Down
    ::


    Sembra proprio che questa faccenda del disegno con LaTeX sarà il tormentone dell’estate 2012 🙂

    Il titolo del filone dice tutto. Oggi ho aperto la documentazione di tutti i pacchetti che su CTAN ricadono nella categoria ‘graphics created inside TeX…’ e ho cercato in ciascun PDF la parola TikZ. Risultato: solo 41 pacchetti grafici si appoggiano a TikZ. Una gran parte dei rimanenti (praticamente un centinaio) si appoggia invece a PSTricks. Rimane un gruppo di pacchetti che sfrutta l’ambiente standard picture e altri ancora che vanno per la loro strada.

    Probabilmente la mia ricerca non serve a nulla, ma il risultato mi fa pensare. Da quello che ho capito, per disegnare con LaTeX in modo autosufficiente ci sono, tra gli altri, due grandi sistemi: TikZ e PSTricks (mi soffermo solo su questi due, so bene dell’esistenza di picture e curve2e, eccetera), ciascuno con una propria sintassi e una documentazione scoraggiante (726 pagine e 338 rispettivamente). Credo che entrambi non abbiano limiti sul ‘che cosa posso disegnare’, e gli esempi lo mostrano chiaramente.

    Il buon cuore di qualche utente, poi, ha ritagliato da questi due maria magna un certo numero di campi di applicazione e ha creato altrettanti pacchetti, per i circuiti elettrici, per le carrucole, per i poligoni, per i grafici di funzione, per il sistema solare, e via dicendo. Questi pacchetti si appoggiano all’uno o all’altro dei due pacchettoni iniziali e definiscono una sintassi molto più semplice che maschera quella più complessa originaria e frustra di meno l’utente.

    Bene, a parte il fatto che non ho ben capito le vere differenze tra i due pacchettoni, si dice in giro che TikZ è migliore dell’altro. Come si spiega allora la sproporzione tra i pacchetti figli di TiKZ e quelli figli di PSTricks? Forse quest’ultimo è più facile? Se fate caso, moltissimi pacchetti PSTricksiani, tutti in mano a Herbert Voß, hanno la documentazione con la stessa veste tipografica, e questo secondo me rassicura l’utente (impressione mia, irrilevante), è quasi una garanzia di avere un prodotto conforme allo standard di PSTricks. Le documentazioni dei pacchetti Tikziani, invece, sono molto più eterogenee, a parte il nucleo dei pacchetti del francese di cui mi sfugge il nome.

    Ecco, vorrei sapere come mai, se TikZ è il migliore, PSTricks spadroneggia e Voß è in mezzo come il giovedì. Non mi sembra che ne sia l’autore…

    Ciao
    Tommaso

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


        Io direi che PSTricks spadroneggia perché è sul palcoscenico da un mucchio di tempo. La guida che ora è consultabile con texdoc pstricks, scritta da Timothy Van Zandt, il vero autore di PSTricks, è datata 2003, ma il pacchetto e le sue estensioni esistono da almeno una quindicina di anni prima. Tikz esiste dal 2005 o 2006.

        Inoltre fino a poco tempo fa, non saprei dire con precisione, il mondo di Linux considerava come formato di default di ogni file e di ogni stampante il formato PS, e considefava gs (ghostscript) come l’unico visualizzatore degno di essere chiamato con questo nome, inoltra fino a non molto tempo fa l’interfaccai che distingueva un vero “Pinguino” da un utente impacciato (uno di quelli che leggono Linux for dummies) era proprio l’interfaccia a linea di comando; dunque sistema TeX con uscita in DVI, dvips con uscita in PS, gs come visualizzatore e interfaccia di stampa. Tieni presente che pdftex esiste da molto meno tempo del sistema TeX, direi che sia di una quindicina di anni più giovane, e quindi è ovvio che fra i pacchetti che usano e citano PSTricks e Tikz prevalgano quelli che si riferiscono al primo.

        In compenso Tikz in questi anni ha fatto passi da gigante. per cui la differenza fra quello che si può fare con PSTricks o con Tikz sta diventando un insieme coincidente di situalzioni. Non lo sarà mai, perché Tikz si affida al Portable Graphics Format,(pgf) nel senso che fa le cose che si possono fare solo con entrambi i linguaggi PostScript e PDF; questo secondo linguaggio è più limitato rispetto al primo, nel senso che deriva dal primo, ma, se non spaglio ad esprimermi, non è una macchina di Touring, mentre il linguaggio PostScript lo è. quindi il linguaggio PDF rappresenta lo standard di Tikz, e più in là non può andare se non facendo fare a TeX (pdftex) i calcoli e i test che il solo linguaggio PDF non è in grado di fare; ma anche pdftex è un po’ limitato nel fare i calcoli, e come ti ho spiegato altrove, di fatto, fa solo calcoli con numeri interi, ancorché mascherati da numeri fratti, ma a virgola fissa; per i test se la cva abbastanza bene. PostScript usa anche la cosiddetta notazione polacca, che per un calcolatore è molto più semplice da interpretare o da eseguire, mentre un umano (io, per esempio) fa una gran difficoltà a capire l’inversione degli argomenti e degli operatori; la capisco, ma ho difficoltà nel leggere un programma scritto da altri e non sarei mai capace di scrivere un vero programma in linguaggio PostScript.

        Dunque, secondo me queste sono le differenza sostanziali; con PSTricks si può fare di più che non con Tikz, ma a me non è mai capitato un caso in cui non riuscissi a fare con Tikz quello che volevo fare e che ero capace di fare (quest’ultima limitazione è molto forte). Inoltre nutor un certo rpegiudizio nei confronti del formato PS, e non ci passo attraverso da anni, perché il risultato finale che mi interessa è sempre e soltanto il formato PDF; passare attraverso il formato PS vuol dire perdere alcune delle funzionalità del formato PDF, nonostante il linguaggio PS sia più ampio di quello PDF.

      • #73068
        Up
        0
        Down
        ::

        illinguista1972″ post=72055Sembra proprio che questa faccenda del disegno con LaTeX sarà il tormentone dell’estate 2012 🙂

        Il titolo del filone dice tutto. Oggi ho aperto la documentazione di tutti i pacchetti che su CTAN ricadono nella categoria ‘graphics created inside TeX…’ e ho cercato in ciascun PDF la parola TikZ. Risultato: solo 41 pacchetti grafici si appoggiano a TikZ. Una gran parte dei rimanenti (praticamente un centinaio) si appoggia invece a PSTricks. Rimane un gruppo di pacchetti che sfrutta l’ambiente standard picture e altri ancora che vanno per la loro strada.

        Probabilmente la mia ricerca non serve a nulla, ma il risultato mi fa pensare. Da quello che ho capito, per disegnare con LaTeX in modo autosufficiente ci sono, tra gli altri, due grandi sistemi: TikZ e PSTricks (mi soffermo solo su questi due, so bene dell’esistenza di picture e curve2e, eccetera), ciascuno con una propria sintassi e una documentazione scoraggiante (726 pagine e 338 rispettivamente). Credo che entrambi non abbiano limiti sul ‘che cosa posso disegnare’, e gli esempi lo mostrano chiaramente.

        Il buon cuore di qualche utente, poi, ha ritagliato da questi due maria magna un certo numero di campi di applicazione e ha creato altrettanti pacchetti, per i circuiti elettrici, per le carrucole, per i poligoni, per i grafici di funzione, per il sistema solare, e via dicendo. Questi pacchetti si appoggiano all’uno o all’altro dei due pacchettoni iniziali e definiscono una sintassi molto più semplice che maschera quella più complessa originaria e frustra di meno l’utente.

        Bene, a parte il fatto che non ho ben capito le vere differenze tra i due pacchettoni, si dice in giro che TikZ è migliore dell’altro. Come si spiega allora la sproporzione tra i pacchetti figli di TiKZ e quelli figli di PSTricks? Forse quest’ultimo è più facile? Se fate caso, moltissimi pacchetti PSTricksiani, tutti in mano a Herbert Voß, hanno la documentazione con la stessa veste tipografica, e questo secondo me rassicura l’utente (impressione mia, irrilevante), è quasi una garanzia di avere un prodotto conforme allo standard di PSTricks. Le documentazioni dei pacchetti Tikziani, invece, sono molto più eterogenee, a parte il nucleo dei pacchetti del francese di cui mi sfugge il nome.

        Ecco, vorrei sapere come mai, se TikZ è il migliore, PSTricks spadroneggia e Voß è in mezzo come il giovedì. Non mi sembra che ne sia l’autore…

        Ciao
        Tommaso

        PSTricks non funziona con pdflatex se non in modo limitato e complicato dall’uso di -shell-escape o compilazioni multiple. Non può funzionare, perché usa la parte di Postscript che esegue comandi e fa calcoli, mentre il formato PDF ne è incapace. Viceversa quasi tutto PSTricks funziona con XeLaTeX, che si appoggia a Ghostscript.

        TikZ invece va con tutti i motori, perché fa i conti con TeX (e quindi in alcune cose è più lento). Perché è meno “corposo”? Perché è più recente. Ma come numero di sottopacchetti non è molto distante. Tieni conto che moltissimi dei pst-xyz sono roba di poche righe che fanno una sola cosa.

        Hanno qualcosa in comune? Sì, che in genere la documentazione è difficile da capire. E puoi facilmente immaginare il motivo. 🙂

        Ciao
        Enrico

      • #73069
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Non dimenticatevi di METAPOST!
          Sarà integrato in LuaTeX, quindi con potenzialità ancora maggiori.
          Un saluto.
          R.

        • #73070
          Up
          0
          Down
          ::

          OldClaudio” post=72058Io direi che PSTricks spadroneggia perché è sul palcoscenico da un mucchio di tempo. La guida che ora è consultabile con texdoc pstricks, scritta da Timothy Van Zandt, il vero autore di PSTricks, è datata 2003, ma il pacchetto e le sue estensioni esistono da almeno una quindicina di anni prima. Tikz esiste dal 2005 o 2006.

          Inoltre fino a poco tempo fa, non saprei dire con precisione, il mondo di Linux considerava come formato di default di ogni file e di ogni stampante il formato PS, e considefava gs (ghostscript) come l’unico visualizzatore degno di essere chiamato con questo nome, inoltra fino a non molto tempo fa l’interfaccai che distingueva un vero “Pinguino” da un utente impacciato (uno di quelli che leggono Linux for dummies) era proprio l’interfaccia a linea di comando; dunque sistema TeX con uscita in DVI, dvips con uscita in PS, gs come visualizzatore e interfaccia di stampa. Tieni presente che pdftex esiste da molto meno tempo del sistema TeX, direi che sia di una quindicina di anni più giovane, e quindi è ovvio che fra i pacchetti che usano e citano PSTricks e Tikz prevalgano quelli che si riferiscono al primo.

          In compenso Tikz in questi anni ha fatto passi da gigante. per cui la differenza fra quello che si può fare con PSTricks o con Tikz sta diventando un insieme coincidente di situalzioni. Non lo sarà mai, perché Tikz si affida al Portable Graphics Format,(pgf) nel senso che fa le cose che si possono fare solo con entrambi i linguaggi PostScript e PDF; questo secondo linguaggio è più limitato rispetto al primo, nel senso che deriva dal primo, ma, se non spaglio ad esprimermi, non è una macchina di Touring, mentre il linguaggio PostScript lo è. quindi il linguaggio PDF rappresenta lo standard di Tikz, e più in là non può andare se non facendo fare a TeX (pdftex) i calcoli e i test che il solo linguaggio PDF non è in grado di fare; ma anche pdftex è un po’ limitato nel fare i calcoli, e come ti ho spiegato altrove, di fatto, fa solo calcoli con numeri interi, ancorché mascherati da numeri fratti, ma a virgola fissa; per i test se la cva abbastanza bene. PostScript usa anche la cosiddetta notazione polacca, che per un calcolatore è molto più semplice da interpretare o da eseguire, mentre un umano (io, per esempio) fa una gran difficoltà a capire l’inversione degli argomenti e degli operatori; la capisco, ma ho difficoltà nel leggere un programma scritto da altri e non sarei mai capace di scrivere un vero programma in linguaggio PostScript.

          Dunque, secondo me queste sono le differenza sostanziali; con PSTricks si può fare di più che non con Tikz, ma a me non è mai capitato un caso in cui non riuscissi a fare con Tikz quello che volevo fare e che ero capace di fare (quest’ultima limitazione è molto forte). Inoltre nutor un certo rpegiudizio nei confronti del formato PS, e non ci passo attraverso da anni, perché il risultato finale che mi interessa è sempre e soltanto il formato PDF; passare attraverso il formato PS vuol dire perdere alcune delle funzionalità del formato PDF, nonostante il linguaggio PS sia più ampio di quello PDF.

          Confermo che PS è Turing-completo. Mi sfugge, invece, la nozione di completezza sul pdf, essendo esso un formato e non un linguaggio di programmazione.

          Ciao

        • #73071
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::

            illinguista1972″ post=72055Sembra proprio che questa faccenda del disegno con LaTeX sarà il tormentone dell’estate 2012 🙂

            Già. 🙂

            egreg9″ post=72059PSTricks non funziona con pdflatex […]. TikZ invece va con tutti i motori […].

            Questo mi sembra un punto molto importante a favore di TikZ.

            Ciao,
            L.

          • #73072
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              Confermo che PS è Turing-completo. Mi sfugge, invece, la nozione di completezza sul pdf, essendo esso un formato e non un linguaggio di programmazione.

              Bene; non essendo un informatico ed essendo di vecchia data, spesso cito a buon senso ma spesso mi sbaglio.

              Invece pdf non è solo un Page Description Language, a mio avviso; è un linguaggio di programmazione che fa certe cose e non altre. I suoi comandi e la sua notazione polacca derivano da PostScript; i comandi sono molto accorciati riducendosi per lo più ad una sola lettera, talvolta a due, non ne ho mai visti di tre lettere ma non escludo che ce ne siano; questa mancanza di ridondanza che rende il linguaggio PostScript “facilmente” leggibile, fa sì che il linguaggio PDF sia molto criptico. Quello che manca a PDF, mi sembra di avere letto da qualche parte, sono principalmente i test di alto livello per cui il linguaggio non è Touring completo; però certi conti li fa, anche se i driver dei vari programmi, e di Tikz in particolare, devono supplire con molte operazioni fatte fare al motore di composizione (pdftex, in generale).

              Enrico sottolinea un fatto importante: PSTriks non è gestibile direttamante co il motore pdftex e richiede un ampio uso dello shell escape, mentre è quasi del tutto compatibile con XeLaTeX; sì, perché XeLaTeX scrive nativamente un formato DVI esteso per gestire i caratteri UNICODE (formato DVU, mi pare che si chiamai) e poi il programma xdvipdfmx chiamato dietro le quinte in mdo “automatico” trasforma il file ottenuto in file PDF, perdendo per la strada, però, un certo numero di funzionalità, come per esempio la microgiustificazione (per ora limitata solo alla protrusione dei segni all’esterno della riga).

              In sostanza se si vuole avere un risultato finale in formato PDF, Tikz fa tutto quello che può fare e mantiene le funzionalità del formato PDF; PSTricks richiede comunque un formato DVI da trasformare in PDF; che questo sia fatto ricorrendo allo shell escape da pdftex, oppure che venga trasformato un file DVi o DVU attraverso almeno un passaggio ulteriore.

              Secondo me, oggi, Tikz ha delle piccole limitazioni rispetto a PSTricks (che non ho idea di quali possano essere perché non mi ci sono mai imbattuto) ma è molto più funzionale; idea personale, naturalmente e derivante solo dalla mia limitata esperienza con PSTriks e dalla modesta esperienza con Tikz.

            • #73073
              Up
              0
              Down
              ::

              OldClaudio” post=72071

              Confermo che PS è Turing-completo. Mi sfugge, invece, la nozione di completezza sul pdf, essendo esso un formato e non un linguaggio di programmazione.

              Bene; non essendo un informatico ed essendo di vecchia data, spesso cito a buon senso ma spesso mi sbaglio.

              Invece pdf non è solo un Page Description Language, a mio avviso; è un linguaggio di programmazione che fa certe cose e non altre. I suoi comandi e la sua notazione polacca derivano da PostScript; i comandi sono molto accorciati riducendosi per lo più ad una sola lettera, talvolta a due, non ne ho mai visti di tre lettere ma non escludo che ce ne siano; questa mancanza di ridondanza che rende il linguaggio PostScript “facilmente” leggibile, fa sì che il linguaggio PDF sia molto criptico. Quello che manca a PDF, mi sembra di avere letto da qualche parte, sono principalmente i test di alto livello per cui il linguaggio non è Touring completo; però certi conti li fa, anche se i driver dei vari programmi, e di Tikz in particolare, devono supplire con molte operazioni fatte fare al motore di composizione (pdftex, in generale).

              Enrico sottolinea un fatto importante: PSTriks non è gestibile direttamante co il motore pdftex e richiede un ampio uso dello shell escape, mentre è quasi del tutto compatibile con XeLaTeX; sì, perché XeLaTeX scrive nativamente un formato DVI esteso per gestire i caratteri UNICODE (formato DVU, mi pare che si chiamai) e poi il programma xdvipdfmx chiamato dietro le quinte in mdo “automatico” trasforma il file ottenuto in file PDF, perdendo per la strada, però, un certo numero di funzionalità, come per esempio la microgiustificazione (per ora limitata solo alla protrusione dei segni all’esterno della riga).

              In sostanza se si vuole avere un risultato finale in formato PDF, Tikz fa tutto quello che può fare e mantiene le funzionalità del formato PDF; PSTricks richiede comunque un formato DVI da trasformare in PDF; che questo sia fatto ricorrendo allo shell escape da pdftex, oppure che venga trasformato un file DVi o DVU attraverso almeno un passaggio ulteriore.

              Secondo me, oggi, Tikz ha delle piccole limitazioni rispetto a PSTricks (che non ho idea di quali possano essere perché non mi ci sono mai imbattuto) ma è molto più funzionale; idea personale, naturalmente e derivante solo dalla mia limitata esperienza con PSTriks e dalla modesta esperienza con Tikz.

              Grazie a tutti per le informazioni, come sempre copiose.

              Ultima domanda, forse non così del cavolo: qualitativamente parlando, c’è un vincitore tra i due, oppure si equivalgono?

              Ciao
              Tommaso

            • #73074
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::

                Ultima domanda, forse non così del cavolo: qualitativamente parlando, c’è un vincitore tra i due, oppure si equivalgono?

                Sono entrambi ottimi; fanno le cose in modo diverso e producono risultati estetici diversi; io non parlerei di vincitori e vinti; ma parlerei di programmi da preferire.
                Personalmente preferisco Tikz.

              • #73075
                Up
                0
                Down
                ::

                OldClaudio” post=72071

                Confermo che PS è Turing-completo. Mi sfugge, invece, la nozione di completezza sul pdf, essendo esso un formato e non un linguaggio di programmazione.

                Bene; non essendo un informatico ed essendo di vecchia data, spesso cito a buon senso ma spesso mi sbaglio.

                Invece pdf non è solo un Page Description Language, a mio avviso;

                Infatti è un Portable Document Format 🙂 Cmq approfondirò.

                PS Ma non è ‘Turing’ ?

                Ciao

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

            Go to top