Re: Lunghi tempi di compilazione con PGFPLOTS

#82634
Up
0
Down
::


La questione è che con la libreria [tt]external[/tt] devi compilare con l’opzione [tt]-shell-escape[/tt] e non solo con [tt]pdflatex[/tt]. Altrimenti non funziona e non c’è storia. Poi si può discutere sulla metodologia migliore per ridurre i tempi di compilazione, ma è un discorso diverso.

Restando sulla libreria [tt]external[/tt] prima, il tuo file [tt]test.tex[/tt] deve essere compilato così:`pdflatex -shell-escape test.tex` se nel preambolo si è caricata la libreria. Ti consiglio vivamente di specificare il path in cui verranno salvate le figure: vedo che lo fai già, ma potresti anche usare: `\tikzsetexternalprefix{tikz/}` Secondo me la macro apposita richiama meglio il compito che svolge rispetto al passare le opzioni alla macro generale. Ma è una sottigliezza. Un’altra cosa molto consigliata è: `\tikzset{external/force remake}` che permette di sovrascrivere le immagini ogni volta che compili come detto in precedenza. Nota: devi compilare con l’opzione [tt]-shell-escape[/tt] ad ogni grafico/figura nuova, ma se hai sempilcemente scritto del testo non c’è il caso: compila solo con `pdflatex test.tex` Infatti le tue immagini vengono trattate come se fossero inserite con [tt]\includegraphics[/tt]. E risparmi un sacco di tempo, infatti la compilazione “lunga” ti si presenta solo quando le immagini devono essere elaborate, cosa che avviene solo quando compili con l’opzione [tt]-shell-escape[/tt].

Il trucco di aumentare la memoria è molto utile in quanto ti permetterebbe di evitare la libreria e di conseguenza la necessità di compilare in quel modo particolare. Tuttavia ha dei limiti: con molti grafici non c’è proprio speranza perciò è necessario ricorrere all’esternalizzazione. Nella mia tesi ho fatto così. Ad onore di cronaca, c’è un secondo paletto che può bloccare anche il workaround della libreria: quando un grafico ha veramente tanti, ma tanti campioni, neppure l’esternalizzazione funziona. È quanto ho sperimentato e ho risolto mettendo quel particolare grafico in un documento a parte e compilato tutto con LuaLaTeX. Poi ho scontornato con pdfcrop e inserito l’immagine risultante.

E questo trucchetto mi fornisce lo spunto per dire che probabilmente, oggi, se dovessi ri-fare la mia tesi userei un metodo diverso, ossia la creazione di un Makefile per la compilazione. La strategia è spiegata molto bene nella fantastica guida di Elrond Introduzione a Make per compilare documenti LaTeX che trovi nella sezione Documentazione -> Guide Tematiche. Lì in effetti è già proposta una possibile soluzione, che prevede di utilizzare la classe standalone per la creazione delle figure. Io invece preferisco pdfcrop, perciò utilizzerei una normalissima classe article in cui inserire le figure e poi farei in modo di scontornarle con il programma. Un Makefile ti permette di fare queste cose in automatico. Se vuoi un esempio di questa strategia, guarda la struttura della guida tematica sulla macro [tt]\tikzmark[/tt] https://github.com/GuITeX/guidatikzmark : è stata realizzata proprio così.

Ciao
Claudio

Go to top