Путь к вашим рисункам — texblog
Большинство людей предпочитают не сохранять свои рисунки в том же каталоге, что и сам файл tex
, поскольку он быстро загромождается. Распространенным решением является сохранение всех рисунков в подпапке основного каталога и использование
\includegraphics{figures/filename}
вместо
\includegraphics{filename}
для их импорта ( к используйте \includegraphics
вам нужен пакет graphicx). Лично я часто храню свои рисунки в подпапке общей родительской папки или в совершенно другом каталоге, в зависимости от проекта, над которым я работаю. Если рисунки сохранены в родственном каталоге, мы можем использовать ../
для доступа к родительскому каталогу.
\includegraphics{../figures/filename}
Его также можно использовать несколько раз для перехода вверх по нескольким папкам.
\includegraphics{../../figures/filename}
Также можно указать полный путь к рисунку.
\includegraphics{/Users/me/Documents/project/figures/filename}
Определение пути к графике
Если в документе много рисунков, постоянное добавление пути может стать утомительным, иначе документ будет выглядеть беспорядочно. . С командой \graphicspath
пакет graphicx позволяет указать один или несколько путей для поиска рисунков. По умолчанию для этого пути используется папка с файлом tex
.
\usepackage{graphicx} % Загрузка пакета \graphicspath{{figures/}} %Установка пути к графике ... \начать{документ} \includegraphics{имя файла} %Импорт рисунка \end{document}
Мы также можем определить несколько каталогов для поиска рисунков.
\graphicspath{{figures/}{../figures/}{C:/Users/me/Documents/project/figures/}}
Каждый путь должен заканчиваться на /
и заключаться в фигурные скобки { }
, даже если указан только один путь. Только указанные каталоги будут искать фигуры, а не их подкаталоги. Чтобы включить подкаталоги, они должны быть указаны отдельно как их собственные пути. Кроме того, вы можете снова добавить подкаталоги вручную с каждым рисунком. Доступ к подкаталогам путей, указанных в
, теперь намного проще. Когда вы используете \graphicspath
вы по-прежнему можете определять пути фигур по отдельности.
\usepackage{graphicx} % Загрузка пакета \graphicspath{{figures/}} %Установка пути к графике ... \начать{документ} \includegraphics{filename1} %Импорт рисунка \includegraphics{topic1/filename1} %Импорт рисунка из подкаталога пути к графике \includegraphics{/Users/me/Documents/project/photos/filename} %Импорт фигуры из пути, отличного от графики \end{document}
Важно помнить, что могут возникнуть проблемы, когда несколько файлов с одинаковыми именами существуют по разным путям. Порядок указания путей будет определять, какой файл будет импортирован в таком случае (файл, указанный в самом раннем указанном пути).
Пути к каталогам с пробелами
Хотя все мы знаем, что нам следует избегать каталогов с пробелами в именах, это все же случается. Самый большой виновник в моей системе — «Google Диск». У нас есть в основном два варианта: (i) добавление двойных кавычек " "
вокруг каждого пути или (ii) использование параметра пробела в пакете grffile.
Вариант 1
Если вы добавляете путь к каждой цифре вручную, вы можете просто добавить двойные кавычки " "
вокруг пути.
\includegraphics{"/Users/me/Google Drive/project/figures/filename"}
Если вы указываете расширение имени файла, вам нужно использовать дополнительный набор фигурных скобок { }
вместо двойные кавычки " "
вокруг пути.
\includegraphics{{/Users/me/Google Drive/project/figures/filename.png}}
Чтобы определить \graphicspath
с пробелами, нам нужно заключить путь в двойные кавычки " "
.
\graphicspath{{"/Users/me/Google Drive/project/figures/"}}
Вариант 2
Определение \graphicspath
(или обычного пути) с пробелами можно выполнить с помощью пробела пакета grffile.
\usepackage{graphicx} % Загрузка пакета \usepackage[space]{grffile} % Загрузка пакета \graphicspath{{/Users/me/Google Drive/project/figures/}} %Установка пути к графике ... \начать{документ} \includegraphics{имя файла} %Импорт рисунка \includegraphics{/Users/me/Google Drive/project/photos/filename} %Импорт фигуры из пути, отличного от графики \конец{документ}
Вот так:
Нравится Загрузка…
Как /includegraphics из подкаталога основной папки изображений, используя подфайлы — TeX
Простите аналогию с семьей, но это может помочь вы понимаете, как устроены ваши родственники и как на них ссылаются
Итак, вы папка, давайте зовем вас Томасом, и у вас есть родитель, давайте зовем их слепыми
вы помещены в систему как /blindhardt/thomas, но для самостоятельной ссылки вы можете использовать псевдоним »
у вас есть дети /blindhardt/thomas/janet и /blindhardt/thomas/john
у них могут быть такие прозвища, как preface и chap1
для обозначения отношения вашего ребенка к себе вы можете сказать ./preface или ./chap1
для вашего отца вы можете сказать .. и для братьев и сестер они могут быть ../старше или ../младше
ваше генеалогическое древо теперь может быть
/blindhardt/старше /Томас/ / томас / предисловие /Томас/глава1 /моложе
Хорошо, это основная теория ваших относительных путей, теперь к вашему ответу
Одна часть вас, хранитель Фомы (семейной библии), известна как main.tex
markellos четко показывает , что если эта часть вас (main.tex) идентифицируется как
\providecommand{\main}{. }
тогда любой ../child/story.tex может ссылаться на вас как на своего провайдера
\providecommand{\main}{..} т.е. на своего родителя
также их дополнительный оператор
\documentclass[\main/main.tex]{subfiles}
подтверждает, что они принадлежат к той же подгруппе (классу), что и вы
как семья вы соглашаетесь хранить все свои графические активы в
/blindhart/somewhere/vault, но как хранитель вы хотите называть его
/blindhart/thomas/images
% вот вам путь к хранилищу ./images и следующее поколение {\main\images/}
\graphicspath{{images/}{\main/images/}}
ОК, пока ничего нового, скажем, вы храните папку (ABC) в этом хранилище
и вам, и вашим детям теперь потребуется перекрестный индекс.
\graphicspath{{images/}{\main/images/}{images/ABC/}{\main/images/ABC/}}
Итак, теперь не имеет значения, находится ли pic1.png или fig1.pdf в main/images или /images/ABC
\includegraphics[width=4cm]{pic1 }
Main.tex (изменена только одна строка)
\providecommand{\main}{.} \documentclass{статья} \usepackage[utf8]{inputenc} \usepackage[английский]{babel} \usepackage{graphicx} % вот НОВЫЙ путь \graphicspath{{images/}{\main/images/}{images/ABC/}{\main/images/ABC/}} \usepackage{подфайлы} \usepackage{слепой текст} \начать{документ} \подфайл{\main/chap1/chap1} \конец{документ}
chap1.tex (без изменений, кроме более широкого принятия)
\providecommand{\main}{..} \documentclass[\main/main.tex]{подфайлы} \начать{документ} \begin{рисунок}[bh] \центрирование % f1 может быть любым принятым изображением (png pdf и т. д.) будьте осторожны, если есть два в разных местах, тогда порядок станет важным. % это может быть ./f1.png это может быть ../images/f1.pdf или даже ../images/ABC/f1.eps \includegraphics[ширина=4см]{f1} \label{рис:img1} \caption{Обучающий логотип ShareLaTeX} \конец{рисунок} Здравствуйте, вот текст... \конец{документ}
Очевидно, /older и его /children могут следовать одному и тому же шаблону, но если вы все хотите получить доступ к фамильному гербу в /blindhardt/images, тогда вы начинаете добавлять гораздо больше вложенных относительных слоев, и может быть проще включить абсолютный адрес для таких эталонные изображения, таким образом, вы и ваши братья и сестры можете добавить
\graphicspath{{c:\familydocs\blindhardt\images/}{images/}{\main/images/}{images/ABC/}{\main/images/ABC/ }}
Есть способы включить пробелы выше, но для полной совместимости я предлагаю не включать
Все вышесказанное основано на формулировке вашего вопроса, однако каждый tex-файл может сам по себе посещать публичную библиотеку.