Wie importiere ich Dateien innerhalb von Unterdateien richtig?

Wie importiere ich Dateien innerhalb von Unterdateien richtig?

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 \importPaket verwenden.Es erscheintdass dies bedeutet, dass es beim Hinzufügen des Inhalts von Dateien subfilesverwendet 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 \importwird as im \subfile{chapters/ch1.tex}Aufruf in main.tex verwendet, ist dann aberAuchgebrauchtinnerhalbch1.tex im \import{content}{text.txt}Aufruf. Dieimport Dokumentegibt an, \subimportdass 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 \importmit \subimportdieselben Ergebnisse liefert, wenn diese vermutlich auf unterschiedliche Verzeichnisse verweisen sollten, wie in den Beispielen in den importDokumenten.

Antwort1

Sie können es \inputdirekt 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

Bildbeschreibung hier eingeben

verwandte Informationen