В LaTeX есть способ включить имя файла графического объекта в заголовок? - PullRequest
3 голосов
/ 17 сентября 2010

У меня есть документ LaTeX с большим количеством рисунков, включенных из внешних файлов с \includegraphics{bla.pdf}.Чертежи выполнены в Inkscape.Это все отлично работает.Однако иногда трудно отследить все чертежи и их исходные файлы.Поэтому я ищу способ включить имя исходного файла, в примере bla.pdf, в заголовок.Не будучи экспертом по LaTeX, я не нашел способа автоматического доступа к строке имени файла из заголовка.Использование Google-foo также не дало результата.Существует ли существующий способ ссылки на имя файла и включения его в заголовок, например \caption{A fancy drawing of bla (\filename}?

Ответы [ 2 ]

1 голос
/ 16 сентября 2015

Вы можете записать имя файла изображения, исправив часть вложенных вызовов внутри \includegraphics:

enter image description here

\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 после .

0 голосов
/ 20 сентября 2010

Переопределить \includegraphics.Для случая без аргументов (ширина = 3 см, масштаб = 2 или что-то подобное) у нас есть

\let \saveinclude \includegraphics
\def \includegraphics#1{\def\filename{#1}\saveinclude{#1}}

Использование

\includegraphics{bla.pdf}
\caption{A fancy drawing of bla (\filename)}
...