
Ich schreibe mit zwei anderen Personen ein langes Dokument und verwende Dropbox als Dateispeicher. Ich möchte, dass jeder einzeln an seinem Stück arbeiten kann. Daher möchte ich jedes Dokument separat kompilieren können, ebenso wie das Hauptdokument. Das Subfiles-Paket schien dafür perfekt geeignet.
Ich habe versucht, dem Beispiel für modulare Dokumente zu folgen aufWikibooks, aber es funktioniert bei mir nicht. Das Dokument der obersten Ebene wird erstellt, aber die Dokumente der unteren Ebene werden die Fehlermeldung „Datei nicht gefunden“ aufweisen.
Hier ist mein Setup:
- Ordner „Bilder“
- tex-Ordner
- main.tex
- Stile.sty
Innerhalb von main.tex:
\documentclass[11pt,letterpaper]{article}
\usepackage{styling} %includes \usepackage{subfiles}
\begin{document}
\maketitle
\tableofcontents
\subfile{./tex/subpiece1}
\end{document}
Innerhalb von subpiece1 im Tex-Ordner:
\documentclass[../main.tex]{subfiles}
\graphicspath{ {Images/subpiece1/} }
\begin{document}
\section{sectiontitle}
%Images and text
\end{document}
Der Fehler beim separaten Erstellen der Unterdatei: ../main.tex:4: LaTeX-Fehler: Datei „styling.sty“ nicht gefunden. [^^M]
Antwort1
Ich bin auf dasselbe Problem gestoßen wie Sie, als ich mein erstes Dokument mit mehreren Dateien mithilfe des Subfiles-Pakets kompiliert habe.
Da ich kein langjähriger Latex-Benutzer bin, verstehe ich die Mechanik des Problems nicht ganz, aber ich vermute, dass das Problem darin besteht, dass Ihr Compiler beim Kompilieren der „Slave“-Datei (in Ihrem Fall „subpiece1.tex“) im selben Verzeichnis wie „subpiece1.tex“ und den anderen Standard-Tex-Verzeichnissen nach dem benutzerdefinierten Paket sucht.
Ich konnte das Problem lösen, indem ich den Befehl \usepackage{} so geändert habe, dass er auch einen relativen Pfad enthält, der für die .tex-Dateien „Master“ und „Slave“ gleich ist.
Was musst du machen:
- Fügen Sie in Ihrem Home-Verzeichnis einen Ordner für das Masterdokument hinzu. Ihr Home-Verzeichnis sollte also die folgenden Ordner enthalten: Master-Ordner (mit main.tex), Tex-Ordner, Images-Ordner.
- Bearbeiten Sie Ihren Ordner main.tex so, dass der Befehl \usepackage{} den relativen Pfad zu „styling.sty“ enthält (er sollte \usepackage{../styling} ohne Dateierweiterung lauten).
- Wenn Sie Schritt 1 richtig ausgeführt haben, hat „styling.sty“ den gleichen relativen Pfad wie „main.tex“ und „subpiece1.tex“ (der relative Pfad für beide liegt einen Ordner höher. Dies wird durch „../“ im Befehl \usepackage{} erreicht).
- Aktualisieren Sie alle anderen relativen Dateipfade, sodass sie wie erforderlich gelesen werden.
main.tex liest jetzt
\documentclass[11pt,letterpaper]{article}
\usepackage{../styling} %includes \usepackage{subfiles}
\begin{document}
%\maketitle (I just removed these because for the demonstartion i didnt actually need them)
%\tableofcontents
\subfile{../tex/subpiece1}
\end{document}
subpiece1 lautet jetzt
\documentclass[../master/main.tex]{subfiles}
% again I just removed the graphics path because I have no need for it
\begin{document}
\section{sectiontitle}
%Images and text
\end{document}
Ich persönlich bevorzuge es, meine preamble.sty im selben Ordner wie meine main.tex zu gruppieren, aber die Grundidee ist dieselbe. Ich glaube, jeder Pfad wäre in Ordnung, solange die relativen Pfade für die Dateien „main.tex“ und „subpiece1.tex“ gleich sind.
Ich vermute auch, dass es bessere/elegantere Möglichkeiten gibt, dieses Problem zu umgehen, aber bisher hat das für mich funktioniert.