3

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

4

2 回答 2

1

您可以通过修补内部嵌套调用的一部分来捕获图像文件名\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仅在使用使用的文件名。

于 2015-09-16T02:42:00.017 回答
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)}
于 2010-09-20T11:48:05.997 回答