以编程方式定义我的图形路径

以编程方式定义我的图形路径

我的文件架构如下所示。

我可能笨拙地(一个接一个)定义了我的graphicspath

  1. 如果是这样,你会建议我怎么做?
  2. 如果没有,我该如何使用\foreach来缓解这个长长的列表?
\graphicspath{
{F:/NewOrga/_chap/chap01/_Images/}
...
{F:/NewOrga/_chap/chap55/_Images/}
{F:/NewOrga/_chap/chap56/_Images/}
}

(而且它会增长)

答案1

基本上是\int_step_function:nN一行代码。比较棘手(但即便如此,也相当简单)的部分是格式化101。有几种方法可以用正确的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/}.

相关内容