Vous pouvez définir des variables dans vos documents puis les appeler dans la suite (d'une même page), rendant ainsi le document plus dynamique.

Par exemple, la ligne suivante définit une variable sous le nom de x1, dont la valeur sera un entier aléatoire entre -10 et 10 (inclusif) :

    \\def{integer x1=random(-10..10)}

Cette valeur aléatoire peut ensuite être évoquée par le mot \\x1, dans la suite du bloc qui l'a définie. C'est-à-dire, chaque mot \\x1 sera remplacé par la valeur aléatoire de la variable. Cette substitution prend aussi effet dans les définitions d'autres variables qui suivent celle de x1.

\def{integer x1=random(10..50)} \def{integer y1=random(10..50)} \def{integer xy=\x1*\y1} Par exemple, dans cette page nous avons défini

    \\def{integer x1=random(10..50)}
    \\def{integer y1=random(10..50)}
    \\def{integer xy=\\x1*\\y1}

Par conséquent, le texte \\x1*\\y1=\\xy donne \x1*\y1=\xy. Vous pouvez \reload{renouveler la page} pour voir les valeurs changer.

Quelques autres exemples de variables \help{module=adm/doc&job=help&help_subject=oefparm}{[Liste complète]}
Définition | Effet
--- | ---
\\def{real x=random(-5..5)} | \\x sera un nombre réel aléatoire entre -5 et 5
\\def{real a=random(-5,-3,0.3,4)} | \\a sera un nombre réel pris aléatoirement parmis -5,-3,0.3 et 4
\\def{complex z=(1+2*i)^3} | \\z sera le nombre complexe z=\((1+2*i)^3)
\\def{text sign=random(+,-)} | \\sign sera un signe aléatoire: + ou -
\\def{integer n=3*exp(\\a)} | \\n sera l'entier le plus proche de 3*e\\a (il dépend de la valeur de \\a)
\\def{function f=random (x^2+1,sin(x),log(x))} | \\f sera une fonction aléatoire: soit \(x^2+1), soit sin(x), soit log(x)
\\def{text s=shuffle(6)} | \s sera une liste de 6 entiers 1,2,...,6, dans un ordre aléatoire.
\\def{text s=shuffle(a,b,c,d,e)} | \s sera les lettres {a,b,c,d,e} dans un ordre aléatoire.
\\def{real a=evalue(x^2+sin(y),x=3,y=4)} | Evaluation de la fonction \(x^2+sin(y)), pour x=3, y=4
\\def{real r=solve(x^3-3*x+1,x=0..1)} | \\r sera la racine simple de \(x^3-3x+1) entre 0 et 1
\\def{function h=simplify(x^5*y^3*x^2/y)} | Expression simplifiée : \(x^7*y^2)
\\def{function g=diff(sin(x)+cos(y),x)} | \\g sera la dérivée de sin(x)+cos(y) par rapport à x
\comment{
\\def{function F=int(x^2+3*x+1,x)} | \\F sera une primitive de \(x^2+3*x+1), le terme constant n'étant pas garanti d'être toujours le même
\\def{function F=int(t^2+3*t+1,t=1..x)} | \\F sera la primitive de \(x^2+3*x+1) telle que F(1)=0}
\\def{real a=int(t^2+3*t+1,t=0..1)} | \a sera l'intégrale numérique de \(x^2+3*x+1), de 0 à 1
\\def{text f=htmlmath(2*x^2+3*x)} | \\f sera rendu en html comme: \(2x^2+3x)
\\def{text f=texmath(2*x^2+3*x)} | \\f sera le source TeX de l'expression.
\\def{matrix m=1,2,3 4,5,6 7,8,9} | \\m sera la matrice de 3 lignes et 3 colonnes.

Paramètres conditionnels vous pouvez écrire \text{ttt=_condition?_def1} ou
\text{ttt=_condition?_def1:_def2}

Dans ce cas, ttt aura la valeur _def1 si _condition s'avère vraie, ou _def2 sinon (dans la seconde syntaxe). \help{module=adm/doc&cmd=new&job=help&help_subject=if}{Liste de conditions}.

Notons enfin que les blocs insérés via \link{fold}{\fold} ou \link{embed}{\embed} héritent les définitions de variables avant l'insertion.