En bidouillant un peu mon fichier sur les tableaux de proportionnalité pour afficher des égalité de fractions en mettant des fleches entre les dénominteurs et les numérateurs avec les simplications effectuées (par exemple ":3"), je me suis rendu compte que je n'arrivais pas à aligner correctement les fractions si elles n'avait pas la meme taille. Pour pouvoir mettre les fleches, j'utilise une picture, mais après lorsque je fais "add", ca foire un peu.
Code : Tout sélectionner
unitsize(1cm);
texpreamble("\newcommand{\dfrac}[2]{\displaystyle\frac{#1}{#2}}");
string s1="$\dfrac{4}{5}$";
string s2="$\dfrac{\ldots}{15}$";
pair[] calc(object o)
{
pair[] rep;
picture tmp;
add(tmp,o);
rep.push(size(tmp)/1cm);
rep.push(min(tmp)/1cm);
rep.push(max(tmp)/1cm);
return rep;
}
object o1=Label(s1,(0,0),Align,basealign);
object o2=Label(s2,(0,0),Align,basealign);
pair[] rep1=calc(o1);
pair[] rep2=calc(o2);
label(s1,(0,0),Align,basealign);
label(s2,(1,0),Align,basealign);
//write(rep1);
//write(rep2);
add(o1,(2,0));
draw(shift((2,0))*box(rep1[1],rep1[2]));
add(o2,(3,0));
draw(shift((3,0))*box(rep2[1],rep2[2]));
dot((2,0));
dot((3,0));
object o3=Label(s1,(0,0),basealign);
object o4=Label(s2,(0,0),basealign);
pair[] rep3=calc(o3);
pair[] rep4=calc(o4);
label(s1,(0,-1),basealign);
label(s2,(1,-1),basealign);
//write(rep3);
//write(rep4);
add(o3,(2,-1));
draw(shift((2,-1))*box(rep3[1],rep3[2]));
add(o4,(3,-1));
draw(shift((3,-1))*box(rep4[1],rep4[2]));
dot((2,-1));
dot((3,-1));
Comment faire pour qu'elles soient centrées horizontalement et alignées verticalement ? Je n'ai pas encore testé, mais est-ce qu'il faut soustraire la largeur divisée par 2 et rajouter labelmargin ou un truc comme cela ?