\import и \includegraphics с макросами: сохранение локального пути во время определения макроса

\import и \includegraphics с макросами: сохранение локального пути во время определения макроса

Я уже несколько дней ломаю голову над этой проблемой, перепробовав множество комбинаций \def, \edef, \noexpand, \expandafterи т. д.

Допустим, у меня есть модуль, в /tmp/module/котором содержится module.texи image.png. В module.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.

Большое спасибо!

Связанный контент