texlive[64471] Master/texmf-dist: proflycee (22sep22)

commits+karl at tug.org commits+karl at tug.org
Thu Sep 22 22:14:00 CEST 2022


Revision: 64471
          http://tug.org/svn/texlive?view=revision&revision=64471
Author:   karl
Date:     2022-09-22 22:13:59 +0200 (Thu, 22 Sep 2022)
Log Message:
-----------
proflycee (22sep22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
    trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
    trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty

Modified: trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-09-22 20:13:42 UTC (rev 64470)
+++ trunk/Master/texmf-dist/doc/latex/proflycee/ProfLycee-doc.tex	2022-09-22 20:13:59 UTC (rev 64471)
@@ -60,8 +60,8 @@
 \setlength{\parindent}{0pt}
 \definecolor{LightGray}{gray}{0.9}
 
-\def\PLversion{1.2.5}
-\def\PLdate{3 Septembre 2022}
+\def\PLversion{1.2.6}
+\def\PLdate{22 Septembre 2022}
 
 \tcbset{vignettes/.style={%
 		nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -233,6 +233,8 @@
 
 Une commande pour, en \TikZ, créer un pixelart avec correction éventuelle.
 
+Une commande pour, en \TikZ, créer un SudoMaths non forcément $9\times9$.
+
 \vspace{1.5cm}
 
 \hfill{}\textit{Merci à Anne pour ses retours et sa relecture !}
@@ -3968,8 +3970,167 @@
 
 \newpage
 
+\section{SudoMaths, en \TikZ}\label{sudomaths}
+
+\subsection{Introduction}
+
+\begin{codeidee}
+L'idée est de \textit{proposer} un environnement \TikZ, une commande permettant de tracer des grilles de SudoMaths.
+
+L'environnement créé, lié à \TikZ, trace la grille de SudoMaths (avec les blocs démarqués), et peut la remplir avec une liste d'éléments.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+%grille classique non remplie, avec légendes H et V
+%les {} non nécessaires pour préciser que les cases seront "vides"
+\PLsudomaths{}
+\end{codetex}
+
+\begin{codesortie}
+\PLsudomaths{}
+\end{codesortie}
+
+\begin{codeinfo}
+La commande \ctex{PLsudomaths} crée donc la grille (remplie ou non), dans un environnement \TikZ, c'est \textit{c'est tout} ! 
+
+\smallskip
+
+Si on veut exploiter le tracé de la grille, on peut utiliser l'\textit{environnement} \ctex{PLenvsudomaths} dans lequel on peut rajouter toute commande en \TikZ{} !
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+%grille "toute seule"
+\PLsudomaths[<options>]{<liste>}
+
+%grille avec ajout de code
+\begin{PLenvsudomaths}[<options>]{<grille>}
+	<commandes tikz> ;
+\end{PLenvsudomaths}
+\end{codetex}
+
+\pagebreak
+
+\subsection{Clés et options}
+
+\begin{codecles}
+Quelques \Cle{clés} sont disponibles pour cette commande :
+
+\begin{itemize}
+	\item la clé \Cle{epaisseurg} pour gérer l'épaisseur des traits épais ; \hfill~défaut \Cle{1.5pt}
+	\item la clé \Cle{epaisseur} pour gérer l'épaisseur des traits fins ; \hfill~défaut \Cle{0.5pt}
+	\item la clé \Cle{unite} qui est l'unité graphique de la figure ; \hfill~défaut \Cle{1cm}
+	\item la clé \Cle{couleurcase} pour la couleur (éventuelles) des cases ; \hfill~défaut \Cle{LightBlue!50}
+	\item la clé \Cle{couleurtexte} pour gérer la couleur du label des cases ; \hfill~défaut \Cle{blue}
+	\item la clé \Cle{nbcol} qui est le nombre de colonnes ; \hfill~défaut \Cle{9}
+	\item la clé \Cle{nbsubcol} qui est le nombre de sous-colonnes ; \hfill~défaut \Cle{3}
+	\item la clé \Cle{nblig} qui est le nombre de lignes ; \hfill~défaut \Cle{9}
+	\item la clé \Cle{nbsublig} qui est le nombre de sous-colonnes ; \hfill~défaut \Cle{3}
+	\item la clé \Cle{police} qui formatte le label des cases ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
+	\item le booléen \Cle{legendes} qui affiche ou non les légendes (H et V) des cases ; \hfill~défaut \Cle{true}
+	\item la clé \Cle{policeleg} qui formatte le label des légendes ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
+	\item la clé \Cle{listelegv} qui est la liste de la légende verticale ; \hfill~défaut \Cle{ABCD...WXYZ}
+	\item la clé \Cle{listelegh} qui est la liste de la légende horizontale ; \hfill~défaut \Cle{abcd...wxyz}
+	\item la clé \Cle{decallegende} qui est le décalage de la légende par rapport à la grille. \hfill~défaut \Cle{0.45}
+\end{itemize}
+\end{codecles}
+
+\begin{codeinfo}
+La liste éventuelle des éléments à rentrer dans le tableau est traitée par le package \ctex{listofitems}, et se présente sous la forme suivante : \ctex{ / / / ... / / § / / / ... / / § ... § / / / ... / / }
+
+\smallskip
+
+Il peut donc être intéressant de \textit{déclarer} la liste au préalable pour simplifier la saisie de la commande !
+\end{codeinfo}
+
+\begin{codeinfo}
+La \Cle{couleurcase} est gérée -- en interne -- par le caractère \ctex{*} qui permet de préciser qu'on veut que la case soit coloriée.
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+%grille 6x6 avec blocs 2x3, avec coloration de cases (présentée sous forme de "cases")
+\def\grilleSuMa{%
+	(a)* / (b)* /      /      / (c)* / (d)* §%
+	(e)* /      /      / (f)* / (g)* / (h)* §%
+	     /      / (i)* /      /      / (j)* §%
+	     /      / (k)* /      / (l)* / (m)* §%
+	(n)* /      / (o)* /      /      / (p)* §%
+	     /      /      / (q)* /      /      §%
+}
+
+\PLsudomaths[unite=0.75cm,nbcol=6,nbsubcol=2,nblig=6,nbsublig=3,police=\small\bfseries\ttfamily,%
+	couleurtexte=red,couleurcase=yellow!50,legendes=false]{\grilleSuMa}
+\end{codetex}
+
+\begin{codesortie}
+\def\grilleSuMa{%
+	(a)* / (b)* /      /      / (c)* / (d)* §%
+	(e)* /      /      / (f)* / (g)* / (h)* §%
+	/      / (i)* /      /      / (j)* §%
+	/      / (k)* /      / (l)* / (m)* §%
+	(n)* /      / (o)* /      /      / (p)* §%
+	/      /      / (q)* /      /      §%
+}
+
+\PLsudomaths[unite=0.75cm,nbcol=6,nbsubcol=2,nblig=6,nbsublig=3,police=\small\bfseries\ttfamily,couleurtexte=red,couleurcase=yellow!50,legendes=false]{\grilleSuMa}
+\end{codesortie}
+
+\pagebreak
+
+\begin{codeinfo}
+La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0\,;\,0)$ et $(\text{nbcol}\,;\,-\text{nblig})$, de sorte que les labels des cases sont situés au nœuds de coordonnées $(x,5\,;\,-y,5)$.
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+%grille classique avec coloration de cases et commande tikz
+%graduations rajoutées pour la lecture des coordonnées
+\def\grilleSuMaB{%
+	*/////4///§%
+	/*///3////§%
+	//*//////§%
+	///*/////§%
+	////*////§%
+	/////*///§%
+	//5*/////*/§%
+	/////B///*§%
+	*///9////Q/§%
+}
+
+\begin{PLenvsudomaths}[%
+		unite=0.66cm,police=\footnotesize\bfseries\ttfamily,couleurcase=ForestGreen!50,%
+		listelegv=QSDFGHJKL,listelegh=poiuytrez]{\grilleSuMaB}
+	\draw[red,very thick,<-] (7.5,-4.5) to[bend right] ++ (4,-1) node[right] {code rajouté...} ;
+\end{PLenvsudomaths}
+\end{codetex}
+
+\begin{codesortie}
+\def\grilleSuMaB{%
+	*/////4///§%
+	/*///3////§%
+	//*//////§%
+	///*/////§%
+	////*////§%
+	/////*///§%
+	//5*/////*/§%
+	/////B///*§%
+	*///9////Q/§%
+}
+
+\begin{PLenvsudomaths}[%
+		unite=0.66cm,police=\footnotesize\bfseries\ttfamily,couleurcase=ForestGreen!50,%
+		listelegv=QSDFGHJKL,listelegh=poiuytrez]{\grilleSuMaB}
+	\draw[red,very thick,<-] (7.5,-4.5) to[bend right] ++ (4,-1) node[right] {code rajouté pour montrer la case \textsf{Ge}} ;
+	\foreach \x in {0,1,...,9} \draw[lightgray] (\x,-9) node[below,font=\scriptsize\ttfamily] {\x} ;
+	\foreach \y in {-1,-2,...,-9} \draw[lightgray] (9,\y) node[right,font=\scriptsize\ttfamily] {\y} ;
+	\draw[lightgray] (9,0) node[right,font=\scriptsize\ttfamily] {~0} ;
+\end{PLenvsudomaths}
+\end{codesortie}
+
+\newpage
+
 \section{Historique}
 
+{\small \bverb|v1.2.6|~:~~~~Ajout d'un environnement pour des SudoMaths (page \pageref{sudomaths})
+
 {\small \bverb|v1.2.5|~:~~~~Ajout de commandes pour des boîtes à moustaches (page \pageref{boiteamoustaches})
 
 {\small \bverb|v1.2.4|~:~~~~Correction de quelques bugs mineurs, et mise à jour de la doc

Modified: trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-09-22 20:13:42 UTC (rev 64470)
+++ trunk/Master/texmf-dist/tex/latex/proflycee/ProfLycee.sty	2022-09-22 20:13:59 UTC (rev 64471)
@@ -3,7 +3,8 @@
 % or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/09/03 v1.2.5 - Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/09/22 v1.2.6 - Aide pour l'utilisation de LaTeX en lycee]
+% 1.2.6	Ajout d'un environnement tikz pour des sudomaths personnalisés
 % 1.2.5	Ajout d'une commande pour des boites à moustaches, en tikz
 % 1.2.4	Correction de quelques bugs mineurs, et mise à jour de la doc
 % 1.2.3	Ajout d'un environnement simplifié pour du code python
@@ -2011,7 +2012,7 @@
 	\def\BaMaxexmax{\fpeval{\BaMAxeMax+\BaMAxeElarg*\BaMaxelargeur}}
 	\draw[\BaMAxeEpaisseur,->] (\BaMaxexmin,0) -- (\BaMaxexmax,0) ;
 	\ifboolKV[boiteamoustachesaxe]{affvaleurs}
-	{\foreach \x in \BaMAxeValeurs \draw[\BaMAxeEpaisseur] (\x,3pt)--(\x,-3pt) node[below=3pt] {\x} ;}
+	{\foreach \x in \BaMAxeValeurs \draw[\BaMAxeEpaisseur] (\x,3pt)--(\x,-3pt) node[below=3pt] {\num{\x}} ;}
 	{}
 }
 
@@ -2051,4 +2052,131 @@
 	{}
 }
 
+%================SUDOMATHS============= OK !!
+\defKV[PLTIKZSUDOM]{%
+	couleurtexte=\def\PLSMcoultexte{#1},%
+	epaisseur=\def\PLSMepf{#1},%
+	epaisseurg=\def\PLSMepg{#1},%
+	unite=\def\PLSMunite{#1},%
+	couleurcase=\def\PLSMcoulcase{#1},%
+	nbcol=\def\PLSMnbcol{#1},%
+	nbsubcol=\def\PLSMnbsubcol{#1},%
+	nblig=\def\PLSMnblig{#1},%
+	nbsublig=\def\PLSMnbsublig{#1},%
+	police=\def\PLSMfonte{#1},%
+	policeleg=\def\PLSMfonteleg{#1},%
+	listelegv=\def\PLSMlistelegv{#1},%
+	listelegh=\def\PLSMlistelegh{#1},%
+	decallegende=\def\PLSMdecalleg{#1}
+}
+
+\setKVdefault[PLTIKZSUDOM]{%
+	epaisseurg=1.5pt,%
+	epaisseur=0.5pt,%
+	unite=1cm,%
+	couleurcase=LightBlue!50,%
+	couleurtexte=blue,%
+	nbcol=9,%
+	nbsubcol=3,%
+	nblig=9,%
+	nbsublig=3,
+	police=\normalfont\normalsize,%
+	policeleg=\normalfont\sffamily,%
+	legendes=true,%
+	listelegv=ABCDEFGHIJKLMNOPQRSTUVWXYZ,%
+	listelegh=abcdefghijklmnopqrstuvwxyz,%
+	decallegende=0.45
+}
+
+\NewDocumentEnvironment{PLenvsudomaths}{ O{} m }
+	{
+	\useKVdefault[PLTIKZSUDOM]
+	\setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
+	%calculs intermédiaires
+	\def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
+	\def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
+	%lecture liste
+	\IfEq{#2}{}{}%
+		{%
+			\setsepchar[.]{§./}%
+			\readlist*\SPGrilleSudoMaths{#2}%
+		}
+	%débt envtik
+	\begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
+		%cases
+		\IfEq{#2}{}{}%
+		{%
+		\foreach \i in {1,2,...,\PLSMnblig}{%
+			\foreach \j in {1,2,...,\PLSMnbcol}{%
+				\itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
+				\IfSubStr{\SMcase}{*}%si on veut colorier via *
+				{%
+					\StrDel{\SMcase}{*}[\SMcaseb]%
+					\draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
+				}
+				{%
+					\draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
+				}
+			}
+		}%
+		}
+		%grilles
+		\draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
+		\draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+		\draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+		%légendes
+		\ifboolKV[PLTIKZSUDOM]{legendes}
+			{%
+				\foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
+				\foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
+			}{}
+	}
+	{
+	\end{tikzpicture}
+	}
+
+\NewDocumentCommand\PLsudomaths{ O{} m }{%
+	\useKVdefault[PLTIKZSUDOM]
+	\setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
+	%calculs intermédiaires
+	\def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
+	\def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
+	%lecture liste
+	\IfEq{#2}{}{}%
+	{%
+		\setsepchar[.]{§./}%
+		\readlist*\SPGrilleSudoMaths{#2}%
+	}
+	%débt envtik
+	\begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
+		%cases
+		\IfEq{#2}{}{}%
+		{%
+			\foreach \i in {1,2,...,\PLSMnblig}{%
+				\foreach \j in {1,2,...,\PLSMnbcol}{%
+					\itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
+					\IfSubStr{\SMcase}{*}%si on veut colorier via *
+					{%
+						\StrDel{\SMcase}{*}[\SMcaseb]%
+						\draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
+					}
+					{%
+						\draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
+					}
+				}
+			}%
+		}
+		%grilles
+		\draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
+		\draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+		\draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+		%légendes
+		\ifboolKV[PLTIKZSUDOM]{legendes}
+		{%
+			\foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
+			\foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
+		}{}
+	\end{tikzpicture}
+}
+
 \endinput
\ No newline at end of file



More information about the tex-live-commits mailing list.