Metapost:宏内的输入文件

Metapost:宏内的输入文件

我喜欢使用单独的 .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.

相关内容