E’ possibile compilare solo alcuni capitoli ?

  • Creatore
    Topic
  • #3430
    Up
    0
    Down
    ::


    Ciao,
    sto scrivendo la tesi con Winedt e sono arrivato al terzo capitolo. Mi chiedevo se è possibile inserire un comando (magari nel preamble) che consente di compilare solo alcuni capitoli (specificati) anziché ricompilare ogni volta tutto.
    grazie

Visualizzazione 14 filoni di risposte
  • Autore
    Risposte
    • #3431
      Up
      0
      Down
      ::


      Ti conviene organizzare il tuo documento in file diversi: ad esempio un file per ogni capitolo (es. capitolo1.tex, capitolo2.tex, …) e poi nel documento principale scrivi:
      `
      \include{capitolo1}
      \include{capitolo2}

      `
      Dopo aver fatto questo, se vuoi compilare solo il secondo capitolo, prima di \begin{document} scrivi:
      `
      \includeonly{capitolo2}
      `

    • #3432
      Up
      0
      Down
      ::


      con documenti lunghi è sempre buona abitudine separare i capitoli del tuo documento in vari file e richiamarli con \input o \include.
      in tal caso basta commentare il comando o combiare la lista di compilazione.
      naturlamente i numeri di pagina saranno sballati, se li vuoi conservare tali e quali devi aggiornare un bel po’ di contatori.
      poi mi pare di ricordare che eistesse un pacchetto che spilttava il pdf in vari file, ma non mi ricordo il nome.
      ciao
      f

    • #3433
      Up
      0
      Down
      ::


      Grazie per la risposta.
      Avrei però delle domande in merito alla suddivisione del file in capitoli.
      Ogni file (capitolo1.tex ecc…) deve contenere solo il sorgente o anche tutto il preamble che ho nel main file ?
      Ci sono dei problemi se in un capitolo ho delle \ref{} che puntano a \label{} di altri capitoli ?
      Grazie 1000

    • #3434
      Up
      0
      Down
      ::


      Devi specificare solo quello che vuoi scrivere, il preambolo va messo solo nel file principale dove si trovano gli \include dei vari capitoli. Ad esempio in capitolo1.tex scrivi:
      `
      \chapter{Titolo del primo capitolo}
      Testo testo testo testo testo testo…
      `
      Puoi mettere tranquillamente i riferimenti agli altri capitoli; al massimo durante la scrittura del documento ti vengono sballati o non riconosciuti (non sono sicuro di questo), ma quando alla fine compili (due volte) tutto il documentoinsieme (togliendo o commentando il comando \includeonly) i riferimenti vengono tutti corretti.
      Ho fatto la tesi in questo modo 😉

    • #3435
      Up
      0
      Down
      ::


      prima cosa ti sconsiglio di chiamare i file 1.tex è meglio dargli un nome logico. dal punto di vista del risultato non cambia niente, ma ti assicuro che capito di dover cambiare l’ordine a posteriori.

      \include semplicemente “copia” nel punto in cui lo metti tutto quello che incontra, quindi non si pone nessun problema, te hai vari file ma LaTeX li vede come un unico file sequenziale.
      logicamente se commenti un include tutti i riferimenti cambiano, perché quello che era il capitolo 2 diventa 1 etc. in questo senso intendevo che se vuoi i contatori giusti lo devi fare a mano, ma normalmente è un problema che non si pone, te compili a pezzi per comodità e poi compili il tutto alla fine.

      con emacs è facile compilare direttamente da un file figlio il file madre, in maniera da non dover cambiare sempre finestra. basta mettere alla fine del file figlio
      `
      %%% Local Variables:
      %%% TeX-master: “main.ltx”
      %%% End:
      `
      e poi da dentro il file figlio facendo C-c C-c si compila main.ltx
      con winedt non lo so ma puoi cercare nella guida, probabilmente esite qualcosa di analogo.

      ciao
      f

    • #3436
      Up
      0
      Down
      ::


      Grazie, proverò.
      Se devo fare troppi casini coi contatori lascio perdere…
      Grazie

    • #3437
      Up
      0
      Down
      ::


      ma no, ti conviene fregartene.
      a mio parere comipili un solo capitolo per volta per fare prima e velocizzare le ricerche in fase di redazione. se qualcuno ti chiede un solo capitolo il 99% delle volte gli dai un pdf, e poui allora compilare tutto il tuo file con LaTeX e poi convertire solo un capitolo in pdf, in tal caso i numeri di pagina sono quelli del volume finito.
      ciao
      f

    • #3438
      Up
      0
      Down
      ::

      ma no, ti conviene fregartene.
      a mio parere comipili un solo capitolo per volta per fare prima e velocizzare le ricerche in fase di redazione. se qualcuno ti chiede un solo capitolo il 99% delle volte gli dai un pdf, e poui allora compilare tutto il tuo file con LaTeX e poi convertire solo un capitolo in pdf, in tal caso i numeri di pagina sono quelli del volume finito.
      ciao
      f

      Si forse è meglio fare così.
      Grazie

    • #3439
      Up
      0
      Down
      ::


      Mi sono sempre chiesto se ci sia qualche differenza tra `\include{…} ` e `\input{…}`.

    • #3440
      Up
      0
      Down
      ::


      Probabilmente l’unica differenza è la sintassi, in quanto i due comandi li ho sempre visti come`\include{prova}`e`\input prova.tex`

      Il secondo in particolare appartiene al TeX.

      Ciao

    • #3441
      Up
      0
      Down
      ::

      Probabilmente l’unica differenza è la sintassi, in quanto i due comandi li ho sempre visti come`\include{prova}`e`\input prova.tex`

      Non credo che la differenza sia solo di sintassi.

      Con `\documentclass{book}

      \begin{document}

      \chapter{Uno}
      \include{a}

      \chapter{Due}
      \include{b}

      \chapter{Tre}
      \include{c}

      \end{document}`
      ottengo un documento in cui la pagina di inizio capitolo contiene solo il titolo e il contenuto dei files a, b e c appare dalla pagina successiva: questo comportamente è peraltro non desiderabile.

      Invece con
      `\documentclass{book}

      \begin{document}

      \chapter{Uno}
      \input{a}

      \chapter{Due}
      \input{b}

      \chapter{Tre}
      \input{c}

      \end{document}`
      Ottengo (giustamente) che il contenuto di ogni input segue immediatamente il titolo del capitolo.

    • #3442
      Up
      0
      Down
      ::


      Ho trovato la risposta su The UK TeX FAQ. Riporto per chi fosse interessato un paio di appunti che mi sono scritto per non dimenticarmi come stanno le cose.

      \input{nomefile} permette il nesting (puoi chiamare un file che ne chiama un altro) e praticamente inserisce il testo del file “figlio” come se fosse scritto nel file “madre”.

      \include{nomefile} non permette il nesting ma inserisce un \clearpage prima e permette di utilizzare \includeonly{nomefile1,nomefile2,…} che inserisce solo i files tra parentesi ma compila il tutto come se fossero presenti anche gli altri (numeri di pagina, note, equazioni, indici, …).

    • #3443
      Up
      0
      Down
      ::

      in tal caso basta commentare il comando o combiare la lista di compilazione.
      naturlamente i numeri di pagina saranno sballati, se li vuoi conservare tali e quali devi aggiornare un bel po’ di contatori.

      Questo è vero se si usa \input. Se invece si utilizza \include e poi \includeonly tutti i contatori risultano corretti.

    • #3444
      Up
      0
      Down
      ::

      \include semplicemente “copia” nel punto in cui lo metti tutto quello che incontra, quindi non si pone nessun problema, te hai vari file ma LaTeX li vede come un unico file sequenziale

      Questo è quello che fa \input; \include inserisce anche un \clearpage.

    • #3445
      Up
      0
      Down
      ::

      ma no, ti conviene fregartene.
      a mio parere comipili un solo capitolo per volta per fare prima e velocizzare le ricerche in fase di redazione. se qualcuno ti chiede un solo capitolo il 99% delle volte gli dai un pdf, e poui allora compilare tutto il tuo file con LaTeX e poi convertire solo un capitolo in pdf, in tal caso i numeri di pagina sono quelli del volume finito.
      ciao
      f

      La soluzione a questo problema è qua.

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

Go to top