summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/metapost')
-rw-r--r--Master/texmf-dist/doc/metapost/repere/README.md13
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.pdfbin479044 -> 1599982 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.tex590
3 files changed, 563 insertions, 40 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/README.md b/Master/texmf-dist/doc/metapost/repere/README.md
index 9759657f6ae..fa92a7a1648 100644
--- a/Master/texmf-dist/doc/metapost/repere/README.md
+++ b/Master/texmf-dist/doc/metapost/repere/README.md
@@ -1,4 +1,6 @@
-Package repere - Version 19.06 - June 11, 2019
+Package repere - Version 21.11 - November 4, 2021
+
+---
This package provides MetaPost macros for drawing sec­ondary school math­e­mat­ics figures in a coordinate system :
- axis, grids
@@ -6,8 +8,15 @@ This package provides MetaPost macros for drawing sec­ondary school math­e­ma
- functions (curves, tangents, integrals, sequences)
- statistic diagrams
- plane geometry (polygons, circles)
+- arrays and game boards
The doc is in french...
-License LPPL 1.3
+---
+
+Author : Olivier Péault
+E-mail : o.peault@posteo.net
+
+Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
index 2ba3e22bec9..85e2c6a1999 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
index b13edafcd68..cabbfb8bda8 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
@@ -49,10 +49,17 @@
\usepackage{array}
\usepackage{tabularx}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
+ \newcolumntype{M}[1]{>{\arraybackslash}m{#1}}
+ \usepackage{longtable}
\usepackage{tcolorbox}
\tcbset{colframe=black,boxsep=0pt,left=3pt,right=3pt,top=0pt,bottom=0pt,boxrule=0.4pt,colback=LightGoldenrod}
+
+
+ \usepackage{babel}
+ \frenchbsetup{og=«,fg=»}
+
\usepackage{listings}
\lstset{columns=flexible,%
language=MetaPost,%
@@ -60,12 +67,8 @@
basicstyle=\ttfamily,
literate={é}{{\'e}}1}
-
- \usepackage{babel}
\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
-
-
%%%%%%%%%%%%%%%%%%% moreverb.sty
\makeatletter
\newwrite\verbatim@out
@@ -148,7 +151,8 @@
\inscode
\IfFileExists{\jobname.\thenumfig}%
{\begin{minipage}[c]{\largeurfig}
- \centering \includegraphics{\jobname.\thenumfig}\par
+ \centering \includegraphics{\jobname-\thenumfig.pdf}\par
+% \centering \includegraphics{\jobname.\thenumfig}\par
% \centering a\includegraphics{reperedocfig2.mps}a\par
\end{minipage}}{}
\par}
@@ -173,7 +177,8 @@
\whiledo{\value{numfig}<\value{reptmp}}
{\refstepcounter{numfig}
\IfFileExists{\jobname.\thenumfig}%
- {\includegraphics{\jobname.\thenumfig}
+ {\includegraphics{\jobname-\thenumfig.pdf}
+% {\includegraphics{\jobname.\thenumfig}
\qquad}{}
}
\par}
@@ -212,12 +217,13 @@
\par\vspace{2ex}}
\newenvironment{figreperedoc}%
- {\refstepcounter{numfig}
+ {\refstepcounter{numfig}%
\verbatimwrite}%
{%
\endverbatimwrite%
\IfFileExists{\jobname.\thenumfig}%
- {\includegraphics{\jobname.\thenumfig}}{}
+ {\includegraphics{\jobname-\thenumfig.pdf}}{}
+% {\includegraphics{\jobname.\thenumfig}}{}
}
@@ -960,32 +966,32 @@ fin;
\subsubsection*{Interpolation à l'aide de splines cubiques}
-\begin{description}
-\item[splineder(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$ et $f'(x_A)=y'_A$ sur l'intervalle définissant le repère.
-\item[splineder(A,y'A,B,y'B,C,y'C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
-\item[splineder(xA,yA,y'A,xB,yB,y'B,...)()] Même courbe que précédemment (sur l'intervalle définissant le repère) mais les valeurs sont données sous forme de liste.
-\item[splineder(xA,yA,y'A,xB,yB,y'B,...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
-\end{description}
-
-\begin{exemple}[0.55]
-repere.orth(-1,10,7cm,-1,10);
-draw quadrillage(1,1);
-draw axes(1,1);
-path H;H=splineder(1,2,0.5,4,8,0,8,2,2)();
-draw H epaisseur 1 couleur bleu;
-draw tangente.double(H,1) couleur bleu;
-draw tangente.double(H,4) couleur bleu;
-draw tangente.double(H,8) couleur bleu;
-pair A,B,C; A:=(1,8);B:=(4,4);C:=(7,6);
-path I;I=splineder(A,-1,B,0.5,C,2)(0,7.5);
-draw I epaisseur 1 couleur rouge;
-draw tangente.double(I,1) couleur rouge;
-draw tangente.double(I,4) couleur rouge;
-draw tangente.double(I,7) couleur rouge;
-fin;
-\end{exemple}
-
-
+%\begin{description}
+%\item[splineder(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$ et $f'(x_A)=y'_A$ sur l'intervalle définissant le repère.
+%\item[splineder(A,y'A,B,y'B,C,y'C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
+%\item[splineder(xA,yA,y'A,xB,yB,y'B,...)()] Même courbe que précédemment (sur l'intervalle définissant le repère) mais les valeurs sont données sous forme de liste.
+%\item[splineder(xA,yA,y'A,xB,yB,y'B,...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
+%\end{description}
+%
+%\begin{exemple}[0.55]
+%repere.orth(-1,10,7cm,-1,10);
+%draw quadrillage(1,1);
+%draw axes(1,1);
+%path H;H=splineder(1,2,0.5,4,8,0,8,2,2)();
+%draw H epaisseur 1 couleur bleu;
+%draw tangente.double(H,1) couleur bleu;
+%draw tangente.double(H,4) couleur bleu;
+%draw tangente.double(H,8) couleur bleu;
+%pair A,B,C; A:=(1,8);B:=(4,4);C:=(7,6);
+%path I;I=splineder(A,-1,B,0.5,C,2)(0,7.5);
+%draw I epaisseur 1 couleur rouge;
+%draw tangente.double(I,1) couleur rouge;
+%draw tangente.double(I,4) couleur rouge;
+%draw tangente.double(I,7) couleur rouge;
+%fin;
+%\end{exemple}
+%
+%
\begin{description}
\item[spline(A,B,C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$, $f(x_B)=y_B$... sur l'intervalle définissant le repère.
@@ -1285,7 +1291,8 @@ repere(-1,11,0.8cm,-1,5,0.7cm);
draw projboitemoustache.bot(1) dashed evenly;
drawoptions(withcolor blue);
draw boitemoustache(0,3.14,6,8,10,2cm,0.7cm);
- draw projboitemoustache.bot(0.0456,"$\pi$","$\num{2x3}$","$x$","Max") dashed evenly;
+ draw projboitemoustache.bot(0.0456,"$\pi$","$\numproduct{2x3}$","$x$","Max")
+ dashed evenly;
fin;
\end{exemplev}
@@ -1564,11 +1571,62 @@ draw vecteur.lrt(B,u);draw vecteur.lrt(C,u);
fin;
\end{exemple}
+
+\subsection{Cotes}
+
+\begin{description}
+\item[cote(A,B,texte)] Figure formée du texte orienté dans la direction du segment $[AB]$, placé au niveau du milieu et situé « sous » le segment.
+
+\item[cote.top(A,B,texte)] Même chose mais le texte est placé au-dessus du segment.
+\end{description}
+
+\begin{exemple}
+repere(0,6,1cm,0,6,1cm);
+pair A,B,C;
+A=(1,1);B=(2,5);C=(5,2);
+nomme.llft(A);
+nomme.top(B);
+nomme.lrt(C);
+draw triangle(A,B,C);
+cote(A,C,"\SI{5}{cm}");
+cote(B,C,"de $B$ vers $C$") couleur rouge;
+cote(C,B,"de $C$ vers $B$") couleur bleu;
+cote.top(A,B,"au-dessus");
+fin;
+\end{exemple}
+
+\begin{description}
+\item[cotefleche(A,B,texte)] Figure formée d'une double flèche et du texte orienté dans la direction du segment $[AB]$, placés au niveau du milieu et situés « sous » le segment.
+
+\item[cotefleche.top(A,B,texte)] Même chose mais la double flèche et le texte sont placés au-dessus du segment.
+
+\item[dec\_cote] Variable numérique qui indique le décalage entre le segment et la double flèche. La valeur par défaut est \SI{4}{mm}.
+
+\item[traits\_cote] Variable booléenne qui indique si des traits délimitant la double flèche doivent être tracés. La valeur par défaut est \verb|false|.
+
+\end{description}
+
+\begin{exemple}
+repere(0,6,1cm,0,6,1cm);
+pair A,B,C;
+A=(1,1);B=(2,5);C=(5,2);
+nomme.llft(A);
+nomme.top(B);
+nomme.lrt(C);
+draw triangle(A,B,C);
+cotefleche(A,C,"\SI{5}{cm}");
+cotefleche.top(A,B,"Texte") couleur rouge;
+traits_cote:=true;
+dec_cote:=8mm;
+cotefleche.top(B,C,"Avec traits");
+fin;
+\end{exemple}
+
\section{Divers}
\subsection{Composition des étiquettes}
Tous les textes et étiquettes peuvent être composés en utilisant la macro ci-dessous.
\begin{description}
- \item[LaTeX(ch)] \label{latex} Figure formée de la chaîne \verb+ch+ composée avec \LaTeX{} et mise à l'échelle \verb|defaultscale|. Cette macro utilise la commande \verb|textext| de \verb|luamplib| dans le cas de l'utilsation de Lua\LaTeX{} et \verb|textext| de \verb|latexmp| dans le cas d'une compilation \MP{} \og standard \fg. Ce dernier cas nécessite alors deux compilations.
+ \item[LaTeX(ch)] \label{latex} Figure formée de la chaîne \verb+ch+ composée avec \LaTeX{} et mise à l'échelle \verb|defaultscale|. Cette macro utilise la commande \verb|textext| de \verb|luamplib| dans le cas de l'utilisation de Lua\LaTeX{} et \verb|textext| de \verb|latexmp| dans le cas d'une compilation \MP{} \og standard \fg. Ce dernier cas nécessite alors deux compilations.
\end{description}
@@ -1858,6 +1916,438 @@ draw cercles(CentreCercleC(A,B,C),A);
fin;
\end{exemple}
+\section{Tableaux et grilles}
+Il est possible d'utiliser \verb|repere| pour représenter des tableaux ou « damiers » et placer des objets dans chacune des cases. La figure devra alors débuter par une commande \verb|tableau| au lieu de la commande \verb|repere| et la numérotation sera automatique.
+
+\subsection{Définition du tableau}
+
+\begin{description}
+\item[tableau(n,m,u)] débute une figure et définit un tableau de $n$ colonnes et $m$ lignes. La largeur des colonnes est égale à la hauteur des lignes et vaut \verb|u|.
+\item[tableau(n,m,ux,uy)] débute une figure et définit un tableau de $n$ colonnes et $m$ lignes. La largeur des colonnes vaut \verb|ux| et la hauteur des lignes vaut \verb|uy|.
+\item[fin] termine la figure.
+\end{description}
+
+\subsection{Grille}
+
+\begin{description}
+\item[grille(x,y)] quadrillage avec un pas de x sur les colonnes et de y sur les lignes.
+\end{description}
+La couleur et l'épaisseur des lignes peuvent être modifiées localement mais on peut aussi les changer globalement :
+\begin{description}
+\item[coullignes] variable contenant la couleur des lignes de la grille. La valeur par défaut est \verb|black|.
+\item[eplignes] variable contenant l'épaisseur des lignes de la grille. La valeur par défaut est \verb|0.7bp|.
+ \end{description}
+
+
+\begin{exemple}
+tableau(8,8,0.7cm);
+coullignes:=olive;
+draw grille(1,1);
+draw grille(2,2) epaisseur 2;
+fin;
+\end{exemple}
+
+\begin{description}
+\item[damier(x,y)] figure formée de la grille et des cases coloriées alternativement.
+\item[coultableau{[]}] variables qui contiennent les couleurs des cases.
+
+Les valeurs par défaut sont \verb|coultableau[1]=0.45white| et \verb|coultableau[2]:=0.9white|.
+
+\end{description}
+
+\begin{exemple}
+tableau(5,5,1cm);
+ coultableau[1]:=jaune;
+ coultableau[2]:=0.7rouge;
+ draw damier(1,1);
+fin;
+\end{exemple}
+
+\subsection{Grille partielle}
+
+\begin{description}
+\item[lignesh(<suite de 0 et 1>)] Figure qui décrit les lignes horizontales qui doivent être tracées. De gauche à droite et de haut en bas.
+\item[lignesv(<suite de 0 et 1>)] Figure qui décrit les lignes verticales qui doivent être tracées. De gauche à droite et de haut en bas.
+\end{description}
+
+\begin{exemple}
+tableau(3,3,1cm);
+ draw grille(1,1);
+ draw coord;
+ draw lignesh(1,1,1,
+ 1,0,1,
+ 0,1,0,
+ 1,1,1) epaisseur 3;
+ draw lignesv(1,0,0,1,
+ 1,1,1,1,
+ 1,0,1,1) epaisseur 3;
+fin;
+\end{exemple}
+
+\subsection{Coordonnées}
+
+\begin{description}
+\item[coordx] figure formée des numéros de colonnes placée par défaut en bas.
+\item[coordy] figure formée des numéros de lignes placée par défaut à gauche.
+\item[coord] figure formée des deux figures précédentes.
+\end{description}
+
+\begin{exemple}
+tableau(5,5,1cm);
+ draw grille(1,1);
+ draw coord;
+fin;
+\end{exemple}
+
+\begin{description}
+\item[style\_coord\_x] variable de type \verb|string| qui indique comment doivent être composées les coordonnées des colonnes. La valeur par défaut est \verb|"1"|. Les autres valeurs possibles sont \verb|"a"| (lettres minuscules), \verb|"A"| (lettres majuscules), \verb|"i"| (chiffres romains minuscules) et \verb|"I"| (chiffres romains majuscules).
+\item[style\_coord\_y] même chose pour les lignes.
+\item[deb\_coord\_x] variable de type \verb|numeric| qui indique la première valeur des colonnes. La valeur par défaut est \verb|1|.
+\item[deb\_coord\_y] même chose pour les lignes.
+\item[align\_coord\_y] variable de type \verb|string| qui indique comment doivent être alignés les numéros de lignes. La valeur par défaut est \verb|"c"| (centré). Les valeurs possibles sont \verb|"g"| ou \verb|"l"| (gauche) et \verb|"d"| ou \verb|"r"| (droite).
+\item[place\_coord] variable de type \verb|string| qui indique où les coordonnées doivent être affichées. La valeur par défaut est \verb|"bg"| (en bas à gauche). On peut utiliser une combinaison des lettres \verb|"b"| (en bas), \verb|"h"| (en haut), \verb|"g"| (à gauche) et \verb|"d"| (à droite).
+\item[inverse\_coord\_x] variable de type \verb|boolean| si le sens par défaut dans lequel les numéros de colonnes doivent être écrits (de gauche à droite) doit être inversé. La valeur par défaut est \verb|false|.
+\item[inverse\_coord\_y] variable de type \verb|boolean| si le sens par défaut dans lequel les numéros de lignes doivent être écrits (de bas en haut) doit être inversé. La valeur par défaut est \verb|false|.
+\end{description}
+
+\begin{exemple}
+tableau(5,5,1cm);
+ draw grille(1,1);
+ style_coord_x:="a";
+ style_coord_y:="I";
+ deb_coord_x:=5;
+ deb_coord_y:=3;
+ draw coord;
+fin;
+\end{exemple}
+
+\begin{exemple}
+tableau(5,5,1cm);
+ draw grille(1,1);
+ style_coord_x:="A";
+ style_coord_y:="I";
+ place_coord:="hg";
+ inverse_coord_y:=true;
+ align_coord_y:="r";
+ draw coord;
+fin;
+\end{exemple}
+
+
+\begin{description}
+\item[numerotationdames] description
+\end{description}
+
+\subsection{Placements d'objets dans les cases}
+
+\begin{description}
+\item[case(x,y)] figure formée de la case de coordonnées \verb|(x,y)| remplie et de son contour dessiné avec l'épaisseur et la couleur de la grille.
+\item[cases((x1,y1),(x2,y2),...)] toutes les cases \verb|(x1,y1)|, \verb|(x2,y2)|... sont coloriées.
+\end{description}
+
+\begin{codecache}
+def couleur= withcolor enddef;
+\end{codecache}
+
+\begin{exemple}[0.6]
+tableau(5,5,1cm);
+ draw damier(1,1);
+ draw coord;
+ draw case(2,4) couleur rouge;
+ draw cases((1,2),(3,3),(5,1)) couleur bleu;
+fin;
+\end{exemple}
+
+On peut utiliser une variante de \verb|label| pour placer des objets dans les cases :
+
+\begin{description}
+\item[tablabel(obj,x,y)] Place l'objet \verb|obj| dans la case de coordonnées \verb|(x,y)|. L'objet peut être une chaine de caractère, un chemin ou une figure.
+\item[tablabels(obj)((x1,y1),(x2,y2)...)] Place l'objet \verb|obj| dans toutes les cases indiquées.
+\end{description}
+
+\begin{exemple}[0.6]
+tableau(8,8,0.6cm);
+ draw grille(1,1);
+ draw coord;
+ tablabel(fullcircle scaled 0.8,5,3);
+ tablabels("X")((3,4),(6,1),(2,2)) couleur vert;
+ for i=5 upto 8:
+ for j=5 upto 8:
+ tablabel(decimal(i*j),i,j) couleur bleu;
+ endfor
+ endfor
+fin;
+\end{exemple}
+
+\begin{exemple}
+tableau(5,5,0.8cm);
+ draw grille(1,1);
+ inverse_coord_x:=true;
+ inverse_coord_y:=true;
+ deb_coord_x:=3;
+ deb_coord_y:=4;
+ draw coord;
+ tablabels("X")((3,4),(6,7),(4,8));
+fin;
+\end{exemple}
+
+\subsection{Quelques dessins}
+
+
+\begin{center}
+\renewcommand{\arraystretch}{1.2}
+\begin{longtable}{|m{5cm}|m{5cm}|>{\noindent\centering \rule{0pt}{0pt}\\ \arraybackslash}m{4cm}|}\hline
+\centering \bfseries Syntaxe & \centering \bfseries Exemples &\multicolumn{1}{c|}{\bfseries Résultat} \\\endhead \hline
+\verb|Pion(v)(coul1,coul2)| & \verb|Pion(1)(noir,0.85blanc)|&%\rule{0pt}{1.8cm}%
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Pion(1)(noir,0.85blanc),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ & \verb|Pion(1)(0.9blanc,noir)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Pion(1)(0.9blanc,noir),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ & \verb|Pion(2)(noir,0.85blanc)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Pion(2)(noir,0.85blanc),1,1);
+ fin;
+\end{figreperedoc}
+ \\ \hline
+ & \verb|Pion(2)(0.9blanc,noir)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Pion(2)(0.9blanc,noir),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Dame(v)(coul1,coul2)| & \verb|Dame(1)(noir,0.85blanc)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Dame(1)(noir,0.85blanc),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ & \verb|Dame(1)(0.9blanc,noir)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Dame(1)(0.9blanc,noir),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ & \verb|Dame(2)(noir,0.85blanc)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Dame(2)(noir,0.85blanc),1,1);
+ fin;
+\end{figreperedoc}
+ \\ \hline
+ & \verb|Dame(2)(0.9blanc,noir)|&
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Dame(2)(0.9blanc,noir),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Croix| & &
+\begin{figreperedoc}
+tableau(1,1,1.5cm);
+ tablabel(Croix,1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Trou| & &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Trou,1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Marque(v)(coul)| &\verb|Marque(1)((0.9,0.7,0.7))| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Marque(1)((0.9,0.7,0.7)),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ &\verb|Marque(2)((0.8,0.65,0.5))| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Marque(2)((0.8,0.65,0.5)),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Mur(coul1,coul2)| &\verb|Mur(rouge,noir)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Mur(rouge,noir),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Plot(coul1,coul2)| &\verb|Plot(0.7rouge,0.5rouge)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Plot(0.7rouge,0.5rouge),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Caisse(coul1,coul2)| &\verb|Caisse(orange,marron)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Caisse(orange,marron),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Robotdroite(coul1,coul2)| &\verb|Robotdroite(noir,0.6vert)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Robotdroite(noir,0.6vert),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Robotgauche(coul1,coul2)| &\verb|Robotgauche(marine,0.6rouge)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Robotgauche(marine,0.6rouge),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Bateau(numcases,coul)| &\verb|Bateau(1,violet)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Bateau(1,violet),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+ &\verb|Bateau(2,marron)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Bateau(2,marron),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Eau(coul)| &\verb|Eau(marine)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Eau(marine),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\verb|Fleche(coul1,coul2)| &\verb|Fleche(jaune,marine)| &
+\begin{figreperedoc}
+tableau(1,1,2cm);
+ tablabel(Fleche(jaune,marine),1,1);
+fin;
+\end{figreperedoc}
+\\ \hline
+\end{longtable}
+\end{center}
+
+
+\subsection{Exemples}
+
+\subsubsection*{Mots croisés}
+
+\begin{exemple}
+def moth(expr ch,n,m)=
+ for i=1 upto length ch:
+ tablabel(substring(i-1,i) of ch,n+i-1,m);
+ endfor
+enddef;
+
+tableau(8,8,0.8cm);
+ draw grille(1,1);
+ inverse_coord_y:=true;
+ style_coord_y:="I";
+ place_coord:="hg";
+ draw coord;
+ draw cases((3,3),(3,5),(2,7),(6,6),(7,4));
+ moth("OMELETTE",1,2);
+ moth("AMIES",4,3);
+fin;
+
+\end{exemple}
+
+\subsubsection*{Sudokus}
+
+\begin{exemple}
+tableau(9,9,0.8cm);
+ draw grille(1,1);
+ draw grille(3,3) epaisseur 2;
+ tablabels("1",(1,4),(4,8),(6,5),(7,3));
+ tablabels("2",(3,9),(5,6),(6,2));
+ tablabels("3",(1,1),(4,2),(9,6));
+ tablabels("4",(3,8),(8,7));
+ tablabels("5",(2,7),(4,9),(6,6),(7,1));
+ tablabels("6",(2,4),(5,8));
+ tablabels("7",(6,3),(7,2),(8,9),(9,5));
+ tablabels("8",(1,3),(3,7),(5,5),(8,8));
+ tablabels("9",(3,2));
+fin;
+\end{exemple}
+
+\subsubsection*{Dames}
+
+\begin{exemple}
+tableau(10,10,0.8cm);
+ picture pionblanc,pionnoir,dameblanche;
+ picture fleche;
+ pionblanc:=Pion(2)(0.9blanc,noir);
+ pionnoir:=Pion(2)(noir,0.85blanc);
+ dameblanche:=Dame(2)(0.9blanc,noir);
+ coultableau[1]:=0.7marron+0.3blanc;
+ coultableau[2]:=beige;
+ fleche:=Fleche(rouge,noir) rotated 135;
+ draw damier(1,1);
+ draw numerotationdames;
+ tablabels(pionblanc,31,36,39);
+ tablabels(pionnoir,3,7,16,19,23,30);
+ tablabels(dameblanche,15);
+ tablabel(fleche,5.5,5.5);
+fin;
+\end{exemple}
+
+\subsubsection*{Bataille navale}
+
+\begin{exemplev}{1}
+tableau(10,10,0.8cm);
+ draw grille(1,1);
+ inverse_coord_y:=true;
+ style_coord_x:="A";
+ place_coord:="hg";
+ draw coord;
+ tablabel(Bateau(4,marron),5.5,3);
+ tablabel(Bateau(3,0.5vert),7,8);
+ tablabel(Bateau(3,0.5vert) rotated 90,2,9);
+ tablabels(Bateau(1,violet),(4,10),(3,5),(8,1),(9,4));
+ tablabels(Eau(marine),(2,7),(3,7),(4,9),(4,2),(5,2));
+ tablabels(Croix,(5,3),(8,8));
+fin;
+\end{exemplev}
+
+\subsubsection*{Algoréa}
+
+\begin{exemplev}{1}
+tableau(13,5,1cm);
+ coultableau[1]:=(1,0.9,0.7);
+ coultableau[2]:=(1,0.9,0.7);
+ draw damier(1,1);
+ tablabels(Mur(0.8rouge,noir),(1,2),(1,3),(1,4),(13,2),(13,3),(13,4));
+ for i=1 upto 13:
+ tablabels(Mur(0.8rouge,noir),(i,1),(i,5));
+ endfor
+ tablabel(Robotdroite(noir,0.7vert),2,2);
+ for i=4,6,7,10,12:
+ tablabel(Caisse(orange,marron),i,3);
+ tablabel(Marque(2)((0.8,0.65,0.5)),i,4);
+ endfor
+fin;
+\end{exemplev}
\begin{codecache}
@@ -1870,6 +2360,32 @@ end
\end{document}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\vspace{2em}
@@ -1935,8 +2451,6 @@ fin;
-
-
\begin{codecache}
end
\end{codecache}