Ich verwende den Befehl \subimport
und bin sehr zufrieden damit. Allerdings scheint er nicht zu funktionieren, wenn ich ihn innerhalb einer \newcommand
Umgebung verwende.
Meine Dateistruktur ist wie folgt:
./main.tex
./Macros/macros.tex
./Macros/Submodules/stringdiagrams.tex
./Macros/Submodules/symbols/somefile.tex
./main.tex
ist wie folgt:
\documentclass{article}
\usepackage{import}
\usepackage{tikz}
\import{Macros/}{macros}
\begin{document}
$\MyInlineFigure$
$\test$
\end{document}
Meine Makros sind in einem modularen Stil geschrieben und jedes Makro-Untermodul wird von aufgerufen ./Macros/macros.tex
, was wie folgt aussieht (es ist eine einzeilige Datei für dieses MWE):
\subimport{Submodules/}{stringdiagrams}
Die Datei ./Macros/Submodules/stringdiagrams.tex
enthält einige Befehle zum Anzeigen tikz
von Abbildungen in einer Inline-Umgebung. Diese Dateien befinden sich im Ordner ./Macros/Submodules/symbols
. ./Macros/Submodules/stringdiagrams.tex
sieht folgendermaßen aus:
\newcommand{\MyInlineFigure}{
\subimport{symbols/}{somefile}
}
\newcommand{\test}{
\begin{tikzpicture} [scale=1,transform shape]
\node [fill=red] (mult) at (0,0) {};
\end{tikzpicture}
}
Schließlich ./Macros/Submodules/symbols/somefile.tex
ist nur
\begin{tikzpicture} [scale=1,transform shape]
\node [fill=red] (mult) at (0,0) {};
\end{tikzpicture}
Theoretisch sollten die Befehle $\MyInlineFigure$
und $\test$
dieselbe Ausgabe erzeugen und ich sollte zwei rote Quadrate sehen. Beim Versuch, LaTeX zu kompilieren, kann ich jedoch nicht finden somefile.tex
.
Wenn ich in durch
./Macros/Submodules/stringdiagrams.tex
ersetze , funktioniert alles.\subimport{symbols/}{somefile.tex}
\input{Macros/Submodules/symbols/somefile.tex}
Wenn main.tex
ich in auskommentiere, $\MyInlineFigure$
wird es kompiliert und zeigt korrekt ein rotes Quadrat an, was beweist, dass
\subimport
ist in der Lage zu erreichen./Macros/Submodules/stringdiagrams.tex
- Das Problem ist nicht
tikz
.
Letztendlich sieht es so aus, als \subimport
würde es nicht funktionieren, wenn ich es innerhalb eines aufrufe \newcommand
. Gibt es eine Möglichkeit, das zu beheben?