我想在一个简短的 metafun 循环中扩展一个字符串数组。每个框都应标有适当的字符串(“古典主义”、“卢米埃”、“浪漫主义”)。我如何才能让 btex etex 中的标签函数扩展这些字符串。我没有找到一些字符串数组的示例,希望它被正确声明。
\setuppapersize[S6][S6]
\starttext
\startMPcode
%numeric u, l, h ;
u:=5pt ;
l:=20 ;
h:=8 ;
path p ;
p:= unitsquare xscaled (l*u) yscaled (h*u) ;
string c[] ;
c[0]:="classicisme";
c[20]:="Lumières";
c[40]:="romantisme";
for i=0 step 20 until 40 :
fill p xshifted i*u withcolor (.8-(i/200))*white;
label(btex c[i] etex, ((i+l/2)*u,(h/2)*u)) ;
endfor ;
\stopMPcode
\stoptext
我的 MWE 甚至没有返回 c[0]、c[20] 和 c[40] 作为标签,所以我肯定会错过一些扩展。
阅读后编辑这个问题,我试过这个
label.bot(TEX("c[i]"), ((i+l/2)*u,(h/2)*u)) ;
但它不能编译。
答案1
您可以将字符串原样传递给label
:替换行
label(btex c[i] etex, ((i+l/2)*u,(h/2)*u)) ;
和
label(c[i], ((i+l/2)*u,(h/2)*u)) ;
您就完成了。
(顺便说一句,如今(参考)您可以直接这样做\setuppapersize[S6]
:\setuppapersize[S6][S6]
如果没有给出第二个参数,则默认为第一个参数。)