Warum funktioniert das in einigen Unterdateien, in anderen jedoch nicht?

Warum funktioniert das in einigen Unterdateien, in anderen jedoch nicht?

Ich schreibe also ein großes Dokument (fast ein Buch) mit Notizen. Um das Dokument zu organisieren, verwende ich Unterdateien. Meistens kann ich den Abschnitt, an dem ich arbeite, nicht kompilieren und muss dengesamteDokument und nicht den Unterabschnitt, an dem ich arbeite.

Unten sehen Sie, wie meine Datei organisiert ist: (Ich habe den Namen in Anführungszeichen gesetzt)

Meine Ordner sehen so aus...

FOLDER: "Main"
    FILE: "ChapterA.tex"
    FILE: "ChapterB.tex"
    FILE: "ChapterC.tex"
FOLDER: "Sections"
    FOLDER: "TopicA"
        FILE: "SubsectionA1.tex"
        FILE: "SubsectionA2.tex"
        FILE: "SubsectionA3.tex"
    FOLDER: "TopicB"
        FILE: "SubsectionB1.tex"
        FILE: "SubsectionB2.tex"
        FILE: "SubsectionB3.tex"
    FOLDER: "TopicC"
        FILE: "SubsectionC1.tex"
        FILE: "SubsectionC2.tex"
        FILE: "SubsectionC3.tex"
FILE: "Main.tex"
FILE: "Preamble.sty"
FILE: "style.ist"

Die Datei „Preamble.sty“ sieht so aus ...

\ProvidesPackage{Preamble}

\usepackage{--} %multiple packages for symbols and colors
\usepackage{morewrites}
\geometry{letterpaper,portrait, margin=1in}

[general formatting content for title and table of contents]

[creating some shortcuts and new commands that's used throughout the document using \DeclareMathOperator \newcommand and \catcode]

Die Datei „Main.tex“ sieht so aus …

\documentclass{article}
\usepackage{Preamble}
\usepackage{subfiles}


\makeindex[name=aa, title={TITLE},columns=1, intoc, options= -s style.ist]

\begin{document}
\subfile{Main/ChapterA} \NewPage
\subfile{Main/ChapterB} \NewPage
\subfile{Main/ChapterC} \NewPage

\printindex[aa]

\end{document}

Die Datei KapitelA, KapitelB, KapitelC sieht folgendermaßen aus:

\documentclass[../Main.tex]{subfiles}

\begin{document}
\Section{Chapter A}
    \subfile{Sections/TopicA/SubsectionA1}
    \subfile{Sections/TopicA/SubsectionA2}
    \subfile{Sections/TopicA/SubsectionA3}
\end{document}

Die Unterabschnittsdateien liegen alle in einem ähnlichen Format vor, etwa diesem ...

\documentclass[../Main.tex]{subfiles}

\begin{document}
\subsubsection{topic}
\begin{itemize}
   \item TEXT...
\end{itemize}

\subsubsection{topic}
Some basic description
\begin{itemize}
    \item MORE INFO
\end{itemize}
\end{document}

Wenn ich in „ChapterA.tex“ bin und die Datei kompiliere, wird das gesamte Kapitel ohne den Inhalt von davor oder danach kompiliert, nur mit einem gelben Fehler („Package auxhook Warning: \document kann nicht gepatcht werden, verwende stattdessen \AtBeginDocument.“)

Wenn ich mich jedoch in „SubsectionA1.tex“ befinde und den Unterabschnitt kompiliere, wird er nicht kompiliert und ich erhalte einen schwerwiegenden Fehler (,,/usr/local/texlive/2017/texmf-dist/tex/latex/subfiles/subfiles.cls, Zeile 40 LaTeX-Fehler: Datei ,,../Main.tex‘ nicht gefunden.‘)

Ich habe versucht, \documentclass[..] zu bearbeiten, aber es gelingt mir nicht, die Unterabschnitte so zu kompilieren, wie es bei den Kapiteln der Fall ist. Warum funktioniert das eine und das andere nicht?

Antwort1

Ich musste ein paar Pfade ändern und zusätzliche Pakete laden, um deine Dateien kompilierbar zu machen, aber dann funktioniert dein Beispiel. Als Grundregel gilt:

Die Pfadangaben beziehen sich auf das Verzeichnis, das die Datei mit dem Befehl \subfileoder enthält \documentclass.

% folder structure
% ----------------
% Main.tex
% Preamble.sty
% Main/ChapterA.tex
% Main/ChapterB.tex
% Sections/TopicA/SubsectionA1.tex
% Sections/TopicA/SubsectionA2.tex
% Sections/TopicB/SubsectionB1.tex
% Sections/TopicB/SubsectionB2.tex

% Main.tex
\documentclass{article}
\usepackage{Preamble}
\makeindex[name=aa, title={TITLE},columns=1, intoc, options= -s style.ist]
\usepackage{subfiles}
\begin{document}
\subfile{Main/ChapterA}
\subfile{Main/ChapterB}
\printindex[aa]
\end{document}

% Preamble.sty
\usepackage{imakeidx}
\usepackage{geometry}
\geometry{letterpaper,portrait, margin=1in}

% Main/ChapterA.tex
\documentclass[../Main.tex]{subfiles}
\begin{document}
\section{Chapter A}
    \subfile{../Sections/TopicA/SubsectionA1}
    \subfile{../Sections/TopicA/SubsectionA2}
\end{document}

% Main/ChapterB.tex
\documentclass[../Main.tex]{subfiles}
\begin{document}
\section{Chapter B}
    \subfile{../Sections/TopicB/SubsectionB1}
    \subfile{../Sections/TopicB/SubsectionB2}
\end{document}

% Sections/TopicA/SubsectionA1.tex
% Sections/TopicA/SubsectionA2.tex
% Sections/TopicB/SubsectionB1.tex
% Sections/TopicB/SubsectionB2.tex
\documentclass[../../Main.tex]{subfiles}
\begin{document}
\subsubsection{topic}
\begin{itemize}
   \item TEXT...
\end{itemize}
\end{document}

Dann funktioniert das separate Kompilieren der Dateien (außer dass dies makeindexfehlschlägt style.ist).

verwandte Informationen