diff options
author | Norbert Preining <norbert@preining.info> | 2022-10-08 03:03:41 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-10-08 03:03:41 +0000 |
commit | 54f6d0a2d0879db458c3cdc6b2e666c67a0da7b0 (patch) | |
tree | 04d78cc9f3edb647dc5e5b4ece71b0a0f681bc49 /macros/latex/contrib/proflycee | |
parent | bbbfa0a90645d4da46b1492f6513b28a01eb78da (diff) |
CTAN sync 202210080303
Diffstat (limited to 'macros/latex/contrib/proflycee')
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf | bin | 861172 -> 870624 bytes | |||
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex | 117 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/tex/ProfLycee.sty | 74 |
3 files changed, 180 insertions, 11 deletions
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex b050328eed..37dc7a1700 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex index d2df28ed97..7223c0798e 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex @@ -40,6 +40,7 @@ ylabel near ticks } \usepackage{tkz-tab} +\tikzstyle{every picture}+=[remember picture] \usepackage{listofitems} \usepackage{xintexpr} \usepackage{codehigh} @@ -61,8 +62,8 @@ \setlength{\parindent}{0pt} \definecolor{LightGray}{gray}{0.9} -\def\PLversion{1.2.9} -\def\PLdate{3 Octobre 2022} +\def\PLversion{1.3.1} +\def\PLdate{7 Octobre 2022} \tcbset{vignettes/.style={% nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% @@ -3772,6 +3773,97 @@ $\PLconvtodec[zeros=false,basedep=16]{AC0DC}$ \newpage +\section{Conversion \og présentée \fg{} d'un nombre en décimal}\label{convrestes} + +\subsection{Idée} + +\begin{codeidee} +L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque. + +\smallskip + +Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion. + +\smallskip + +La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit. +\end{codeidee} + +\begin{codetex}[listing only] +... +\tikzstyle{every picture}+=[remember picture] +... +\end{codetex} + +\subsection{Code et clés} + +\begin{codetex}[] +%conversion basique +\PLconvDepuisDec{78}{2} +\end{codetex} + +\begin{codeinfo} +La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles. +\end{codeinfo} + +\begin{codetex}[listing only] +\PLconvDepuisDec[<options>]{<nombre en base 10>}{<base d'arrivée>} +\end{codetex} + +\begin{codecles} +Quelques options pour cette commande : + +\begin{itemize} + \item la clé \Cle{couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red} + \item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt} + \item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt} + \item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE} + \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes. \hfill{}défaut \Cle{true} +\end{itemize} +\end{codecles} + +\begin{codetex}[listing only] +%conversion avec changement de couleur +\PLconvDepuisDec[couleur=DarkBlue]{45}{2} + +%conversion sans le rectangle +Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. + +%conversion avec gestion du decalh pour le placement précis du rectangle +\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} + +%conversion avec nœud personnalisé et réutilisation +\PLconvDepuisDec[couleur=ForestGreen,noeud=TEST]{100}{9} +\begin{tikzpicture} + \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; +\end{tikzpicture} +\end{codetex} + +\begin{codesortie} +\PLconvDepuisDec[couleur=DarkBlue]{45}{2} + +\medskip + +Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}. + +\medskip + +\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16} + +\medskip + +On obtient donc \PLconvDepuisDec[couleur=ForestGreen,noeud=TEST]{100}{9} +\begin{tikzpicture} + \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ; +\end{tikzpicture} + +\vspace{1.5cm} + +~ +\end{codesortie} + +\newpage + \section{Style \og main levée \fg{} en \TikZ}\label{mainlevee} \subsection{Idée} @@ -3919,6 +4011,9 @@ C,A,B,D \begin{tikzpicture}%avec correction \PLpixelart[codes=ABCD,couleurs={Black,Green,Yellow,Red},correction]{basique.csv} \end{tikzpicture} +\begin{tikzpicture}%avec correction sans bordure + \PLpixelart[codes=ABCD,couleurs={Black,Green,Yellow,Red},correction,bordcases=false]{basique.csv} +\end{tikzpicture} \end{codetex} \begin{codesortie} @@ -3940,18 +4035,23 @@ C,A,B,D \end{tabular} \end{center} -\hfill\begin{tikzpicture} +\hfill\begin{tikzpicture}[scale=0.9] %avec lettres \PLpixelart[codes=ABCD,style=\large\sffamily]{basique.csv} \end{tikzpicture} -\begin{tikzpicture} +\begin{tikzpicture}[scale=0.9] %avec chiffres \PLpixelart[codes=ABCD,symboles={45,22,1,7},symb,style=\large\sffamily]{basique.csv} \end{tikzpicture} -\begin{tikzpicture} +\begin{tikzpicture}[scale=0.9] %avec correction \PLpixelart[codes=ABCD,couleurs={Black,Green,Yellow,Red},correction]{basique.csv} -\end{tikzpicture}\hfill~ +\end{tikzpicture} +\begin{tikzpicture}[scale=0.9] + %avec correction + \PLpixelart[codes=ABCD,couleurs={Black,Green,Yellow,Red},correction,bordcases=false]{basique.csv} +\end{tikzpicture} +\hfill~ \end{codesortie} \begin{codeinfo} @@ -3979,6 +4079,7 @@ Quelques \Cle{Clés} sont nécessaires au bon fonctionnement de la commande : \item la clé \Cle{symboles} qui contient la \textsf{liste éventuelles} des caractères alternatifs à afficher dans les cases ; \item la clé booléenne \Cle{correction} qui permet de colorier le PixelART ;\hfill{}défaut \Cle{false} \item la clé booléenne \Cle{symb} qui permet d'afficher les caractères \textit{alternatifs} ;\hfill{}défaut \Cle{false} + \item la clé booléenne \Cle{bordcases} qui permet d'afficher les bords des cases de la correction ;\hfill{}défaut \Cle{true} \item la clé \Cle{style} qui permet de spécifier le style des caractères. \hfill{}défaut \Cle{scriptsize} \end{itemize} \end{codecles} @@ -4331,6 +4432,10 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0 \part{Historique} +{\small \bverb|v1.3.1|~:~~~~Ajout d'une option pour ne pas afficher les bordures des corrections de pixelart (page \pageref{pixelart}) + +{\small \bverb|v1.3.0|~:~~~~Commande pour présenter une conversion depuis la base 10 (page \pageref{convrestes}) + {\small \bverb|v1.2.9|~:~~~~Correction des commandes avec simplekv {\small \bverb|v1.2.8|~:~~~~Ajout d'une librairie \TikZ{} oubliée, et remise en forme de la documentation diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index e13bf2a31e..cf741e124d 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,9 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2022/10/03 v1.2.9 - Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2022/10/07 v1.3.1 - Aide pour l'utilisation de LaTeX en lycee] +% 1.3.1 Ajout d'une option pour ne pas afficher les bords des cases en pixelart +% 1.3.0 Ajout d'une commande pour mettre en forme une conversion depuis la base 10 % 1.2.9 Correction d'une incompatibilité avec simplekv (clés vides...) % 1.2.8 Correction de l'oubli d'une librairie tikz et remise en forme de la documentation % 1.2.7 Calculs de probas pour des lois classiques @@ -932,8 +934,8 @@ } \newcommand\ensPL[2][1]{% - \useKVdefault[kvensemble] - \setKV[kvensemble]{#1} + \useKVdefault[kvensemble]% + \setKV[kvensemble]{#1}% \ifboolKV[kvensemble]{mathpunct}% {\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \mathpunct{} \right\rbrace}% {\left\lbrace \PLensopt{} \StrSubstitute{#2}{/}{{\PLenssep}} \right\rbrace} @@ -1569,7 +1571,8 @@ \setKVdefault[pixelarttkz]{% style=\scriptsize,% correction=false,% - symb=false + symb=false,% + bordcases=true } \newcommand\PLpixelart[2][]{% @@ -1587,7 +1590,10 @@ \xintifboolexpr{\pixcnt>0}% {% \itemtomacro\LCPA[\pixcnt]\pixcol% - \draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;% + \ifboolKV[pixelarttkz]{bordcases}% + {\draw[fill=\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + {\filldraw[\pixcol] ({\n-0.5},{-\thecsvrow+0.5}) rectangle ({\n+0.5},{-\thecsvrow-0.5}) ;}% + % }% {} } @@ -2334,4 +2340,62 @@ } } +%===============CONVFROMDEC============ OK !! +\newcommand\PLnoeud[2]{\tikz[remember picture,baseline=(#1.base)]\node[shape=rectangle,inner sep=0pt](#1){#2};} +\ExplSyntaxOn +\newcommand\convertbasedixtobase[2]{% + \int_to_Base:nn {#1}{#2} +} +\ExplSyntaxOff + +\defKV[convfromten]{% + couleur=\def\PLConvCouleur{#1},% + decalh=\def\PLConvDecalH{#1},% + decalv=\def\PLConvDecalV{#1},% + noeud=\def\PLConvNoeud{#1} +} + +\setKVdefault[convfromten]{% + couleur=red,% + decalh=2pt,% + decalv=3pt,% + rect=true,% + noeud=EEE +} + +\newcommand\PLconvDepuisDec[3][]{% + \useKVdefault[convfromten]% + \setKV[convfromten]{#1}% + \xdef\ValRes{\xintDecToHex{#2}}% + \xdef\ValA{#2}\xdef\ValB{#3}% + \xdef\ValTMP{#2}% + \xdef\ValMU{\inteval{#3-1}}% + \ensuremath{% + \left\lbrace\begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r} + %1ere division + \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}} + \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud1}{\num{\ValR}}% + \xdef\ValTMP{\ValQ}% + \whiledo {\ValTMP > \ValMU}% + {% + \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}% + \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\num{\ValR} + \xdef\ValTMP{\ValQ}% + } + %dernière + \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}% + \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud2}{\num{\ValR}} + \end{array} \right| \Rightarrow \num{#2}_{10}=\convertbasedixtobase{#2}{#3}_{#3}} + \ifboolKV[convfromten]{rect}% + {% + \IfSubStr{\PLConvDecalH}{/}% + {\StrCut{\PLConvDecalH}{/}{\PLConvDecalHg}{\PLConvDecalHd}}% + {\def\PLConvDecalHg{\PLConvDecalH}\def\PLConvDecalHd{\PLConvDecalH}} + \begin{tikzpicture} + \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick] ($(\PLConvNoeud1.north west)+(-\PLConvDecalHg,\PLConvDecalV)$) rectangle ($(\PLConvNoeud2.south east)+(\PLConvDecalHd,-\PLConvDecalV)$) ; + \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick,->,>=latex] ($(\PLConvNoeud2.east)+(\PLConvDecalHd,0)$)--++(0,{0.75\baselineskip}) ; + \end{tikzpicture} + }{} +} + \endinput
\ No newline at end of file |