Llevo unos días dándole vueltas a este problema, probando muchas combinaciones de \def
, \edef
, \noexpand
, \expandafter
, etc.
Digamos que tengo un módulo /tmp/module/
que contiene module.tex
y image.png
. En module.tex
Defino una macro que, entre otras cosas, utiliza \includegraphics
para extraer la imagen dentro de este submódulo con una ruta relativa:
% module.tex
\newcommand{\myQuizHeader}[1]{
Quiz #1
\includegraphics[width=1.5in]{image.png}
}
Y luego desde mi documento principal hago un \import
o \subimport
y luego intento usar la \myQuizHeader
macro:
% main.tex
\documentclass[11pt,letterpaper]{article}
\usepackage{graphicx}
\usepackage{import}
\begin{document}
\import{/tmp/module/}{module.tex}
\myQuizHeader{27}
\end{document}
Si bien import antepone correctamente la ruta del módulo para buscar archivos e imágenes relativas al módulo mientras está dentro module.tex
, esas rutas se eliminan al salir del módulo, por lo que las macros definidas en ese módulo ya no funcionan correctamente. Cuando llamo \myQuizHeader{27}
desde el archivo principal, no se encuentra la imagen.
¿Cuál es la forma correcta de resolver esto? Intenté hacer trucos guardando la \Ginput@path
variable en una variable local dentro del módulo, pero luego me metí en \edef
el \noexpand
infierno.
¡Muchas gracias!