Я уже несколько дней ломаю голову над этой проблемой, перепробовав множество комбинаций \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
.
Большое спасибо!