Usando \subimport dentro de \newcommand

Usando \subimport dentro de \newcommand

Estoy usando el comando \subimporty estoy muy contento con él. Sin embargo, no parece funcionar cuando lo uso dentro de un \newcommandentorno.

Mi estructura de archivos es la siguiente:

./main.tex
./Macros/macros.tex
./Macros/Submodules/stringdiagrams.tex
./Macros/Submodules/symbols/somefile.tex

./main.texes como sigue:

\documentclass{article}

\usepackage{import}
\usepackage{tikz}

\import{Macros/}{macros}

\begin{document}

$\MyInlineFigure$
$\test$
\end{document}

Mis macros están escritas en un estilo modular y cada submódulo de macro se llama desde ./Macros/macros.tex, que tiene el siguiente aspecto (es un archivo de una línea para este MWE):

\subimport{Submodules/}{stringdiagrams}

El archivo ./Macros/Submodules/stringdiagrams.texcontiene algunos comandos para mostrar tikzfiguras en un entorno en línea. Estos archivos se guardan en la carpeta ./Macros/Submodules/symbols. ./Macros/Submodules/stringdiagrams.texse ve de la siguiente manera:

\newcommand{\MyInlineFigure}{ 
   \subimport{symbols/}{somefile}
}

\newcommand{\test}{
    \begin{tikzpicture} [scale=1,transform shape]
        \node [fill=red] (mult) at (0,0) {};
    \end{tikzpicture}
}

Finalmente, ./Macros/Submodules/symbols/somefile.texes solo

\begin{tikzpicture} [scale=1,transform shape]
\node [fill=red] (mult) at (0,0) {};
\end{tikzpicture}

En teoría, los comandos $\MyInlineFigure$y $\test$deberían producir el mismo resultado y debería ver dos cuadrados rojos. Sin embargo, cuando intento compilar LaTeX no puedo encontrarlo somefile.tex.

Si ./Macros/Submodules/stringdiagrams.texlo reemplazo \subimport{symbols/}{somefile.tex}con \input{Macros/Submodules/symbols/somefile.tex}entonces todo funciona.

Si main.texcomento $\MyInlineFigure$entonces se compila y muestra correctamente un cuadrado rojo, lo que demuestra que

  • \subimportes capaz de alcanzar./Macros/Submodules/stringdiagrams.tex
  • El problema no lo es tikz.

Al final, parece que \subimportno funciona cuando lo llamo dentro de un archivo \newcommand. ¿Hay alguna forma de arreglarlo?

información relacionada