Irgendwas ist hier in der Tat etwas unklar.
So wie ich die Frage verstanden habe, werden die gezeigten Dateien jeweils mit einem einfachen \input in die Hauptdatei eingefügt. Wenn die Dateien aber wirklich die gezeigte Struktur haben, dann sollte das zu bösen Fehlern führen, denn man kann document-Umgebungen nicht verschachteln.
\documentclass{article}
\begin{document}
\begin{document}
Lorem
\end{document}
\end{document}
Der bis jetzt gezeigte Code würde aber dazu führen, dass genau das passiert. Hier als kompaktes Beispiel
\documentclass{article}
\begin{filecontents*}{\jobname-a.tex}
\begin{document}
Apfel
\input{\jobname-k}
\end{document}
\end{filecontents*}
\begin{filecontents*}{\jobname-b.tex}
\begin{document}
Birne
\input{\jobname-k}
\end{document}
\end{filecontents*}
\begin{filecontents*}{\jobname-k.tex}
\begin{document}
\begin{figure}
Kuchen
\caption{Kuchen}\label{kuchen}
\end{figure}
\end{document}
\end{filecontents*}
\begin{document}
\input{\jobname-a}
\input{\jobname-b}
\end{document}
Wenn man sämtliche Fehler ignoriert, kompiliert zumindest bei mir die Datei trotzdem, aber man sollte sich auf keinen Fall auf irgendetwas in der Ausgabe verlassen.
Fehlermeldungen sollte man niemals ignorieren. Wenn Dein Editor Dir bei diesem Code keine Fehler anzeigt, dann solltest Du über einen Editor-Wechsel nachdenken.
Also weg mit den geschachtelten document-Umgebungen. Es gibt durchaus Möglichkeiten, mit der Umgebung auch in eingebundenen Dateien umzugehen, dafür bräuchte man dann aber spezielle Pakete wie
docmute oder
subfiles. Nach meiner Erfahrung machen die die meisten Dinge nur komplizerter.
\documentclass{article}
\begin{filecontents*}{\jobname-a.tex}
Apfel
\input{\jobname-k}
\end{filecontents*}
\begin{filecontents*}{\jobname-b.tex}
Birne
\input{\jobname-k}
\end{filecontents*}
\begin{filecontents*}{\jobname-k.tex}
\begin{figure}
Kuchen
\caption{Kuchen}\label{kuchen}
\end{figure}
\end{filecontents*}
\begin{document}
\input{\jobname-a}
\input{\jobname-b}
\end{document}
Hier können wir das Problem gut nachvollziehen. Wenn Du wirklich mehrere Male dieselbe Datei einbinden möchtest und sie \label benutzt, dann musst Du einen Trick finden, das \label dennoch eindeutig zu machen. Dabei musst Du aber gleichzeitig aufpassen, dass Dir die \refs nicht zerschossen werden. Es wäre ja sinnvoll, dass die \refs zum Kuchen-Bild in der Apfel-Datei zum Apfel-Kuchen-Bild gehen und in der Birnen-Datei zum Birnen-Kuchen-Bild gehen. Zwei Methoden dazu findest Du in
https://tex.stackexchange.com/q/517729/35864. Im Grunde ist die Idee immer, dass Du auf irgendeine Weise zusätzlichen Text in das Label anfügst, sodass es eindeutig wird. Siehe auch die Kommentare unter
https://tex.stackexchange.com/q/533559/35864.
Irgendwas ist hier in der Tat etwas unklar.
So wie ich die Frage verstanden habe, werden die gezeigten Dateien jeweils mit einem einfachen [tt]\input[/tt] in die Hauptdatei eingefügt. Wenn die Dateien aber wirklich die gezeigte Struktur haben, dann sollte das zu bösen Fehlern führen, denn man kann [tt]document[/tt]-Umgebungen nicht verschachteln.
[code]\documentclass{article}
\begin{document}
\begin{document}
Lorem
\end{document}
\end{document}[/code]
Der bis jetzt gezeigte Code würde aber dazu führen, dass genau das passiert. Hier als kompaktes Beispiel
[code]\documentclass{article}
\begin{filecontents*}{\jobname-a.tex}
\begin{document}
Apfel
\input{\jobname-k}
\end{document}
\end{filecontents*}
\begin{filecontents*}{\jobname-b.tex}
\begin{document}
Birne
\input{\jobname-k}
\end{document}
\end{filecontents*}
\begin{filecontents*}{\jobname-k.tex}
\begin{document}
\begin{figure}
Kuchen
\caption{Kuchen}\label{kuchen}
\end{figure}
\end{document}
\end{filecontents*}
\begin{document}
\input{\jobname-a}
\input{\jobname-b}
\end{document}[/code]
Wenn man sämtliche Fehler ignoriert, kompiliert zumindest bei mir die Datei trotzdem, aber man sollte sich auf keinen Fall auf irgendetwas in der Ausgabe verlassen. [b]Fehlermeldungen sollte man niemals ignorieren.[/b] Wenn Dein Editor Dir bei diesem Code keine Fehler anzeigt, dann solltest Du über einen Editor-Wechsel nachdenken.
Also weg mit den geschachtelten [tt]document[/tt]-Umgebungen. Es gibt durchaus Möglichkeiten, mit der Umgebung auch in eingebundenen Dateien umzugehen, dafür bräuchte man dann aber spezielle Pakete wie [p]docmute[/p] oder [p]subfiles[/p]. Nach meiner Erfahrung machen die die meisten Dinge nur komplizerter.
[code]\documentclass{article}
\begin{filecontents*}{\jobname-a.tex}
Apfel
\input{\jobname-k}
\end{filecontents*}
\begin{filecontents*}{\jobname-b.tex}
Birne
\input{\jobname-k}
\end{filecontents*}
\begin{filecontents*}{\jobname-k.tex}
\begin{figure}
Kuchen
\caption{Kuchen}\label{kuchen}
\end{figure}
\end{filecontents*}
\begin{document}
\input{\jobname-a}
\input{\jobname-b}
\end{document}[/code]
Hier können wir das Problem gut nachvollziehen. Wenn Du wirklich mehrere Male dieselbe Datei einbinden möchtest und sie [tt]\label[/tt] benutzt, dann musst Du einen Trick finden, das [tt]\label[/tt] dennoch eindeutig zu machen. Dabei musst Du aber gleichzeitig aufpassen, dass Dir die [tt]\ref[/tt]s nicht zerschossen werden. Es wäre ja sinnvoll, dass die [tt]\ref[/tt]s zum Kuchen-Bild in der Apfel-Datei zum Apfel-Kuchen-Bild gehen und in der Birnen-Datei zum Birnen-Kuchen-Bild gehen. Zwei Methoden dazu findest Du in https://tex.stackexchange.com/q/517729/35864. Im Grunde ist die Idee immer, dass Du auf irgendeine Weise zusätzlichen Text in das Label anfügst, sodass es eindeutig wird. Siehe auch die Kommentare unter https://tex.stackexchange.com/q/533559/35864.