这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。
+-- 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/}/}`。
在子文件中导入时是否始终使用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