\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

非常感谢!

相关内容