Ich habe mir seit einigen Tagen den Kopf über dieses Problem zerbrochen und viele Kombinationen von \def
, \edef
, \noexpand
, \expandafter
, usw. ausprobiert.
Angenommen, ich habe ein Modul unter , das und /tmp/module/
enthält . In definiere ich ein Makro, das unter anderem verwendet, um das Bild in diesem Untermodul mit einem relativen Pfad einzufügen:module.tex
image.png
module.tex
\includegraphics
% module.tex
\newcommand{\myQuizHeader}[1]{
Quiz #1
\includegraphics[width=1.5in]{image.png}
}
Und dann mache ich von meinem Hauptdokument aus ein „ \import
oder“ \subimport
und versuche dann, das \myQuizHeader
Makro zu verwenden:
% main.tex
\documentclass[11pt,letterpaper]{article}
\usepackage{graphicx}
\usepackage{import}
\begin{document}
\import{/tmp/module/}{module.tex}
\myQuizHeader{27}
\end{document}
Während import den Modulpfad korrekt voranstellt, um Dateien und Bilder relativ zum Modul zu finden, während man sich darin befindet , werden diese Pfade beim Verlassen des Moduls entfernt, sodass die in diesem Modul definierten Makros nicht mehr richtig funktionieren. Wenn ich es aus der Hauptdatei module.tex
aufrufe, wird das Bild nicht gefunden.\myQuizHeader{27}
Wie kann ich das richtig lösen? Ich habe versucht, Tricks anzuwenden, indem ich die \Ginput@path
Variable in einer lokalen Variable innerhalb des Moduls gespeichert habe, aber dann bin ich in \edef
die \noexpand
Hölle geraten.
Vielen Dank!