使用数据可视化和 tikz 时出现未知运算符 |

使用数据可视化和 tikz 时出现未知运算符 |

问题:

我试图让该函数y = |x|与 TikZ 中的数据可视化库配合使用,但没有成功。问题似乎出在运算符上|

最小工作示例(MWE):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}

\begin{tikzpicture}
    \datavisualization [school book axes,
                        visualize as smooth line,
                        y axis={label},
                        x axis={label}]

    data [format=function] {
          var x : interval [-5:5];
          func y = |x|;
    };
\end{tikzpicture}

\end{document}

期望输出:

使该函数与运算符一起工作|

答案1

竖线只是一种符号,即排版绝对值的常用方法。根据第节94.3 数学表达式的语法:函数pgf 手册 (版本 3.1.3) 的功能是abs(并且您忘记了\value)。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}

\begin{tikzpicture}
    \datavisualization [school book axes,
                        visualize as smooth line,
                        y axis={label},
                        x axis={label}]

    data [format=function] {
          var x : interval [-5:5];
          func y = abs(\value x);
    };
\end{tikzpicture}

\end{document}

在此处输入图片描述

附录:可以声明新的数学运算符吗?是的。可以定义一个运算符吗|是的。它是否如您所愿发挥作用并且安全吗?也许不会。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\pgfmathdeclareoperator{|} {abs}   {1}{infix} {600}
\begin{document}
\begin{tikzpicture}
    \datavisualization [school book axes,
                        visualize as smooth line,
                        y axis={label},
                        x axis={label}]

    data [format=function] {
          var x : interval [-5:5];
          func y = | \value x ;
    };
\end{tikzpicture}

\end{document}

相关内容