From 55389ed7ed935011e4af266880e9141fff0a3f5e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 27 Apr 2020 21:18:13 +0000 Subject: scratch3 (27apr20) git-svn-id: svn://tug.org/texlive/trunk@54916 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/scratch3/scratch3.sty | 99 ++++++++++++----------- 1 file changed, 53 insertions(+), 46 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/scratch3/scratch3.sty b/Master/texmf-dist/tex/latex/scratch3/scratch3.sty index 26b771cc273..fe6ca27523f 100644 --- a/Master/texmf-dist/tex/latex/scratch3/scratch3.sty +++ b/Master/texmf-dist/tex/latex/scratch3/scratch3.sty @@ -4,10 +4,10 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % -\def\scrname{ scratch3 }% -\def\scrver { 0.16 }% +\def\scrname {scratch3} % +\def\scrver {0.17} % % % -\def\scrdate{ 2020/03/20 }% +\def\scrdate {2020/04/27} % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -39,51 +39,27 @@ \expandafter\edef\csname scr\string _restorecatcode\endcsname{\catcode`\noexpand\_=\the\catcode`\_\relax} \catcode`\_11 -\def\scr_removespaces#1{\edef#1{\skv_exparg\skv_removeextremespaces#1}} -\scr_removespaces\scrname -\scr_removespaces\scrver -\scr_removespaces\scrdate -% 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 - 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 - 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 - 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 - baseline = 1 ,% alignement sur le 1er bloc (en partant du haut) -} +\long\def\scr_eearg#1#2{\expandafter\scr_eearg_i\expandafter{#2}{#1}}\let\scr_eexparg\scr_eearg +\long\def\scr_eeearg#1#2{\expandafter\expandafter\expandafter\scr_eearg_i\expandafter\expandafter\expandafter{#2}{#1}}% +\long\def\scr_eearg_i#1#2{#2{#1}} +\long\def\scr_first#1#2{#1} +\long\def\scr_second#1#2{#2} +\long\def\scr_ifempty#1{\scr_ifempty_i#1\_nil\_nil\scr_second\scr_first\__nil}% +\long\def\scr_ifempty_i#1#2\_nil#3#4#5\__nil{#4} + \newcommand*\numblock[1]{% \color{black}% \footnotesize \bfseries #1% } -\newcommand*\resetscratch{\csname skv_[\scrname]\endcsname\scr_setcolors} +\newcommand*\resetscratch{\restore[\scrname]\scr_setcolors} \newcommand*\setscratch[1]{\setKV[\scrname]{#1}\scr_setcolors} \newcommand*\setdefaultscratch[1]{\setKVdefault[\scrname]{#1}\scr_setcolors} \def\scr_setcolors{% - \scr_normalizedec\scr_fillgray fill gray[0,1]\skv_exparg{\definecolor{scr_fillgray}{gray}}\scr_fillgray - \scr_normalizedec\scr_linegray line gray[0,1]\skv_exparg{\definecolor{scr_linegray}{gray}}\scr_linegray - \scr_normalizedec\scr_flaggray flag gray[0,1]\skv_exparg{\definecolor{scr_flaggray}{gray}}\scr_flaggray + \scr_normalizedec\scr_fillgray fill gray[0,1]\scr_eearg{\definecolor{scr_fillgray}{gray}}\scr_fillgray + \scr_normalizedec\scr_linegray line gray[0,1]\scr_eearg{\definecolor{scr_linegray}{gray}}\scr_linegray + \scr_normalizedec\scr_flaggray flag gray[0,1]\scr_eearg{\definecolor{scr_flaggray}{gray}}\scr_flaggray } \expandafter\let\expandafter\scr_ifstar\csname @ifstar\endcsname \def\scr_boolsentinel{17}% @@ -202,7 +178,7 @@ yshift=\scr_yoffset-\scr_boxht-\scr_corner-\scr_ysepsup ] (num) - {\skv_exparg\numblock{\number\scr_blocknum}};% + {\scr_eearg\numblock{\number\scr_blocknum}};% } {}% \advance\scr_blocknum1 @@ -273,7 +249,7 @@ yshift=\scr_yoffset-\scr_boxht-\scr_corner-\scr_ysepsup ] (num) - {\skv_exparg\numblock{\number\scr_blocknum}}; + {\scr_eearg\numblock{\number\scr_blocknum}}; } {}% \advance\scr_blocknum1 @@ -344,7 +320,7 @@ yshift=\scr_yoffset-\scr_boxht-\scr_corner-\scr_ysepsup ] (num) - {\skv_exparg\numblock{\number\scr_blocknum}};} + {\scr_eearg\numblock{\number\scr_blocknum}};} {}% \advance\scr_blocknum1 \advance\scr_yoffset\dimexpr-\scr_totht-\scr_ysepsup-\scr_ysepinf-\scr_corner\relax @@ -416,7 +392,7 @@ yshift=\scr_yoffset-\scr_boxht-\scr_corner-\scr_ysepsup ] (num) - {\skv_exparg\numblock{\number\scr_blocknum}};% + {\scr_eearg\numblock{\number\scr_blocknum}};% } {}% \advance\scr_blocknum1 @@ -466,7 +442,7 @@ yshift=\csname toploopy\number\scr_loopnest\endcsname-\csname scr_txtloopht\number\scr_loopnest\endcsname-\scr_corner-\scr_ysepsup ] (num) - {\skv_eearg\numblock{\csname blocnum\number\scr_loopnest\endcsname}};% + {\scr_eeearg\numblock{\csname blocnum\number\scr_loopnest\endcsname}};% }% } {\scr_cslet{scr_numblockif\number\scr_loopnest}\empty @@ -491,7 +467,7 @@ yshift=\csname bottomify\number\scr_loopnest\endcsname-\scr_loopblockheight-\scr_corner ] (num) - {\skv_eearg\numblock{\csname blocelsenum\number\scr_loopnest\endcsname}};}% + {\scr_eeearg\numblock{\csname blocelsenum\number\scr_loopnest\endcsname}};}% } {\scr_cslet{scr_numblockelse\number\scr_loopnest}\empty }% @@ -874,8 +850,37 @@ \definecolor{boolemptyd} {HTML}{cf8b17}% new 0.14 \definecolor{boolemptydd} {HTML}{cf8b17}% new 0.14 +% 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 + 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 + 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 + 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 + baseline = 1 ,% alignement sur le 1er bloc (en partant du haut) +} + \newenvironment{scratch}[1][] - {\skv_ifempty{#1}{}{\setscratch{#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_em{\the\dimexpr1em\relax}% @@ -1239,4 +1244,6 @@ Versions : |---------+------------+------------------------------------------------------| | 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 | |---------+------------+------------------------------------------------------| \ No newline at end of file -- cgit v1.2.3