Как правильно импортировать файлы внутри подфайлов?

Как правильно импортировать файлы внутри подфайлов?

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

введите описание изображения здесь

Связанный контент