
Dersubfiles
Dokumenteerklärt, dass es Pfadprobleme behandelt, wenn sich Hauptdateien und Unterdateien in unterschiedlichen Verzeichnissen befinden und Unterdateien Pfade relativ zu ihren eigenen Verzeichnissen enthalten, die das \import
Paket verwenden.Es erscheintdass dies bedeutet, dass es beim Hinzufügen des Inhalts von Dateien subfiles
verwendet wird , die an übergeben werden . Beispielsweise ist dies ungefähr gleichbedeutend mit der Änderung der Präambel von und dem anschließenden Aufruf von . Was nicht klar ist, ist, wie man es richtig macht\import
\subfile
\subfile{ch/ch1.tex}
ch1.tex
\import{ch/ch1.tex}
Nestimporte, d. h. Import innerhalb importierter Unterdateien.
Nachfolgend stelle ich eine Beispielprojekt-/Verzeichnisstruktur und zwei Beispieldateien bereit, wobei davon ausgegangen wird, dass main.tex ch1.tex und ch1.tex fig.png und text.txt importieren soll.
+-- main.tex
+-- chapters
|
+-- ch1.tex
+-- content
|
+-- text1.txt
+-- fig1.png
%% main.tex
\documentclass{book}
\usepackage{graphicx}
\usepackage{subfiles}
\begin{document}
\subfile{chapters/ch1.tex} % \imports ch1.tex
\end{document}
%% ch1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
\import{content}{text.txt} % adds some text - note use of \import
\includegraphics{content/fig.png} % adds a figure
\end{document}
Wenn ich die obigen Dateien kompiliere, erzeugen sie die gewünschte Ausgabe. Allerdings \import
wird as im \subfile{chapters/ch1.tex}
Aufruf in main.tex verwendet, ist dann aberAuchgebrauchtinnerhalbch1.tex im \import{content}{text.txt}
Aufruf. Dieimport
Dokumentegibt an, \subimport
dass für Letzteres verwendet werden sollte. Als \subimport requires a path relative to the currently imported file, the call should be
\subimport{content/}{text1.txt}`.
Sollte beim Importieren innerhalb von Unterdateien immer verwendet werden subimport
? Wenn ja, verwirrt es mich, warum das Austauschen \import
mit \subimport
dieselben Ergebnisse liefert, wenn diese vermutlich auf unterschiedliche Verzeichnisse verweisen sollten, wie in den Beispielen in den import
Dokumenten.
Antwort1
Sie können es \input
direkt verwenden.
│ main.tex
│
└─chapters
│ ch1.tex
│
└─content
fig1.png
text1.txt
main.tex
\documentclass{book}
\usepackage{graphicx}
\graphicspath{{chapters/content/}}
\makeatletter
\newcommand{\input@path}{{chapters/}{chapters/content/}}
\makeatother
\begin{document}
aaa
\input{ch1.tex}
bbb
\end{document}
ch1.tex
ccc
\input{text1.txt}
\includegraphics[width=3cm]{fig1.png}
ddd
text1.txt
eee