pgfplots: evitare di rifare i conti per i grafici ogni volta

  • Creatore
    Topic
  • #85757
    Up
    0
    Down
    ::


    Ciao a tutti.
    Come da titolo, nella speranza che la risposta non sia “controlla la guida” 🙂 , vorrei sapere se esiste un modo per evitare che, al momento della compilazione con pdfplatex, non vengano rielaborati tutti i grafici, ma solamente quelli che sono stati cambiati.

    Grazie in anticipo, ciao 🙂

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #85758
      Up
      0
      Down
      ::

      l3on4rdo” post=85192Ciao a tutti.
      Come da titolo, nella speranza che la risposta non sia “controlla la guida” 🙂 , vorrei sapere se esiste un modo per evitare che, al momento della compilazione con pdfplatex, non vengano rielaborati tutti i grafici, ma solamente quelli che sono stati cambiati.

      Grazie in anticipo, ciao 🙂

      Si, leggi la guida cercando la libreria [tt]external[/tt]. Compila poi con l’opzione [tt]-shell-escape[/tt].

      Ciao
      Claudio

    • #85759
      Up
      0
      Down
      ::


      Grazie infinite.
      Anche per la pazienza 🙂

      Ciao!

    • #85760
      Up
      0
      Down
      ::


      Mi sto documentando in merito, grazie ancora.
      Nel frattempo, avrei una domada.
      C’è un limite ai grafici che pgfplots può “compilare” nel documento pdf?
      Singolarmente, me li inserisce tutti senza problema.
      Se li metto tutti insieme mi dà errore:
      `LaTeX Error: Too many unprocessed floats.`
      … credo dipenda dal numero di dati processati.
      Ma non so se si risolve con l’”external”-izzazione dei grafici.

      edit:
      Se può essere utile a capire, mi è bastato far precedere il grafico da un \newpage (o un \clearpage) e ho potuto ricominciare ad inserirli.
      Inoltre sto guardando questa spiegazione del mio problema… ma davvero non saprei da dove iniziare per cercare di risolvere consapevolmente questo problema.

    • #85761
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Sulla guida L’Arte di scrivere con LaTeX è detto poco a questo proposito, perché per dire di più bisogna andare nella profondità del codice di LaTeX.
        Ti basti sapere che per rendere mobili gli oggetti come le figure o le tabelle, attraverso gli ambienti figure e table (e analoghi ambienti epr altri tipi di oggetti mobili) LaTeX li deve tenere in memoria e li sputa fuori nel file di uscita quando le specificazioni di collocamento lo consentono; se non lo consentono in questa pagina, l’oggetto rimane in memoria e latex ci riprova alla pagina successiva; nel frattempo possono andare in coda altri oggetti mobili, e se ce n’è una che blocca la coda, le altre restano in coda, perché LaTeX non ne scambi l’ordine di inserimento nel file di uscita. La memoria del programma può contenere solo 18 oggetti in coda; al diciannovesimo protesta e ti dà quel messaggio che hai ricevuto e che implica che dal diciannovesimo in poi tutti gli oggetti mobili che si aggiungessero alla coda vengono persi.

        Allora per ovviare all’inconveniente, non è tanto \newpage che risolve la situazione ma è \clearpage; la funzine di \clearpage è propio quello di cominciare una pagina nuova con l’ordine di svuotare la coda degli oggetti flottanti. Certo facendo così alcune pagine restano mozze oppure contengono solo figure o tabelle.

        A questo ulteriore inconveniente si può ovviare usando il pacchetto afterpage; non fa miracoli ma ci prova: Per esempio, se, avendo caricato quel pacchetto, dai il comando `\afterpage{\clearpage}`, il comando \clearpage non viene eseguito supbito ma solo al momento in cui la pagina in costruzione viene spedita al file di uscita; quindi, almeo la pagina corrente non è mozza. Usato ocn attenzione e non troppo spesso, questo comando ti permette di gestire il tuo documento e le tue figure in modo non bellissimo ma decente.

        Un’altra possibilità è data dal specificare il codice di posizione p, solo lui, non insieme, per esempio, ad htb; in questo caso la figura, se non ce ne sono altre in coda, viene subito emessa in una pagina a se stante, appena c’è posto per farlo. Naturalmente perché ne valga la pena bisogna che la figura, compresa la didascalia sia sufficientemente grande.

        Nella Guida GuIT, scaricabile dalla sezione Documentazione di questo sito, può trovare maggiori delucidazioni sull’argomento; anche la guida tematica, sempre scaricabile da questo sito, intitolata LaTeX Reference Manual commentato (in italiano) contiene abbastanza dettagli sulla gestione degli oggetti mobili.

      • #85762
        Up
        0
        Down
        ::


        Mi riaffaccio in questa discussione perché ho una domanda in un certo senso collegata all’uso di external, anche se il problema è differente.

        Mettiamo che io faccia due grafici.
        E che in entrabi i grafici io debba plottare i valori contenuti in un data file molto corposo.
        C’è un metodo per indicare a pgfplots che i conti li ha già fatti per un grafico precedentemente elaborato?
        Per precedentemente intendo nella stessa compilazione del documento.
        (per questo dico… simile ma differente all’uso di external 🙂 )

        Spero di essermi spiegato e, in caso, anche l’indicazione di dove guardare nella guida sarebbe graditissima, perché sto controllando ma non trovo.

        Ciao!

      • #85763
        Up
        0
        Down
        ::

        l3on4rdo” post=85660Mi riaffaccio in questa discussione perché ho una domanda in un certo senso collegata all’uso di external, anche se il problema è differente.

        Mettiamo che io faccia due grafici.
        E che in entrabi i grafici io debba plottare i valori contenuti in un data file molto corposo.
        C’è un metodo per indicare a pgfplots che i conti li ha già fatti per un grafico precedentemente elaborato?
        Per precedentemente intendo nella stessa compilazione del documento.
        (per questo dico… simile ma differente all’uso di external 🙂 )

        Spero di essermi spiegato e, in caso, anche l’indicazione di dove guardare nella guida sarebbe graditissima, perché sto controllando ma non trovo.

        Ciao!

        Magari verrò smentito a brevissimo, ma credo di no. Nel senso: se utilizzi lo stesso file prendendo “colonne” di dati diverse ovviamente bisogna effettuare di nuovo i calcoli. Ma questo è anche vero se, ipotizziamo, hai una colonna di dati in comune per i diversi grafici: per il risultato ti serve comunque processare quei dati in funzione di parametri diversi (vedi “colonne” diverse). Oltretutto, ho il sospetto che stai cercando di ottimizzare qualcosa che ha poca rilevanza rispetto allo sforzo computazione complessivo: hai detto di avere una tesi voluminosa perciò presumo tu non abbia solo 2 grafici. Ciò vuol dire che, facendo come supposizione che sia possibile la tua richiesta, potresti ottimizzare due/tre grafici risparmiando mettiamo qualche ms quando magari hai altre decine di grafici che ne portano via molti di più. Certo sono ms risparmiati, ma ne vale la pena?

        In alternativa, se proprio vuoi velocizzare la compilazione, creati un documento a parte con la classe standalone per i grafici “tosti”: nel documento finale includi un’immagine ben scontornata con il grafico e sei a posto. Certo, mantienti le proporzioni: se il documento principale è composto con i Latin Modern, non usare il Palatino nei documenti dei grafici.

        Ciao
        Claudio

      • #85764
        Up
        0
        Down
        ::


        Diciamo che è una curiosità di natura didattica 🙂
        La motivazione pratica, invece, è che su una decina di grafici “accoppiati” metto in entrambi i grafici il plot di un datafile di 600000 righe (prese ogni tot, non tutte) e vorrei evitare di rifare i conti “doppi”.
        A prescindere da questo aspetto, comunque, la curiosità era di natura didattica 🙂

        Grazie!

      • #85765
        Up
        0
        Down
        ::

        OldClaudio” post=85231Sulla guida L’Arte di scrivere con LaTeX è detto poco a questo proposito, perché per dire di più bisogna andare nella profondità del codice di LaTeX.
        Ti basti sapere che per rendere mobili gli oggetti come le figure o le tabelle, attraverso gli ambienti figure e table (e analoghi ambienti epr altri tipi di oggetti mobili) LaTeX li deve tenere in memoria e li sputa fuori nel file di uscita quando le specificazioni di collocamento lo consentono; se non lo consentono in questa pagina, l’oggetto rimane in memoria e latex ci riprova alla pagina successiva; nel frattempo possono andare in coda altri oggetti mobili, e se ce n’è una che blocca la coda, le altre restano in coda, perché LaTeX non ne scambi l’ordine di inserimento nel file di uscita. La memoria del programma può contenere solo 18 oggetti in coda; al diciannovesimo protesta e ti dà quel messaggio che hai ricevuto e che implica che dal diciannovesimo in poi tutti gli oggetti mobili che si aggiungessero alla coda vengono persi.

        Allora per ovviare all’inconveniente, non è tanto \newpage che risolve la situazione ma è \clearpage; la funzine di \clearpage è propio quello di cominciare una pagina nuova con l’ordine di svuotare la coda degli oggetti flottanti. Certo facendo così alcune pagine restano mozze oppure contengono solo figure o tabelle.

        A questo ulteriore inconveniente si può ovviare usando il pacchetto afterpage; non fa miracoli ma ci prova: Per esempio, se, avendo caricato quel pacchetto, dai il comando `\afterpage{\clearpage}`, il comando \clearpage non viene eseguito supbito ma solo al momento in cui la pagina in costruzione viene spedita al file di uscita; quindi, almeo la pagina corrente non è mozza. Usato ocn attenzione e non troppo spesso, questo comando ti permette di gestire il tuo documento e le tue figure in modo non bellissimo ma decente.

        Un’altra possibilità è data dal specificare il codice di posizione p, solo lui, non insieme, per esempio, ad htb; in questo caso la figura, se non ce ne sono altre in coda, viene subito emessa in una pagina a se stante, appena c’è posto per farlo. Naturalmente perché ne valga la pena bisogna che la figura, compresa la didascalia sia sufficientemente grande.

        Nella Guida GuIT, scaricabile dalla sezione Documentazione di questo sito, può trovare maggiori delucidazioni sull’argomento; anche la guida tematica, sempre scaricabile da questo sito, intitolata LaTeX Reference Manual commentato (in italiano) contiene abbastanza dettagli sulla gestione degli oggetti mobili.

        In effetti, Claudio, un accenno alla capienza massima delle code di TeX si può fare: basta dire che tengono al massimo 18 oggetti, come fare perché le code non si intasino più di tanto, nominare il pacchetto morefloats da usare con le pinze. Che ne dici?

        Ciao
        Tommaso

      • #85766
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::

          In effetti, Claudio, un accenno alla capienza massima delle code di TeX si può fare: basta dire che tengono al massimo 18 oggetti, come fare perché le code non si intasino più di tanto, nominare il pacchetto morefloats da usare con le pinze. Che ne dici?

          Sì si può citare; confesso di conoscerne l’esistenza da una quindicina d’anni ma non l’ho mai usato.Se si deve usare quella estensione di coda, o il documento è molto speciale, oppure si stanno gestendo male i float.

          Un modo per gestirli male è quello di farli troppo grandi; lo dico sia per le tabelle, per le quali esiste l’alternativa di longtable, ma vale anche per le figure, per le quali non esiste “longfigure”; spesso sono troppo grandi perché non sono smarginate; altrettanto spesso sono troppo grandi perché sono scalate per riempire tutta la giustezza, cosa che tipograficamente di solito si evita, ma si preferisce scalare le figure in modo che siano il70% o l’80% di \textwidth; infine sono troppo grandi perché lo sono davvero, ma a guardarci bne si tratta di diagrammi mal fatti dove poche righe sottili diventano “rarae nantes in gurgite vasto”.

          Citale morefloats va bene, ma bisgna accompgnarne la citazione con gli avvertimenti suddetti.

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

      Go to top