
Thesubfiles
документыобъясняет, что он обрабатывает проблемы с путями, когда основные файлы и подфайлы находятся в разных каталогах, а подфайлы содержат пути относительно своих собственных каталогов, используя пакет \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}
Когда я компилирую файлы выше, они производят желаемый вывод. Однако, как \import
используется в \subfile{chapters/ch1.tex}
вызове в main.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