Tenho um documento LaTeX dividido em vários arquivos de texto, dentro de várias pastas, da seguinte forma:
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
E assim por diante. Suponha que, dentro da Foo2
subseção, devo inserir uma imagem. Como posso saber LaTeX
para procurar a imagem dentro do diretório em que está o arquivo atualmente aberto (ou seja foo
), para que dentro do arquivo 2
eu possa simplesmente escrever:
\includegraphics{baz}
e posso colocar todas as imagens de uma determinada seção dentro de suas pastas, entre os arquivos de texto de entrada daquela seção?
Responder1
Você pode usar
\graphicspath{{foo}}\input{foo/1}
..
\graphicspath{{bar}}\input{bar/1}
Responder2
Existem várias maneiras de lidar com isso, dependendo de como seus diretórios estão organizados. Se sua árvore de diretórios se parecer com
-foo
-foo1.tex
-foo2.tex
-baz.pdf
-baz.eps
-bar
-bar1.tex
-qux.pdf
onde os arquivos nos diretórios foo
e bar
têm nomes exclusivos, você pode especificar a TEXINPUT
variável de ambiente para incluir os subdiretórios. Os detalhes de como configurar TEXINPUTS
dependem da sua distribuição (por exemplo, TeXLive ou MikTeX) e sistema operacional (por exemplo, Windows ou Linux). Na minha opinião, esta é a configuração ideal, pois você informa tex
onde procurar os arquivos. Neste caso, seu arquivo "principal" ficaria assim
\section{Foo}
\subsection{Foo1}
\input{foo1}
\subsection{Foo2}
\input{foo2}
\section{Bar}
\subsection{Bar1}
\input{bar1}
Você também pode usar \graphicspath
nesta situação para definir os diretórios onde procurar imagens. Nesse caso, o arquivo principal seria parecido com
\graphicspath{{foo}{bar}}
\section{Foo}
\subsection{Foo1}
\input{foo/foo1}
\subsection{Foo2}
\input{foo/foo2}
\section{Bar}
\subsection{Bar1}
\input{bar/bar1}
Se sua árvore de diretórios se parecer com
-foo
-1.tex
-2.tex
-baz.pdf
-baz.eps
-bar
-1.tex
-qux.pdf
-baz.pdf
-baz.eps
onde os arquivos nos foo
diretórios e bar
não possuem nomes exclusivos, você não pode especificar a TEXINPUT
variável de ambiente, pois ela não saberá a qual arquivo você se refere. Você ainda pode usar \graphicspath
, mas precisa configurá-lo antes de cada\input
\graphicspath{{foo}}
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}
\input{foo/2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\input{bar/1}
Você também pode usar oimport
pacote.
\section{Foo}
\subsection{Foo1}
\import{foo/}{1}
\subsection{Foo2}
\import{foo/}{2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\import{bar/}{1}
As coisas ficam um pouco complicadas com o import
pacote se seus diretórios estiverem aninhados.