我喜欢使用单独的 .mp 文件来组织我的 Metapost 项目。但是当我尝试在宏中输入文件时,我遇到了此错误消息。File names can't appear within macros.
即使有这个非常清晰的消息,我还是想知道是否有解决方案可以在宏中调用输入文件?(包、扩展、Metafun、Metafont、小技巧等?)
def init =
input var.mp
draw (0,A)--(10,B)--(20,C);
enddef;
beginfig(1);
init;
endfig;
end.
感谢您的帮助。
答案1
您可以使用readfrom
:
string rf;
def init =
forever:
rf:=readfrom "var.mp";
exitif rf=EOF;
scantokens(rf);
endfor
closefrom "var.mp";
draw (0,A)--(10,B)--(20,C);
enddef;
beginfig(1);
init;
endfig;
end.