2010-05-27 11 views
5

Podczas kompilowania dokumentów lateksowych kompilator emituje wiele plików "obiektowych". To zaśmieca katalogi, nad którymi pracuję i utrudnia korzystanie z VCS, takich jak SVN. Kiedy pracuję z kodem C++, mam oddzielne katalogi dla kodu i obiektów, mogę uruchomić make w katalogu źródłowym, ale pliki .o przechodzą do katalogu build.Wykonywanie oddzielnej kompilacji dokumentów Latex

Czy istnieje odpowiedni sposób na wykonanie tej osobnej kompilacji z dokumentami Latex? Czy można to zrobić za pomocą Makefiles lub przekazując opcje do kompilatora lateksu?

Dzięki

Odpowiedz

4

można użyć:

pdflatex --output-directory=tmp file.tex 

i wszystkie pliki będą przechowywane w folderze tmp (pdf w zestawie).

Ponieważ nie jest to optymalne rozwiązanie, stworzyłem własne narzędzie, pydflatex, które kompiluje źródło LaTeX, ukrywając pliki pomocnicze (wykorzystując powyższy trik), i przenosi pdf z powrotem do bieżącego katalogu, więc po kompilacja masz tylko file.tex i file.pdf w swoim katalogu. To bardzo dobrze wpływa na kontrolę wersji.

+0

Polecenie latex ma również tę opcję --output-katalog, dzięki – tonicebrian

+1

Dokładniej, zarówno 'pdflatex', jak i' latex' są symbolicznymi linkami do głównego polecenia 'pdftex', więc mają te same opcje. Nawiasem mówiąc, nie wydaje mi się, że obecnie istnieje duże zainteresowanie użyciem polecenia 'latex' (w przeciwieństwie do' pdflatex'), ponieważ pdf całkowicie zastąpił teraz dvi. –

2

nie mogę wiele pomóc z LaTeX (mający ostatniego użytkownika poważnie 20 lat temu ;-), ale dla Subversion, należy zapoznać się na posesji svn:ignore - to sprawia, że ​​łatwo zignorować pliki z rozszerzeniami robisz nie chcesz wersji (pliki obiektowe, pliki kodu bajtowego, ponieważ Python może często umieszczać w tym samym katalogu co źródła, pliki kopii zapasowych używane przez niektórych redaktorów tekstu, & c).

+0

Subwersja to jedna z kwestii, ale nie ta ważna. Możesz użyć polecenia svn: ignore, ale musisz określić tę właściwość w każdym dokumencie i nie jest ona optymalna. Innymi problemami, które mi przeszkadzają, jest to, że nie można autouzupełniania używać powłoki, ponieważ wszystkie pliki o tej samej nazwie z innym rozszerzeniem, lub po prostu rm pliki "obiekt", gdy Latex dostaje pomieszane. – tonicebrian

0

Latex generuje pliki tymczasowe w katalogu, w którym znajduje się główny dokument. Jeśli chcesz, aby zawartość została umieszczona w innym miejscu, spróbuj z głównym plikiem, jak poniżej.

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

Stosując tę ​​metodę, można utrzymać strukturę katalogów jak poniżej

/ 
    main.tex 
    /src 
     maindocument.tex 
0

Dwie opcje oprócz powyższych.

  1. Użyj Lyx: zajmuje się oddzielnymi plikami. Myślę, że kopiuje plik Latex do własnego prywatnego katalogu i uruchamia na nim lateks. W każdym razie nic nie jest tworzone w bieżącym katalogu.
  2. Użyj pliku Makefile lub jednego ze specjalnych programów do tworzenia postaci lateksowych, a Twoje regularne cele będą uruchamiane make clean.