
の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