我目前有:
\dorecurse{8}{
\startcombination[3*3]
{\externalfigure[confcard.pdf][page=\recurselevel, width=98mm]}}
{\externalfigure[confcard.pdf][page=\recurselevel+2, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+4, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+6, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+8, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+10, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+12, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+14, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\recurselevel+16, width=98mm]}{}
\stopcombination
}
因为我有一些难以置信常规拼版无法处理复杂的布局要求。(具体来说,双面拼版将 18 张 90mmx54mm 页面映射到一张双面 a4 页面。我决定使用外部图形,因为 filterpages 不会通过管道传输到 Combinepages。
但是,当我尝试使用 dorecurse 在一般情况下解决这个问题时,我该如何操作 \recurselevel 来为每个添加静态修饰符?
最终布局如下
{first side}
[1,3,5]
[7,9,11]
[13,15,17]
{second side}
[6,4,2]
[12,10,8]
[18,16,14]
答案1
答案不是用计数器,而是用:
\startcombination[3*3]
{\externalfigure[confcard.pdf][page=\the\numexpr 0+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 2+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 4+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 6+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 8+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 10+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 12+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 14+\recurselevel\relax, width=98mm]}{}
{\externalfigure[confcard.pdf][page=\the\numexpr 16+\recurselevel\relax, width=98mm]}{}
\stopcombination
该表达式\the\numexpr expression\relax
恰恰提供了在文档中操作数学的能力。
答案2
Aditya 可能是对的,这不是解决强加问题的最佳方法,但只是为了记录:还有逐步递归:
\dostepwiserecurse{start}{stop}{step}{commands}