我的文件架构如下所示。
我可能笨拙地(一个接一个)定义了我的graphicspath
。
- 如果是这样,你会建议我怎么做?
- 如果没有,我该如何使用
\foreach
来缓解这个长长的列表?
\graphicspath{
{F:/NewOrga/_chap/chap01/_Images/}
...
{F:/NewOrga/_chap/chap55/_Images/}
{F:/NewOrga/_chap/chap56/_Images/}
}
(而且它会增长)
答案1
基本上是\int_step_function:nN
一行代码。比较棘手(但即便如此,也相当简单)的部分是格式化1
为01
。有几种方法可以用正确的expl3
语法来完成。
\prg_replicate:nn { 2-\str_count:n {#1} } { 0 } #1
和
\int_compare:nNnT {#1} < { 10 } { 0 } #1
是例子(我将使用后者)。
\RequirePackage{graphicx}
\ExplSyntaxOn
% Define a function that expands to {<path>}
\cs_new:Npn \jet_tmp_addpath:n #1
{ { F:/NewOrga/_chap/chap \int_compare:nNnT {#1} < { 10 } { 0 } #1 /_Images/ } }
% apply \graphicspath to all up to (here) 56
\use:x { \exp_not:N \graphicspath { \int_step_function:nN { 56 } \jet_tmp_addpath:n } }
\ExplSyntaxOff
% to make sure:
\makeatletter
\show\Ginput@path
终端显示:
> \Ginput@path=macro:
->{F:/NewOrga/_chap/chap01/_Images/}{F:/NewOrga/_chap/chap02/_Images/}{F:/NewOr
ga/_chap/chap03/_Images/}{F:/NewOrga/_chap/chap04/_Images/}{F:/NewOrga/_chap/ch
ap05/_Images/}{F:/NewOrga/_chap/chap06/_Images/}{F:/NewOrga/_chap/chap07/_Image
s/}{F:/NewOrga/_chap/chap08/_Images/}{F:/NewOrga/_chap/chap09/_Images/}{F:/NewO
... many more ...
chap/chap54/_Images/}{F:/NewOrga/_chap/chap55/_Images/}{F:/NewOrga/_chap/chap56
/_Images/}.