Velocizzare compilazione capitolo

  • Creatore
    Topic
  • #106780
    Roberto Castelluccio
    Partecipante
      Up
      0
      Down
      ::


      Buonasera, sto scrivendo la mia tesi ed ho organizzato il lavoro con un documento master ed i vari figli; uso subfiles.

      Siccome c’è una parte di un capitolo con una serie tabelle molto grosse (a tutta pagina per intenderci), che richiede sempre molto più tempo di elaborazione rispetto al resto, vorrei chiedere se esiste un modo per dire a LaTeX di non ricompilarla ogni volta (soprattutto col master) ma di “metterla in cache”.

      Naturalmente il problema si presenta anche col singolo subfiles. Con l’opzione draft le cose migliorano poco.
      Quando compilo il master commento quel capitolo, ma visto che LaTeX è infinito volevo vedere se esiste qualche altro trucco.

    Visualizzazione 6 filoni di risposte
    • Autore
      Risposte
      • #106781
        GKT
        Partecipante
          Up
          0
          Down
          ::

          LaTeXCat” post=106894Buonasera, sto scrivendo la mia tesi ed ho organizzato il lavoro con un documento master ed i vari figli; uso subfiles.

          Siccome c’è una parte di un capitolo con una serie tabelle molto grosse (a tutta pagina per intenderci), che richiede sempre molto più tempo di elaborazione rispetto al resto, vorrei chiedere se esiste un modo per dire a LaTeX di non ricompilarla ogni volta (soprattutto col master) ma di “metterla in cache”.

          Naturalmente il problema si presenta anche col singolo subfiles. Con l’opzione draft le cose migliorano poco.
          Quando compilo il master commento quel capitolo, ma visto che LaTeX è infinito volevo vedere se esiste qualche altro trucco.

          Nel tuo caso vedo due strade percorribili:

          1. Compilare con il comando`pdflatex -interaction=batchmode file.tex`. Puoi fare uno script per non scrivere sempre il comando per esteso, ammesso che tu abbia bisogno di compliare molte volte il tuo documento.
          2. Usare nel preambolo il comando`\includeonly`. Puoi studiare l’uso del comando
            Sfortunatamente quel comando non è compatibile con subfiles: devi includere i tuoi files parziali nel documento principale con`\include`.

          Ciao
          Lorenzo

        • #106782
          Roberto Castelluccio
          Partecipante
            Up
            0
            Down
            ::


            1. Usando TeXShop basterebbe creare un motore di compilazione ad hoc. Non ho capito perché batchmode dovrebbe aiutarmi, io non ottengo errori nella compilazione.
            2. Conosco il metodo \includeonly, è più efficiente rispetto a subfiles?

            Grazie.

          • #106783
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Il metodo subfiles serve per compilare pezzi difficili del documento come entità a se stanti, importando il preambolo del mainfile; una volta a punto, compilando il mainfile il solo codice “difficile” viene usato durante la compilazione, ma viene usato sempre non c’è un meccanismo per escluderlo.
              Per escludere i subfiles io userei l’opzione draft e un comando apposito; infatti l’opzione draft imposta la grandezza \overfullrule ad un valore di 5pt,mentre quando l’opzione draft non è in vigore \overfullrule vale 0pt; basta quindi testare se \overfullrule è o non è maggiore di zero; perciò nel main file il scriverei:`\documentclass[…,draft]{classe}

              \begin{document}

              \ifdimen\overfullrule=0pt \subfile{sottofile}\fi

              \end{document}`In questo modo quando e solo quando draft non è attiva, il file subalterno viene usato e compilato. Evidentemente questo non ha nessuna effetto sul sottofile in se stesso. Siccome non ho collaudato il codice, non so se l’opzione draft espressa fra le opzioni della classe del mainfile produca effetti indesiderati quando si compila il file subalterno. Credo di no, ma caso mai faccelo sapere, perché esisterebbe un altro modo semplice per liberarsi dall’uso di draft, che però resta comunque il più semplice.

            • #106784
              Roberto Castelluccio
              Partecipante
                Up
                0
                Down
                ::

                OldClaudio” post=106902 una volta a punto, compilando il mainfile il solo codice “difficile” viene usato durante la compilazione, ma viene usato sempre non c’è un meccanismo per escluderlo.

                Questa non l’ho capita 🙁

              • #106785
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Il tuo problema non era quello di saltare la compilazione delle grosse tabelle che inserisci mediante subfiles? Perché?
                  La soluzione che ti ho dato risolve il problema.

                • #106786
                  Roberto Castelluccio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Certo, c’è la condizione di esclusione. Quindi dici di dare come subfiles solo le tabelle, se non ho capito male.
                    Non ho capito la “visione” sull’uso di subfiles, l’avevo visto come un’alternativa in tutto e per tutto al “metodo input” od al “metodo include”…
                    Grazie.

                  • #106787
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Mi sono riferito alle tabelle, ma vale anche per le figure o interi capitoli.
                      Tuttavia, ti confesso, io ho sempre usato il metodo \includeonly + \include, riservando \input solo all’introduzione nel flusso di elaborazione di file decisamente secondari o che non possono venire inseriti mediante \include.
                      Sono sempre riuscito ad evitare di fare tabelle troppo grandi; basta pensarci prima e una grande tabella può spesso essere evitata con alcune tabelle piccole, oppure con una enumerazione strutturata.
                      Per il resto, gli inconvenienti descritti dall’autore del pacchetto subfiles a me non hanno mai dato fastidio.
                      Tieni presente che quando (ri)compilo la guida Introduzione all’arte della composizione tipografica con LaTeX contenente 30 capitoli, sei indici analitici, e un numero elevato di disegni e di tabelle, più qualche fotografia, per un totale di circa 800 pagine divisi in tre tomi, ho sempre usato \includeonly e \include, senza dovermi addormentare davanti al calcolatore per aspettare che finisca il suo compito; infatti ci mette un po’ meno di 30 secondi per essere compilato sul mio Mac, ma raramente lo compilo per intero, ma compilo solo i capitoli che necessitano di correzioni o di modifiche, finite le quali compilo il tutto.

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

                  Go to top