Ah ok, je n'avais jamais utilisé cette syntaxe en Python.projetmbc a écrit :Pour info, cela marche aussi comme cela sous Python.MB a écrit :En effet, dans le premier cas, les affectations sont réellement simultanées (ce qui semble être une spécificité intéressante du langage lua).
[luatex] Des exemples ?
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
Dans l'objectif de migrer vers luatex je me suis un peu repenché sur l'exemple du pgcd.
Voici une autre version du code :
Si vous avez d'autres petits exemples d'applications de code lua vous pouvez les ajouter ici.
Voici une autre version du code :
Code : Tout sélectionner
\documentclass{article}
\usepackage{fontspec,luatextra,mathtools}
\begin{luacode}
function euclide(a,b)
if a < b then a,b = b,a end
r = a-math.floor(a/b)*b
tex.print(string.format("%i & %i & %i \\\\", a, b, r))
while r > 0 do
a,b = b,r
r = a-math.floor(a/b)*b
if r == 0 then
tex.print(string.format("%i & \\boldsymbol{%i} & %i \\\\", a, b, r))
else
tex.print(string.format("%i & %i & %i \\\\", a, b, r))
end
end
end
\end{luacode}
\newcommand{\euclide}[2]{%
\begin{displaymath}
\begin{array}{|c|c|c|}
\hline
a & b & r \\
\hline
\directlua{euclide(#1,#2)}
\hline
\end{array}
\end{displaymath}}
\begin{document}
\euclide{587}{389}
\end{document}
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
Une dernière version, récursive.
Code : Tout sélectionner
\documentclass{article}
\usepackage{fontspec,luatextra,mathtools}
\begin{luacode}
function euclide(a,b)
if a < b then a,b = b,a end
r = a-math.floor(a/b)*b
if r == 0
then
tex.print(string.format("%i & \\boldsymbol{%i} & %i \\\\", a, b, r))
else
tex.print(string.format("%i & %i & %i \\\\", a, b, r))
euclide(b,r)
end
end
\end{luacode}
\newcommand{\euclide}[2]{%
\begin{displaymath}
\begin{array}{|c|c|c|}
\hline
a & b & r \\
\hline
\directlua{euclide(#1,#2)}
\hline
\end{array}
\end{displaymath}}
\begin{document}
\euclide{587}{389}
\end{document}
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
J'ajoute ici le code proposé dans ce sujet.
Code : Tout sélectionner
\documentclass{article}
\usepackage{fontspec,luatextra,unicode-math}
\newcommand{\randomint}[3][randomint]{\luaexec{#1=math.random(#2,#3);tex.print(#1)}}
\newcommand{\randomdec}[4][randomdec]{\luaexec{local k=math.pow(10,#4);#1=math.random(#2*k,#3*k)/k;tex.print(#1)}}
\newcommand{\print}[1]{\luaexec{tex.print(#1)}}
\begin{document}
\begin{itemize}
\item \randomint[a]{10}{50} est un entier au hasard entre 10 et 50 stocké dans la variable lua "a".
\item \randomdec[b]{20}{30}{2} est un décimal au hasard entre 20 et 30 avec 2 chiffres dans sa partie décimale stocké dans la variable lua "b".
\item Le produit de \print{a} par \print{b} est \print{a*b}.
\end{itemize}
\end{document}
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
Un exemple de code faisant appel à luamplib.
Ce qui donne ...
Code : Tout sélectionner
\documentclass{article}
\usepackage{fontspec,luatextra,unicode-math}
\usepackage{luamplib}
\begin{document}
\begin{center}\leavevmode
\begin{mplibcode}
input boxes;
beginfig(1)
boxit.a1(btex $2 \times 5 =$ etex);
boxit.b1();
boxit.a2(btex $1 \times 5 =$ etex);
boxit.b2();
boxit.a3(btex $0 \times 5 =$ etex);
boxit.b3();
boxit.a4(btex $-1 \times 5 =$ etex);
boxit.b4();
boxit.a5(btex $-2 \times 5 =$ etex);
boxit.b5();
for i=1 upto 5:
a[i].e = b[i].w;
b[i].e+(6mm,0) = a[i+1].w;
b[i].n-b[i].s = (0,6mm) ;
b[i].e-b[i].w = (12mm,0);
endfor;
drawunboxed(a1,a2,a3,a4,a5);
drawboxed(b1,b2,b3,b4,b5);
for i=1 upto 4:
path arrow;
arrow = b[i].n+(1mm,1mm) {dir 40} .. b[i+1].n+(-1mm,1mm) {dir -40};
drawarrow arrow;
label.top(btex $-5$ etex, point 0.5 of arrow);
endfor;
endfig;
\end{mplibcode}
\end{center}
\end{document}
[attachment=0]mplib_1.png[/attachment]
-
- Utilisateur éprouvé
- Messages : 886
- Inscription : mercredi 05 novembre 2008, 01:19
- Localisation : Paris, France
Re: [luatex] Des exemples ?
Aucune idée si le document suivant peut ou non vous intéresser. J'avoue (honteusement) ne pas avoir fait l'effort de le lire.
http://www.luatex.org/svn/trunk/manual/luatexref-t.pdf
http://www.luatex.org/svn/trunk/manual/luatexref-t.pdf
Tonn83
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: [luatex] Des exemples ?
@Tonn83 : Il s'agit du manuel de référence LuaTeX, il ne contient pas vraiment d'exemple d'utilisation mais c'est tout de même très intéressant et complet.
-
- Sujets similaires
- Réponses
- Vues
- Dernier message
-
- 0 Réponses
- 974 Vues
-
Dernier message par Denis Bitouzé
-
- 1 Réponses
- 7358 Vues
-
Dernier message par zariski63