Latex: Mehrere Übersetzungseinheiten



  • Hallo,

    gibt es in LaTeX die Möglichkeit mehrere Übersetzungseinheiten zu verwenden, nach dem Muster "Compiler und Linker (und make)"? Der Hintergrund ist der: wenn man an größeren Dokumenten arbeitet (z.B. Diplomarbeit) und nicht gerade auf der neuesten Maschine techt, dann kann das Übersetzen schon mal länger dauern. Und meist will man ja nur eben schauen ob die Formatierung passt (trotz fake-WYSIWYG Editor) und dann nervt das Warten. Wenn man Referenzen ändert, muss man sogar doppelt kompilieren.

    Bisher teile ich einzelne Kapitel immer auf getrennte .tex-Datein auf und binde sie mit include ein, das dient aber nur der Übersichtlichkeit. Für latex ist das ein großes Dokument. Ich würde die einzelnen Kapitel stattdessen gerne getrennt übersetzen und anschließend "linken", so dass nur die Dateien wirklich neu kompiliert werden müssen, die sich geändert haben (mittels make). Ist so etwas in Latex überhaupt vorgesehen?

    Grüße,
    TriMesh



  • Gibt so Latex-Makefiles, die machen das automatisch.

    http://latex-mk.sourceforge.net/



  • Es gibt einmal input und einmal include.

    input setzt einfach den Inhalt an die Aufruf Position (also wie das C/C++ #include)

    include geht da was weiter und teilt das echt in mehrere Übersetzugnseinheiten. Das schöne an include ist jedoch das includeonly:

    \includeonly{
    %    A
        ,B
    %    ,C
    }
    
    \begin{document}
        \include{A}
        \include{B}
        \include{C}
    \end{document}
    

    So sieht das dann aus. Und in dem Beispiel übersetzt der nur B. Die Folge ist, aber dass du wirklich nur den Inhalt von B siehst.



  • Getrennt übersetzen kann mit der Architektur von LaTeX nicht funktionieren, weil die Platzierung von Text in Kapitel 1 abhängen kann davon, was in Kapitel 5 passiert.

    Stell dir vor, in Kapitel 5 landet eine Grafik ganz am Ende von Seite 99. In Kapitel 1 referenzierst du diese Grafik mit Seitenzahl. Jetzt änderst du Kapitel 5 minimal, sodass die Grafik auf Seite 100 rutscht. Die Referenz in Kapitel 1 ändert sich natürlich; dort steht nun "Siehe Seite 100". Dieser Text ist aber minimal länger als "Siehe Seite 99". Wenn man Pech hat, rutscht dadurch diese Zeile auf die nächste Seite, wodurch in Kapitel 1 alles, was danach kommt, ebenfalls seine Position ändert. Nun kann aber Kapitel 5 natürlich auch Kapitel 1 referenzieren.

    Du müsstest also jede Referenz zwischen den Kapiteln als Abhängigkeit tracken. Dann bist du aber schnell da, dass doch wieder alles von allem abhängt.

    \includeonly umgeht dieses Problem, indem es nicht garantiert, dass die Referenzen stimmen.


Anmelden zum Antworten