input e graphicx - procure imagens onde o arquivo está localizado

input e graphicx - procure imagens onde o arquivo está localizado

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 Foo2subseção, devo inserir uma imagem. Como posso saber LaTeXpara procurar a imagem dentro do diretório em que está o arquivo atualmente aberto (ou seja foo), para que dentro do arquivo 2eu 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 fooe bartêm nomes exclusivos, você pode especificar a TEXINPUTvariável de ambiente para incluir os subdiretórios. Os detalhes de como configurar TEXINPUTSdependem 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 texonde 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 \graphicspathnesta 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 foodiretórios e barnão possuem nomes exclusivos, você não pode especificar a TEXINPUTvariá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 oimportpacote.

\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 importpacote se seus diretórios estiverem aninhados.

informação relacionada