Почему это использование функции за пределами оценки сбоев?

Почему это использование функции за пределами оценки сбоев?

Здравствуйте, вот MWE:

    \documentclass[border=2pt]{standalone}
    \usepackage[utf8]{inputenc}

    \usepackage{graphics}
    \usepackage{tikz,pgfplots}
    \usetikzlibrary{math} % Pour evaluate

    \def\FTUn(#1){1/( W*(#1-sqrt((#1*#1) -1)))}
    \def\FTDeux(#1){1/(W *(#1+sqrt((#1*#1) -1)))}
    \def\FSupAUn(#1,#2){ \Kg * (1 - ( 1/( #1 - #2 ) )*( #1 *exp(-x/ #1 ) - #2 *exp(-x/ #2 ) ))   }

    \begin{document}
        \begin{tikzpicture}[  declare function={ W=pi*2;  }]
            \def\Kg{2}
            \def\Ezero{1}
            \def\Ttrace{3}
            \begin{axis}
                \addplot[thick=3pt,ultra thick,domain=0:(1/10),samples=50,
                evaluate={  \Tun = \FTUn(2) ;
                                \Tdeux =  \FTDeux(2); }
                ] {  \FSupAUn(\Tun, \Tdeux)  };
        %       ] {  \FSupAUn( \FTUn(2) , \FTDeux(2) )  };
            \end{axis}
        \end{tikzpicture}
    \end{document}

Это работает нормально, но используйте закомментированный код вместо приведенного выше, и вы получите:

TeX capacity exceeded, sorry [main memory size=5000000].

решение1

Как и во многих других местах в tikz, нам нужны фигурные скобки, чтобы указать ему на необходимость вычисления функции.

Так что используйте

{\FTUn(2)}

и т. д.

(Как упоминает Торбьёрн в комментариях, вся проблема, вероятно, заключается в ()запутанности анализатора аргументов TikZ. Просто полезно помнить, что добавление {}к вычислениям часто помогает, если вы сталкиваетесь с проблемами)

Связанный контент