У меня есть документ LaTeX с большим количеством рисунков, включенных из внешних файлов с \includegraphics{bla.pdf}
. Рисунки выполнены в Inkscape. Все работает нормально. Однако иногда бывает сложно отслеживать все чертежи и их исходные файлы. Поэтому я ищу способ включить имя исходного файла в примере bla.pdf
в заголовок. Не будучи экспертом по LaTeX, я не нашел способа автоматически получить доступ к строке имени файла из заголовка. Использование Google-foo тоже не дало результата. Есть ли способ сослаться на имя файла и включить его в заголовок, например \caption{A fancy drawing of bla (\filename}
?
В LaTeX есть способ включить имя файла изображения в заголовок?
comment
Вы знаете о Tex, LaTeX и друзьях? Вопрос о латексе все еще актуален здесь, но вы можете получить более точные или быстрые ответы там.
- person dmckee --- ex-moderator kitten   schedule 17.09.2010
comment
Если бы вы могли дать нам небольшой пример того, что вы сейчас делаете, мы могли бы предложить индивидуальное решение ...
- person Brent.Longborough   schedule 18.09.2010
Ответы (2)
Вы можете записать имя файла изображения, исправив часть вложенных вызовов внутри \includegraphics
:
\documentclass{article}
\usepackage{graphicx,etoolbox}
\makeatletter
\patchcmd{\Gin@setfile}% <cmd>
{\ProvidesFile}% <search>
{\xdef\imgfilename{#3}\ProvidesFile}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\begin{figure}
\centering
\includegraphics[width=.5\linewidth]{example-image}
\caption{Image: \imgfilename}
\end{figure}
\end{document}
\imgfilename
будет содержать имя файла, используемое в \includegraphics
, только после его использования.
person
Werner
schedule
16.09.2015
Переопределите \includegraphics
. В случае отсутствия аргументов (ширина = 3 см, масштаб = 2 или что-то в этом роде) имеем
\let \saveinclude \includegraphics
\def \includegraphics#1{\def\filename{#1}\saveinclude{#1}}
Использование
\includegraphics{bla.pdf}
\caption{A fancy drawing of bla (\filename)}
person
Alexey Malistov
schedule
20.09.2010
Что делать, если у меня есть аргументы? Я также включил изображения внутри пользовательских команд в преамбулу.
- person Jonathan Komar; 02.01.2015