ConTeXt 中的图表仍然不可见

ConTeXt 中的图表仍然不可见

我找到了 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 图形模块要精致得多。

相关内容