Mise à jour de la documentation
[mp-scratch.git] / doc / mp-scratch.tex
index f07d0c8..bba9203 100644 (file)
 \usepackage[tikz]{bclogo}
 %\renewcommand\bcStyleTitre[1]{}
 \title{\includegraphics[scale=0.05]{Scratch_cat.png}\kern0.05\linewidth Scratch et \MP\kern0.05\linewidth\includegraphics{Carre.1}}
-\author{C.Poulain}
+\author{
+  \begin{tabular}{c}
+    C.Poulain\\
+    \url{chrpoulain@gmail.com}\\
+  \end{tabular}
+}
 \date{Janvier 2017}
 \begin{document}
 \maketitle
 \begin{abstract}
-  Utiliser \MP\ pour produire des algorithmes \og papier\fg\ avec les conventions de Scratch.
+  Comment utiliser \MP\ pour produire des algorithmes \og papier\fg\ avec les conventions de Scratch.
 \end{abstract}
 \vspace{2em}
 \setcounter{tocdepth}{1}
@@ -40,20 +45,31 @@ Avec les nouveaux programmes 2016 du Cycle 4 (Classes de 5\ieme\ à 3\ieme\ de c
 \end{figure}
 \footnotetext{Ce premier algorithme me permet de remercier Maxime Chupin et son package {\sffamily bclogo} : le drapeau vert a été créé à partir des sources de son package et notamment la construction, en \MP, de ses drapeaux.}
 \section{Installation}
-Le package {\sffamily mp-scratch} est indépendant d'autres packages personnels tels \lstinline!geometriesyr16!, \lstinline!mp-geo! ou \lstinline!mp-solid!.
+{\sffamily mp-scratch} est indépendant des autres packages personnels déjà produits tels \lstinline!geometriesyr16!, \lstinline!mp-geo! ou \lstinline!mp-solid!.
 \\Au travers d'un dépôt \lstinline!git!\footnote{Tous les contributeurs sont donc les bienvenus pour développer le package.}, on trouvera l'archive à l'adresse
 \begin{center}
   \url{http://melusine.eu.org/syracuse/G/mp-scratch/}
 \end{center}
 et l'ensemble des fichiers sera à placer correctement dans une arborescence \TeX\footnote{Arborescence locale de préférence, par exemple dans {\sffamily /home/christophe/texmf/metapost/} sous Linux.}.
+\\Pour l'utilisation, il sera nécessaire de veiller :
+\begin{itemize}
+\item à installer, si ce n'est pas fait, la fonte {\sffamily Carlito}\footnote{\url{http://www.tug.dk/FontCatalogue/carlito/} pour un exemple. Le choix reste personnalisable évidemment mais Thierry Pasquier, à juste titre, m'a préconisé d'utiliser une fonte sans serif.};
+\item à modifier, dans le fichier {\sffamily LATEXScratch.mp}, la ligne
+\vspace{1em}
+\begin{center}
+  \lstinline!  write "\graphicspath{{/home/cp/texmf/metapost/Scratch/}}" to "mptextmp.mp";!
+\end{center}
+\vspace{1em}
+pour indiquer le chemin correspondant à votre installation.
+\end{itemize}
 \section{Utilisation}
 \begin{figure}[h]
   \centering
   \begin{minipage}{0.4\linewidth}
   \includegraphics{Algo1.1}
 \end{minipage}
-\hfill
-\begin{minipage}{0.5\linewidth}
+\hspace{4em}
+\begin{minipage}{0.4\linewidth}
 \small
 \begin{lstlisting}[firstnumber=1,frame=tb]
 input mp-scratch;
@@ -76,14 +92,14 @@ Reprenons l'exemple de l'algorithme du carré pour faire les premières constata
 \begin{Enumerate}
   \item la syntaxe est très proche du vocabulaire utilisé par Scratch; donc très peu de nouvelles commandes à apprendre\ldots
   \item les couleurs\footnote{Cela reste, bien évidemment, paramétrable. Les paramètres disponibles pour personnaliser les couleurs sont \lstinline!colMouv!, \lstinline!colAp!, \lstinline!colSon!, \lstinline!colStylo!, \lstinline!colEvenements!, \lstinline!colControle!, \lstinline!colCapteur!, \lstinline!colBloc!, \lstinline!colVar!, \lstinline!colList!.} sont celles utilisées par Scratch\footnote{Une nouvelle fois, merci à Maxime Chupin pour m'avoir fait découvrir l'utilitaire \lstinline!gcolor2! sous Linux};
-  \item le bloc {\sffamily Répéter} est un peu particulier car il nécessite l'ajout {\em manuel} d'un nombre (ou chiffre)\footnote{{\sffamily Repeter2}, {\sffamily Repeter5}\ldots} qui permettra  à \MP\ de faire la liaison correcte lors de la présence de multiples blocs {\sffamily Répéter} comme le montre l'exemple ci-dessous.
+  \item le bloc {\sffamily Répéter} est particulier car il nécessite l'ajout {\em manuel} d'un nombre (ou chiffre)\footnote{{\sffamily Repeter2}, {\sffamily Repeter5}\ldots} qui permettra  à \MP\ de faire la liaison correcte lors de la présence de multiples blocs {\sffamily Répéter} comme le montre l'exemple ci-dessous.
 %\par\vspace{1em}\par
     \begin{figure}[h]
       \centering
-      \begin{minipage}{0.3\linewidth}
+      \begin{minipage}{0.45\linewidth}
   \includegraphics{Algo2.1}
 \end{minipage}
-\hspace{7.5em}
+\hspace{2em}
 \begin{minipage}{0.35\linewidth}
 \small
 \begin{lstlisting}[firstnumber=1,frame=tb]
@@ -193,7 +209,7 @@ Les \og opérateurs\footnote{Je nomme \og opérateurs\fg\ les variables ou comma
     \par\vspace*{2em}\par Les \og opérateurs\fg\ 
 \[\includegraphics{CommandeApparence.17}\kern0.1\linewidth\includegraphics{CommandeApparence.18}\kern0.1\linewidth\includegraphics{CommandeApparence.19}\]
 s'obtiennent avec la commande \LaTeX\ \lstinline!\opAp{}!.
-    %\par\vspace*{2em}\par
+    \par\vspace*{2em}\par
   \item[Groupe {\sffamily Son}]\hfil\newline
     \begin{itemize}
     \item[\textbullet]\lstinline!draw Jouer("miaou");!
@@ -280,6 +296,16 @@ s'obtiennent par la commande \LaTeX\ \lstinline!\opSon{}!.
     \end{minipage}
 \end{center}
 s'obtiennent par les commandes \LaTeX\ \lstinline!\opVar{}!, \lstinline!\opList{}! et \lstinline!\opSousList{}!.
+\vspace{0.5em}
+\begin{center}
+    \includegraphics{CommandeVariable.15}
+%  \begin{minipage}{0.6\linewidth}
+    \begin{lstlisting}[frame=tb]
+label(LATEX("\opList{\opSousList{Pythagore}
+ contient \opSimple{(3;4;5)} ?}"),(0,0));
+    \end{lstlisting}
+%  \end{minipage}
+\end{center}
     \par\vspace*{2em}\par
 \item[Groupe {\sffamily \'Evènement}]\hfil\newline
   \begin{itemize}
@@ -405,20 +431,21 @@ Les \og opérateurs\fg
 \end{center}
 s'obtiennent par les commandes \LaTeX\ \lstinline!\opCap{}! et \lstinline!\opCapCap{}!.
 Néanmoins, il faut parfois un codage conséquent. Par exemple, voici un capteur et son code.
-\par\begin{minipage}{0.2\linewidth}
+\par\vspace{1em}\par\begin{minipage}{0.3\linewidth}
   \includegraphics{CommandeCapteurs.7}
 \end{minipage}
 \hfill
-\begin{minipage}{0.75\linewidth}
+\begin{minipage}{0.65\linewidth}
 \small
 \begin{lstlisting}[frame=tb]
-  \opCap{couleur %
-    \definecolor{Magenta}{rgb}{1,0,1}%
-    \colorbox{Magenta}{\textcolor{white}{\phantom{t}}}%
-    touche%
-    \definecolor{LGray}{gray}{0.85}%
-    \colorbox{LGray}{\textcolor{white}{\phantom{t}}} ?%
-  }
+\opCap{couleur %
+  \definecolor{Magenta}{rgb}{1,0,1}%
+  \colorbox{Magenta}{\textcolor{white}{%
+      \phantom{t}}}touche%
+  \definecolor{LGray}{gray}{0.85}%
+  \colorbox{LGray}{\textcolor{white}{%
+      \phantom{t}}} ?%
+}
 \end{lstlisting}
 \end{minipage}
 \\Un peu barbare, non ? Mais, cela ne nécessitera qu'un simple copier-coller pour les autres utilisations\ldots%}
@@ -438,6 +465,7 @@ Les éléments%
     \end{minipage}
 \end{center}
 s'obtiennent par les commandes \LaTeX\ \lstinline!\opOp{}! et \lstinline!\opSousOp{}!.
+\\Afin de rapprocher le package des conventions d'écriture des opérations, le choix du $\times$ à la place de * s'est imposé. Néanmoins, cela peut être discuté et modifié\ldots
 \vspace*{2em}\par
 \item[Groupe {\sffamily Ajouter blocs}]\hfil\newline
   \begin{itemize}
@@ -449,7 +477,7 @@ s'obtiennent par les commandes \LaTeX\ \lstinline!\opOp{}! et \lstinline!\opSous
     \par\hfill\includegraphics{CommandeBloc.2}
 \end{itemize}
 \item[Groupe {\sffamily Divers}]\hfil\newline
-D'un point de vue pédagogique, il m'est apparu nécessaire d'ajouter la possibilité de donner l'illusion d'un algorithme \og vide\fg. J'ai donc créé la commande \lstinline!LigneVide! qui demande un argument simple (on pourra se reporter aux exemples du groupe {\sffamily Contrôle}.\footnote{On peut obtenir le même résultat avec le paramètre \lstinline! _coinprec ! mais la précision de placement me semble plus délicate.}
+D'un point de vue pédagogique, il m'est apparu nécessaire d'ajouter la possibilité de donner l'illusion d'un algorithme \og vide\fg. J'ai donc créé la commande \lstinline!LigneVide! qui demande un argument simple (on pourra se reporter aux exemples du groupe {\sffamily Contrôle}\footnote{On peut obtenir le même résultat avec le paramètre \lstinline! _coinprec ! mais la précision de placement me semble plus délicate à obtenir.}).
 \\On aura également à disposition \lstinline!CommandeVide("Bonjour!")! afin de faire compléter un algorithme par les élèves.
 \begin{figure}[h]
   \centering
@@ -475,7 +503,7 @@ D'un point de vue pédagogique, il m'est apparu nécessaire d'ajouter la possibi
 \end{figure}
   \end{description}
 Terminons cette liste de commandes par un algorithme associé à la suite de Syracuse :)
-\[\includegraphics[scale=0.8]{Syracuse.1}\]
+\[\includegraphics[scale=0.9]{Syracuse.1}\]
 \begin{filecontents*}{Syracuse.txt}
   beginfig(1);
   draw Drapeau;
@@ -500,8 +528,6 @@ Terminons cette liste de commandes par un algorithme associé à la suite de Syr
   draw FinBlocSi3;
   draw FinBlocRepeter1(10);
 endfig;
-
-end
 \end{filecontents*}
 {\footnotesize
 \lstinputlisting[inputencoding=utf8/latin1,frame=tb]{Syracuse.txt}
@@ -564,7 +590,8 @@ beginfig(1)%François Morellet - Oeuvre Pi piquant, 1=1°, 38 décimales
   draw MettreVar("varpi","\opSimple{2}");
   draw RepeterJ1("\opOp{\opVar{varpi}\,$\bm{>}$\,38}");
   draw Si2("$\opOp{\opVar{varpi}\mbox{ modulo }\opSimple{2}\,=\,\opSimple{0}}$");
-  draw Tournerg("$\opOp{\opSimple{180}}\bm{-}\opList{élément \opVar{varpi} de \opSousList{pi}}$");
+  draw Tournerg("$\opOp{\opSimple{180}}\bm{-}\opList{élément \opVar{varpi}
+ de \opSousList{pi}}$");
   draw Sinon2;
   draw Tournerd("$\opOp{\opSimple{180}}-\opList{élément \opVar{varpi} de \opSousList{pi}}$");
   draw FinBlocSi2;
@@ -630,7 +657,7 @@ beginfig(1);%https://sites.google.com/site/stjomaths/scratch
   draw Demander("\opSimple{dimension du motif ?}");
   draw MettreVar("rang","\opCap{réponse}");
   draw Bloc("Sierpinski \opBloc{rang} \opBloc{triangles}");
-  _coinprec:=(10cm,0);
+  _coinprec:=(8.5cm,0);
   draw NouveauBloc("Sierpinski \opBloc{rang} \opBloc{triangles}");
   draw Si1("\opOp{non $\opBloc{rang}\bm{=}0$}");
   draw Repeter2(3);
@@ -649,6 +676,9 @@ endfig;
 \newpage
 \section{Historique}
 \begin{description}
+\item[16/02/2017] {\bfseries Version 0.59} - Correction des commandes {\sffamily Dire}, {\sffamily DireT}, {\sffamily Penser}, {\sffamily PenserT}. Mise à jour de la documentation (informations sur l'installation du package).
+\item[15/02/2017] {\bfseries Version 0.57} - Correction de problèmes mineurs d'affichage. Correction de la documentation.
+\item[14/02/2017] {\bfseries Version 0.55} - Mise à jour de la documentation.
   \item[13/02/2017] {\bfseries Version 0.53} - Ajout des chanfreins sur les blocs. Correction de \og doublons\fg\ de commandes. Mise à jour de la documentation.
   \item[05/02/2017] {\bfseries Version 0.51} - Sur les conseils de Maxime Chupin et Thierry Pasquier, travail sur les couleurs (mise en accord avec celles de Scratch et personnalisation possible). Passage des majuscules aux minuscules pour les blocs.
   \item[21/01/2017] {\bfseries Version 0.5} - Publication sur \url{www.melusine.eu.org/syracuse/}

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.