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