问题简述: 我正在使用 pgfplots,但无法在标签中使用单位。我尝试了这个最小示例(来自http://pgfplots.sourceforge.net/gallery.html)并收到错误消息:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{axis}[use units,
x unit=m,x unit prefix=k,
y unit=N,y unit prefix=m,
xlabel=Distance,ylabel=Force]
\addplot coordinates {
(1,2.3)
(2,2.7)
(3,2.1)
(4,1.8)
(5,1.5)
(6,1.1)
};
\end{axis}
\end{tikzpicture}
\end{document}
错误如下:
Package pgfplots notification 'compat/show suggested version=true': document has been generated with the most recent feature set (\pgfplotsset{compat=1.10}).
! Package pgfkeys Error: I do not know the key '/tikz/use units' and I am going to ignore it. Perhaps you misspelled it.
See the pgfkeys package documentation for explanation.
Type H <return> for immediate help.
...
l.20 \end{axis}
背景: 我使用 Ubuntu 14.04,它自带 pgfplots 1.9。由于出现上述错误,我升级到了 1.10,上述输出的第一行显示它实际上使用的是 1.10。kpsewhich 也证实了这一点:
$ kpsewhich pgfplots
/home/simon/texmf/tex/plain/pgfplots/pgfplots.tex
我意识到我可以简单地手动将单位写入标签,但还有另一个问题。我想缩放 x 轴单位,因为我正在从文件导入数据。但 pgfkeys 也无法识别相应的命令。为了演示,来自 sourceforge pgfplots 库的另一个最小示例:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\begin{tikzpicture}
\begin{axis}[change x base,
x SI prefix=kilo,x unit=m,
y SI prefix=milli,y unit=N,
xlabel=Distance,ylabel=Force]
\addplot coordinates {
(1000,1)
(2000,1.1)
(3000,1.2)
(4000,1.3)
};
\end{axis}
\end{tikzpicture}
\end{document}
给我:
Package pgfplots notification 'compat/show suggested version=true': document has been generated with the most recent feature set (\pgfplotsset{compat=1.10}).
! Package pgfkeys Error: I do not know the key '/tikz/change x base' and I am going to ignore it. Perhaps you misspelled it.
谢谢你的帮助!
答案1
尽管我仔细查阅了手册和其他示例,但我还是错过了一个库导入:
\usepgfplotslibrary{units}
现在它起作用了。非常感谢@percusse 在他的评论中指出了我的问题。
答案2
我在 Ubuntu 14.04 中遇到了同样的问题。我尝试在如下代码中使用 pgf/tikz:
\begin{tikzpicture}
\begin{scope}[blend group = soft light]
\fill[red!30!white] ( 90:1.2) circle (2);
\fill[green!30!white] (210:1.2) circle (2);
\fill[blue!30!white] (330:1.2) circle (2);
\end{scope}
\node at ( 90:2) {One};
\node at ( 210:2) {Two};
\node at ( 330:2) {Three};
\node [font=\Large] {Four};
\end{tikzpicture}
但是我在 texstudio 中收到以下错误消息:
Package pgfkeys Error: I do not know the key '/tikz/blend group' and I am going to ignore it. Perhaps you misspelled it. \begin{scope}[blend group = soft light]
显然 pgf 版本太旧了,我们需要更新它。我做了什么
- 已下载最新版本的 pgf
- 解压文件
- 在我的主文件夹中创建了一个文件夹 texmf
- 将解压后的文件夹中的 tex 文件夹复制到新的 texmf 文件夹中
问题解决了 :)