\newcommand内で\subimportを使用する

\newcommand内で\subimportを使用する

私はこのコマンドを使用しており\subimport、非常に満足しています。ただし、\newcommand環境内で使用すると機能しないようです。

私のファイル構造は次のとおりです。

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

./main.tex以下のとおりであります:

\documentclass{article}

\usepackage{import}
\usepackage{tikz}

\import{Macros/}{macros}

\begin{document}

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

私のマクロはモジュラー スタイルで記述されており、すべてのマクロ サブモジュールは から呼び出されます./Macros/macros.tex。これは次のようになります (この MWE では 1 行のファイルです)。

\subimport{Submodules/}{stringdiagrams}

ファイルには、インライン環境で図./Macros/Submodules/stringdiagrams.texを表示するためのコマンドがいくつか含まれていますtikz。これらのファイルは、フォルダーに保存されます./Macros/Submodules/symbols./Macros/Submodules/stringdiagrams.tex次のようになります。

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

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

./Macros/Submodules/symbols/somefile.tex最後に、

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

理論的には、コマンド$\MyInlineFigure$とは$\test$同じ出力を生成し、2 つの赤い四角形が表示されるはずです。ただし、コンパイルしようとすると、LaTeX は を見つけることができませんsomefile.tex

を に ./Macros/Submodules/stringdiagrams.tex置き換えると、すべて正常に動作します。\subimport{symbols/}{somefile.tex}\input{Macros/Submodules/symbols/somefile.tex}

main.texをコメントアウトすると$\MyInlineFigure$コンパイルされ、正しく赤い四角が表示され、

  • \subimport到達できる./Macros/Submodules/stringdiagrams.tex
  • 問題はそうではありませんtikz

結局、\subimport内で を呼び出すと が機能しないようです\newcommand。修正する方法はありますか?

関連情報