
Osubfiles
documentosexplica que ele lida com problemas de caminho quando os arquivos principais e subarquivos estão em diretórios diferentes e os subarquivos contêm caminhos relativos aos seus próprios diretórios usando o \import
pacote.Pareceque isso significa subfiles
usar \import
ao adicionar o conteúdo dos arquivos passados para \subfile
. Por exemplo, \subfile{ch/ch1.tex}
é aproximadamente equivalente a modificar o preâmbulo da ch1.tex
chamada \import{ch/ch1.tex}
. O que não está claro é como fazer corretamenteimportações de ninhos, ou seja, importar dentro de subarquivos importados.
Abaixo, forneço um exemplo de estrutura de projeto/diretório e dois arquivos de exemplo, assumindo que main.tex deve importar ch1.tex e ch1.tex deve importar fig.png e 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}
Quando compilo os arquivos acima, eles produzem a saída desejada. No entanto, como \import
é usado na \subfile{chapters/ch1.tex}
chamada em main.tex mas então étambémusadodentro dech1.tex na \import{content}{text.txt}
chamada. Oimport
documentosindica \subimport
que deve ser usado para o último. Como \subimport requires a path relative to the currently imported file, the call should be
\subimport{content/}{text1.txt}`.
A importação em subarquivos deve sempre usar subimport
? Nesse caso, estou confuso sobre por que a troca \import
com \subimport
produz os mesmos resultados quando eles provavelmente deveriam apontar para diretórios diferentes, como nos exemplos da import
documentação.
Responder1
Você pode usar \input
diretamente.
│ 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