1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| \documentclass[a4paper,oneside,11pt]{article}
\usepackage[francais]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ifthen} % pour boucle while
\begin{document}
\setlength{\parindent}{0pt} % pas d'indentation des paragraphes
% largeur d'une unité sur la droite graduée :
\newlength{\largeurUneUnite}%
\setlength{\largeurUneUnite}{1.5cm} % -- modifiable
%
% hauteur d'un cran vertical sur la droite graduée :
\newlength{\hauteurUnCran}%
\setlength{\hauteurUnCran}{0.4cm} % -- modifiable
%
% épaisseur du trait de la droite graduée :
\newlength{\epaisseurTrait}%
\setlength{\epaisseurTrait}{2pt} % -- modifiable
%
% nombre de graduations à gauche du "x" sur la droite graduée :
\newcounter{nbDeCransAvantX}%
\setcounter{nbDeCransAvantX}{3} % -- modifiable
%
% nombre de graduations à droite du "x" sur la droite graduée :
\newcounter{nbDeCransApresX}%
\setcounter{nbDeCransApresX}{4} % -- modifiable
%
% on trace la droite graduée à gauche de "x" :
\newcounter{compteurTemporaire}%
\setcounter{compteurTemporaire}{0}%
\whiledo{\thecompteurTemporaire < \thenbDeCransAvantX}{%
\rule{\largeurUneUnite}{\epaisseurTrait}% graduation horizontale
\rule[-0.5\hauteurUnCran]{\epaisseurTrait}{\hauteurUnCran}% cran vertical
\addtocounter{compteurTemporaire}{1}%
}%
%
% on trace la graduation du "x" :
\rule{0.4\largeurUneUnite}{\epaisseurTrait}% -- 0.4 modifiable
\rule[-0.5\hauteurUnCran]{2\epaisseurTrait}{\hauteurUnCran}% double-épaisseur du cran vertical
\rule{0.6\largeurUneUnite}{\epaisseurTrait}% -- 0.6 modifiable
%
% on trace la droite graduée à droite de "x" :
\setcounter{compteurTemporaire}{0}%
\whiledo{\thecompteurTemporaire < \thenbDeCransApresX}{%
\rule[-0.5\hauteurUnCran]{\epaisseurTrait}{\hauteurUnCran}% cran vertical
\rule{\largeurUneUnite}{\epaisseurTrait}% graduation horizontale
\addtocounter{compteurTemporaire}{1}%
}
% on va à la ligne :
%
% on prépare les trois blocs à afficher :
\newsavebox{\floorX}%
\savebox{\floorX}{$\lfloor x\rfloor$}%
\newsavebox{\x}%
\savebox{\x}{$x$}%
\newsavebox{\ceilX}%
\savebox{\ceilX}{$\lceil x\rceil$}%
%
% on fait un petit décalage initial vers la gauche :
\newlength{\longueurTemporaire}%
\settowidth{\longueurTemporaire}{\usebox{\floorX}}%
\hspace{-0.5\longueurTemporaire}%
%
% on se déplace à l'emplacement de floor(x) :
\setcounter{compteurTemporaire}{0}%
\whiledo{\thecompteurTemporaire < \thenbDeCransAvantX}{%
\hspace{\largeurUneUnite}%
\hspace{\epaisseurTrait}%
\addtocounter{compteurTemporaire}{1}%
}%
\hspace{-\epaisseurTrait}
%
% on affiche floor(x) :
\usebox{\floorX}%
%
% on avance jusqu'à la position de x :
\settowidth{\longueurTemporaire}{\usebox{\floorX}}%
\hspace{-\longueurTemporaire}%
\hspace{\epaisseurTrait}%
\hspace{0.4\largeurUneUnite}%
\hspace{2\epaisseurTrait}%
%
% on affiche le x :
\usebox{\x}%
%
% on avance jusqu'à la position de ceil(x) :
\settowidth{\longueurTemporaire}{\usebox{\x}}%
\hspace{-\longueurTemporaire}%
\hspace{0.6\largeurUneUnite}%
%
% on affiche le ceil(x) :
\usebox{\ceilX}%
\end{document} |
Partager