ps4pdf per gli appassionati di PSTricks

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


      Casualmente, dialogando in rete in merito a pdfpages, ho scoperto che esiste il programma ps4pdf che permette di compilare un documento con pdflatex e fare tutto il necessario da solo per trattare gli ambienti pspicture così da poter elaborare separatamente il codice PostScript generato dal pacchetto PSTricks, ma senza bisogno di inserire nel file sorgente chiamate a pacchetti diversi. Non dico che si meglio o peggio, semplicemente funziona, direi molto bene, e può essere usato nei modi seguenti; si noti che questo script è già distribuito con TeX Live, quindi tutti gli utenti ne dispongono già, anche se magari non lo sanno. Non so nulla per quel che riguarda la distribuzione MiKTeX.

      Con TeXShop, e TeXnicle basta creare un file ps4pdf.engine da aggiungere agli altri già presenti nele rispettive cartelle ~/Libreria/TeXShop/Engines/ e ~Libreria/Application Support/TeXnicle/Engines/ contenete il codice seguente:
      `
      #!/bin/tcsh

      set path= ($path /usr/texbin /usr/local/bin)
      ps4pdf -file-line-error -shell-escape -synctex=1 “$1”
      `
      (questo è il codice che ho usato per TeXShop, ma visto che il linguaggio è lo stesso dovrebbe funzionare anche per TeXnicle; altrimenti per questo editor si può copiare e modificare uno degli altri file engine cambiando solo il nome del motore di composizione)

      Bisogna ricordarsi di impostare il bit di esecuzione, per esempio dando da terminale il comando
      `
      chmod 755 ps4pdf.engine
      `

      Per TeXmaker e TeXstudio dovrebbe essere sufficiente copiare e adattare l’ultima riga di quello script in una delle finestre del pannello di configurazione corrispondente all’icona Comandi.

      Per TeXworks non ho controllato, ma dovrebbe potersi fare anche con TeXworks una operazione simile, senza usare file engine.

      Naturalmente il comando ps4pdf file.tex si può dare da linea di comando, ma farlo fare all’editor è più comodo perché basta scegliere il motore desiderato e poi cliccare il pulsante/icona che corrisponde ad esegui.

      Una volta sistemata la configurazione dell’editor preferito, coloro che usano abitualmente PSTriks e sono “costretti a usare pacchetti aggiuntivi oppure a passare attraverso il file in formato DVI, questo programma dovrebbe essere adattissimo e usarlo diventa solo una questione di un click.

      Si noti che con TeXShop, una volta installato l’engine, in testa al file da compilare si può sempre mettere la riga magica:
      `
      % !TEX TS-program = ps4pdf
      `
      e poi basta semplicemente cliccare il pulsante “typeset” senza bisogno nemmeno di selezionare il programma di tipocomposizione da eseguire

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #70925
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Ciao Claudio,
          ho provato il programma ps4pdf con successo. In effetti si tratta di un utilità che può svolgere un compito di semplificare il lavoro con documenti pstricks.
          Ho notato che il funzionamento di ps4pdf non rende però più veloce l’elaborazione. Infatti, ho costruito una classe basata interamente su pstricks per la produzione di etichette con codice a barre che ha il difetto di essere molto lenta dovendo includere moltissime immagini raster.
          Immagino che il formato Postscript sia poco adatto a gestire le immagini. Dopo la conversione in ps da dvi ottengo già file di 100 MB che diventano 200 KB con il passaggio a pdf. I tempi di elaborazione sono troppo lunghi.
          Ho così sperimentato ps4pdf nella speranza che risolvesse questo problema, ma evidentemente rimane intrisecamente legato al formato.

          Grazie!!!
          Un saluto.
          R.

        • #70926
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Ma le immagini raster sono i codici a barre?
            Io per i codici a barre mie ero copiato una quindicina di anni fa quello che oggi è diventato il pacchetto ean, se non ricordo male il nome, e l’avevo modificato per le mie necessità particolari (volevo poter usare esternamente solo il numero specifico dell’oggetto-libro, e il resto del codice ce l’avrebbe messo il codice, calcolando anche la cifra di controllo. Poi quando è uscito il codice ISBN a 13 cifre, di fatto producente il codice ean, la casa editrice mi aveva chiesto di produrre un codice a barre formato solo dalle righe bianche e nere, con sotto il codice ean a 13 cifre e sopra il codice ISBN vecchio a 10 cifre.) ma non ho mai usato pstricks, perché il tutto veniva realizzato con i font OCR (di cui mi ero creato con mftrace i file pfb) e con i \vrule primitivi; quindi pdflatex ci lavorava sopra alla grande e il pdf usciva senza apparente consumo di tempo.

            PSTricks è una cosa geniale, ma è tremendamente laboriosa. ps4pdf è migliore di latex+dvipdfm(x) perché fa tutto in un passaggio; nel senso che l’utente non deve eseguire due programmi ma quello soltanto; dietro le quinte c’è tutta la trasformazione degli ambienti pspicture dal formato dvi al formato pdf, quindi di fatto svolge lo stesso lavoro che fanno anche i pacchetti pst2pdf e simili, ma il vantaggio è che il programma di tipocomposizione che viene fatto girare è sempre e soltanto pdflatex, per cui il file prodotto contiene anche quelle azioni che derivano dalle istruzioni primitive di pdftex, il motore di composizione sottostante, per esempio si possono eseguire le inclusioni di pagine di pdf esterni con pdfpages.

            Uno script che lanciasse prima latex poi dvipdfm(x) farebbe forse prima, come tempo totale, ma il formato dvi intermedio non è in grado di sfruttare quelle speciali primitive di pdftex e quindi il file pdf finale non potrebbe beneficiarne. È un po’ il difetto che si presenta con XeLaTeX che passa attraverso un file “extended dvi”, ma che non può sfruttare completamente la microgiustificazione ne fare altre cosette che solo pdftex sa fare.

            Probabilmente quei pacchetti come pst2pdf sono equivalenti all’uso di ps4pdf, perché il motore di composizione è sempre solo pdflatex, ma via via che si incontrano quelle figure scritte con pstrick, ci pensa il pacchetto di estensione a trascrivere il codice pstricks in file di servizio e, sfruttando \write18 lanciando dietro le quinte, latex, dvips+ps2pdf oppure dvipdfm(x), pdfcrop, e poi, tornando al file principale, includendo l’immagine scontornata prodotta a parte. Può darsi che questi continui passaggi da pdflatex al sistema con write18, e ritorno, rallentino la produzione del file finale, rispetto a quello che fa ps4pdf, ma non credo che ci siano delle differenze vistose; per altro le funzionalità delle primitive di pdftex vengono mantenute tutte.

            A me è sembrato utile segnalare la possibilità di usare ps4pdf e di installare l’engine corrispondente in alcuni degli shell editor avanzati. Poi ciascuno, come hai fatto tu, sperimenta e decide quale strada seguire. Ma in effetti anche ps4pdf è solo una via alternativa ad altre, non offre vantaggi strabilianti.

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

              OldClaudio” post=70204Ma le immagini raster sono i codici a barre?

              Ciao.
              Le immagini sono loghi aziendali vari, trasformati naturalmente in formato eps da varie fonti, anche vettoriali.
              Anche così mi conviene passare a ps4pdf tutto sommato, ma dovrò fare qualche ulteriore prova.

              Un modo di risolvere “esternamente” è quello di produrre il documento senza immagini eps e rielaborarlo successivamente sovrappondendo la griglia contenente le immagini eps nella giusta posizione, sempre costante essendo etichette. Ho fatto un test molto positivo ma avrei dovuto poi modificare gli script di lancio personalizzati in Lua, e questo non l’ho fatto (per vari motivi e non solo la perenne carenza di tempo).

              In questo modo, la produzione del documento è veloce non coinvolgendo eps (che potrebbero essere anche una quarantina per pagina), e risolvendo la “gestione immagini” quando ormai sono in ambiente pdf, molto più efficiente.

              OldClaudio” post=70204Io per i codici a barre mie ero copiato una quindicina di anni fa quello che oggi è diventato il pacchetto ean, se non ricordo male il nome, e l’avevo modificato per le mie necessità particolari (volevo poter usare esternamente solo il numero specifico dell’oggetto-libro, e il resto del codice ce l’avrebbe messo il codice, calcolando anche la cifra di controllo. Poi quando è uscito il codice ISBN a 13 cifre, di fatto producente il codice ean, la casa editrice mi aveva chiesto di produrre un codice a barre formato solo dalle righe bianche e nere, con sotto il codice ean a 13 cifre e sopra il codice ISBN vecchio a 10 cifre.) ma non ho mai usato pstricks, perché il tutto veniva realizzato con i font OCR (di cui mi ero creato con mftrace i file pfb) e con i \vrule primitivi; quindi pdflatex ci lavorava sopra alla grande e il pdf usciva senza apparente consumo di tempo.

              Ho scelto pstrick perché comprende il potente pacchetto pst-barcode che gestisce molti formati barcode, anche 2d.
              A me serve solo il banale code39 di cui avrei anche già implementato in tikz, ma la classe è pensata per essere pubblicata su CTAN e quindi servirebbero tutti i formati.

              Avevo anche già contattato Herber Voss, manutentore di pstricks, per presentargli la classe ed avere il consenso per la pubblicazione tra i moduli ufficilai di pstricks. Gli obiettivi della classe sono ambiziosi, volendo essere un kit completo e flessibile per la produzione di etichette.
              Tendezialmente non avrei problemi pratici a pubblicare, ma devo fare i conti con il linguaggio: una volta usciti sarei obbligato a proseguire sulla strada scelta che, invece, non è ancora stabile.
              Grazie Claudio escusate per l’off topic.
              R.

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

          Go to top