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ます。引数がない場合 (width=3cm、scale=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 に答える