Tikz esternal su un gran numero di file

  • Creatore
    Topic
  • #80401
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti,
      Nella mia tesi ho inserito centinaia di grafici creati con matlab, importati in pgfplots e poi esternalizzati. La compilazione procede senza problemi quando ho tutti i file esternalizzati già a disposizione. Quando, per vari motivi, devo ricrearne anche solo uno, la compilazione si interrompe avvertendo di verificare che l’opzione shell escape sia attiva. Ovviamente l’opzione è attiva. Infatti provando a compilare solo una porzione della tesi, quella che contiene il grafico da esternalizzare nuovamente, l’operazione avviene senza problemi.

      Il problema è quindi risolto, ma vorrei caplire il perché avviene tutto ciò. È possibile che sia dovuto a max_in_open nel file di configurazione di tex?

      Grazie in anticipo a chi vorrà rispondere a questa curiosità.

      PS: non sono sicuro che l’oggetto della discussione sia significativo, si accentano suggerimenti 😉

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #80402
        Up
        0
        Down
        ::

        Iovem” post=79594Buongiorno a tutti,
        Nella mia tesi ho inserito centinaia di grafici creati con matlab, importati in pgfplots e poi esternalizzati. La compilazione procede senza problemi quando ho tutti i file esternalizzati già a disposizione. Quando, per vari motivi, devo ricrearne anche solo uno, la compilazione si interrompe avvertendo di verificare che l’opzione shell escape sia attiva. Ovviamente l’opzione è attiva. Infatti provando a compilare solo una porzione della tesi, quella che contiene il grafico da esternalizzare nuovamente, l’operazione avviene senza problemi.

        Il problema è quindi risolto, ma vorrei caplire il perché avviene tutto ciò. È possibile che sia dovuto a max_in_open nel file di configurazione di tex?

        Grazie in anticipo a chi vorrà rispondere a questa curiosità.

        PS: non sono sicuro che l’oggetto della discussione sia significativo, si accentano suggerimenti 😉

        Se devi cambiare anche un solo grafico devi nuovamente utilizzare [tt]pdflatex -shell-escape[/tt] in fase di compilazione. Secondo me la cosa migliore da fare è impostare:`
        \tikzset{external/force remake}
        ` in questo modo quando modifichi una figura e rilanci la compilazione tutte vengono esternalizzate nuovamente. Questo generalmente aiuta perché con tantissimi grafici si può fare confusione quando “si eliminano le vecchie figure per re-esternalizzare”.

        Ciao
        Claudio

      • #80403
        Andrea
        Partecipante
          Up
          0
          Down
          ::

          cfiandra” post=79595
          Se devi cambiare anche un solo grafico devi nuovamente utilizzare [tt]pdflatex -shell-escape[/tt] in fase di compilazione. Secondo me la cosa migliore da fare è impostare:`
          \tikzset{external/force remake}
          ` in questo modo quando modifichi una figura e rilanci la compilazione tutte vengono esternalizzate nuovamente. Questo generalmente aiuta perché con tantissimi grafici si può fare confusione quando “si eliminano le vecchie figure per re-esternalizzare”.

          Ciao
          Claudio

          Ovviamente quando devo ricreare un grafico compilo con l’opzione shell escape. Nonostante questo non funziona a meno che non compilo solo una piccola parte della tesi (sempre con shell escape)

          In effetti potrebbe essere come dice te (se ho capito correttamente), la libreria external non trova il file da esternalizzare e da errore. Però ho imposto che ogni file esternalizzato abbia un nome univoco:
          Pippo.tex diventa Pippo-output.pdf
          E
          Paperino.tex diventa paperino-output.pdf
          Quindi non credo che faccia confusione su quale ricreare e quale includere.

          Il forzare l’esternalizzazione di tutte le figure è un’opzione, ma poco pratica: serve troppo tempo; preferisco commentare tutto tranne la sezione dove c’è il grafico da esternalizzare, compilare, de-commentare tutto e compilare.

        • #80404
          Up
          0
          Down
          ::

          Iovem” post=79597Ovviamente quando devo ricreare un grafico compilo con l’opzione shell escape. Nonostante questo non funziona a meno che non compilo solo una piccola parte della tesi (sempre con shell escape)

          In effetti potrebbe essere come dice te (se ho capito correttamente), la libreria external non trova il file da esternalizzare e da errore. Però ho imposto che ogni file esternalizzato abbia un nome univoco:
          Pippo.tex diventa Pippo-output.pdf
          E
          Paperino.tex diventa paperino-output.pdf
          Quindi non credo che faccia confusione su quale ricreare e quale includere.

          Il discorso è più articolato. Ovvero, la mia era una considerazione generale che, non sapendo in termini di codice cosa hai fatto veramente, può lasciare il tempo che trova. Proprio perché non so cosa hai fatto, il discorso che hai imposto “Paperino.tex diventa paperino-output.pdf” non mi è chiaro: se Paperino.tex ha 10 figure non dovresti ottenere qualcosa tipo (considerando la tua stringa di output) paperino-output0.pdf, paperino-output1.pdf e così via fino a paperino-output10.pdf?

          Il fatto poi che tu debba compilare solo una parte della tesi perché l’esternalizzazione funzioni è strana. In http://www.guitex.org/home/it/forum/5-tex-e-latex/79377-parere-standalone#79473 avevo elencato alcuni motivi per cui a me non funzionava, magari ti può essere di aiuto.

          Iovem” post=79597
          Il forzare l’esternalizzazione di tutte le figure è un’opzione, ma poco pratica: serve troppo tempo; preferisco commentare tutto tranne la sezione dove c’è il grafico da esternalizzare, compilare, de-commentare tutto e compilare.

          Il discorso è che le figure sono belle ed esemplificative, ma alla fine dovrai pure spiegarle, no? Ecco io inserivo i grafici della sottosezione corrente e compilavo con [tt]-shell-escape[/tt] per averli pronti; poi scrivevo tutte le considerazioni. A me piace compilare spesso per vedere se una frase ha senso oppure no, perciò avere già esternalizzato in precedenza le figure permette di compilare con pdflatex normalmente senza patemi.

          Ciao
          Claudio

        • #80405
          Andrea
          Partecipante
            Up
            0
            Down
            ::

            cfiandra” post=79598
            Il discorso è più articolato. Ovvero, la mia era una considerazione generale che, non sapendo in termini di codice cosa hai fatto veramente, può lasciare il tempo che trova. Proprio perché non so cosa hai fatto, il discorso che hai imposto “Paperino.tex diventa paperino-output.pdf” non mi è chiaro: se Paperino.tex ha 10 figure non dovresti ottenere qualcosa tipo (considerando la tua stringa di output) paperino-output0.pdf, paperino-output1.pdf e così via fino a paperino-output10.pdf?

            Il fatto poi che tu debba compilare solo una parte della tesi perché l’esternalizzazione funzioni è strana. In http://www.guitex.org/home/it/forum/5-tex-e-latex/79377-parere-standalone#79473 avevo elencato alcuni motivi per cui a me non funzionava, magari ti può essere di aiuto.

            Il discorso è che le figure sono belle ed esemplificative, ma alla fine dovrai pure spiegarle, no? Ecco io inserivo i grafici della sottosezione corrente e compilavo con [tt]-shell-escape[/tt] per averli pronti; poi scrivevo tutte le considerazioni. A me piace compilare spesso per vedere se una frase ha senso oppure no, perciò avere già esternalizzato in precedenza le figure permette di compilare con pdflatex normalmente senza patemi.

            Ciao
            Claudio

            Avevo letto la tua discussione ed i casi in cui la libreria non aveva funzionato. Nel mio caso invece funziona, infatti le singole figure vengono processate correttamente. Non è nemmeno un problema di memoria, perché non viene riportato l’errore tex memory exceeded.

            Io ho seguito il tuo stesso approccio, se ho capito: ho esternalizzato tutte le figure, poi le ho commentate. Il problema è sorto quando mi sono accorto di un errore in una sola di queste e dovero ricrearla.

            Per quanto riguarda i nomi dei file mi sono spiegato male. Ogni figura, solo il codice tikz, è in un file tex separato. Ognuno di questi file ha un nome univoco. Partendo da questo nome, il PDF viene generato con un nome univoco (lo stesso precedente con il suffisso -output).

            Inoltre la struttura gerarchica del mio progetto è:
            Main->sezione->figura
            Ognuno in un tex separato che viene richiamato con `\input`.

            Quando devo ricreare una singola figura, compilando main non funziona, compilando la singola sezione (che magari contiene 10 figure) invece si.

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

        Go to top