summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/proflycee
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-08 03:03:41 +0000
committerNorbert Preining <norbert@preining.info>2022-10-08 03:03:41 +0000
commit54f6d0a2d0879db458c3cdc6b2e666c67a0da7b0 (patch)
tree04d78cc9f3edb647dc5e5b4ece71b0a0f681bc49 /macros/latex/contrib/proflycee
parentbbbfa0a90645d4da46b1492f6513b28a01eb78da (diff)
CTAN sync 202210080303
Diffstat (limited to 'macros/latex/contrib/proflycee')
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin861172 -> 870624 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex117
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty74
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
index b050328eed..37dc7a1700 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
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