在LaTeX中有一种方法可以将图形的文件名包含在标题中吗?

时间:2010-09-17 14:37:43

标签: graphics latex caption

我有一个LaTeX文档,其中包含大量图纸,其中包含\includegraphics{bla.pdf}的外部文件。图纸在Inkscape中完成。一切正常。但是,有时很难跟踪所有图纸及其源文件。因此,我正在寻找一种方法,将示例bla.pdf中的源文件名包含在标题中。不是LaTeX专家我没有找到一种方法来自动从标题中访问文件名字符串。使用Google-foo也没有产生结果。是否存在引用文件名并将其包含在标题中的现有方法,如\caption{A fancy drawing of bla (\filename}

2 个答案:

答案 0 :(得分:1)

您可以通过在\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将包含<{1}}中使用的文件名 之后使用

答案 1 :(得分:0)

重新定义\includegraphics。对于没有参数的情况(宽度= 3cm,比例= 2或类似的东西),我们有

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

使用

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