サブファイル内のファイルをインポートする正しい方法は何ですか?

サブファイル内のファイルをインポートする正しい方法は何ですか?

subfiles ドキュメントメイン ファイルとサブファイルが異なるディレクトリにあり、サブファイルにパッケージを使用する独自のディレクトリに対する相対パスが含まれている場合に、パスの問題を処理することを説明します\import現れるこれは、に渡されたファイルの内容を追加するときにsubfilesが使用することを意味します。たとえば、はのプリアンブルを変更して を呼び出すこととほぼ同じです。明確でないのは、 を正しく\import\subfile\subfile{ch/ch1.tex}ch1.tex\import{ch/ch1.tex}巣の輸入つまり、インポートされたサブファイル内でのインポートです。

以下に、main.tex が ch1.tex をインポートし、ch1.tex が fig.png と text.txt をインポートすることを前提とした、プロジェクト/ディレクトリ構造の例と 2 つのサンプル ファイルを示します。

 +-- 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}

上記のファイルをコンパイルすると、期待どおりの出力が得られます。ただし、 main.texの呼び出し\importではasが使用されています\subfile{chapters/ch1.tex}が、また使用済み内でch1.texを呼び出します\import{content}{text.txt}import ドキュメント\subimportは後者に使用する必要があることを示します。\subimport requires a path relative to the currently imported file, the call should be\subimport{content/text1.txt}` のように。

サブファイル内でのインポートでは常に を使用する必要がありますかsubimport? もしそうなら、ドキュメントの例のように、おそらく異なるディレクトリを指しているはずなのに、\importと を入れ替えても\subimport同じ結果になるのはなぜなのかわかりませんimport

答え1

そのままお使いいただけます\input

│  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

ここに画像の説明を入力してください

関連情報