2010-05-27 6 views
5

Durante la compilazione dei documenti in lattice, il compilatore emette molti file "oggetto". Questo disturba le directory su cui sto lavorando e difficilmente l'uso di VCS come SVN. Quando lavoro con il codice C++ ho delle directory separate per il codice e gli oggetti, posso eseguire make sulla directory dei sorgenti ma i file .o vanno nella directory di build.Eseguire la compilazione separata dei documenti Latex

Esiste un modo corretto per eseguire questa compilazione separata con i documenti Latex? Può essere fatto usando Makefile o passando le opzioni al compilatore di latex?

Grazie

risposta

4

È possibile utilizzare:

pdflatex --output-directory=tmp file.tex 

e tutti i file saranno salvati nella cartella tmp (pdf incluso).

Perché questa non è una soluzione ottimale, ho fatto il mio strumento, pydflatex, che compila il sorgente LaTeX da stashing via i file ausiliari (utilizzando il trucco di cui sopra), e porta il pdf torna alla directory corrente, così dopo compilando hai solo file.tex e file.pdf nella tua directory. Questo funziona molto bene con il controllo della versione.

+0

Il comando latex ha anche questa opzione --output-directory, grazie – tonicebrian

+1

Per essere precisi, sia 'pdflatex' che' latex' sono collegamenti simbolici al comando principale 'pdftex', quindi hanno le stesse opzioni. A proposito, non penso che ci sia molto interesse nell'usare il comando 'latex' (vs' pdflatex') al giorno d'oggi, dato che il pdf ha ormai completamente sostituito dvi. –

2

non posso fare molto con LaTeX (avendo ultimo utente sul serio 20 anni fa ;-), ma per Subversion, si dovrebbe leggere sulla proprietà svn:ignore - lo rende facile da ignorare file con estensioni effettuate non desiderano versione (file oggetto, file bytecode poiché Python può spesso inserire nella stessa directory dei sorgenti, file di backup utilizzati da alcuni editor di testo, & c).

+0

Subversion è un problema ma non quello importante. Puoi usare svn: ignora ma devi specificare quella proprietà su ogni documento e non è ottimale. Altri problemi che mi infastidiscono è che non è possibile completare automaticamente l'utilizzo della shell perché tutti i file con lo stesso nome con estensione diversa, o semplicemente rm i file "oggetto" quando Latex viene incasinato. – tonicebrian

0

Latex genera i file temporanei nella directory in cui si trova il documento principale. Se vuoi che i contenuti siano collocati in una posizione diversa, prova con un file principale come di seguito.

\documentclass{article} 
\input{src/maindocument.tex} 

Utilizzando questo metodo, si potrebbe mantenere una struttura di directory come qui di seguito

/ 
    main.tex 
    /src 
     maindocument.tex 
0

Due opzioni, oltre a quanto sopra.

  1. Usa Lyx: si occupa dei file separati. Penso che copi il file Latex nella sua directory privata e lo faccia in latice. In ogni caso, nulla viene creato nella directory corrente.
  2. Utilizzare un makefile o uno dei programmi speciali Latex make e far eseguire i target regolari a make clean.