summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/scratch3
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-07 03:03:44 +0000
committerNorbert Preining <norbert@preining.info>2022-02-07 03:03:44 +0000
commitf689c91581665257602a841d03f73078c3495e14 (patch)
tree09c55c606b43f4f53c4c8f9e09625813e19fb2b0 /macros/latex/contrib/scratch3
parent350b3e35109171f0edd6fe9d697b91d5e76561f9 (diff)
CTAN sync 202202070303
Diffstat (limited to 'macros/latex/contrib/scratch3')
-rw-r--r--macros/latex/contrib/scratch3/README6
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.pdfbin508889 -> 520325 bytes
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.tex365
-rw-r--r--macros/latex/contrib/scratch3/scratch3.sty131
4 files changed, 256 insertions, 246 deletions
diff --git a/macros/latex/contrib/scratch3/README b/macros/latex/contrib/scratch3/README
index cfbd104f88..07d81fec04 100644
--- a/macros/latex/contrib/scratch3/README
+++ b/macros/latex/contrib/scratch3/README
@@ -3,9 +3,9 @@ ___________________________________
L'extension
scratch3
- v0.18
+ v0.19
- 3 septembre 2020
+ 6 février 2022
___________________________________
Author : Christian Tellechea
@@ -18,4 +18,6 @@ Licence : Released under the LaTeX Project Public License v1.3c or
----------------------------------------------------------------------
+Dessine des programme comme le fait scratch (https://scratch.mit.edu/)
+
Draw programs like scratch (https://scratch.mit.edu/)
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.pdf b/macros/latex/contrib/scratch3/scratch3-fr.pdf
index 757fca53dd..fbac387271 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.pdf
+++ b/macros/latex/contrib/scratch3/scratch3-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.tex b/macros/latex/contrib/scratch3/scratch3-fr.tex
index 30ba693d0f..8518109183 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.tex
+++ b/macros/latex/contrib/scratch3/scratch3-fr.tex
@@ -1,15 +1,15 @@
-% !TeX encoding = ISO-8859-1
+% !TeX encoding = UTF-8
+% !TeX TS-program = pdflatex
% Ceci est la documentation du package "scratch3"
-%
-% Fichier compilé avec pdflatex
+% Fichier compilé avec pdflatex
\documentclass[french,a4paper,10pt]{article}
-\usepackage[latin1]{inputenc}
+\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=2cm]{geometry}
\usepackage[bottom]{footmisc}
\usepackage{libertine,boites,tikz,enumitem,MnSymbol,babel,xspace,listings,scratch3}
\usepackage[scaled=0.8]{luximono}
-\frenchbsetup{og=«,fg=»}
+\frenchbsetup{og=«,fg=»}
\def\SCRATCH{\texttt{scratch}\xspace}
\def\SSCRATCH{\texttt{\scrname}\xspace}
\makeatletter
@@ -103,7 +103,7 @@
\catcode`\<13 \catcode`\>13 \def<{\begingroup$\langle$\itshape}\def>{\/$\rangle$\endgroup}%
\@ifstar\@sverb\@verb}
\endgroup
-\def\longfrscrdate@i#1/#2/#3\@nil{\number#3\relax\ifnum\number#3=1 \noexpand\ier\fi\space \ifcase#2 \or janvier\or février\or mars\or avril\or mai\or juin\or juillet\or aout\or septembre\or octobre\or novembre\or décembre\fi\space#1}
+\def\longfrscrdate@i#1/#2/#3\@nil{\number#3\relax\ifnum\number#3=1 \noexpand\ier\fi\space \ifcase#2 \or janvier\or février\or mars\or avril\or mai\or juin\or juillet\or aout\or septembre\or octobre\or novembre\or décembre\fi\space#1}
\edef\longfrscrdate{\expandafter\longfrscrdate@i\scrdate\@nil}
\makeatother
\begingroup
@@ -113,7 +113,7 @@
\hbox to .25\linewidth{%
\color{teal}\bfseries\ttfamily
\detokenize{#1}=$\langle$\detokenize{#2}$\rangle$\hss}\kern2.5em
- (\textit{Défaut} : {\color{teal}\ttfamily
+ (\textit{Défaut} : {\color{teal}\ttfamily
\skv_eearg\skv_ifempty{\useKV[\scrname]{#1}}
{\detokenize{{}}}
{\detokenize\expandafter\expandafter\expandafter{\useKV[\scrname]{#1}}}}\unskip)%
@@ -149,46 +149,44 @@
\endgroup
\vskip2cm
\leftskip=.2\linewidth \rightskip=.2\linewidth \small
- Cette extension permet de dessiner des empilements de blocs similaires à ceux que l'on trouve dans le logiciel de programmation \emph{visuelle} « \SCRATCH v3\footnote{Le logiciel que l'on peut utiliser en ligne à \texttt{https://scratch.mit.edu/}} ».
+ Cette extension permet de dessiner des empilements de blocs similaires à ceux que l'on trouve dans le logiciel de programmation \emph{visuelle} « \SCRATCH v3\footnote{Le logiciel que l'on peut utiliser en ligne à \texttt{https://scratch.mit.edu/}} ».
\end{titlepage}
\parindent0pt
\section{Avant propos}
-La présente extension intitulée \SSCRATCH, est une évolution de l'extension \SCRATCH qui imitait la version 2 du logiciel. Depuis janvier~2019, le logiciel est passé à la version~3 et l'extension \SCRATCH est donc devenue obsolète et non maintenue.\medbreak
+La présente extension intitulée \SSCRATCH, est une évolution de l'extension \SCRATCH qui imitait la version 2 du logiciel. Depuis janvier~2019, le logiciel est passé à la version~3 et l'extension \SCRATCH est donc devenue obsolète et non maintenue.\medbreak
-Cette version de \SSCRATCH étant la première, elle est susceptible d'être immature, c'est-à-dire de contenir des bugs, des incohérences ou des effets non désirés. Si cela se produit, je remercie les utilisateurs de bien vouloir me le faire savoir par email ou \emph{via} le « bugtracker » de \texttt{gitlab} à l'adresse \begin{center}
-\texttt{\detokenize{https://framagit.org/unbonpetit/scratch3/issues}}
-\end{center}
+Cette version de \SSCRATCH ayant un numéro de version inférieur à 1, elle est susceptible d'être immature, c'est-à-dire de contenir des bugs, des incohérences ou des effets non désirés. Si cela se produit, je remercie les utilisateurs de bien vouloir me le faire savoir par email.\medbreak
-Les utilisateurs les plus attentifs auront sans doute remarqué que seuls les blocs de type «stylo» sont disponibles parmi ceux qui sont dorénavant considérés comme «extension». Il s'agit, pour l'instant, d'un choix délibéré...
+Les utilisateurs les plus attentifs auront sans doute remarqué que seuls les blocs de type «stylo» sont disponibles parmi ceux qui sont dorénavant considérés comme «extension». Il s'agit, pour l'instant, d'un choix délibéré...
-\paragraph{Attention} Il est fortement déconseillé de charger les packages \SCRATCH et \SSCRATCH en raison de plusieurs définitions communes qu'ils partagent et qui conduiraient inévitablement à des dysfonctionnements. L'erreur qui survient ---~et le refus de charger le deuxième~--- lorsqu'on tente de charger ces deux packages ne doivent pas être désactivés par une modification de leurs codes.\medbreak
+\paragraph{Attention} Il est fortement déconseillé de charger les packages \SCRATCH et \SSCRATCH en raison de plusieurs définitions communes qu'ils partagent et qui conduiraient inévitablement à des dysfonctionnements. L'erreur qui survient ---~et le refus de charger le deuxième~--- lorsqu'on tente de charger ces deux packages ne doivent pas être désactivés par une modification de leurs codes.\medbreak
-L'extension \SSCRATCH requiert les extensions \texttt{simplekv} et \texttt{ti\textit kz} qui sont automatiquement chargées si cela s'avère nécessaire.\medbreak
+L'extension \SSCRATCH requiert les extensions \texttt{simplekv} et \texttt{ti\textit kz} qui sont automatiquement chargées si cela s'avère nécessaire.\medbreak
-Fidèle à mes convictions, la documentation de cette extension n'est disponible qu'en français.
+Fidèle à mes convictions, la documentation de cette extension n'est disponible qu'en français.
\section{L'environnement \SCRATCH}
-Pour dessiner un programme comme le fait \SCRATCH, il faut ouvrir un environnement «\SCRATCH» et écrire dans cet environnement les macros correspondant aux \emph{blocs} que l'on veut y mettre :
+Pour dessiner un programme comme le fait \SCRATCH, il faut ouvrir un environnement «\SCRATCH» et écrire dans cet environnement les macros correspondant aux \emph{blocs} que l'on veut y mettre :
\code|\begin{scratch}
macros pour dessiner des blocs
\end{scratch}|
-Comme le savent ceux qui enseignent l'algorithmique et la programmation avec le très-à-la-mode\footnote{Je ne déteste rien de plus comme langage de programmation que ce \emph{truc} vaguement graphique, ultra limité et contre-productif dans l'apprentissage du codage qu'est \SCRATCH et que l'éducation nationale veut à tout prix imposer. Je ne compte bien évidemment pas me plier à ce nouveau dogme ridicule et ne l'utiliserai ni ne l'enseignerai; je considère que les élèves méritent mieux que \SCRATCH --~ADA, java ou lua par exemple~-- comme entrée dans le monde de la programmation.} logiciel « \SCRATCH », les programmes sont construits avec des briques, appelés «blocs», qui peuvent s'emboiter les uns sur les autres. Ces blocs sont de plusieurs couleurs, chacune correspondant à un type d'instruction que l'on retrouve dans les menus de \SCRATCH.
+Comme le savent ceux qui enseignent l'algorithmique et la programmation avec le très-à-la-mode\footnote{Je ne déteste rien de plus comme langage de programmation que ce \emph{truc} vaguement graphique, ultra limité et contre-productif dans l'apprentissage du codage qu'est \SCRATCH et que l'éducation nationale veut à tout prix imposer. Je ne compte bien évidemment pas me plier à ce nouveau dogme ridicule et ne l'utiliserai ni ne l'enseignerai; je considère que les élèves méritent mieux que \SCRATCH --~Python, java ou lua par exemple~-- comme entrée dans le monde de la programmation.} logiciel « \SCRATCH », les programmes sont construits avec des briques, appelés «blocs», qui peuvent s'emboiter les uns sur les autres. Ces blocs sont de plusieurs couleurs, chacune correspondant à un type d'instruction que l'on retrouve dans les menus de \SCRATCH.
-J'ai pris le parti d'écrire des macros ayant comme argument le texte qui figure dans le bloc. Ce faisant, on a plus de liberté que dans \SCRATCH où les blocs ont des textes prédéfinis, mais cette liberté permet d'utiliser cette extension quelle que soit la langue dans laquelle on écrit.
+J'ai pris le parti d'écrire des macros ayant comme argument le texte qui figure dans le bloc. Ce faisant, on a plus de liberté que dans \SCRATCH où les blocs ont des textes prédéfinis, mais cette liberté permet d'utiliser cette extension quelle que soit la langue dans laquelle on écrit.
-Enfin, j'ai cherché le bon compromis entre complexité du code et qualité des dessins obtenus avec cette extension: ils \emph{ressemblent} à ceux du logiciel \SCRATCH, mais le but de cette extension n'est \emph{pas} la ressemblance absolue au pixel près!
+Enfin, j'ai cherché le bon compromis entre complexité du code et qualité des dessins obtenus avec cette extension: ils \emph{ressemblent} à ceux du logiciel \SCRATCH, mais le but de cette extension n'est \emph{pas} la ressemblance absolue au pixel près!
\section{Les blocs normaux}
-Ces blocs sont les plus courants et possèdent une encoche d'emboitement, femelle en haut et mâle en bas. Les macros permettant de dessiner ces blocs ont des noms de la forme \verb|\block<suffixe>| et ont un seul argument obligatoire qui est le texte que l'on souhaite mettre dans le bloc. Par exemple, un bloc bleu (correspondant au menu «mouvement») a un suffixe \suffixe{move}, et est dessiné grâce à la macro \verb|\blockmove{<texte>}|. Ainsi, dans l'environnement \SCRATCH, écrire \verb|\blockmove{Bonjour le monde}| donne
+Ces blocs sont les plus courants et possèdent une encoche d'emboitement, femelle en haut et mâle en bas. Les macros permettant de dessiner ces blocs ont des noms de la forme \verb|\block<suffixe>| et ont un seul argument obligatoire qui est le texte que l'on souhaite mettre dans le bloc. Par exemple, un bloc bleu (correspondant au menu «mouvement») a un suffixe \suffixe{move}, et est dessiné grâce à la macro \verb|\blockmove{<texte>}|. Ainsi, dans l'environnement \SCRATCH, écrire \verb|\blockmove{Bonjour le monde}| donne
\begin{center}\begin{scratch}\blockmove{Bonjour le monde}\end{scratch}\end{center}
-La police d'écriture dans chaque bloc est la police « \textsf{sans serif} » qui est définie dans le document au moment où l'environnement est appelé : pratiquement, cela signifie que la macro \verb|\sffamily| est exécutée avant que le texte des blocs ne soit composé. La clé «\texttt{pre text}» (voir page~\pageref{pre text}), modifiable par l'utilisateur, contient par défaut le code exécuté avant que du texte ne soit affiché, c'est-à-dire \verb|\sffamily|. Dans cette documentation, la police sans serif est «\textsf{biolinum}».
+La police d'écriture dans chaque bloc est la police « \textsf{sans serif} » qui est définie dans le document au moment où l'environnement est appelé : pratiquement, cela signifie que la macro \verb|\sffamily| est exécutée avant que le texte des blocs ne soit composé. La clé «\texttt{pre text}» (voir page~\pageref{pre text}), modifiable par l'utilisateur, contient par défaut le code exécuté avant que du texte ne soit affiché, c'est-à-dire \verb|\sffamily|. Dans cette documentation, la police sans serif est «\textsf{biolinum}».
-La plupart des dimensions des blocs sont proportionnelles à la taille de la police en cours. On peut donc jouer sur la taille de la police (via les classiques macros \verb|\small|, \verb|\large|, \verb|\footnotesize|, etc) pour modifier la taille des blocs\footnote{Il y a aussi la clé «\texttt{scale}» pour mettre le dessin à l'échelle que l'on souhaite, voir page~\pageref{cle-scale}} .
+La plupart des dimensions des blocs sont proportionnelles à la taille de la police en cours. On peut donc jouer sur la taille de la police (via les classiques macros \verb|\small|, \verb|\large|, \verb|\footnotesize|, etc) pour modifier la taille des blocs\footnote{Il y a aussi la clé «\texttt{scale}» pour mettre le dessin à l'échelle que l'on souhaite, voir page~\pageref{cle-scale}} .
-Voici un inventaire des tous les blocs disponibles, empilés les uns sous les autres :
+Voici un inventaire des tous les blocs disponibles, empilés les uns sous les autres :
\exemple/Voici un algorithme bizarre : \begin{scratch}
\blockmove{bloc de mouvement}
@@ -197,73 +195,73 @@ Voici un inventaire des tous les blocs disponibles, empilés les uns sous les aut
\blockpen{bloc de stylo}
\blockvariable{bloc de variable}
\blocklist{bloc de liste}
- \blockevent{bloc d'événement}
- \blockcontrol{bloc de contrôle}
+ \blockevent{bloc d'événement}
+ \blockcontrol{bloc de contrôle}
\blocksensing{bloc de capteur}
\end{scratch}/
-Il faut donc retenir cette logique : les suffixes \suffixe{move}, \suffixe{look}, \suffixe{sound}, \suffixe{pen}, \suffixe{variable}, \suffixe{list}, \suffixe{event}, \suffixe{control} et \suffixe{sensing} correspondent aux couleurs des blocs. Il existe aussi le suffixe \suffixe{operator} qui n'a pas été montré précédemment puisqu'aucun bloc n'existe pour la fonction «opérateurs».
+Il faut donc retenir cette logique : les suffixes \suffixe{move}, \suffixe{look}, \suffixe{sound}, \suffixe{pen}, \suffixe{variable}, \suffixe{list}, \suffixe{event}, \suffixe{control} et \suffixe{sensing} correspondent aux couleurs des blocs. Il existe aussi le suffixe \suffixe{operator} qui n'a pas été montré précédemment puisqu'aucun bloc n'existe pour la fonction «opérateurs».
\section{Les ovales}
-Les « ovales » sont, selon le code graphique de \SCRATCH, censés contenir des variables que l'utilisateur spécifie lui-même (comme des nombres ou du texte) :
+Les « ovales » sont, selon le code graphique de \SCRATCH, censés contenir des variables que l'utilisateur spécifie lui-même (comme des nombres ou du texte) :
\begin{center}
\begin{scratch}
- \blockmove{tourner de \turnleft{} de \ovalnum{45} degrés}
- \blocklook{penser à \ovalnum{Hmm..} pendant \ovalnum{2} secondes}
+ \blockmove{tourner de \turnleft{} de \ovalnum{45} degrés}
+ \blocklook{penser à \ovalnum{Hmm..} pendant \ovalnum{2} secondes}
\end{scratch}
\end{center}
-Les variables peuvent être prédéfinies dans \SCRATCH ou créées par l'utilisateur et dans ce cas, les ovales sont de couleur identique à la couleur du thème auquel appartient la variable:
+Les variables peuvent être prédéfinies dans \SCRATCH ou créées par l'utilisateur et dans ce cas, les ovales sont de couleur identique à la couleur du thème auquel appartient la variable:
\begin{center}
\begin{scratch}
- \blocklook{penser à \ovalsensing{réponse}}
- \blockmove{aller à x: \ovaloperator{\ovalmove{ abscisse x} + \ovalnum{1}} y: \ovalmove{ordonnée y}}
+ \blocklook{penser à \ovalsensing{réponse}}
+ \blockmove{aller à x: \ovaloperator{\ovalmove{ abscisse x} + \ovalnum{1}} y: \ovalmove{ordonnée y}}
\end{scratch}
\end{center}
-Ces variables peuvent également être spécifiques aux blocs concernés, sélectionnées parmi plusieurs possibilités, auquel cas l'ovale est de couleur plus sombre que le bloc et se termine avec une flèche de sélection :
+Ces variables peuvent également être spécifiques aux blocs concernés, sélectionnées parmi plusieurs possibilités, auquel cas l'ovale est de couleur plus sombre que le bloc et se termine avec une flèche de sélection :
\begin{center}
\begin{scratch}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockcontrol{créer un clone de \ovalcontrol*{moi même}}
+ \blockcontrol{créer un clone de \ovalcontrol*{moi même}}
\end{scratch}
\end{center}
-Au niveau des macros utilisées :
+Au niveau des macros utilisées :
\begin{itemize}
- \item la macro \verb|\ovalnum{<nombre>}| dessine un ovale à fond blanc;
+ \item la macro \verb|\ovalnum{<nombre>}| dessine un ovale à fond blanc;
\item la macro \verb|\oval<suffixe>| trace un ovale de la couleur de \verb|<suffixe>|;
- \item en version étoilée, \verb|\oval<suffixe>*| trace un ovale de couleur plus sombre avec une flèche de sélection;
- \item les macros \verb|\turnleft| et \verb|\turnright| dessinent des flèches de rotation dans les blocs \verb|\blockmove|.
+ \item en version étoilée, \verb|\oval<suffixe>*| trace un ovale de couleur plus sombre avec une flèche de sélection;
+ \item les macros \verb|\turnleft| et \verb|\turnright| dessinent des flèches de rotation dans les blocs \verb|\blockmove|.
\end{itemize}
\exemple/Ovales de toutes sortes : \begin{scratch}
- \blockmove{tourner de \turnleft{} de \ovalnum{45} degrés}
- \blocklook{penser à \ovalnum{Hmm..} pendant \ovalnum{2} secondes}
- \blocklook{penser à \ovalsensing{réponse}}
- \blockmove{aller à x: \ovaloperator{\ovalmove{ abscisse x} + \ovalnum{1}} y: \ovalmove{ordonnée y}}
+ \blockmove{tourner de \turnleft{} de \ovalnum{45} degrés}
+ \blocklook{penser à \ovalnum{Hmm..} pendant \ovalnum{2} secondes}
+ \blocklook{penser à \ovalsensing{réponse}}
+ \blockmove{aller à x: \ovaloperator{\ovalmove{ abscisse x} + \ovalnum{1}} y: \ovalmove{ordonnée y}}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockcontrol{créer un clone de \ovalcontrol*{moi même}}
+ \blockcontrol{créer un clone de \ovalcontrol*{moi même}}
\end{scratch}/
Toutes les macros de la forme \verb|\oval<suffixe>| sont utilisables \emph{en dehors} de l'environnement \SCRATCH:
-\exemple/Voici une variable simple «\ovalmove{direction}»,
-une variable sélectionnée «\ovalsound*{Meow}»./
+\exemple/Voici une variable simple «\ovalmove{direction}»,
+une variable sélectionnée «\ovalsound*{Meow}»./
-Il faut signaler que les blocs de suffixes \suffixe{operator}, \suffixe{variable} , \suffixe{list} ou \suffixe{moreblocks} ne peuvent avoir d'ovales de sélection. N'ayant pas de sens pour \SCRATCH, une erreur sera émise si une macro étoilée \verb|\oval<suffixe>*| est utilisée, et visuellement, cela se traduira par une couleur de remplissage du bloc en rouge.
+Il faut signaler que les blocs de suffixes \suffixe{operator}, \suffixe{variable} , \suffixe{list} ou \suffixe{moreblocks} ne peuvent avoir d'ovales de sélection. N'ayant pas de sens pour \SCRATCH, une erreur sera émise si une macro étoilée \verb|\oval<suffixe>*| est utilisée, et visuellement, cela se traduira par une couleur de remplissage du bloc en rouge.
\medbreak
-Un ovale rempli de couleur et accessible avec la macro \verb|\pencolor{<couleur>}| permet de sélectionner la couleur du stylo:
+Un ovale rempli de couleur et accessible avec la macro \verb|\pencolor{<couleur>}| permet de sélectionner la couleur du stylo:
\exemple/\begin{scratch}
- \blockpen{stylo en position d'écriture}
- \blockpen{mettre la couleur du style à \pencolor{red!75!black}}
+ \blockpen{stylo en position d'écriture}
+ \blockpen{mettre la couleur du style à \pencolor{red!75!black}}
\blockmove{avancer de \ovalnum{25}}
\end{scratch}/
-\section{Les blocs de début}
-Ces blocs sont de la couleur \suffixe{event} pour la plupart (macro \verb|\blockinit|), mais il existe aussi un bloc de début de couleur \suffixe{control} (macro \verb|\blockinitclone|). Le drapeau vert est dessiné avec la macro \verb|\greenflag|.
+\section{Les blocs de début}
+Ces blocs sont de la couleur \suffixe{event} pour la plupart (macro \verb|\blockinit|), mais il existe aussi un bloc de début de couleur \suffixe{control} (macro \verb|\blockinitclone|). Le drapeau vert est dessiné avec la macro \verb|\greenflag|.
-\exemple/Voici un début :
+\exemple/Voici un début :
\begin{scratch}
- \blockinit{quand \greenflag est cliqué}
+ \blockinit{quand \greenflag est cliqué}
\blockmove{suite de l'algorithme...}
\end{scratch}
et un autre :
@@ -273,19 +271,19 @@ et un autre :
\end{scratch}/
\section{Les rectangles}
-Un menu déroulant contenant des valeurs prédéfinies est symbolisé par un rectangle dont la couleur reprend celle du bloc dans lequel il se trouve. Pour ce faire, la macro \verb|\selectmenu{<texte>}| doit être exécutée :
+Un menu déroulant contenant des valeurs prédéfinies est symbolisé par un rectangle dont la couleur reprend celle du bloc dans lequel il se trouve. Pour ce faire, la macro \verb|\selectmenu{<texte>}| doit être exécutée :
\exemple/\begin{scratch}
- \blockinit{Quand je reçois \selectmenu{message 1}}
- \blocksound{ajouter \ovalnum{10} à l'effet \selectmenu{hauteur}}
- \blocklook{mettre l'effet \selectmenu{couleur} à \ovalnum{0}}
- \blockvariable{mettre \selectmenu{ma_variable} à \ovalnum{10}}
+ \blockinit{Quand je reçois \selectmenu{message 1}}
+ \blocksound{ajouter \ovalnum{10} à l'effet \selectmenu{hauteur}}
+ \blocklook{mettre l'effet \selectmenu{couleur} à \ovalnum{0}}
+ \blockvariable{mettre \selectmenu{ma_variable} à \ovalnum{10}}
\end{scratch}/
\section{Les losanges et les blocs de test}
-Dans la symbolique graphique de \SCRATCH, les losanges contiennent des valeurs booléennes ayant vocation à se retrouver dans un bloc de test. Pour dessiner de tels objets booléens, les macros \verb|\bool<suffixe>{<texte>}| sont utilisées où les \verb|<suffixes>| représentent les couleurs correspondant à la fonction du booléen tracé : \suffixe{list}, \suffixe{sensing} ou \suffixe{operator}.
+Dans la symbolique graphique de \SCRATCH, les losanges contiennent des valeurs booléennes ayant vocation à se retrouver dans un bloc de test. Pour dessiner de tels objets booléens, les macros \verb|\bool<suffixe>{<texte>}| sont utilisées où les \verb|<suffixes>| représentent les couleurs correspondant à la fonction du booléen tracé : \suffixe{list}, \suffixe{sensing} ou \suffixe{operator}.
-Les blocs de test sont de deux types,selon qu'ils possèdent ou pas une branche « else».
+Les blocs de test sont de deux types,selon qu'ils possèdent ou pas une branche « else».
\code|\blockif{<texte du test>}
{<instructions si test vrai>}|
et
@@ -296,31 +294,31 @@ et
\exemple/Conditions : \begin{scratch}
\blockif{si \booloperator{\ovalmove{abscisse x} < \ovalnum{7}} alors}
- {\blockmove{aller à \selectmenu{position aléatoire}}
+ {\blockmove{aller à \selectmenu{position aléatoire}}
\blocklook{basculer sur costume \selectmenu{costume 4}}
}
- \blockmove{aller à \selectmenu{pointeur souris}}
+ \blockmove{aller à \selectmenu{pointeur souris}}
\end{scratch}
et
\begin{scratch}
- \blockifelse{si \boolsensing{couleur \pencolor{blue!65} touchée ?} alors}
+ \blockifelse{si \boolsensing{couleur \pencolor{blue!65} touchée ?} alors}
{\blockmove{avancer de \ovalnum{2}}
\blocksound{jouer le son \selectmenu{miaou}}
}
- {\blockvariable{mettre \ovalvariable{total} à \ovaloperator{\ovalvariable{total} + \ovalnum{1}}}
- \blocksound{arrêter tous les sons}
+ {\blockvariable{mettre \ovalvariable{total} à \ovaloperator{\ovalvariable{total} + \ovalnum{1}}}
+ \blocksound{arrêter tous les sons}
}
- \blockmove{aller à \selectmenu{pointeur souris}}
+ \blockmove{aller à \selectmenu{pointeur souris}}
\end{scratch}/
La macros \verb|\pencolor| et celles de la forme \verb|\bool<suffixe>| sont utilisables \emph{en dehors} d'un environnement \SCRATCH :
\exemple/Une couleur : \pencolor{cyan}.\par
-Un booléen : \boollist{liste \selectmenu{malist} contient \ovalnum{foobar}}.\par
+Un booléen : \boollist{liste \selectmenu{malist} contient \ovalnum{foobar}}.\par
Un autre : \booloperator{\booloperator{\ovalvariable{varx} > \ovalnum{1}}
et \booloperator{\ovalvariable{varx} < \ovalnum{5}}}./
-La macro \verb|\boolempty[<dimension>]| permet de tracer un losange vide. L'argument optionnel est une \verb|<dimension>| qui vaut \verb|2em| par défaut.
+La macro \verb|\boolempty[<dimension>]| permet de tracer un losange vide. L'argument optionnel est une \verb|<dimension>| qui vaut \verb|2em| par défaut.
\exemple/\begin{scratch}
\blockifelse{si \boolempty[3em] alors}
@@ -329,306 +327,313 @@ La macro \verb|\boolempty[<dimension>]| permet de tracer un losange vide. L'argu
\end{scratch}/
\section{Les blocs de fin}
-Ces blocs sont susceptibles de clore un algorithme et n'ont donc pas d'encoche mâle dans leur partie basse. Ils ne peuvent être que du type \suffixe{control} et sont dessinés avec la macro \verb|\blockstop{<texte>}|
+Ces blocs sont susceptibles de clore un algorithme et n'ont donc pas d'encoche mâle dans leur partie basse. Ils ne peuvent être que du type \suffixe{control} et sont dessinés avec la macro \verb|\blockstop{<texte>}|
\exemple/\begin{scratch}\blockstop{supprimer ce clone}\end{scratch}
ou
\begin{scratch}\blockstop{stop \selectmenu{ce script}}\end{scratch}/
-\section{Les blocs de répétition}
-Ces blocs sont de deux types, selon que la répétition est prévue pour s'arrêter ou pas (boucle infinie). Ils seront dessinés par les macros \verb|\blockrepeat| et \verb|\blocinfloop| ayant chacune \emph{deux} arguments : le premier étant le \verb|<texte>| du bloc et le second la suite d'instructions à répéter.
+\section{Les blocs de répétition}
+Ces blocs sont de deux types, selon que la répétition est prévue pour s'arrêter ou pas (boucle infinie). Ils seront dessinés par les macros \verb|\blockrepeat| et \verb|\blocinfloop| ayant chacune \emph{deux} arguments : le premier étant le \verb|<texte>| du bloc et le second la suite d'instructions à répéter.
\exemple/\begin{scratch}
- \blockpen{stylo en position d'écriture}
- \blockrepeat{répéter \ovalnum{4} fois}
+ \blockpen{stylo en position d'écriture}
+ \blockrepeat{répéter \ovalnum{4} fois}
{
\blockmove{avancer de \ovalnum{10}}
- \blockmove{tourner \turnright{} de \ovalnum{90} degrés}
+ \blockmove{tourner \turnright{} de \ovalnum{90} degrés}
}
\end{scratch}
et
\begin{scratch}
- \blockpen{stylo en position d'écriture}
- \blockinfloop{répéter indéfiniment}
+ \blockpen{stylo en position d'écriture}
+ \blockinfloop{répéter indéfiniment}
{
- \blockmove{s'orienter à \ovaloperator{nombre aléatoire entre \ovalnum{0} et \ovalnum{359}}}
- \blockmove{avancer de \ovaloperator{nombre aléatoire entre \ovalnum{1} et \ovalnum{10}}}
- \blockif{si \boolsensing{\selectmenu{bord} touché?}}
+ \blockmove{s'orienter à \ovaloperator{nombre aléatoire entre \ovalnum{0} et \ovalnum{359}}}
+ \blockmove{avancer de \ovaloperator{nombre aléatoire entre \ovalnum{1} et \ovalnum{10}}}
+ \blockif{si \boolsensing{\selectmenu{bord} touché?}}
{
- \blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
+ \blockmove{aller à x: \ovalnum{0} y: \ovalnum{0}}
}
}
\end{scratch}/
-\section{Les blocs de définition}
-Les « procédures », ayant le suffixe \suffixe{moreblocks}, permettent d'étendre les maigres possibilités données au programmeur en \SCRATCH.
+\section{Les blocs de définition}
+Les « procédures », ayant le suffixe \suffixe{moreblocks}, permettent d'étendre les maigres possibilités données au programmeur en \SCRATCH.
\exemple/\begin{scratch}
- \initmoreblocks{définir \namemoreblocks{trace_carré \ovalmoreblocks{coté_carré}}}
- \blockrepeat{répéter \ovalnum4 fois}
- {\blockmove{avancer de \ovalmoreblocks{coté_carré}}
- \blockmove{tourner \turnleft{} de \ovalnum{90} degrés}
+ \initmoreblocks{définir \namemoreblocks{trace_carré \ovalmoreblocks{coté_carré}}}
+ \blockrepeat{répéter \ovalnum4 fois}
+ {\blockmove{avancer de \ovalmoreblocks{coté_carré}}
+ \blockmove{tourner \turnleft{} de \ovalnum{90} degrés}
}
\end{scratch}
puis
\begin{scratch}
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blockpen{relever le stylo}
- \blockmove{aller à x: \ovalnum0 y: \ovalnum0}
- \blockmove{s'orienter à \ovalnum{90} degrés}
- \blockpen{stylo en position d'écriture}
- \blockrepeat{répéter \ovalnum{10} fois}
+ \blockmove{aller à x: \ovalnum0 y: \ovalnum0}
+ \blockmove{s'orienter à \ovalnum{90} degrés}
+ \blockpen{stylo en position d'écriture}
+ \blockrepeat{répéter \ovalnum{10} fois}
{
- \blockmoreblocks{trace carré \ovalnum{50}}
+ \blockmoreblocks{trace carré \ovalnum{50}}
\blockmove{avancer de \ovalnum{10}}
- \blockmove{tourner \turnleft{} de \ovalnum{36} degrés}
+ \blockmove{tourner \turnleft{} de \ovalnum{36} degrés}
}
\end{scratch}/
-À l'intérieur d'un \verb|\namemoreblocks|, on peut mettre \verb|\ovalmoreblocks| pour spécifier un argument de type nombre ou texte ou bien \verb|\boolmoreblocks| pour un argument de type booléen.
+À l'intérieur d'un \verb|\namemoreblocks|, on peut mettre \verb|\ovalmoreblocks| pour spécifier un argument de type nombre ou texte ou bien \verb|\boolmoreblocks| pour un argument de type booléen.
\section{Bloc invisible}
-Bien que ce genre de bloc n'existe pas avec \SCRATCH, cette fonctionnalité peut s'avérer utile. On insère un espace vide avec \verb|\blockspace[<coeff>]|. L'espace verticale insérée est égale à la hauteur normale d'un bloc multipliée par le \verb|<coeff>|, valeur optionnelle qui vaut 1 par défaut.
+Bien que ce genre de bloc n'existe pas avec \SCRATCH, cette fonctionnalité peut s'avérer utile. On insère un espace vide avec \verb|\blockspace[<coeff>]|. L'espace verticale insérée est égale à la hauteur normale d'un bloc multipliée par le \verb|<coeff>|, valeur optionnelle qui vaut 1 par défaut.
\exemple/\begin{scratch}
\blockmove{ci-dessous, une espace d'un bloc}
\blockspace
- \blockmove{ci dessous, une espace égale à la moitié d'un bloc}
+ \blockmove{ci dessous, une espace égale à la moitié d'un bloc}
\blockspace[0.5]
\blockmove{la suite}
\end{scratch}/
\section{Personnalisation}
-Plusieurs \verb|<paramètres>| peuvent être réglés par l'utilisateur selon la syntaxe \verb|<clé>=<valeur>|. Cas paramètres peuvent être spécifiés dans :
+Plusieurs \verb|<paramètres>| peuvent être réglés par l'utilisateur selon la syntaxe \verb|<clé>=<valeur>|. Cas paramètres peuvent être spécifiés dans :
\begin{itemize}
- \item l'argument optionnel de l'environnement \verb|\begin{scratch}[<paramètres>]| auquel cas les \verb|<paramètres>| ne s'appliquent qu'à cet environnement;
- \item l'argument de la macro \verb|\setscratch{<paramètres>}| pour spécifier des \verb|<paramètres>| pour les environnements \SCRATCH à venir;
- \item l'argument de \verb|\setdefaultscratch{<paramètres>}| pour spécifier des \verb|<paramètres>| \emph{par défaut}.
+ \item l'argument optionnel de l'environnement \verb|\begin{scratch}[<paramètres>]| auquel cas les \verb|<paramètres>| ne s'appliquent qu'à cet environnement;
+ \item l'argument de la macro \verb|\setscratch{<paramètres>}| pour spécifier des \verb|<paramètres>| pour les environnements \SCRATCH à venir;
+ \item l'argument de \verb|\setdefaultscratch{<paramètres>}| pour spécifier des \verb|<paramètres>| \emph{par défaut}.
\end{itemize}
-Il existe la macro \verb|\resetscratch| qui remet à leur valeur par défaut tous les \verb|<paramètres>| de \SCRATCH, pour annuler les effets d'une macro \verb|\setscratch|.\bigbreak
+Il existe la macro \verb|\resetscratch| qui remet à leur valeur par défaut tous les \verb|<paramètres>| de \SCRATCH, pour annuler les effets d'une macro \verb|\setscratch|.\bigbreak
-Voici les \verb|<paramètres>| disponibles :
+Voici les \verb|<paramètres>| disponibles :
-\cleval{else word}{caractères}
-Représente est le mot qui est inséré dans la branche « else » d'un bloc de test.
+\cleval{else word}{caractères}
+Représente est le mot qui est inséré dans la branche « else » d'un bloc de test.
\cleval{pre text}{code}\label{pre text}
-C'est le \verb|code| qui est exécuté avent que du texte ne soit affiché par \SSCRATCH.
+C'est le \verb|code| qui est exécuté avent que du texte ne soit affiché par \SSCRATCH.
\cleval{x sep}{dimension}
-Représente l'espace horizontale insérée entre les bords droit et gauche du texte du bloc et les bords droits et gauche du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 1em].
+Représente l'espace horizontale insérée entre les bords droit et gauche du texte du bloc et les bords droits et gauche du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 1em].
\cleval{y sepsup}{dimension}
-Représente l'espace verticale insérée entre le bas de l'encoche femelle et le bord supérieur du texte du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
+Représente l'espace verticale insérée entre le bas de l'encoche femelle et le bord supérieur du texte du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
\cleval{y sepinf}{dimension}
-Représente l'espace verticale insérée entre le bas du bloc et le bord inférieur du texte du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
+Représente l'espace verticale insérée entre le bas du bloc et le bord inférieur du texte du bloc. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
\cleval{line width}{dimension}
-Représente l'épaisseur des lignes de relief des blocs et le double des lignes de relief des losanges booléens. La valeur est ramenée si nécessaire dans l'intervalle [0pt ; 5pt].
+Représente l'épaisseur des lignes de relief des blocs et le double des lignes de relief des losanges booléens. La valeur est ramenée si nécessaire dans l'intervalle [0pt ; 5pt].
\cleval{loop width}{dimension}
-Représente est la largeur de la barre verticale des blocs de répétition ou de test. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3em].
+Représente est la largeur de la barre verticale des blocs de répétition ou de test. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3em].
\cleval{loop height}{dimension}
-Représente est l'épaisseur des barres horizontales « else » et inférieure des blocs de répétition ou de test. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
+Représente est l'épaisseur des barres horizontales « else » et inférieure des blocs de répétition ou de test. La valeur est ramenée si nécessaire dans l'intervalle [3pt ; 3ex].
\cleval{corner}{dimension}
-Représente la dimension des chanfreins des blocs. La valeur est ramenée si nécessaire dans l'intervalle [0.33333ex ; 1ex].
+Représente la dimension des chanfreins des blocs. La valeur est ramenée si nécessaire dans l'intervalle [0.33333ex ; 1ex].
\cleval{notch}{dimension}
-Représente la largeur des encoches. La valeur est ramenée si nécessaire dans l'intervalle [0.33333em ; 3em].
+Représente la largeur des encoches. La valeur est ramenée si nécessaire dans l'intervalle [0.33333em ; 3em].
\cleval{scale}{coefficient}\label{cle-scale}
-Représente l'échelle à laquelle est représenté le dessin. La valeur est ramenée si nécessaire dans l'intervalle [0.2 ; 5].
+Représente l'échelle à laquelle est représenté le dessin. La valeur est ramenée si nécessaire dans l'intervalle [0.2 ; 5].
-Les blocs ovales ou losanges, qui peuvent se trouver à l'extérieur de l'environnement scrtach, sont affectés par la valeur de \texttt{scale} :
+Les blocs ovales ou losanges, qui peuvent se trouver à l'extérieur de l'environnement scrtach, sont affectés par la valeur de \texttt{scale} :
-\exemple/\setscratch{scale=1}Échelle 1 : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}\par
-Échelle 0.75 :\setscratch{scale=.75} : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}\par
-Échelle 1.25 :\setscratch{scale=1.25} : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}/
+\exemple/\setscratch{scale=1}Échelle 1 : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}\par
+Échelle 0.75 :\setscratch{scale=.75} : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}\par
+Échelle 1.25 :\setscratch{scale=1.25} : \ovalvariable{var} et \booloperator{\ovalmove{abscisse x} < \ovalnum{7}}/
\cleval{init arcangle}{angle}
-Représente l'angle avec l'horizontale de l'arc de cercle tracé dans la partie haute des blocs de départ. La valeur est ramenée si nécessaire dans l'intervalle [20 ; 40].
+Représente l'angle avec l'horizontale de l'arc de cercle tracé dans la partie haute des blocs de départ. La valeur est ramenée si nécessaire dans l'intervalle [20 ; 40].
\cleval{init arclength}{dimension}
-Représente la longueur horizontale de l'arc de cercle tracé dans la partie haute des blocs de départ. La valeur est ramenée si nécessaire dans l'intervalle [3em ; 8em].
+Représente la longueur horizontale de l'arc de cercle tracé dans la partie haute des blocs de départ. La valeur est ramenée si nécessaire dans l'intervalle [3em ; 8em].
-\cleval{print}{booléen}
-Lorsque ce booléen est vrai, les dessins se font en noir et blanc de façon à pouvoir être dirigés vers une impression en noir et blanc.
+\cleval{print}{booléen}
+Lorsque ce booléen est vrai, les dessins se font en noir et blanc de façon à pouvoir être dirigés vers une impression en noir et blanc.
\exemple/\begin{scratch}
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch} puis
\begin{scratch}[print]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}/
-\cleval{fill blocks}{booléen}
-Ce booléen n'est pris en compte que lorsque le booléen \verb|print| est vrai. Si \verb|fill blocks| est vrai, tous les dessins (sauf les ovales contenant des nombres) seront remplis avec un gris choisi avec la clé suivante.
+\cleval{fill blocks}{booléen}
+Ce booléen n'est pris en compte que lorsque le booléen \verb|print| est vrai. Si \verb|fill blocks| est vrai, tous les dessins (sauf les ovales contenant des nombres) seront remplis avec un gris choisi avec la clé suivante.
\cleval{fill gray}{taux de gris}
-Lorsque \verb|fill blocks| est vrai, ce taux de blanc dans le gris (nombre compris entre 0 pour noir et 1 pour blanc) est utilisé pour définir une couleur de remplissage des dessins. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
+Lorsque \verb|fill blocks| est vrai, ce taux de blanc dans le gris (nombre compris entre 0 pour noir et 1 pour blanc) est utilisé pour définir une couleur de remplissage des dessins. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
\exemple/\begin{scratch}
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch} puis
\begin{scratch}[print,fill blocks]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch} puis
\begin{scratch}[print,fill blocks,fill gray=0.66]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}/
\cleval{contrast}{entier}
-Lorsque l'option \verb|print| est vraie, cet entier, compris entre 0 et 100 inclus, qualifie la différence de teinte entre les lignes de relief et la teinte de gris de ces blocs, spécifiée par la clé \texttt{fill gray}. L'entier 0 sélectionne la couleur spécifiée par \texttt{fill gray} tandis que 100 trace les lignes en noir. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 100].
+Lorsque l'option \verb|print| est vraie, cet entier, compris entre 0 et 100 inclus, qualifie la différence de teinte entre les lignes de relief et la teinte de gris de ces blocs, spécifiée par la clé \texttt{fill gray}. L'entier 0 sélectionne la couleur spécifiée par \texttt{fill gray} tandis que 100 trace les lignes en noir. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 100].
\cleval{text color}{couleur}
-Lorsque \verb|fill blocks| est vrai, cette couleur sera utilisée pour le texte des blocs.
+Lorsque \verb|fill blocks| est vrai, cette couleur sera utilisée pour le texte des blocs.
\cleval{flag gray}{taux de gris}
-Lorsque \verb|print| est vrai, ce taux de gris est utilisé pour la couleur du drapeau tracé avec \verb|\greenflag| ainsi que pour la flèche se trouvant au bas des blocs de répétition. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
+Lorsque \verb|print| est vrai, ce taux de gris est utilisé pour la couleur du drapeau tracé avec \verb|\greenflag| ainsi que pour la flèche se trouvant au bas des blocs de répétition. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
\exemple/\begin{scratch}[print,fill blocks,fill gray=0.66]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch} puis
\begin{scratch}[print,fill blocks,fill gray=0.33,text color=white,flag gray=0.66]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}/
\cleval{line gray}{taux de gris}
-Lorsque \verb|print| est vrai, ce taux de gris est utilisé pour la couleur des lignes de relief. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
+Lorsque \verb|print| est vrai, ce taux de gris est utilisé pour la couleur des lignes de relief. La valeur est ramenée si nécessaire dans l'intervalle [0 ; 1].
-\cleval{num blocks}{booléen}
-Lorsque ce booléen est vrai, les blocs sont numérotés.
+\cleval{num blocks}{booléen}
+Lorsque ce booléen est vrai, les blocs sont numérotés.
\cleval{num sep}{dimension}
-Cette clé contient l'espacement entre les numéros de blocs et leur frontière gauche. La valeur est ramenée si nécessaire dans l'intervalle [0pt ; 1.5em].
+Cette clé contient l'espacement entre les numéros de blocs et leur frontière gauche. La valeur est ramenée si nécessaire dans l'intervalle [0pt ; 1.5em].
\cleval{num start}{entier}
-Cette clé contient le premier numéro du bloc.
+Cette clé contient le premier numéro du bloc.
-La macro \verb|\numblock| est chargée d'imprimer les numéros de ligne. Elle admet un argument (le numéro de ligne) et permet, lorsqu'elle est redéfinie, de personnaliser la numérotation : choix de la couleur, de la police, de sa taille et des effets applicables à son argument. Par défaut, cette macro est définie par
+La macro \verb|\numblock| est chargée d'imprimer les numéros de ligne. Elle admet un argument (le numéro de ligne) et permet, lorsqu'elle est redéfinie, de personnaliser la numérotation : choix de la couleur, de la police, de sa taille et des effets applicables à son argument. Par défaut, cette macro est définie par
\begin{center}
\verb|\newcommand*\numblock[1]{\color{black}\footnotesize\bfseries#1}|
\end{center}
-Dans l'environnement \SCRATCH, entre des instructions \SCRATCH, on peut activer ou désactiver la numérotation \emph{pour le dessin en cours} à l'aide de
+Dans l'environnement \SCRATCH, entre des instructions \SCRATCH, on peut activer ou désactiver la numérotation \emph{pour le dessin en cours} à l'aide de
\begin{center}
- \verb|\setscratch{num blocks=<booléen>}|
+ \verb|\setscratch{num blocks=<booléen>}|
\end{center}
\exemple/\begin{scratch}[num blocks]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch} puis
\renewcommand*\numblock[1]{\color{blue!80}\itshape#1}
\begin{scratch}[num blocks,num start=3]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}
puis
\renewcommand*\numblock[1]{\fboxsep=0.5pt\fbox{\bfseries#1}}
\begin{scratch}[num blocks=false]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\setscratch{num blocks=true}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}/
\cleval{baseline}{alignement}
-Cette clé contient la consigne d'alignement du dessin tout entier, c'est-à-dire :
+Cette clé contient la consigne d'alignement du dessin tout entier, c'est-à-dire :
\begin{itemize}
- \item la lettre «\verb|c|» auquel cas, le dessin est centré sur la ligne de base
- \item un entier qui spécifie un numéro de bloc existant : la numérotation est cohérente avec l'entier initial contenu dans la clé \verb|num start|. Dans ce cas, la ligne de base choisie est celle du texte contenu dans le bloc portant le numéro choisi.
+ \item la lettre «\verb|c|» auquel cas, le dessin est centré sur la ligne de base
+ \item un entier qui spécifie un numéro de bloc existant : la numérotation est cohérente avec l'entier initial contenu dans la clé \verb|num start|. Dans ce cas, la ligne de base choisie est celle du texte contenu dans le bloc portant le numéro choisi.
\end{itemize}
-\exemple/Défaut : \begin{scratch}
- \blockinit{Quand \greenflag est cliqué}
+\exemple/Défaut : \begin{scratch}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}
bloc 3 : \begin{scratch}[baseline=3]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}
-centré
+centré
\begin{scratch}[baseline=c]
- \blockinit{Quand \greenflag est cliqué}
+ \blockinit{Quand \greenflag est cliqué}
\blockpen{effacer tout}
\blocksound{jouer le son \ovalsound*{Meow}}
- \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
+ \blockmove{ajouter \ovalnum{5} à \ovalvariable{abscisse}}
\end{scratch}/
\section{Mot de la fin}
-Le code de cette extension démontre mon immense ignorance de ti\textit kz/pgf et les méthodes de programmation qui lui sont propres que décidément, je ne comprendrai jamais! C'est sans doute le trop grand éloignement avec la logique de \TeX{} et la documentation de ti\textit kz/pgf, aussi indigeste qu'illisible, qui explique cette incompatibilité d'humeur et mon désintérêt à l'égard de ti\textit kz. Toujours est-il que cette extension fonctionne, avec une lenteur certaine que j'attribue autant à ma programmation hasardeuse qu'à la lenteur intrinsèque de ti\textit kz.
+Le code de cette extension démontre mon immense ignorance de ti\textit kz/pgf et les méthodes de programmation qui lui sont propres que décidément, je ne comprendrai jamais! C'est sans doute le trop grand éloignement avec la logique de \TeX{} et la documentation de ti\textit kz/pgf, aussi indigeste qu'illisible, qui explique cette incompatibilité d'humeur et mon désintérêt à l'égard de ti\textit kz. Toujours est-il que cette extension fonctionne, avec une lenteur certaine que j'attribue autant à ma programmation hasardeuse qu'à la lenteur intrinsèque de ti\textit kz.
-Toute remarque, remontée de bug ---~je n'ose pas dire amélioration du code~---, demande d'implémentation de fonctionnalité est bien évidemment bienvenue; j'invite les utilisateurs à m'en faire part \emph{via} email à \texttt{unbonpetit@netc.fr}
+Toute remarque, remontée de bug ---~je n'ose pas dire amélioration du code~---, demande d'implémentation de fonctionnalité est bien évidemment bienvenue; j'invite les utilisateurs à m'en faire part \emph{via} email à \texttt{unbonpetit@netc.fr}
\section{Historique}
\begin{version}{0.1}{19/02/2019}
- >Première version.
+ >Première version.
\end{version}
\begin{version}{0.11}{10/03/2019}
- >Correction d'un bug dans \verb|\scr_blockloop| : la couleur \verb|\scr_current_blockcolor| y est désormais définie;
- >Correction d'un bug dans \verb|\boolmoreblocks| : la couleur est correcte et \verb|rounded corners| désormais est nul pour le tracé d'un losange.
+ >Correction d'un bug dans \verb|\scr_blockloop| : la couleur \verb|\scr_current_blockcolor| y est désormais définie;
+ >Correction d'un bug dans \verb|\boolmoreblocks| : la couleur est correcte et \verb|rounded corners| désormais est nul pour le tracé d'un losange.
\end{version}
\begin{version}{0.12}{18/05/2019}
>Correction d'un bug dans \verb|\ovalnum|;
>Correction d'un bug dans \verb|\scr_ovalbox|.
\end{version}
\begin{version}{0.13}{01/07/2019}
- >Mise en place de \verb|\relax| pour éviter le bug de \verb|\lastkern| avec Xe\LaTeX.
+ >Mise en place de \verb|\relax| pour éviter le bug de \verb|\lastkern| avec Xe\LaTeX.
\end{version}
\begin{version}{0.14}{01/10/2019}
- >Gestion de l'échelle (via clé "\texttt{scale}") améliorée.
- >Hors de l'environnement, les ovales et les losanges sont affectés par la clé "\texttt{scale}" si elle est spécifiée via \verb|\setscratch|.
- >Erreur de tracé corrigée dans \verb|\scr_blockloop|.
+ >Gestion de l'échelle (via clé "\texttt{scale}") améliorée.
+ >Hors de l'environnement, les ovales et les losanges sont affectés par la clé "\texttt{scale}" si elle est spécifiée via \verb|\setscratch|.
+ >Erreur de tracé corrigée dans \verb|\scr_blockloop|.
>Nouveau losange vide : \verb|\boolempty[<dimension>]|.
\end{version}
\begin{version}{0.15}{05/03/2020}
- >Bug corrigé dans les blocs normaux: l'échelle est désormais réinitialisée si besoin.
+ >Bug corrigé dans les blocs normaux: l'échelle est désormais réinitialisée si besoin.
\end{version}
\begin{version}{0.16}{20/03/2020}
- >Le bug corrigé dans la v0.15 est fautif, \verb|scr_scale| est désormais initialisée dans \verb|\initmoreblocks|.
+ >Le bug corrigé dans la v0.15 est fautif, \verb|scr_scale| est désormais initialisée dans \verb|\initmoreblocks|.
\end{version}
\begin{version}{0.17}{27/04/2020}
- >Quelques petites modifications pour ne plus appeler aucune macro privée de simplekv et sa version 0.2.
+ >Quelques petites modifications pour ne plus appeler aucune macro privée de simplekv et sa version 0.2.
\end{version}
\begin{version}{0.18}{03/09/2020}
>initialisation de \verb|\scr_yoffset| et \verb|\scr_xoffset| dans \verb|\scr_namemoreblocks|.
>initialisation de \verb|\scr_linewidth| dans \verb|\greenflag|.
\end{version}
+\begin{version}{0.19}{06/02/2022}
+ >échelle initialisée dans les blocs normaux.
+ >espace de 0.3333em en début de texte \verb|\selectmenu|.
+ >bug fix dans \verb|\scr_ovalbox| : 0.1 de séparation.
+ >\verb-\scr_blockstop- vaut 0 après \verb-\blockspace-.
+ >encodage UTF-8
+\end{version}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/scratch3/scratch3.sty b/macros/latex/contrib/scratch3/scratch3.sty
index d28a8a3e2e..56869a8b3a 100644
--- a/macros/latex/contrib/scratch3/scratch3.sty
+++ b/macros/latex/contrib/scratch3/scratch3.sty
@@ -1,13 +1,12 @@
-% !BIB TS-program =
-% !TeX encoding = ISO-8859-1
+% !TeX encoding = UTF-8
% Ce fichier contient le code de l'extension "scratch3"
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\scrname {scratch3} %
-\def\scrver {0.18} %
+\def\scrver {0.19} %
% %
-\def\scrdate {2020/09/03} %
+\def\scrdate {2022/02/06} %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -15,9 +14,6 @@
% Author : Christian Tellechea
% Status : Maintained
% Email : unbonpetit@netc.fr
-% Package URL: https://www.ctan.org/pkg/scratch3
-% Bug tracker: https://framagit.org/unbonpetit/scratch3/issues
-% Repository : https://framagit.org/unbonpetit/scratch3/tree/master
% Copyright : Christian Tellechea 2020
% Licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
@@ -121,6 +117,7 @@
\fi
\useKV[\scrname]{pre text}%
\_inpicturetrue
+ \def\scr_scale{1}% bugfix 0.19
#2%
\scr_blockstrut
}%
@@ -188,7 +185,7 @@
}
\newcommand*\blockspace[1][1]{%
\advance\scr_yoffset#1\dimexpr-\scr_blockstruttotht-\scr_ysepsup-\scr_ysepinf-\scr_corner-\scr_linewidth\relax
- \gdef\scr_blockstop{1}%
+ \gdef\scr_blockstop{0}% bugfix 0.19
}
\newcommand*\blockstop[1]{% #1=texte
\def\scr_current_blockcolor{scrcontrol}%
@@ -257,7 +254,7 @@
\gdef\scr_blockstop{1}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dessine un bloc de départ %
+% dessine un bloc de départ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_initblock#1#2{%
\def\scr_current_blockcolor{#1}%
@@ -328,7 +325,7 @@
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dessine un bloc de définition %
+% dessine un bloc de définition %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*\initmoreblocks[1]{%
\def\scr_currentstuff{%
@@ -403,18 +400,18 @@
\begin{tikzpicture}
\setscratch{num blocks=false}%
\scr_xoffset0pt \scr_yoffset\dimexpr\scr_corner+\scr_ysepsup\relax% bugfix 0.18
- \definecolor{scrmoreblocks}{HTML}{ff4d6a}% choix couleur foncée pour tracé du bloc qui suit
+ \definecolor{scrmoreblocks}{HTML}{ff4d6a}% choix couleur foncée pour tracé du bloc qui suit
\scr_normalblock{scrmoreblocks}{%
- \definecolor{scrmoreblocks}{HTML}{ff6680}% rétablir couleur claire par défaut
+ \definecolor{scrmoreblocks}{HTML}{ff6680}% rétablir couleur claire par défaut
#1%
}%
\end{tikzpicture}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dessine un bloc de répétition ou test %
+% dessine un bloc de répétition ou test %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\scr_blockloop#1#2#3#4#5{% #1=texte #2=instructions sup #3=instructions inf #4=boucle infinie (1 ou 0) #5=fleche de répétition (1 ou 0)
+\def\scr_blockloop#1#2#3#4#5{% #1=texte #2=instructions sup #3=instructions inf #4=boucle infinie (1 ou 0) #5=fleche de répétition (1 ou 0)
\def\scr_current_blockcolor{scrcontrol}% BUGFIX 0.11
\edef\scr_blocminheight{\dimexpr\scr_loopblockheight+\scr_ysepinf+\scr_ysepsup+\scr_corner\relax}% hauteur minimale d'un bloc normal
\setbox\scr_box\hbox{%
@@ -428,7 +425,7 @@
\scr_csedef{scr_txtloopwd\number\scr_loopnest}{\scr_maxdim(\wd\scr_box,\scr_minwd+\scr_corner*2+\scr_notch*2)}%
\scr_csedef{scr_txtloopht\number\scr_loopnest}{\the\ht\scr_box}%
\scr_csedef{scr_txtlooptotht\number\scr_loopnest}{\the\dimexpr\ht\scr_box+\dp\scr_box\relax}%
- \scr_csedef{toploopx\number\scr_loopnest}{\the\scr_xoffset}% coordonnées du point nord-west
+ \scr_csedef{toploopx\number\scr_loopnest}{\the\scr_xoffset}% coordonnées du point nord-west
\scr_csedef{toploopy\number\scr_loopnest}{\the\scr_yoffset}%
\scr_csedef{blocnum\number\scr_loopnest}{\number\scr_blocknum}%
\advance\scr_xoffset\scr_loopblockwidth
@@ -456,7 +453,7 @@
\scr_csedef{bottomifx\number\scr_loopnest}{\the\scr_xoffset}%
\scr_csedef{bottomify\number\scr_loopnest}{\the\scr_yoffset}%
\ifcat\relax\detokenize{#3}\relax\else% si instruction #3
- \advance\scr_yoffset\dimexpr-\scr_blocminheight\relax% épaisseur théorique de la branche "sinon"
+ \advance\scr_yoffset\dimexpr-\scr_blocminheight\relax% épaisseur théorique de la branche "sinon"
\scr_csedef{blocelsenum\number\scr_loopnest}{\number\scr_blocknum}%
\ifboolKV[\scrname]{num blocks}
{\scr_csdef{scr_numblockelse\number\scr_loopnest}{%
@@ -479,7 +476,7 @@
\scr_csedef{bottomelsex\number\scr_loopnest}{\the\scr_xoffset}%
\scr_csedef{bottomelsey\number\scr_loopnest}{\the\scr_yoffset}%
\fi
- \advance\scr_yoffset by \dimexpr-\scr_blocminheight\relax% épaisseur de la branche du bas
+ \advance\scr_yoffset by \dimexpr-\scr_blocminheight\relax% épaisseur de la branche du bas
\def\scr_current_blockcolor{scrcontrol}%
% ############## dessin du corps ##############
\edef\scr_current_linecolor{\ifboolKV[\scrname]{print}{scr_linegray!\scr_contrast!black}{\scr_current_blockcolor dd}}%
@@ -500,7 +497,7 @@
--++(0,-\csname scr_txtlooptotht\number\scr_loopnest\endcsname-\scr_ysepsup-\scr_ysepinf-\scr_corner)% ligne est "|"
--++(-\csname scr_txtloopwd\number\scr_loopnest\endcsname-2*\scr_xsep+\scr_corner*2+\scr_notch*1.66666+\scr_loopblockwidth,0)--++(-\scr_corner,-\scr_corner)--++(-\scr_notch,0)--++(-\scr_corner,\scr_corner)--++(-\scr_notch*.66666,0)% ligne sud "--\__/---------"
--(\csname bottomifx\number\scr_loopnest\endcsname,\csname bottomify\number\scr_loopnest\endcsname)% descente gauche bloc "if"
- \ifcat\relax\detokenize{#3}\relax\else% tracé de la branche du else
+ \ifcat\relax\detokenize{#3}\relax\else% tracé de la branche du else
\ifnum\csname scr_blockstopif_\number\scr_loopnest\endcsname=1
--++(\csname scr_txtloopwd\number\scr_loopnest\endcsname+2*\scr_xsep-\scr_loopblockwidth,0)% ligne haut de la barre else "-----------------"
\else
@@ -521,9 +518,9 @@
\else
--++(-\csname scr_txtloopwd\number\scr_loopnest\endcsname-2*\scr_xsep+\scr_corner*2+\scr_notch*1.66666,0)--++(-\scr_corner,-\scr_corner)--++(-\scr_notch,0)--++(-\scr_corner,\scr_corner)--++(-.66666*\scr_notch,0)% ligne Sud "\--\__/---------"
\fi
- --cycle;% remontée tout en haut et cycle ## bugfix 0.14
+ --cycle;% remontée tout en haut et cycle ## bugfix 0.14
\advance\scr_xoffset\dimexpr-\scr_loopblockwidth\relax
- \csname scr_numblockif\number\scr_loopnest\endcsname% numérote ou pas le texte dans le bandeau du haut
+ \csname scr_numblockif\number\scr_loopnest\endcsname% numérote ou pas le texte dans le bandeau du haut
\node[
at=(origin),
draw=none,
@@ -561,7 +558,7 @@
\useKV[\scrname]{pre text}%
\useKV[\scrname]{else word}%
};
- \csname scr_numblockelse\number\scr_loopnest\endcsname% numérotation bloc else ou pas
+ \csname scr_numblockelse\number\scr_loopnest\endcsname% numérotation bloc else ou pas
\fi
\ifnum#5=1 %fleche
\edef\scr_arrowcolor{\ifboolKV[\scrname]{print}{scr_flaggray}{scrcontrol}!80!black}% couleur ded l'ombre
@@ -572,7 +569,7 @@
rounded corners=1pt*\scr_scale
]
(\scr_xoffset+\scr_xsep*2+\csname scr_txtloopwd\number\scr_loopnest\endcsname-\scr_ex*3.5+1pt,\scr_yoffset+\scr_linewidth+\scr_ysepinf-1.25pt)--++(\scr_loopblockheight,0)--++(0,\scr_loopblockheight+\scr_corner*0.5);
- \edef\scr_arrowcolor{\ifboolKV[\scrname]{print}{scr_flaggray}{white}}% colmeur de la flèche
+ \edef\scr_arrowcolor{\ifboolKV[\scrname]{print}{scr_flaggray}{white}}% colmeur de la flèche
\draw[
\scr_arrowcolor,
line width=\scr_scale*1.5pt,
@@ -604,8 +601,7 @@
baseline=(x.base),
x=1ex,
y=1ex,
- inner ysep=0.25ex,
- inner xsep=0.1ex,
+ inner sep=0.1ex,% bugfix 0.19 : 0.25ex pour inner ysep donne un résultat étrange, on met 0.1ex pour les 2
line width={\the\dimexpr\useKV[\scrname]{line width}\relax},
scale=\scr_scale,
every node/.style={scale=\scr_scale}
@@ -640,7 +636,7 @@
\_inpicturetrue
#3%
\relax% pour contourner bug dans XeLaTeX
- \if1#1% si triangle de sélection
+ \if1#1% si triangle de sélection
\kern1ex
\scr_menuselectarrow
\fi
@@ -653,7 +649,7 @@
\kern\scr_ovalsentinel sp
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dessine un triangle de sélection %
+% dessine un triangle de sélection %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_menuselectarrow{%
\tikz[
@@ -671,7 +667,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% dessine un menu %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand*\selectmenu[1]{% #1=texte du menu (sera composé et suivi du triangle de sélection)
+\newcommand*\selectmenu[1]{% #1=texte du menu (sera composé et suivi du triangle de sélection)
\if_inpicture\def\scr_scale{1}\else\scr_normalizedec\scr_scale scale[0.2,5]\fi
\begin{tikzpicture}[
anchor=base west,
@@ -709,6 +705,7 @@
{%
\useKV[\scrname]{pre text}%
\_inpicturetrue
+ \hskip.33333em \ignorespaces% bugfix 0.19
#1%
\scr_ovalstrut
\hskip.6666em
@@ -822,7 +819,7 @@
\definecolor{scrpend} {HTML}{0da57a}%
\definecolor{scrpendd} {HTML}{0b8e69}%
\definecolor{scrvariable} {HTML}{ff8c1a}%
-\definecolor{scrvariabled} {HTML}{ff0000}% il n'existe pas d'ovale avec triangle sélection pour variable
+\definecolor{scrvariabled} {HTML}{ff0000}% il n'existe pas d'ovale avec triangle sélection pour variable
\definecolor{scrvariabledd} {HTML}{db6e00}%
\definecolor{scrlist} {HTML}{ff661a}%
\definecolor{scrlistd} {HTML}{ff0000}% idem
@@ -851,47 +848,47 @@
\definecolor{boolemptyd} {HTML}{cf8b17}% new 0.14
\definecolor{boolemptydd} {HTML}{cf8b17}% new 0.14
-% Les réglages par défaut (modifiables avec \setdefaultscratch)
+% Les réglages par défaut (modifiables avec \setdefaultscratch)
\setKVdefault[\scrname]{
pre text = \sffamily ,% choix de la police
else word = sinon ,% mot dans branche "else"
- x sep = 0.33333em ,% séparation entre côtés droits et gauche du bloc et le texte
- y sepsup = 3pt ,% séparation entre côté sup (insert) et haut texte
- y sepinf = 5pt ,% séparation entre côté inf et bas texte
- line width = .4pt ,% épaisseur des lignes de relief
- loop width = 3ex ,% épaisseur de la barre verticale à gauche d'un bloc de boucle
+ x sep = 0.33333em ,% séparation entre côtés droits et gauche du bloc et le texte
+ y sepsup = 3pt ,% séparation entre côté sup (insert) et haut texte
+ y sepinf = 5pt ,% séparation entre côté inf et bas texte
+ line width = .4pt ,% épaisseur des lignes de relief
+ loop width = 3ex ,% épaisseur de la barre verticale à gauche d'un bloc de boucle
loop height = 1.75ex ,% hauteur de la barre du else et la barre finale
corner = 0.66667ex ,% valeur du chanfrein
notch = 1em ,% longueur des encoches
- scale = 1 ,% échelle du dessin
- init arcangle = 30 ,% angle début et fin de l'arc
+ scale = 1 ,% échelle du dessin
+ init arcangle = 30 ,% angle début et fin de l'arc
init arclength = 5em ,% longueur de l'arc
contrast = 20 ,% contraste des lignes de relief
print = false ,% impression noir et blanc ?
fill blocks = false ,% remplissage des blocks lorsque l'option "print" est vraie
fill gray = 0.85 ,% taux de gris pour le remplissage si fill blocks est vraie
text color = black ,% couleur du texte lorsque l'option "print" est vraie
- flag gray = 0.33 ,% taux de gris pour le drapeau et la flèche de répétition lorsque l'option "print" est vraie
+ flag gray = 0.33 ,% taux de gris pour le drapeau et la flèche de répétition lorsque l'option "print" est vraie
line gray = 0.4 ,% taux de gris pour les lignes lorsque l'option "print" est vraie
- bool sep = 1.25pt ,% séparation entre les blocs booléens imbriqués
- num blocks = false ,% numérotation des blocs
- num sep = 3pt ,% séparation entre bord gauche et numérotation
- num start = 1 ,% numéro de départ
+ bool sep = 1.25pt ,% séparation entre les blocs booléens imbriqués
+ num blocks = false ,% numérotation des blocs
+ num sep = 3pt ,% séparation entre bord gauche et numérotation
+ num start = 1 ,% numéro de départ
baseline = 1 ,% alignement sur le 1er bloc (en partant du haut)
}
\newenvironment{scratch}[1][]
{\scr_ifempty{#1}{}{\setscratch{#1}}%
\sffamily
- \edef\scr_ex{\the\dimexpr1ex\relax}% valeur d'1ex pour le tracé de la flèche
+ \edef\scr_ex{\the\dimexpr1ex\relax}% valeur d'1ex pour le tracé de la flèche
\edef\scr_em{\the\dimexpr1em\relax}%
\scr_normalizedim\scr_corner corner [\scr_ex/3,\scr_ex]%
\scr_normalizedim\scr_notch notch [\scr_em/3,\scr_em*3]%
- \scr_normalizedec\scr_scale scale [0.2,5]% échelle
+ \scr_normalizedec\scr_scale scale [0.2,5]% échelle
\scr_normalizedim\scr_xsep x sep [0pt,\scr_em]%
\scr_normalizedim\scr_ysepsup y sepsup [1pt,\scr_ex*3]%
\scr_normalizedim\scr_ysepinf y sepinf [1pt,\scr_ex*3]%
- \scr_normalizedim\scr_linewidth line width [0pt,5pt]% épaisseur des lignes soumises à l'échelle
+ \scr_normalizedim\scr_linewidth line width [0pt,5pt]% épaisseur des lignes soumises à l'échelle
\scr_normalizedim\scr_loopblockwidth loop width [3pt,\scr_em*3]%
\scr_normalizedim\scr_loopblockheight loop height [3pt,\scr_ex*3]%
\scr_normalizedec\scr_initarcangle init arcangle [20,40]%
@@ -947,7 +944,7 @@
{%
\end{tikzpicture}%
\scr_scratchend
- \_inpicturefalse% par pure sécurité
+ \_inpicturefalse% par pure sécurité
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1106,7 +1103,7 @@
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% menu données %
+% menu données %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_blockvariable{\scr_normalblock{scrvariable}}
\def\scr_blocklist{\scr_normalblock{scrlist}}
@@ -1131,7 +1128,7 @@
\_boolemptyfalse
\newcommand*\boolempty[1][2em]{\_boolemptytrue\scr_boolbox{boolempty}{#1}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% menu événement %
+% menu événement %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_blockevent{\scr_normalblock{screvent}}
\def\scr_blockinit{\scr_initblock{screvent}}
@@ -1164,7 +1161,7 @@
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% menu contrôle %
+% menu contrôle %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_blockrepeat#1#2{\scr_blockloop{#1}{#2}{}01}
\def\scr_blockinfloop#1#2{\scr_blockloop{#1}{#2}{}11}% 1= texte #2=instructions dans la boucle
@@ -1190,7 +1187,7 @@
\newcommand*\boolsensing{\scr_boolbox{scrsensing}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% menu opérateur %
+% menu opérateur %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*\ovaloperator{%
\scr_ifstar
@@ -1222,35 +1219,41 @@ Versions :
_____________________________________________________________________________
| Version | Date | Changements |
|---------+------------+------------------------------------------------------|
-| 0.1 | 19/02/2019 | Première version |
+| 0.1 | 19/02/2019 | Première version |
|---------+------------+------------------------------------------------------|
-| 0.11 | 10/03/2019 | * \scr_current_blockcolor est désormais défini dans |
+| 0.11 | 10/03/2019 | * \scr_current_blockcolor est désormais défini dans |
| | | \scr_blockloop |
-| | | * \boolmoreblocks n'est plus bugguée |
+| | | * \boolmoreblocks n'est plus bugguée |
|---------+------------+------------------------------------------------------|
-| 0.12 | 18/05/2019 | * bug corrigé dans \ovalnum |
-| | | * bug corrigé dans \scr_ovalbox |
+| 0.12 | 18/05/2019 | * bug corrigé dans \ovalnum |
+| | | * bug corrigé dans \scr_ovalbox |
|---------+------------+------------------------------------------------------|
-| 0.13 | 01/07/2019 | * \relax ajoutés pour éviter le bug de XeLaTeX |
+| 0.13 | 01/07/2019 | * \relax ajoutés pour éviter le bug de XeLaTeX |
| | | concernant \lastkern |
|---------+------------+------------------------------------------------------|
-| 0.14 | 01/10/2019 | * gestion de l'échelle (via clé "scale") améliorée |
+| 0.14 | 01/10/2019 | * gestion de l'échelle (via clé "scale") améliorée |
| | | * hors de l'environnement, les ovales et les losanges|
-| | | sont affectés par la clé scale si elle est |
-| | | spécifiée via \setscratch |
-| | | * erreur de tracé corrigée dans \scr_blockloop |
+| | | sont affectés par la clé scale si elle est |
+| | | spécifiée via \setscratch |
+| | | * erreur de tracé corrigée dans \scr_blockloop |
| | | * nouveau losange vide : \boolempty[<dimension>] |
|---------+------------+------------------------------------------------------|
-| 0.15 | 05/03/2020 | * l'échelle n'était pas initialisée dans les blocs |
+| 0.15 | 05/03/2020 | * l'échelle n'était pas initialisée dans les blocs |
| | | normaux |
|---------+------------+------------------------------------------------------|
-| 0.16 | 20/03/2020 | * regression 0.15 --> l'échelle est désormais |
-| | | initialisée dans \initmoreblocks |
+| 0.16 | 20/03/2020 | * regression 0.15 --> l'échelle est désormais |
+| | | initialisée dans \initmoreblocks |
|---------+------------+------------------------------------------------------|
| 0.17 | 27/04/2020 | * 2 ou 3 modifs en rapport avec la v0.2 de simplekv |
|---------+------------+------------------------------------------------------|
-| 0.18 | xx/xx/xxxx | * initialisation de \scr_yoffset et \scr_xoffset dans|
+| 0.18 | 03/09/2020 | * initialisation de \scr_yoffset et \scr_xoffset dans|
| | | \scr_namemoreblocks |
-| | | * \scr_linewidth est désormais définie dans |
+| | | * \scr_linewidth est désormais définie dans |
| | | \greenflag |
+|---------+------------+------------------------------------------------------|
+| 0.19 | 06/02/2022 | * échelle initialisée dans les blocs normaux |
+| | | * espace de 0.3333em en début de texte \selectmenu |
+| | | * bug fix dans \scr_ovalbox : 0.1 de séparation |
+| | | * \scr_blockstop vaut 0 après \blockspace |
+| | | * encodage package UTF-8 |
|---------+------------+------------------------------------------------------| \ No newline at end of file