input и graphicx - ищем изображения там, где находится файл

input и graphicx - ищем изображения там, где находится файл

У меня есть документ LaTeX, разделенный на несколько текстовых файлов, находящихся в разных папках, следующим образом:

\section{Foo}

\subsection{Foo1}
\input{foo/1}

\subsection{Foo2}    
\input{foo/2}

\section{Bar}

\subsection{Bar1}
\input{bar/1}

И так далее. Предположим, что внутри Foo2подраздела я должен вставить изображение. Как мне сказать LaTeXискать изображение внутри каталога, в котором находится текущий открытый файл (т.е. foo), чтобы внутри файла 2я мог просто написать:

\includegraphics{baz}

и могу ли я поместить все изображения для определенного раздела в их папки, среди входных текстовых файлов этого раздела?

решение1

Вы можете использовать

\graphicspath{{foo}}\input{foo/1}
..
\graphicspath{{bar}}\input{bar/1}

решение2

Есть несколько способов решения этой проблемы в зависимости от того, как организованы ваши каталоги. Если ваше дерево каталогов выглядит так

-foo
  -foo1.tex
  -foo2.tex
  -baz.pdf
  -baz.eps
-bar
  -bar1.tex
  -qux.pdf

где файлы в каталогах fooи barимеют уникальные имена, то вы можете указать TEXINPUTпеременную окружения, чтобы включить подкаталоги. Подробности того, как установить, TEXINPUTSзависят от вашего дистрибутива (например, TeXLive или MikTeX) и ОС (например, Windows или Linux). По моему мнению, это идеальная настройка, поскольку вы указываете, texгде искать файлы. В этом случае ваш "главный" файл будет выглядеть так

\section{Foo}
\subsection{Foo1}
\input{foo1}
\subsection{Foo2}    
\input{foo2}
\section{Bar}
\subsection{Bar1}
\input{bar1}

В этой ситуации вы также можете использовать \graphicspath, чтобы задать каталоги для поиска изображений. В этом случае основной файл будет выглядеть так:

\graphicspath{{foo}{bar}}
\section{Foo}
\subsection{Foo1}
\input{foo/foo1}
\subsection{Foo2}    
\input{foo/foo2}
\section{Bar}
\subsection{Bar1}
\input{bar/bar1}

Если ваше дерево каталогов выглядит так

-foo
  -1.tex
  -2.tex
  -baz.pdf
  -baz.eps
-bar
  -1.tex
  -qux.pdf
  -baz.pdf
  -baz.eps

где файлы в fooкаталогах barи не имеют уникальных имен, то вы не можете указать TEXINPUTпеременную окружения, поскольку она не будет знать, какой файл вы имеете в виду. Вы все равно можете использовать \graphicspath, но вам придется устанавливать ее перед каждым\input

\graphicspath{{foo}}
\section{Foo}
\subsection{Foo1}
\input{foo/1}
\subsection{Foo2}    
\input{foo/2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\input{bar/1}

Вы также можете использоватьimportупаковка.

\section{Foo}
\subsection{Foo1}
\import{foo/}{1}
\subsection{Foo2}    
\import{foo/}{2}
\graphicspath{{bar}}
\section{Bar}
\subsection{Bar1}
\import{bar/}{1}

importЕсли ваши каталоги вложены, то с пакетом все становится немного сложнее .

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