Usando \subimport dentro de \newcommand

Usando \subimport dentro de \newcommand

Estou usando o comando \subimporte estou muito feliz com ele. No entanto, parece não funcionar quando o uso dentro de um \newcommandambiente.

Minha estrutura de arquivos é a seguinte:

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

./main.texé o seguinte:

\documentclass{article}

\usepackage{import}
\usepackage{tikz}

\import{Macros/}{macros}

\begin{document}

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

Minhas macros são escritas em um estilo modular, e cada submódulo de macro é chamado from ./Macros/macros.tex, que tem a seguinte aparência (é um arquivo de uma linha para este MWE):

\subimport{Submodules/}{stringdiagrams}

O arquivo ./Macros/Submodules/stringdiagrams.texcontém alguns comandos para exibir tikzfiguras em um ambiente inline. Esses arquivos são mantidos na pasta ./Macros/Submodules/symbols. ./Macros/Submodules/stringdiagrams.texparece o seguinte:

\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.texé apenas

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

Teoricamente, os comandos $\MyInlineFigure$e $\test$deveriam produzir a mesma saída, e eu deveria ver dois quadrados vermelhos. No entanto, quando tento compilar o LaTeX não consigo encontrar arquivos somefile.tex.

Se ./Macros/Submodules/stringdiagrams.texeu substituir \subimport{symbols/}{somefile.tex}por \input{Macros/Submodules/symbols/somefile.tex}então tudo funciona.

Se main.texeu comentar $\MyInlineFigure$então ele compila e mostra corretamente um quadrado vermelho, provando que

  • \subimporté capaz de alcançar./Macros/Submodules/stringdiagrams.tex
  • O problema não é tikz.

No final, parece que \subimportnão está funcionando quando eu chamo dentro de um arquivo \newcommand. Existe uma maneira de consertar isso?

informação relacionada