
Здравствуйте, вот 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. Просто полезно помнить, что добавление {}
к вычислениям часто помогает, если вы сталкиваетесь с проблемами)