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