fpu库与画箭头冲突

2019-09-10 07:23发布

\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$};


即可通过编绎

4条回答
咸菜的味道
2019-09-10 17:28

在  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 比较简单一些。


以上纯属猜测,要是猜错了还请见谅。

一周热门 更多>

相关问答