请提供两个从 Texicenter 运行的 latex 中执行 metapost 和 metaobj 的示例。
需要包含哪些包并编写两个示例
我读完了这本书却无法理解。
第一的
input metafun
draw fulldiamond scaled 1cm withcolor blue;
第二
input metaobj
nczigzag(a)(b);
nczigzag(a)(b)
"angleA(-90)","angleB(120)",
"linetension(0.8)","coilwidth(2mm)",
"linearc(0.1mm)";
drawObj(a,b);
以下代码不起作用帮助
\documentclass{article}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
input test.mp
\end{mplibcode}
\end{document}
其中测试.mp
beginfig(1) ;
draw fulldiamond scaled 1cm withcolor blue ;
endfig ;
end ;
然后在 LuLatex 中运行它但没有出现错误和输出
第二个如果在上面而不是 test.mp 上面的代码
如果我们test.mp
有
input metaobj
beginfig(1) ;
newCircle.a(btex A etex) ;
newCircle.b(btex B etex) ;
a.c=origin ;
b.c=(3cm,2cm) ;
nczigzag(a)(b) ;
nczigzag(a)(b) "angleA(-90)","angleB(120)",
"linetension(0.8)",
"coilwidth(2mm)", "linearc(0.1mm)" ;
drawObj(a,b) ;
endfig ;
end ;
如何无错误运行请帮助
答案1
元乐趣
MetaFun 不是可以输入的宏,而是另一种格式(有点像 Plain TeX 与 LaTeX)。因此,要使用 MetaFun 运行文件,您必须使用 预加载格式mpost '&metafun' test.mp
。
beginfig(1) ;
draw fulldiamond scaled 1cm withcolor blue ;
endfig ;
end ;
元对象
您的 MetaObj 示例无法工作,因为您尝试连接不存在的对象。我只是制作了两个圆圈并将它们放在某处a
。b
input metaobj
beginfig(1) ;
newCircle.a(btex A etex) ;
newCircle.b(btex B etex) ;
a.c=origin ;
b.c=(3cm,2cm) ;
nczigzag(a)(b) ;
nczigzag(a)(b) "angleA(-90)","angleB(120)",
"linetension(0.8)",
"coilwidth(2mm)", "linearc(0.1mm)" ;
drawObj(a,b) ;
endfig ;
end ;
将图片嵌入文档
您使用以下标签标记了问题路特克斯,所以我们可以使用luamplib
。由于 MetaFun 实际上是普通 MetaPost 的超集,我们可以使用 全局将格式切换为 MetaFun 。我们还在和\mplibsetformat{metafun}
中添加了一些便利代码,这样我们就不必每次都输入和,图片将始终处于水平模式。\everymplib
\everyendmplib
beginfig
endfig
\documentclass{beamer}
\usepackage{luamplib}
\mplibsetformat{metafun}
\everymplib{
verbatimtex \leavevmode etex ;
beginfig(0) ;
}
\everyendmplib{
endfig ;
}
\begin{document}
\begin{frame}
\begin{mplibcode}
draw fulldiamond scaled 1cm withcolor blue ;
\end{mplibcode}
\end{frame}
\begin{frame}
\begin{mplibcode}
input metaobj ;
newCircle.a(btex A etex) ;
newCircle.b(btex B etex) ;
a.c=origin ;
b.c=(3cm,2cm) ;
nczigzag(a)(b) ;
nczigzag(a)(b) "angleA(-90)","angleB(120)",
"linetension(0.8)",
"coilwidth(2mm)", "linearc(0.1mm)" ;
drawObj(a,b) ;
\end{mplibcode}
\end{frame}
\end{document}