Source
%% PhS
%% gh
%% Théorème du rang

%% Èchelle et Ètendue de l'image
60 setxunit
-4 4 setxrange
-3 3 setyrange

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% procÈdures
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% dessine un bout de droite
/bddroite { %% Ax Ay Bx By kg (=proportion vers A) kd (=prop vers B)
8 dict begin
/kd exch def
/kg exch def
/By exch def
/Bx exch def
/B {Bx By} def
/Ay exch def
/Ax exch def
/A {Ax Ay} def
gsave
[A A B vecteur kg mulv addv A A B vecteur kd mulv addv] ligne
grestore
end
} def

%% l'application lineaire
/applin { %% x y
2 dict begin
/yy exch def
/xx exch def

1 xx mul -2 yy mul add
1 xx mul 0 yy mul add
end
} def

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% dÈfinitions des couleurs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

/coul1 {120 255 div 70 255 div 9 255 div setrgbcolor} def
/coul2 {255 255 div 240 255 div 240 255 div setrgbcolor} def

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% tracÈs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% tracÈ des axes et du point Origine
1.5 setlinewidth
17 setfontsize
noir
continu

/dd 0.3 def
/x1 -2 def
/x2 2 def
/y1 2 def
/ykerf 1.4 def
/yoplus 0.4 def
/yH 2.8 def
/y2 y1 ykerf sub def
/y3 y2 yoplus sub def
/y4 y3 yH sub def

/y5 y1 yoplus sub def
/y6 y5 yH sub def
/y7 y6 yoplus sub def
/y8 y7 0.7 sub def

/fillstyle { 1 0.8 0.8 setrgbcolor fill} def
0 setlinewidth
1 0.8 0.8 setrgbcolor
[x1 dd add y3 x2 dd sub y5 x2 dd sub y6 x1 dd add y4 x1 dd add y3] polygone*
[x1 dd add y1 x2 dd sub y1 x1 dd add y2 x1 dd add y1] polygone*
noir

1.5 setlinewidth
/fillstyle {hachure} def
coul1
[x1 dd sub y1 x1 dd add y1  x1 dd add y2   x1 dd sub y2  x1 dd sub y1] polygone*
[x1 dd sub y3 x1 dd add y3  x1 dd add y4   x1 dd sub y4  x1 dd sub y3] polygone*
[x2 dd sub y5 x2 dd add y5  x2 dd add y6   x2 dd sub y6  x2 dd sub y5] polygone*
[x2 dd sub y7 x2 dd add y7  x2 dd add y8   x2 dd sub y8  x2 dd sub y7] polygone*

noir
[x1 dd sub y1 x1 dd add y1  x1 dd add y2   x1 dd sub y2  x1 dd sub y1] (-) ligne
[x1 dd sub y3 x1 dd add y3  x1 dd add y4   x1 dd sub y4  x1 dd sub y3] (-) ligne

[x2 dd sub y5 x2 dd add y5  x2 dd add y6   x2 dd sub y6  x2 dd sub y5] (-) ligne
[x2 dd sub y7 x2 dd add y7  x2 dd add y8   x2 dd sub y8  x2 dd sub y7] (-) ligne

[x2 dd sub y1 x2 dd add y1] ligne

pointilles
[x1 dd add y3 x2 dd sub y5] (-)  ligne
[x1 dd add y4 x2 dd sub y6] (-)  ligne

[x1 dd add y1 x2 dd sub y1 x1 dd add y2] (-)  ligne

continu
/arrowscale {2 dup} def
[-1.3 -1.3 1.3 -0.2] (->) ligne

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% texte
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
setTimesItalic

noir

<latex>
$E$
</latex>
x1 y1 0.4 add [2.5 dup] cctexlabel

<latex>
$F$
</latex>
x2 y1 0.4 add [2.5 dup] cctexlabel

<latex>
$f$
</latex>
0 y1 0.6 add [2.5 dup] cctexlabel

<latex>
$f_{|_{\scriptstyle H}}^{|^{\scriptstyle \mathrm{Im}(f)}}$
</latex>
-0.1 -0.2 [2.5 dup] {23} cctexlabel

<latex>
$\simeq$
</latex>
0 -1 [2.5 dup] {23} cctexlabel

<latex>
$\oplus$
</latex>

<latex>
$\oplus$
</latex>

<latex>
$H$
</latex>
x1 dd 2.2 mul sub y3 y4 add 2 div [2.5 dup] cctexlabel

<latex>
$\mathrm{Ker}(f)$
</latex>
x1 dd 3.3 mul sub y1 y2 add 2 div [2.5 dup] cctexlabel

<latex>
$\mathrm{Im}(f)$
</latex>
x2 dd 3.2 mul add y5 y6 add 2 div [2.5 dup] cctexlabel

<latex>
0
</latex>
x2 dd 2.2 mul add y1 [2.5 dup] cctexlabel