我找到了 Metapost 的很好的例子,http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html。
当我使用示例编号 270 时,pdf 仅包含页码。问题:我做错了什么。我是新手。我正在使用 TeXworks、ConTeXt 和 LuaTeX。
我使用以下代码:
\starttext
\startMPcode
beginfig(270)
draw begingraph(3cm,2cm)
gdraw "data1";
endgraph;
endfig;
\stopMPcode
\stoptext
我不确定需要哪些数据。我尝试用不同的内容保存 data1.txt 和 data1.d,例如
1 5
2 4
3 2
OR
0.0 0.0
0.2 0.447214
0.4 0.632456
OR
1cm 0cm
2cm 1cm
3cm 2cm
ConTeXt 返回以下错误消息:
.... metapost > 使用格式“metafun”初始化实例“metafun” metapost > 使用方法“default”将“metafun”加载为“C:/texlive/2015/texmf-dist/metapost/context/base/metafun.mpiv” metapost > 初始化数字模式“scaled” metapost > 错误:
begingraph !不正确的“addto”。withpen draw->...:also(EXPR0)else:doublepath(EXPR0)withpen .currentpen.fi.操作 (<> beginfig(270) draw begingraph( 3cm,2cm) gdraw "data1"; endgraph; endfig; ; ! 多余的标记将被刷新。( <> beginfig(270) draw begingraph( 3cm,2cm) gdraw "data1"; endgraph; endfig; ; endgraph ! 孤立表达式。 ; <*> ...egingraph(3cm,2cm) gdraw "data1"; endgraph; endfig; ;
[1]
答案1
ConTeXt 需要重新定义图形模块的一些定义。要使用这些重新定义,您必须使用 MP 实例graph
。为此,
- 添加
\usemodule[graph]
你的序言。 - 如果您正在使用该
MPcode
环境,请使用\startMPcode{graph}
。 - 如果您正在使用
MPpage
环境,请使用\startMPpage[instance=graph]
。 - 您不需要添加
begingraph(..) ... endgraph
这是一个简单的例子:
\usemodule[graph]
\starttext
\startMPpage[instance=graph]
draw begingraph(3in,2in);
gdraw "data1.d";
endgraph;
\stopMPpage
\startMPcode{graph}
draw begingraph(3in,2in);
gdraw "data1.d";
endgraph;
\stopMPcode
\stoptext
data1.d
你的第一个例子在哪里?
顺便说一句,如果你开始在 ConTeXt 中绘图,我强烈建议你从 开始pgfplots
。它在 ConTeXt 中工作,但有一些怪癖。
我非常推崇 Metapost,因为它与 ConTeXt 的集成度很高,而且运行速度很快。但是,在绘图方面,pgfplot 比 metapost 图形模块要精致得多。