\documentclass{ctexbeamer}
\usepackage{tikz}
\usepgflibrary{fpu}
\begin{document}
\begin{frame}{fpu库...
\documentclass{ctexbeamer}
\usepackage{tikz}
\usepgflibrary{fpu}
\begin{document}
\begin{frame}{fpu库与画箭头冲突}
\begin{center}
\begin{tikzpicture}[thick, scale=0.8, font=\footnotesize]
\pgfkeys{/pgf/fpu, /pgf/fpu/output format=fixed}
\path[use as bounding box] (-6.5,-3.5) -- (6.6,3.5);
\draw[very thin,color=gray] (-6,-3) grid (6,3);
\draw[thin,->] (-6.5,0) -- (6.6,0) node[right] {$x$};
\draw[thin,->] (0,-3.2) -- (0,3.2) node[above] {$y$};
\draw plot[domain=-6.28:6.28,samples=50]
(\x,{sin(\x r)}) node[above=7mm] {$y=\sin x$};
\draw[red] plot[domain=-6:6,samples=60]
(\x,{\x-(1/3!)*(\x)^3+(1/5!)*(\x)^5-(1/7!)*(\x)^7+(1/9!)*(\x)^9-(1/11!)*(\x)^11})
node[left,inner sep=1pt,red]{$y=x - \frac1{3!}x^3 + \frac1{5!}x^5 - \frac1{7!}x^7+\frac1{9!}x^9-\frac1{11!}x^{11}$};
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}
系统:texlive2019,用 xelatex 编绎,出错信息如下:
Package PGF Math Error: Sorry, an internal routine of the floating point unit
got an ill-formatted floating point number `0.0'. The unreadable part was near
'0.0'..
将
\draw[thin,->] (-6.5,0) -- (6.6,0) node[right] {$x$};
\draw[thin,->] (0,-3.2) -- (0,3.2) node[above] {$y$};
改为
\draw[thin] (-6.5,0) -- (6.6,0) node[right] {$x$};
\draw[thin] (0,-3.2) -- (0,3.2) node[above] {$y$};
即可通过编绎
在 PGF 手册 fpu 库那一部分有一句话:
Note that the library has not really been tested together with any drawing operations.
我猜可能是这样:添加箭头时需要计算各种尺寸,例如线宽,箭头的各种尺寸(长度,宽度等),也需要对路径做裁剪,裁剪时需要计算裁剪的尺寸。计算这些尺寸时数值格式可能仍然是没有调用 fpu 库时的格式,并没有自动转为浮点格式,所以计算浮点数的函数不能解析这些数值,导致错误。所以简单地
\pgfkeys{/pgf/fpu, /pgf/fpu/output format=fixed}
并不能很好地发挥 fpu 的作用——目前如此。
如果需要箭头选项兼容 fpu, 可以试试 pgfplots,也可以试试 tikz 的 Data Visualization. 使用 pgfplots 比较简单一些。
以上纯属猜测,要是猜错了还请见谅。
一周热门 更多>