
Ich habe vor kurzem beschlossen, meine Abschlussarbeit wie folgt in mehrere verschachtelte Dateien aufzuteilen:
% Main.tex
\documentclass{memoir}
\usepackage{subfiles}
\usepackage{siunitx}
\include{units}
\begin{document}
\subfile{pre_textual} % ToC, lists, etc.
\subfile{textual}
\subfile{pos_textual}
\end{document}
Die Units-Datei befindet sich im selben Verzeichnis wie main.tex. Und die übliche Unterdatei:
%textual.tex
\documentclass[../../main.tex]{subfiles} %this is because it's nested
\begin{document}
\subfile{chapter1}
\subfile{chapter2}
\end{document}
%kapitel1.tex
\documentclass[../../../main.tex]{subfiles} %this is because it's nested
\begin{document}
text yada \si{\CustomUnit}
\end{document}
Das Problem ist, dass beim Kompilieren der Unterdatei (Textdatei oder Kapiteldatei) die Einheitendatei nicht gefunden wird. Wenn ich den vollständigen Pfad hinzufüge, units.tex
erhalte ich den Fehler
Can't write to the file
Bearbeiten:
Meine units.tex-Datei sieht so aus
\DeclareSIUnit{\lix}{g/cm^2\day}
\DeclareSIUnit{\molp}{\mole\%}
\DeclareSIUnit{\taxaresf}{\degreeCelsius/\minute}
außer dass es mehr Zeilen und genügend Einheiten hat, um mich dazu zu bringen, eine separate Datei zu erstellen.
Antwort1
Die Lösung, die ich gefunden habe, war, den vollständigen Pfad anstelle von „include“ hinzuzufügen input
. Wenn Sie einfach „input“ ohne vollständigen Pfad verwenden, funktioniert das auch nicht.
Ich komme also zu folgendem Ergebnis:
\usepackage{siunitx}
\input{D:/OneDrive/Documents/Thesis_latex/units}
Dies geschieht, weil diesubfiles
Paket mag keine \include
s in der Präambel.
Abschnitt 2.3 des Handbuchs:
Die Präambel der Hauptdatei kann \input-Dateien (nicht \include- oder \subfile-Dateien) enthalten (VG-Dateien mit Definitionen und Kurzbefehlen), und das gilt auch für die Unterdateien.