2010-05-27 6 views
5

Lors de la compilation de documents latex, le compilateur émet beaucoup de fichiers "objet". Cela encombre les répertoires sur lesquels je travaille et cela rend difficile l'utilisation de VCS comme SVN. Quand je travaille avec du code C++ j'ai des répertoires séparés pour le code et les objets, je peux lancer make sur le répertoire source mais les fichiers .o vont dans le répertoire de construction.Effectuer une compilation séparée des documents Latex

Existe-t-il un moyen approprié d'effectuer cette compilation séparée avec des documents Latex? Peut-il être fait en utilisant Makefiles ou en passant des options au compilateur de latex?

Merci

Répondre

4

Vous pouvez utiliser:

pdflatex --output-directory=tmp file.tex 

et tous les fichiers seront stockés dans le dossier tmp (pdf inclus). Parce que ce n'est pas une solution optimale, j'ai créé mon propre outil, pydflatex, qui compile la source LaTeX en stockant les fichiers auxiliaires (en utilisant le truc ci-dessus), et ramène le pdf dans le répertoire courant, donc après vous compilant seulement file.tex et file.pdf dans votre répertoire. Cela joue très bien avec le contrôle de version.

+0

La commande latex a aussi cette option --output-directory, merci – tonicebrian

+1

Pour être précis, 'pdflatex' et' latex' sont des liens symboliques vers la commande principale 'pdftex', donc ils ont les mêmes options. À propos, je ne pense pas qu'il y ait beaucoup d'intérêt à utiliser la commande 'latex' (vs' pdflatex') de nos jours, puisque pdf a maintenant complètement remplacé dvi. –

2

Je ne peux pas aider beaucoup avec LaTeX (dernier utilisateur ayant il y a 20 ans au sérieux ;-), mais pour Subversion, vous devriez lire sur la propriété svn:ignore - il est facile d'ignorer fichiers avec les extensions que vous faites pas vouloir la version (fichiers objets, fichiers bytecode comme Python peut souvent mettre dans le même répertoire que les sources, les fichiers de sauvegarde certains éditeurs de texte utilisent, & c).

+0

La subversion est un problème mais pas l'important. Vous pouvez utiliser svn: ignore mais vous devez spécifier cette propriété sur chaque document et ce n'est pas optimal. D'autres problèmes qui me dérangent est que vous ne pouvez pas compléter automatiquement en utilisant le shell parce que tous les fichiers avec le même nom avec une extension différente, ou juste les fichiers "objet" lorsque Latex est foiré. – tonicebrian

0

Latex génère les fichiers temporaires dans le répertoire où se trouve le document principal. Si vous voulez que le contenu soit placé dans un endroit différent, essayez avec un fichier principal comme ci-dessous.

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

En utilisant cette méthode, vous pouvez maintenir une structure de répertoire comme ci-dessous

/ 
    main.tex 
    /src 
     maindocument.tex 
0

Deux options, en plus de ce qui précède.

  1. Utiliser Lyx: il s'occupe des fichiers séparés. Je pense qu'il copie le fichier Latex dans son propre répertoire privé et exécute le latex dessus. Dans tous les cas, rien n'est créé dans le répertoire en cours.
  2. Utilisez un makefile ou l'un des programmes spéciaux make Latex et faites exécuter vos cibles régulières make clean.
Questions connexes