我正在尝试排版 Context Wiki 中的最小 pgfplots 示例,但没有成功。
上下文-Wiki 示例
\setupcolors[state=start]
\usemodule[tikz]
\usemodule[pgfplots]
\starttext
\starttikzpicture
\startaxis[ xmin=0,xmax=300,
title=http://cryogenics.nist.gov/,
xlabel=$T$ (K),
ylabel=$(L-L_{293})/L_{293}$,
legend style={at={(0.95,0.05)},anchor=south east},
width=16cm ]
\addplot[mark=none,color=red] plot file {sapphire.dat};
\addlegendentry{sapphire}
\addplot[mark=none,color=green] plot file {Be.dat};
\addlegendentry{Be}
\addplot[mark=none,color=blue] plot file {BeCu.dat};
\addlegendentry{BeCu}
\addplot[mark=none,color=cyan] plot file {SS304.dat};
\addlegendentry{SS304}
\addplot[mark=none,color=magenta] plot file {Al6061-T6.dat};
\addlegendentry{Al6061-T6}
\addplot[mark=none,color=orange] plot file {nylon.dat};
\addlegendentry{nylon}
\stopaxis
\stoptikzpicture
\stoptext
无论我使用哪种设置:原始 TexLive-2011 或最新的独立上下文,我总是会收到相同的错误:
texmf-modules/tex/generic/pgfplots/numtable/pgfplotstable.coltype.code.tex)
! Missing number, treated as zero.
system > tex > error on line 1043 in file pgfplottest.tex: Missing number, treated as zero ...
<to be read again>
^
l.1043 \catcode`\^^
I=12
使用的版本如下:
pgfplots-1.5.1
mtx-context | ConTeXt 进程管理 0.52
mtx-context |
mtx-context | 主上下文文件:/opt/context-minimals/texmf-context/tex/context/base/context.mkiv
mtx-context | 当前版本:2012.04.19 23:18
有任何想法吗?
答案1
这似乎是 pgf 端或 ConTeXt pgf 模块的一个错误。这是读取文件以下几行时出现的类别代码问题pgfplotstable.code.tex
。
{
\catcode`\^^I=12
\gdef\pgfplotstablesave@impl@TAB{^^I}
}
解决方法是手动修复 catcodes:
% \usemodule [tikz]
% \usemodule [pgfplots]
\unprotect
\input t-pgfplots
\protect
\starttext
\starttikzpicture
\startaxis
[xmin=0,xmax=300,
title=http://cryogenics.nist.gov/,
xlabel=$T$ (K),
ylabel=$(L-L_{293})/L_{293}$,
legend style={at={(0.95,0.05)},anchor=south east},
width=16cm]
\addplot[mark=none,color=red] plot file {sapphire.dat};
\addlegendentry{sapphire}
\addplot[mark=none,color=green] plot file {Be.dat};
\addlegendentry{Be}
\addplot[mark=none,color=blue] plot file {BeCu.dat};
\addlegendentry{BeCu}
\addplot[mark=none,color=cyan] plot file {SS304.dat};
\addlegendentry{SS304}
\addplot[mark=none,color=magenta] plot file {Al6061-T6.dat};
\addlegendentry{Al6061-T6}
\addplot[mark=none,color=orange] plot file {nylon.dat};
\addlegendentry{nylon}
\stopaxis
\stoptikzpicture
\stoptext
此示例适用于 2012.04.19 23:18 和 luatex (MkIV)。
笔记:catcode 问题现已修复,不再需要解决方法(除非您的 pgfplots 早于 2012-05-12)。可以照常加载模块:
\usemodule [pgfplots]