Latex 宏:局部变量和路径名

Latex 宏:局部变量和路径名

我最初有一组如下所示的 TeX 代码:

paper.tex
assignment.tex

主 TeX 在哪里paper.tex?接收assignment.tex文件并将其添加到那里。

assignment.tex是我关心的,它有一段我想更改的代码。它看起来像这样:

\inputdir{sigsbee}
\multiplot{2}{img1,img2,img3,img4} %where img1-4 are within the directory sigsbee
{width=.45\textwidth}{caption1;caption2;caption3;caption4}

\inputdir{sigsbee2}
\multiplot{2}{img1,img2,img3,img4} %where img1-4 are within the directory sigsbee2
{width=.45\textwidth}{caption1;caption2;caption3;caption4}

我想制作第三个多重图,从和中获取图像sigsbeesigsbee2绘制图像。

我希望使用某种方法,根据路径名定义变量,以便我可以附加这些变量来包含其他目录。例如:

\def\path[#1]{'/path/to/file/#1'}
....
\multiplot{2}{\path{sigsbee}{img1,img2,img3,img4}}

但我不确定最适合此操作的符号或方法。

答案1

考虑到已经很久没有人贡献了,我将发布我个人对这个问题的解决方案。但这实际上不是一个解决方案。最初我提出这个问题是因为我无法访问定义部分宏的模板文件。有问题的宏如下:

\newcommand{\@path}{.}
\newcommand{\inputdir}[1]{\renewcommand{\@path}{#1}}
\providecommand{\figdir}{Fig}
\providecommand{\fig@file}[1]{\@path/|figdir/#1}

不幸的是,这个问题从我问的那一刻起就注定要失败,当我提出这个问题时,我并没有意识到,有大量的背景信息被转换,这些信息高度依赖于工作目录路径的命名约定。这是一个马达加斯加约定,这是出现这个问题的软件。

没有办法回答这个问题,因为如果你改变目录\inputdir{},它搜索的下一个目录就是Fig目录。这很不幸。这个问题最简单的解决办法是修改构建的python脚本,使所有潜在的图形都放在一个目录中。

更复杂的解决方案是改变 TeX 模板和宏中的所有依赖项,以使其更适合在环境中使用多个目录\multiplot{}{}{}

不幸的是,我没有看到任何可预见的答案,因为这个问题定义不明确,而且坦率地说几乎毫无用处,因为整个模板都是基于这个路径的命名约定。我希望看到更好的解决方案出现,但我并不抱有希望。

相关内容