Re: Concatenare file .tex multipli come unico file finale

#75386
Up
0
Down
::

DirkPitt” post=74550

[quote=”DirkPitt” post=74545]Non so se è deformazione professionale mia, ma sono abituato che scrivere codici minimali (ma sufficienti!) è sempre la cosa migliore e mi sembrava logico farlo anche con latex. Mi fido di voi se mi dite che non costa nulla caricare cose in più in fase di compilazione, ma sicuramente non è l’ottimo 🙂

È vero che usando un preambolo minimale per ciascun capitolo risparmieresti forse un paio di secondi nel processo. Ma ogni volta che aggiungi qualcosa dovresti assicurarti che non dipenda da qualche pacchetto che non carichi per quel capitolo: in tal caso la perdita di tempo sarebbe nettamente superiore al guadagno ottenuto in un paio di centinaia di compilazioni. Interrompere la compilazione, correggere il preambolo e ripartire richiede probabilmente più di due minuti.

Per non dire poi quando alla fine devi integrare tutti i preamboli in uno solo. No, non funziona. 🙂

Ciao
Enrico

Diciamo che sto scrivendo un libro composto da 3 capitoli.

Tutti i capitoli contengono almeno una tabella e almeno una figura. Allora creo il seguente file

`
% file direttive-comuni.tex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage{graphicx}
`

Il primo capitolo contiene sicuramente un estratto di testo ”riempitivo” e una longtable. Allora creo un altro file:

`
%file direttive-cap1.tex
\usepackage{lipsum}
\usepackage{longtable}
`

Il secondo capitolo contiene figure disegnate in pgf. Per cui:

`
%file direttive-cap2.tex
\usepackage{tikz}
`

Il terzo capitolo usa due macro m1 ed m2:

`
%file direttive-cap3.tex
\newcommand{\m1}{….}
\newcommand{\m2}{…}
`

Il documento finale sarà quindi

`
\documentclass{book}
\input{direttive-comuni}
%\input{direttive-cap1} eventualmente da decommentare
%\input{direttive-cap2}
%\input{direttive-cap3}

\begin{document}
%\input{capitolo1}
%input{nonfatemeliscriveretuttie3}
\end{document}
`

Poi dopo qualche mese devo aggiungere un quarto capitolo. Sfortunatamente esso non conterrà tabelle, per il resto gli bastano le direttive comuni. Potrei lasciare \usepackage{booktabs} nelle direttive comuni. Preferisco toglierlo da li e fare un nuovo file

`
%file direttive-comuni-1-2-3
\usepackage{booktabs}
`

E quindi il main:

`
\documentclass{book}
\input{direttive-comuni}
%input{direttive-comuni-1-2-3} %lasciare commentato se compili solo il 4
%\input{direttive-cap1} eventualmente da decommentare
%\input{direttive-cap2}
%\input{direttive-cap3}

\begin{document}
%\input{capitolo1}
%input{nonfatemeliscriveretuttie4}
\end{document}
`

Quanto si complicano le cose con troppi pacchetti? Non lo so 🙂 Probabilmente non ne vale la pena (?)

Ciao[/quote]

Diciamo che stai procedendo nella direzione sbagliata. Io, al tuo posto, farei una cosa del genere:

`
\documentclass{book}
\input{direttive-comuni}
\input{direttive-comuni-1}
\input{direttive-comuni-1a} % decommentare la riga precedente se il pacchetto booktabs non serve
\input{direttive-cap1} % eventualmente da decommentare se il primo paragrafo ha bisogno solo di graphicx
\input{direttive-comuni-1.1} % per l'unico pacchetto in più del primo sottoparagrafo
\input{direttive-cap2}
\input{direttive-cap3}
\input{direttive-cap4} % se anche il terzo non vuole makeidx ma lo vuole il quinto

\begin{document}
%\input{capitolo1}
%input{paragrafo2}
%input{paragrafo3}
%input{paragrafo4}
%input{paragrafo5}
%input{paragrafo6}
%input{capitolo2}
%input{paragrafo2}
%input{paragrafo3}
%input{paragrafo4}
%input{paragrafo5}
%input{paragrafo6}
\end{document}
`

Trovo che in questo modo compilare anche una sola riga alla volta sia molto più facile, no?!

Fidati, ti stiamo dicendo che la tua strada è impercorribile. A meno che i due secondi di Enrico non ti facciano la differenza 🙂

Ciao
Tommaso

Go to top