マクロを使用した \import と \includegraphics: マクロ定義時にローカルパスを保持する

マクロを使用した \import と \includegraphics: マクロ定義時にローカルパスを保持する

私は数日間この問題に頭を悩ませ、、、、などのさまざまな組み合わせを試してき\defました。\edef\noexpand\expandafter

/tmp/module/を含むモジュールが にあるとします。 では、などのマクロを定義し、このサブモジュール内の画像を相対パスで取得します。module.teximage.pngmodule.tex\includegraphics

% module.tex
\newcommand{\myQuizHeader}[1]{
  Quiz #1
  \includegraphics[width=1.5in]{image.png}
}

次に、メイン ドキュメントから または\importを実行し\subimport、マクロを使用してみます\myQuizHeader

% main.tex
\documentclass[11pt,letterpaper]{article}
\usepackage{graphicx}
\usepackage{import}

\begin{document}
  \import{/tmp/module/}{module.tex}
  \myQuizHeader{27}
\end{document}

import は、モジュール内ではモジュールに関連するファイルや画像を見つけるためにモジュール パスを正しく先頭に追加しますがmodule.tex、モジュールを離れるときにそれらのパスは削除されるため、そのモジュールで定義されたマクロは正しく動作しなくなります。メイン ファイルから呼び出すと、\myQuizHeader{27}画像が見つかりません。

これを解決する正しい方法は何ですか?\Ginput@pathモジュール内のローカル変数に変数を保存するというトリックを試してみましたが、その後、地獄\edefに陥りました\noexpand

どうもありがとう!

関連情報