
Ich schreibe technische Dokumente mit Mathematik/Diagrammen/Plots/Code usw. Ich möchte sie in einem einzigen Dokument zusammenfassen und sie auch unabhängig voneinander ausführen können. Diese technischen Dokumente zu den einzelnen Themen befinden sich in ihren Ordnern. Kann mir jemand erklären, wie ich sie besser verwalten und auch portierbar machen kann? Ich arbeite beispielsweise an denselben Dokumenten unter Mac OSX/MS Windows.
Antwort1
Wenn ich die Frage richtig verstehe, könnte eine Lösung darin bestehen, das Paket zu verwenden subfiles
.
Angenommen, dies main.tex
ist Ihre Hauptdatei und Sie möchten , file1.tex
, file2.tex
und file3.tex
einschließen. Dann würde Ihr Hauptdokument etwa so aussehen:
Hauptteil.txt:
\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}
\begin{document}
\subfile{file1}
\subfile{file2}
\subfile{file3}
\end{document}
wo Sie Text überall einfügen können, wo Sie möchten, so als ob Sie \include
oder \input
anstelle von verwenden würden \subfile
. Der Inhalt von file1.tex
würde dann ungefähr so aussehen:
datei1.tex
\documentclass[main.tex]{subfiles}
\begin{document}
<your document goes here>
\end{document}
file2.tex
Für die Dateien und sollte die gleiche Struktur gelten file3.tex
.
Wenn Sie nun kompilieren, main.tex
wird der Inhalt der Dateien, das heißt, was ich mit < angegeben habe,Ihr Dokument kommt hierher> wird in Ihr Dokument aufgenommen, und wenn Sie beispielsweise kompilieren file1.tex
, wird der Inhalt von file2.tex
kompiliert, als hätte er die Dokumentklassenspezifikationen und die Präambel von main.tex
.
Jetzt können alle Dateien im Projekt separat kompiliert werden. Um eine Datei zu kompilieren, müssen sich die Unterdateien jedoch main.tex
im selben Verzeichnis befinden.
Dokumentation und Installation des Pakets
Ich bin mir nicht sicher, ob es subfiles
als Standardpaket enthalten ist. Bei mir war es nicht so, also je nachdem, wie erfahren Sie mit der Installation von Paketen sind, wollte ich sagen, dass die Pakete zu finden sind unter
http://www.ctan.org/tex-archive/macros/latex/contrib/subfiles/
Dort gibt es auch eine Dokumentation des Pakets, nämlich das PDF-Dokument subfiles.pdf
. Wenn Sie nicht wissen, wie Sie .ins
mit .dtx
Dateien umgehen sollen, gibt es eine kleine Anleitung unter
http://en.wikibooks.org/wiki/LaTeX/Packages/Installing_Extra_Packages
und wenn Sie möchten, können Sie die Dateien subfiles.cls
und subfiles.sty
, die beim Erstellen des Pakets generiert werden, im selben Verzeichnis wie ablegen main.tex
, sodass Sie nicht davon abhängig sind, dass das nächste System, auf dem die Dateien kompiliert werden müssen, das Paket subfiels
installiert hat.
BEARBEITEN
Antworten
Ich habe drei Verzeichnisebenen: 1 – oberste Ebene mit rootfile.tex, 2 – Kapitelebene mit der Hauptdatei jedes Kapitels, 3 – Abschnittsebene mit dem eigentlichen Inhalt des jeweiligen Kapitels. Ich instanziiere 3 in 2 mit \include{./Sections/part1}. Wie kann man ein solches System mit Unterdateien verwalten? – avlsi
Angenommen, Sie haben die Dateien
./rootfile.tex
./chapter/chap1.tex
./chapter/chap1/section1.1.tex
./chapter/chap1/section1.2.tex
./chapter/chap2.tex
./chapter/chap2/section2.1.tex
./chapter/chap2/section2.2.tex
./chapter/chap3.tex
./chapter/chap3/section3.1.tex
./chapter/chap3/section3.2.tex
sectionX.1.tex
und Sie möchten die Dateien und sectionX.2.tex
in die Datei für X=1,2 einschließen chapX.tex
und trotzdem Ihre Abschnittsdateien, Ihre Kapiteldateien und Ihre Stammdatei kompilieren können. Dies können Sie erreichen, indem Sie Ihre Dateien etwa so aussehen lassen:
rootfile.tex:
\documentclass[a4paper]{article}
<your preamble>
\usepackage{subfiles}
\def\dirlevel{../}
\begin{document}
\def\dirlevel{}
\subfile{./chapter/chap1}
\subfile{./chapter/chap2}
\subfile{./chapter/chap3}
\end{document}
chapX.tex:
\documentclass[./../rootfile.tex]{subfiles}
\begin{document}
\subfile{./\dirlevel chap/chapX/sectionX.1}
\subfile{./\dirlevel chap/chapX/sectionX.2}
\end{document}
AbschnittX.Y.tex:
\documentclass[./../../rootfile.tex]{subfiles}
\begin{document}
<your section goes here>
\end{document}
Der Trick besteht darin, dass \def\dirlevel{}
nur gelesen wird, wenn Sie kompilieren rootfile.tex
, während \def\dirlevel{../}
gelesen wird, unabhängig davon, welche der Dateien Sie kompilieren. Daher kann LaTeX Ihre Dateien weiterhin finden, egal welche Datei Sie kompilieren.