summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-31 03:00:49 +0000
committerNorbert Preining <norbert@preining.info>2024-03-31 03:00:49 +0000
commitd1109269e156ddc67b67f942a2e5aad3b37a40a6 (patch)
tree41f9af43bf0904dcbac73736c58ace6cc5e28f36 /macros/latex/contrib
parent16a9aadc4ae32ef5d7f20d62a3606b05e20f3405 (diff)
CTAN sync 202403310300
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdfbin116310 -> 116272 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex8
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdfbin339316 -> 519283 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex200
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.pdfbin0 -> 177853 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/envtexo_exemples.tex80
-rw-r--r--macros/latex/contrib/customenvs/tex/customenvs.sty252
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1662397 -> 1663998 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex300
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdfbin73899 -> 73910 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty3
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-espace.tex1100
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex28
-rw-r--r--macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdfbin436049 -> 436863 bytes
-rw-r--r--macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex40
-rw-r--r--macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdfbin83036 -> 103153 bytes
-rw-r--r--macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex42
-rw-r--r--macros/latex/contrib/pynotebook/tex/pynotebook.sty192
-rw-r--r--macros/latex/contrib/vectorlogos/README.md51
-rw-r--r--macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.pdfbin487424 -> 779044 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.tex74
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-ctanlion.pdfbin0 -> 17007 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-latexproject.pdfbin0 -> 12562 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon-alt.pdfbin0 -> 143483 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon.pdfbin0 -> 5412 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex.pdfbin0 -> 19673 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks-alt.pdfbin0 -> 1447 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks.pdfbin0 -> 93222 bytes
-rw-r--r--macros/latex/contrib/vectorlogos/tex/vectorlogos.sty16
29 files changed, 1837 insertions, 549 deletions
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
index f8c88d906e..c4a06de15b 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
index c4727a7422..4bc63e0c5f 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.2}
-\def\TPdate{17/03/2024}
+\def\TPversion{0.1.3}
+\def\TPdate{30/03/2024}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -111,7 +111,9 @@
\section{History}
-\verb|v0.1.1|~:~~~~Pencil of skills
+\verb|v0.1.3|~:~~~~Environment for exercise(s) (in french doc)
+
+\verb|v0.1.2|~:~~~~Pencil of skills
\verb|v0.1.1|~:~~~~Skills table (only french for the moment...)
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
index 2d894043ad..c81bd43b7f 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
index 5f05be2485..650bb37932 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
@@ -39,8 +39,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.2}
-\def\TPdate{17 mars 2024}
+\def\TPversion{0.1.3}
+\def\TPdate{30 mars 2024}
\usepackage[most]{tcolorbox}
\tcbuselibrary{listingsutf8}
\newtcblisting{DemoCode}[1]{%
@@ -66,10 +66,10 @@
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc},%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait},%
keywordstyle={\color{orange}}
},%
#1
@@ -149,6 +149,8 @@
\section{Historique}
+\verb|v0.1.3|~:~~~~Environnement/commande pour des exercices, avec personnalisation(s)
+
\verb|v0.1.2|~:~~~~Crayon de compétences
\verb|v0.1.1|~:~~~~Tableaux de compétences
@@ -784,4 +786,194 @@ L'argument, obligatoire et entre \MontreCode{\{...\}} est la liste des catégori
{Chercher/Compétence 1\\Compétence 2,Modéliser/{Compétence 1\\Compétence 2}}
\end{DemoCode}
+\pagebreak
+
+\section{Titre d'exercices}
+
+\subsection{Principe et définition du style global}
+
+L'idée est de proposer une commande ou un environnement pour afficher, \textit{facilement}, un \textit{titre} pour les exercices d'une évaluation ou d'une fiche d'exercices.
+
+\smallskip
+
+Les éléments personnalisables sont :
+
+\begin{itemize}
+ \item le libellé via la clé \MontreCode{[Libelle]}, qui vaut \MontreCode{Exercice~} par défaut ;
+ \item la couleur via la clé \MontreCode{[Couleur]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+ \item la police via la clé \MontreCode{[Police]}, qui vaut \MontreCode{\textbackslash bfseries\textbackslash LARGE\textbackslash sffamily} par défaut ;
+ \item l'épaisseur du trait (éventuel) via la clé \MontreCode{[EpTrait]}, qui vaut \MontreCode{1.1pt} par défaut.
+\end{itemize}
+
+L'utilisateur peut personnaliser \textit{globalement} les éléments précédents, les styles seront dans ce cas propagés à tous les environnements ou à toutes les commandes créant les titres.
+
+\begin{DemoCode}{listing only}
+%personnalisation(s)
+\StyleEnvtExo[clés]
+
+%paramètres par défaut
+\StyleEnvtExoDefaut
+\end{DemoCode}
+
+Une fois les styles \textit{choisis}, il suffit d'utiliser la commande d'environnement ou la commande \textit{directe} :
+
+\begin{DemoCode}{}
+%exo1, environnement par défaut
+\begin{EnvtExo}
+Ceci est un exercice\ldots
+\end{EnvtExo}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%exo2, macro par défaut
+\TitreExo
+
+Ceci est un exercice\ldots
+\end{DemoCode}
+
+\subsection{Options de personnalisations}
+
+Hormis le style global, il est possible de modifier/ajouter certains éléments :
+
+\begin{itemize}
+ \item le trait peut être défini :
+ \begin{itemize}
+ \item plein (par défaut) ;
+ \item en pointillés, via \texttt{dotfill} ;
+ \item en \textit{dashillés}, via le package \texttt{dashrulex} ;
+ \end{itemize}
+ \item un complément de titre peut être rajouté ;
+ \item une décoration peut être rajoutée en fin de ligne :
+ \begin{itemize}
+ \item des points, sous la forme \texttt{(xx points)} ;
+ \item une image, via \texttt{graphicx}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \item une icône, via \texttt{fontawesome5}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \item un petit chronomètre, via \texttt{pictochrono}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \item une ceinture colorée, via \texttt{coloredbelts}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+ \end{itemize}
+ \item le compteur (nommé \MontreCode{numeroexo}) peut être désactivé et \textit{adpaté} via les commandes classiques de compteurs.
+\end{itemize}
+
+\pagebreak
+
+Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+ \item \MontreCode{Type} : type de libellés, parmi \MontreCode{Classique} (défaut) ou \MontreCode{Perso/titrepersonnalisé}
+ \item \MontreCode{ComplementTitre} : complément pour la titre, après le numéro (attention aux espaces) ;
+ \item \MontreCode{CodeDebut} : code \LaTeX\ qui sera \textit{rajouté} entre le titre et l'énoncé ;
+ \item \MontreCode{EchelleImage} : pour modifier ponctuellement l'image de décoration ;
+ \item \MontreCode{Compteur} : booléen pour activer/désactiver (\MontreCode{true} par défaut) le compteur (non affiché et non incrémenté) ;
+ \item \MontreCode{Decoration} : choix de la décoration parmi :
+ \begin{itemize}
+ \item \MontreCode{Icone/...} := afficher l'icône \MontreCode{...} à la fin de la ligne ;
+ \item \MontreCode{Image/...} := afficher l'image \MontreCode{...} à la fin de la ligne ;
+ \item \MontreCode{Ceinture/...} := afficher la ceinture couleur \MontreCode{...} à la fin de la ligne ;
+ \item \MontreCode{Chrono/...} := afficher le chrono de durée \MontreCode{...} à la fin de la ligne ;
+ \item \MontreCode{Points/...} := afficher les points \MontreCode{(... points)} à la fin de la ligne ;
+ \end{itemize}
+ \item \MontreCode{Trait} : choix du trait parmi :
+ \begin{itemize}
+ \item \MontreCode{plein} := un trait plain (par défaut) ;
+ \item \MontreCode{non} := aucun trait ;
+ \item \MontreCode{pointilles} := pointilles (\texttt{\textbackslash dotfill}) ;
+ \item \MontreCode{dashilles} := pointilles \textit{dash} (\texttt{\textbackslash hdashrule}).
+ \end{itemize}
+\end{itemize}
+
+\subsection{Exemples}
+
+Les exemples suivants ont été obtenus via un document externe (fourni avec le package), du fait du chargement de packages spécifiques.
+
+Le code proposé utilise l'environnement, mais la commande simple est complètement compatible également !
+
+\smallskip
+
+{\footnotesize\faExclamationTriangle} Les petites \textit{images} ne sont pas incluses dans le package, elles sont là pour illustrer l'utilisation d'images personnelles.
+
+\begin{DemoCode}{listing only}
+\documentclass[a5paper,11pt]{article}
+\usepackage[margin=1cm]{geometry}
+\usepackage{customenvs}
+%facultatif, pour les décorations
+\usepackage{graphicx}
+\usepackage{dashrulex}
+\usepackage{coloredbelts}
+\usepackage{pictochrono}
+%mise en page
+\usepackage{ipsum}
+\setlength{\parindent}{0pt}
+\end{DemoCode}
+
+\pagebreak
+
+\begin{DemoCode}{listing only}
+\begin{EnvtExo}%exo1
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Trait=pointilles]%exo2
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Trait=dashilles]%exo3
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Chrono/20]%exo6
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Points/7]%exo9
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\StyleEnvtExoDefaut
+
+\begin{EnvtExo}%
+ [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
+\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
+
+\ipsum<Lang=FR,Type=sent>
+\end{DemoCode}
+
+\pagebreak
+
+\begin{DemoCode}{}
+\includegraphics{envtexo_exemples.pdf}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
new file mode 100644
index 0000000000..717f3a12c9
--- /dev/null
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
new file mode 100644
index 0000000000..bc9bf990f7
--- /dev/null
+++ b/macros/latex/contrib/customenvs/doc/envtexo_exemples.tex
@@ -0,0 +1,80 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode}
+% arara: pdflatex: {shell: no, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
+
+\documentclass[a5paper,11pt]{article}
+\usepackage[margin=1cm]{geometry}
+\usepackage{customenvs}
+%facultatif, pour les décorations
+\usepackage{graphicx}
+\usepackage{dashrulex}
+\usepackage{coloredbelts}
+\usepackage{pictochrono}
+%mise en page
+\usepackage{ipsum}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\begin{EnvtExo}%exo1
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Trait=pointilles]%exo2
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Trait=dashilles]%exo3
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Chrono/20]%exo6
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Decoration=Points/7]%exo9
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\StyleEnvtExoDefaut
+
+\begin{EnvtExo}%
+ [Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
+ \ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
+\TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
+
+\ipsum<Lang=FR,Type=sent>
+
+\end{document}
diff --git a/macros/latex/contrib/customenvs/tex/customenvs.sty b/macros/latex/contrib/customenvs/tex/customenvs.sty
index 34b3c30803..08083eb103 100644
--- a/macros/latex/contrib/customenvs/tex/customenvs.sty
+++ b/macros/latex/contrib/customenvs/tex/customenvs.sty
@@ -3,9 +3,10 @@
% source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs}[2024/03/17 0.1.2 Custom classic environments]
+\ProvidesPackage{customenvs}[2024/03/30 0.1.3 Custom classic environments]
%====HISTORIQUE
+% v 0.1.3 Environnement/Commande pour présentation d'un exercice
% v 0.1.2 Crayon de compétences
% v 0.1.1 Ajout de tableaux de compétences
% v 0.1.0 Version initiale
@@ -50,6 +51,7 @@
\RequirePackage{simplekv}
\RequirePackage{xstring}
\RequirePackage{listofitems}
+\RequirePackage{calc}
\RequirePackage{tikz}
\usetikzlibrary{decorations.pathmorphing,positioning,shapes.misc,calc}
@@ -663,6 +665,254 @@
\end{tikzpicture}%
}
+%====EXERCICE PERSO
+
+\newcounter{numeroexo}
+\setcounter{numeroexo}{0}
+\newlength{\eptraitexo}
+\setlength{\eptraitexo}{1.1pt}
+\newlength{\eptraitexospace}
+\setlength{\eptraitexospace}{1.5\eptraitexo}
+\newlength{\tmp@image@hauteur@totale}
+\newlength{\tmp@image@profondeur}
+
+\colorlet{macouleurexo}{blue!50!black}
+
+\newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}%
+\newcommand\tmplabelexo{Exercice~}%
+
+\defKV[globalstyleexo]{%
+ Libelle=\renewcommand\tmplabelexo{#1},%
+ Couleur=\colorlet{macouleurexo}{#1},%
+ Police=\renewcommand\tmpstyleexo{#1},%
+ EpTrait=\setlength{\eptraitexo}{#1}
+}
+
+\setKVdefault[globalstyleexo]{%
+ Libelle={Exercice~},%
+ Couleur={blue!50!black},%
+ Police={\bfseries\LARGE\sffamily},%
+ EpTrait={1.1pt}
+}
+
+\NewDocumentCommand\StyleEnvtExo{ O{} }{%
+ \restoreKV[globalstyleexo]%
+ \setKV[globalstyleexo]{#1}%
+}
+\NewDocumentCommand\StyleEnvtExoDefaut{ }{%
+ \restoreKV[globalstyleexo]%
+}
+
+\defKV[EnvtExercice]{%
+ Type=\def\EnvtExoType{#1},%
+ ComplementTitre=\def\EnvtExoCpltTitre{#1},%
+ CodeDebut=\def\EnvtExoCodeAvant{#1},%
+ %Couleur=\def\EnvtExoCouleur{#1},%
+ EchelleImage=\def\EnvtExoScaleImg{#1},%
+ Decoration=\def\EnvtExoDeco{#1},%
+ Trait=\def\EnvtExoTrait{#1}
+}
+\setKVdefault[EnvtExercice]{
+ Type=Classique,%
+ ComplementTitre={},%
+ CodeDebut={},%
+ %Couleur=macouleurexo,%
+ EchelleImage=1.15,%
+ Compteur=true,%
+ Decoration={},%
+ Trait=plein
+}
+
+\NewDocumentEnvironment{EnvtExo}{ !O{} }%
+{%
+ \useKVdefault[EnvtExercice]%
+ \setKV[EnvtExercice]{#1}%
+ \addtocounter{numeroexo}{1}%
+ \ifboolKV[EnvtExercice]{Compteur}{}{\addtocounter{numeroexo}{-1}}%
+ \def\hrulefill{\leavevmode\leaders\hrule height \eptraitexo\hfill\kern\z@}%épaisseur
+ \noindent\begingroup\color{macouleurexo}%
+ \IfStrEq{\EnvtExoType}{Classique}%OK exo°____vide
+ {%
+ %label avec numéro et complément
+ \tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %trait éventuel
+ \IfStrEqCase{\EnvtExoTrait}{%
+ {plein}{\,\hrulefill}%
+ {pointilles}{\,\dotfill}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
+ {non}{\hfill}%
+ }%
+ %décoration éventuelle
+ \IfSubStr{\EnvtExoDeco}{Icone}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
+ \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Ceinture}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]%
+ \,\CeintureCouleur{\EnvtExoCouleur}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Chrono}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
+ \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Points}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
+ \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
+ \,(\EnvtExoPts\ \pts)%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Image}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]%
+ \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
+ \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
+ }{}%
+ }{}%
+ \IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
+ {%
+ \StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
+ %label avec numéro et complément
+ \tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %trait éventuel
+ \IfStrEqCase{\EnvtExoTrait}{%
+ {plein}{\,\hrulefill}%
+ {pointilles}{\,\dotfill}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
+ {non}{\hfill}%
+ }%
+ %décoration éventuelle
+ \IfSubStr{\EnvtExoDeco}{Icone}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
+ \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Ceinture}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]%
+ \,\CeintureCouleur{\EnvtExoCouleur}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Chrono}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
+ \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Points}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
+ \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
+ \,(\EnvtExoPts\ \pts)%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Image}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]%
+ \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
+ \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
+ }{}%
+ }{}%
+ \endgroup%
+ \def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
+ \par%
+ \EnvtExoCodeAvant%
+}%
+{}%
+
+\NewDocumentCommand\TitreExo{ !O{} }{%
+ \useKVdefault[EnvtExercice]%
+ \setKV[EnvtExercice]{#1}%
+ \addtocounter{numeroexo}{1}%
+ \ifboolKV[EnvtExercice]{Compteur}{}{\addtocounter{numeroexo}{-1}}%
+ \def\hrulefill{\leavevmode\leaders\hrule height \eptraitexo\hfill\kern\z@}%épaisseur
+ \noindent\begingroup\color{macouleurexo}%
+ \IfStrEq{\EnvtExoType}{Classique}%OK exo°____vide
+ {%
+ %label avec numéro et complément
+ \tmpstyleexo\tmplabelexo\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %trait éventuel
+ \IfStrEqCase{\EnvtExoTrait}{%
+ {plein}{\,\hrulefill}%
+ {pointilles}{\,\dotfill}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
+ {non}{\hfill}%
+ }%
+ %décoration éventuelle
+ \IfSubStr{\EnvtExoDeco}{Icone}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
+ \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Ceinture}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]%
+ \,\CeintureCouleur{\EnvtExoCouleur}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Chrono}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
+ \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Points}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
+ \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
+ \,(\EnvtExoPts\ \pts)%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Image}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]%
+ \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
+ \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
+ }{}%
+ }{}%
+ \IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
+ {%
+ \StrBehind{\EnvtExoType}{/}[\EnvtExoLabel]%
+ %label avec numéro et complément
+ \tmpstyleexo\EnvtExoLabel\ifboolKV[EnvtExercice]{Compteur}{\thenumeroexo}{}\EnvtExoCpltTitre%
+ %trait éventuel
+ \IfStrEqCase{\EnvtExoTrait}{%
+ {plein}{\,\hrulefill}%
+ {pointilles}{\,\dotfill}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
+ {non}{\hfill}%
+ }%
+ %décoration éventuelle
+ \IfSubStr{\EnvtExoDeco}{Icone}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
+ \,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Ceinture}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoCouleur]%
+ \,\CeintureCouleur{\EnvtExoCouleur}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Chrono}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
+ \,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Points}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
+ \IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
+ \,(\EnvtExoPts\ \pts)%
+ }{}%
+ \IfSubStr{\EnvtExoDeco}{Image}%
+ {%
+ \StrBehind{\EnvtExoDeco}{/}[\EnvtExoImg]%
+ \settototalheight{\tmp@image@hauteur@totale}{\hbox{\tmpstyleexo qB}}%
+ \,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp@image@hauteur@totale]{\EnvtExoImg}}}$%
+ }{}%
+ }{}%
+ \endgroup%
+ \def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
+ \par%
+ \EnvtExoCodeAvant%
+}
+
%%----COMMANDES EN
%====QCMs
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 67411ded0e..d83649de1a 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
deleted file mode 100644
index d12abe48b8..0000000000
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ /dev/null
@@ -1,300 +0,0 @@
-% !TeX TXS-program:compile = txs:///arara
-% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode}
-% arara: pythontex: {rerun: always}
-% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode}
-% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
-
-\documentclass[a4paper,french,11pt]{article}
-\def\PLversion{3.03b}
-\def\PLdate{25 mars 2024}
-\usepackage{amsfonts}
-\usepackage{ProfLycee}
-\useproflyclib{piton,minted,pythontex,ecritures,espace}
-\usepackage[math-style=french]{fourier-otf}
-\usepackage{mathrsfs}%pour mathscr
-\usepackage{awesomebox}
-\usepackage[lua]{tkz-euclide}
-\usepackage{tkz-tab}
-\tikzstyle{every picture}+=[remember picture]
-\usetikzlibrary{hobby}
-\usepackage[group-minimum-digits=4]{siunitx}
-\sisetup{locale=FR}
-\usepackage{enumitem}
-\usepackage{fancyvrb}
-\usepackage{fancyhdr}
-\usepackage{tabularray}
-\usepackage{multicol}
-\DeclareMathSymbol{;}\mathbin{operators}{'73} %espacement avec ;
-%fancy
-\fancyhf{}
-\renewcommand{\headrulewidth}{0pt}
-\lfoot{\sffamily \small [ProfLycee]}
-\cfoot{\sffamily \small - \thepage{} -}
-\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
-
-\usepackage{graphics}
-\usepackage{hologo}
-\providecommand\tikzlogo{Ti\textit{k}Z}
-\providecommand\TeXLive{\TeX{}Live\xspace}
-\providecommand\PSTricks{\textsf{PSTricks}\xspace}
-\let\pstricks\PSTricks
-\let\TikZ\tikzlogo
-\newcommand\TableauDocumentation{%
- \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\huge\sffamily}}
- {\LaTeX} & {\hologo{pdfLaTeX}} & {\hologo{LuaLaTeX}} & {\TikZ} & {\TeXLive} & {\hologo{MiKTeX}} \\
- \end{tblr}
-}
-\usepackage{simplekv}
-\usepackage{menukeys}
-\let\tab\relax
-\usepackage{tabto}
-\usepackage{pgf,pgfplots}
-\pgfplotsset{compat=newest,xlabel near ticks,ylabel near ticks}
-\usepackage{listofitems}
-\usepackage{xintexpr}
-\usepackage{codehigh}
-\usepackage{scontents}
-\usepackage{hyperref}
-\urlstyle{same}
-\hypersetup{pdfborder=0 0 0}
-\usepackage{geometry}
-\geometry{margin=1.5cm}
-\usepackage{babel}
-\usepackage{newverbs}
-
-\input{ProfLycee-doc-macropreamb.tex}
-
-\input{ProfLycee-doc-pagegarde.tex}
-
-\newpage
-
-\phantomsection
-\hypertarget{matoc}{}
-
-\tableofcontents
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Introduction}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-introduction.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Liste des commandes}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-listecommandes.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Écritures mathématiques}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-ecritures.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour l'analyse}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-outilsanalyse.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils graphiques}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-outilsgraphiques.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Présentation de codes}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-prescodes.tex}
-
-\pagebreak
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour la géométrie}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-outilsgeom.tex}
-
-\pagebreak
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour la géométrie analytique}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-outilsgeomanalyt.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour les statistiques}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-stats.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour les probabilités}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-probas.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Outils pour l'arithmétique}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-arithm.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Écritures, simplifications}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-simplif.tex}
-
-\pagebreak
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Jeux et récréations}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-jeuxrecreat.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Compétences en lycée}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-competences.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Projets, en test}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-projets.tex}
-
-\newpage
-
-\phantom{t}\par\vfill\par
-\begin{PART}
- \begin{center}
- \Huge\MakeUppercase{Historique}
- \end{center}
-\end{PART}
-\par\vfill\par\phantom{t}
-
-\newpage
-
-\input{ProfLycee-doc-historique.tex}
-
-\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
index 8d441bcc5c..f8e331e0a6 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index 02c4a3a8f8..be9319048d 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2024/03/25 3.03b Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2024/03/30 3.03c Aide pour l'utilisation de LaTeX en lycee]
+% 3.03c Correction du fonctionnement gobble avec piton + compatibilité luamplib PfC
% 3.03b Compétences Maths Lycées + \pflnum pour num+xint :-) + correction de bugs (div eucl)
% 3.03a Forme canonique + fonction homographique
% 3.02g Correction de bugs avec les arbres de probas
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-espace.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-espace.tex
index a8b48af2f6..229fb03434 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-espace.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-espace.tex
@@ -7,11 +7,27 @@
\ifluatex
\RequirePackage{luamplib}%
\mplibtextextlabel{enable}%
- \everymplib{input PfLEspace; beginfig(1);}%
- \everyendmplib{endfig;}%
-\else%
- \RequirePackage[shellescape]{gmp}%inclusion de figures metapost "à la volée"%
- \gmpoptions{everymp={prologues:=3; input PfLEspace;}}%
+ \everymplib[PfLAA]{}\everyendmplib[PfLAA]{}%
+ \everymplib[PfLAB]{}\everyendmplib[PfLAB]{}%
+ \everymplib[PfLAC]{}\everyendmplib[PfLAC]{}%
+ \everymplib[PfLAD]{}\everyendmplib[PfLAD]{}%
+ \everymplib[PfLAE]{}\everyendmplib[PfLAE]{}%
+ \everymplib[PfLAF]{}\everyendmplib[PfLAF]{}%
+ \everymplib[PfLAG]{}\everyendmplib[PfLAG]{}%
+ \everymplib[PfLAH]{}\everyendmplib[PfLAH]{}%
+ \everymplib[PfLAI]{}\everyendmplib[PfLAI]{}%
+ \everymplib[PfLAJ]{}\everyendmplib[PfLAJ]{}%
+ \everymplib[PfLAK]{}\everyendmplib[PfLAK]{}%
+ \everymplib[PfLAL]{}\everyendmplib[PfLAL]{}%
+ \everymplib[PfLAM]{}\everyendmplib[PfLAM]{}%
+ \everymplib[PfLAN]{}\everyendmplib[PfLAN]{}%
+ \everymplib[PfLAO]{}\everyendmplib[PfLAO]{}%
+ \everymplib[PfLAP]{}\everyendmplib[PfLAP]{}%
+ \everymplib[PfLAQ]{}\everyendmplib[PfLAQ]{}%
+ \everymplib[PfLAR]{}\everyendmplib[PfLAR]{}%
+%\else%
+% \RequirePackage[shellescape]{gmp}%inclusion de figures metapost "à la volée"%
+% \gmpoptions{everymp={prologues:=3;}}%
\fi%
\defKV[posrelatesp]{Echelle=\def\scaleminischemspace{#1}}
@@ -20,265 +36,1025 @@
\NewDocumentCommand\SchemaEspace{ s O{} m }{%
\restoreKV[posrelatesp]%
\setKV[posrelatesp]{#2}%
- \ifluatex
+ \ifluatex%
\IfBooleanTF{#1}%
{\def\tmplabelespace##1{\mathscr{##1}}}%
{\def\tmplabelespace##1{\mathcal{##1}}}%
\mplibforcehmode%
\IfStrEqCase{#3}{%
{plan}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAA]
+ beginfig(56);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplansimple ;
+ %plan simple
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t = (4u,0u);
+ r = (1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0 = (0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2 ;
+ draw z2--z3 ;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{interplans}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAB]
+ beginfig(57);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repinterplan ;
+ %intersection de deux plans
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z5 = 0.5[z0,z1];
+ z6 = z5 transformed S;
+ z7 = (2.5u,-1u);
+ z8 = z7 transformed S;
+ z5 = 0.5[z9,z7];
+ z10= z9 transformed S;
+ draw z5--z6;
+ draw z9--z7;
+ draw z9--z10;
+ draw z10--z6;
+ draw z6--z3;
+ draw z6--z8 dashed evenly;
+ p1 = z2--z6;
+ q1= z9--z10;
+ z11 = p1 intersectionpoint q1;
+ draw z11--z6 dashed evenly;
+ draw z2--z11;
+ p2 = z7--z8;
+ q2= z5--z1;
+ z12 = p2 intersectionpoint q2;
+ draw z12--z8 dashed evenly;
+ draw z7--z12;
+ label.rt(btex $d$ etex scaled echelle, 0.5[z5,z6]);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.rt(btex $\tmplabelespace{Q}$ etex scaled echelle, z9);
+ endfig;
\end{mplibcode}
}%
{plan3points}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAC]
+ beginfig(58);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplantroispoints ;
+ % representation d'un plan defini par trois points
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ dotlabel.top(btex $A$ etex scaled echelle, (2.25u,1.5u));
+ dotlabel.top(btex $B$ etex scaled echelle, (1.25u,.5u));
+ dotlabel.top(btex $C$ etex scaled echelle, (3.25u,1u));
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{plandroitessecantes}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAD]
+ beginfig(59);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplandeuxdroites ;
+ % representation d'un plan defini par deux droites secantes
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{plandroitepoint}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAE]
+ beginfig(60);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplandroite ;
+ % representation d'un plan defini par un point et une droite
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ dotlabel.top(btex $A$ etex scaled echelle, (2.05u,1.35u));
+ z4 = (1u,.5u);
+ z5 = (3.25u,1.05u);
+ draw z4--z5;
+ label.top(btex $d$ etex scaled echelle, z5);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{plandroitespara}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAF]
+ beginfig(61);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplandtespara ;
+ % representation d'un plan defini par deux droites parallèles
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (1u,1.15u);
+ z5 =(3u,1.65u);
+ draw z4--z5;
+ z6 = (1.5u,0.2u);
+ z7 = z6 shifted (z5-z4);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{droitesnoncopla}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAG]
+ beginfig(62);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- droitesnoncoplan ;
+ % representation de deux droites non parallelles et sans point commun
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.5u,.5u);
+ z5 = (4u,1u);
+ draw z4--z5;
+ label.top(btex $d$ etex scaled echelle, z5);
+ z6 = (2u,1.5u);
+ z7 = (0.2u,1u);
+ dotlabel.rt(btex $A$ etex scaled echelle, z6);
+ z9 = z6 shifted z7;
+ z10 = z6 shifted -2z7;
+ p1 = z6--z10;
+ p2 = z0--z1;
+ z11 = p1 intersectionpoint p2;
+ draw z6--z11 dashed evenly;
+ draw z11--z10;
+ draw z6--z9;
+ label.rt(btex $d'$ etex scaled echelle, z10);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{incidence}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAH]
+ beginfig(63);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repincidence ;
+ % representation d'un plan
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4=(0u,-2.2u);
+ z5 = z4 transformed T;
+ z6 = z4 transformed S;
+ z7 = z4 transformed T transformed S;
+ draw z4--z6;
+ draw z4--z5 withpen pencircle scaled 0.05u;
+ draw z5--z7 withpen pencircle scaled 0.05u;
+ z8=1/5[z0,z1]+1/2[z0,z2];
+ z9=3/5[z4,z5]+1/2[z6,z4];
+ draw z8--z9;
+ z10 = z8 transformed S;
+ draw z8--z10;
+ z11 = z9 transformed S;
+ p1 = z10--z11;
+ q1 = z2--z3;
+ q2 = z0--z1;
+ q3 = z6--z7;
+ z12 = p1 intersectionpoint q1;
+ z13 = p1 intersectionpoint q2;
+ z14 = p1 intersectionpoint q3;
+ draw z10--z12;
+ draw z12--z13 dashed evenly;
+ draw z13--z14;
+ draw z14--z11
+ dashed evenly;
+ p2 = z8--z10;
+ z15 = p2 intersectionpoint q1;
+ draw z2--z15;
+ draw z15--z12 dashed evenly;
+ draw z12--z3;
+ p3 = z8--z9;
+ z16 = p3 intersectionpoint q2;
+ z17 = p3 intersectionpoint q3;
+ q4 = z4--z5;
+ z18 = p3 intersectionpoint q4;
+ draw z16--z12;
+ draw z6--z17;
+ draw z17--z14 dashed evenly;
+ draw z14--z7;
+ draw z18--z14;
+ p4 = z9--z11;
+ z19 = p4 intersectionpoint q4;
+ draw z9--z19;draw z19--z11 dashed evenly;
+ label.rt(btex $d$ etex scaled echelle, 0.5[z12,z16]);
+ label.rt(btex $d'$ etex scaled echelle, 0.5[z18,z14]);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.urt(btex $\tmplabelespace{Q}$ etex scaled echelle, z4+(0.1u,0u));
+ endfig;
\end{mplibcode}
}%
{droiteparaplans}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAI]
+ beginfig(64);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repdroiteparaplans ;
+ % droite parallele a deux plans secants
+ pair t,r;
+ transform T,S;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,1u); r=(0u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z1--z3;
+ z4=0.5[z0,z1];
+ z5 = z4 transformed S;
+ draw z4--z5;
+ label.lft(btex $\Delta$ etex scaled echelle,0.5[z4,z5]);
+ z6 = z4 shifted (1.5u,-1u);
+ z4=0.5[z6,z7];
+ z8 = z6 transformed S;
+ z9 = z7 transformed S;
+ draw z0--z4;
+ draw z4--z6;
+ draw z6--z8;
+ draw z8--z9;
+ draw z4--z7 dashed evenly;
+ p1= z4--z1;
+ p2 = z6--z8;
+ z10 = p1 intersectionpoint p2;
+ draw z4--z10 dashed evenly;draw z10--z1;
+ p3 = z2--z3;
+ p4 = z9--z7;
+ z11 = p3 intersectionpoint p4;
+ draw z11--z9;
+ draw z11--z7 dashed evenly;
+ draw z7--z4 dashed evenly;
+ z12 = (-1u,0u);
+ z13 = z12 shifted (0u,3u);
+ draw z13--z12;
+ label.lft(btex $d$ etex scaled echelle, z12);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0u,0.025u));
label.lft(btex $\tmplabelespace{Q}$ etex scaled echelle, z6+(0u,0.5u));
+ endfig;
\end{mplibcode}
}%
{toit}{%
- \begin{mplibcode}
- u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- reptoit ;
+ \begin{mplibcode}[PfLAJ]
+ beginfig(65);
+ numeric u,echelle;
+ u=\scaleminischemspace*1cm;
+ echelle=\scaleminischemspace;
+ % theoreme du toit
+ pair t,r,v;
+ transform T,S,V;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(3u,2u); r=(-2u,1.5u);v=(-3u,0u);
+ T = identity shifted t;
+ S = identity shifted r;
+ V = identity shifted v;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed S transformed T;
+ z4 = z0 transformed V;
+ z5 = z0 transformed V transformed T;
+ draw z0--z1;
+ draw z2--z3;
+ z101=0.1[z0,z1]; z10=0.9[z0,z1];
+ z23 = z101 transformed S;
+ z32=z10 transformed S;
+ z45 = z101 transformed V;
+ z54=z10 transformed V;
+ draw z101--z23;
+ draw z10--z32;
+ draw z23--z45;
+ draw z32--z54 dashed evenly;
+ p1 = z101--z23;
+ p2 = z4--z5;
+ z11 = p1 intersectionpoint p2;
+ draw z4--z11;
+ draw z11--z5 dashed evenly;
+ label.lft(btex $d$ etex scaled echelle, z0);
+ label.lft(btex $d'$ etex scaled echelle, z4);
+ label.top(btex $\Delta$ etex scaled echelle, z2);
+ endfig;
\end{mplibcode}
}%
{planspara}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAK]
+ beginfig(66);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplanspara ;
+ % plans paralleles a l'aide de droites secantes
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z14 = (0.8u,-1.5u); z15 =(4u,-1u);draw z14--z15;
+ z16 = (1u,-0.9u);z17=(3.6u,-2.1u);draw z16--z17;
+ label.rt(btex $d_{1}$ etex scaled echelle, z15);
+ label.rt(btex $d'_{1}$ etex scaled echelle, z17);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.urt(btex $\tmplabelespace{Q}$ etex scaled echelle, z10+(0.1u,0u));
+ endfig;
\end{mplibcode}
}%
{droiteplanpara}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAL]
+ beginfig(67);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repdteplanpara ;
+ % parallelisme plan et droite
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (1u,.5u);
+ z5 = (4u,1u);
+ draw z4--z5;
+ label.top(btex $d'$ etex scaled echelle, z4);
+ z6 = (1u,2.5u);
+ z7 = z6 shifted z5-z4;
+ draw z6--z7;
+ label.top(btex $d$ etex scaled echelle, z6);
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{droitesortho}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAM]
+ beginfig(68);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repdtesortho ;
+ % droites orthogonales
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(2u,3u); r=(0u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ draw z0--z1;
+ draw z0--z2;
+ label.bot(btex $I$ etex scaled echelle, z0);
+ z3=0.1[z0,z1];
+ z4=0.1[z0,z2];
+ z5=z3 shifted z4-z0;
+ draw z3--z5;
+ draw z4--z5;
+ z6=(0u,-1u);
+ z7 = z6 transformed T;
+ draw z7--z6;
+ label.bot(btex $\Delta$ etex scaled echelle, z7);
+ z8=(-1u,-1u);
+ z9= z8 transformed S;
+ label.lft(btex $d$ etex scaled echelle, z9);
+ draw z9--z8;
+ endfig;
\end{mplibcode}
}%
{droiteorthoplan}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAN]
+ beginfig(69);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repdroiteorthoplan ;
+ % droite orthogonale a un plan
+ pair t,r;
+ transform T,S;
+ path p[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u);
+ z5 =(4u,1.5u);
+ draw z4--z5;
+ z6 = (1u,1.6u);
+ z7=(3.6u,0.4u);
+ draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ p1 = z4--z5;p2 = z6--z7;
+ z8 = p1 intersectionpoint p2;
+ z9 = z8 shifted (0u,2u);
+ label.rt(btex $\Delta$ etex scaled echelle, z9);
+ draw z8--z9;
+ z10 = z8 shifted (0u,-2u);
+ p3 = z9--z10;
+ p4 = z0--z1;
+ z11 = p3 intersectionpoint p4;
+ draw z8--z11 dashed evenly;
+ draw z11--z10;
+ z12=0.1[z8,z7];
+ z13=0.1[z8,z9];
+ z14= z13 shifted z12-z8;
+ draw z12--z14;
+ draw z13--z14;
+ z15=0.2[z8,z4];
+ z16=0.1[z8,z9];
+ z17= z16 shifted z15-z8;
+ draw z15--z17;
+ draw z16--z17;
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
+ endfig;
\end{mplibcode}
}%
{plansparadroiteortho}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAO]
+ beginfig(7);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplansparadroiteortho ;
+ % plans paralleles et droite orthogonale
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4 = (0.8u,1u); z5 =(4u,1.5u);draw z4--z5;
+ z6 = (1u,1.6u);z7=(3.6u,0.4u);draw z6--z7;
+ label.rt(btex $d$ etex scaled echelle, z5);
+ label.rt(btex $d'$ etex scaled echelle, z7);
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z14 = (0.8u,-1.5u);
+ z15 =(4u,-1u);
+ draw z14--z15;
+ z16 = (1u,-0.9u);
+ z17=(3.6u,-2.1u);
+ draw z16--z17;
+ label.rt(btex $d_{1}$ etex scaled echelle, z15);
+ label.rt(btex $d'_{1}$ etex scaled echelle, z17);
+ p1=z4--z5;
+ p2=z6--z7;
+ p3=z14--z15;
+ p4=z16--z17;
+ p5=z0--z1;
+ p6=z10--z11;
+ z20 = p1 intersectionpoint p2;
+ z21 = p3 intersectionpoint p4;
+ p7 = z20--z21;
+ z22 = p7 intersectionpoint p5;
+ z24 = z20 shifted (0u,1.5u);
+ z25 = z21 shifted (0u,-1.5u);
+ p8 = z21--z25;
+ z23 = p8 intersectionpoint p6;
+ draw z24--z20;
+ draw z20--z22 dashed evenly;
+ draw z22--z21;
+ draw z21--z23
+ dashed evenly;
+ draw z23--z25;
+ label.rt(btex $\Delta$ etex scaled echelle, z24);
+ z30=0.2[z20,z4];
+ z31=0.1[z20,z24];
+ z32 = z31 shifted z30-z20;
+ draw z32--z30;
+ draw z32--z31;
+ z40=0.2[z21,z14];
+ z41=0.1[z21,z22];
+ z42 = z41 shifted z40-z21;
+ draw z42--z40;
+ draw z42--z41;
+ z50=0.1[z20,z7];
+ z51=0.1[z20,z24];
+ z52 = z51 shifted z50-z20;
+ draw z52--z50;
+ draw z52--z51;
+ z60=0.1[z21,z17];
+ z61=0.1[z21,z22];
+ z62 = z61 shifted z60-z21;
+ draw z62--z60;
+ draw z62--z61;
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.urt(btex $\tmplabelespace{Q}$ etex scaled echelle, z10+(0.1u,0u));
+ endfig;
\end{mplibcode}
}%
{plansparadroitesortho}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAP]
+ beginfig(71);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repdrtoitesorthoplanspara ;
+ % droites orthogonales a deux plans paralleles
+ pair t,r;
+ transform T,S;
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ path p[];
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z2--z3;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z10=(0u,-2.5u);
+ z11 = z10 transformed T;
+ z12 = z10 transformed S;
+ z13 = z10 transformed T transformed S;
+ draw z10--z12;
+ draw z12--z13;
+ draw z10--z11 withpen pencircle scaled 0.05u;
+ draw z11--z13 withpen pencircle scaled 0.05u;
+ z20 = (2u,1u);
+ z26 = z20 shifted (0u,-2.5u);
+ z21 = z20 shifted (0u,2u);
+ z22 = z20 shifted (0u,-4.5u);
+ p1 = z21--z22;
+ p2 = z0--z1;
+ p3 = z10--z11;
+ z24 = p1 intersectionpoint p2;
+ z25 = p1 intersectionpoint p3;
+ draw z21--z20;
+ draw z20--z24 dashed evenly;
+ draw z24--z26;
+ draw z26--z25 dashed evenly;
+ draw z25--z22;
+ z30 = (3u,1.5u);
+ z36 = z30 shifted (0u,-2.5u);
+ z31 = z30 shifted (0u,2u);
+ z32 = z30 shifted (0u,-4.5u);
+ p11 = z31--z32;
+ p12 = z0--z1;
+ p13 = z10--z11;
+ z34 = p11 intersectionpoint p12;
+ z35 = p11 intersectionpoint p13;
+ draw z31--z30;
+ draw z30--z34 dashed evenly;
+ draw z34--z36;
+ draw z36--z35 dashed evenly;
+ draw z35--z32;
+ z40=0.1[z20,z30];
+ z41=0.1[z20,z21];
+ z42 = z41 shifted z40-z20;
+ draw z42--z40;
+ draw z42--z41;
+ z50=0.1[z30,z20];
+ z51=0.1[z30,z31];
+ z52 = z51 shifted z50-z30;
+ draw z52--z50;
+ draw z52--z51;
+ z60=0.1[z26,z36];
+ z61=0.1[z26,z24];
+ z62 = z61 shifted z60-z26;
+ draw z62--z60;
+ draw z62--z61;
+ z70=0.1[z36,z26];
+ z71=0.2[z36,z34];
+ z72 = z71 shifted z70-z36;
+ draw z72--z70;
+ draw z72--z71;
+ draw z20--z30;
+ draw z26--z36;
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.urt(btex $\tmplabelespace{Q}$ etex scaled echelle, z10+(0.1u,0u));
+ endfig;
\end{mplibcode}
}%
{plansperp}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAQ]
+ beginfig(72);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplansperp ;
+ % intersection de deux plans perpendiculaires
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(4u,0u); r=(1u,2u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z5 = 0.5[z0,z1];
+ z6 = z5 transformed S;
+ z7 = z5 shifted (0u,-2.5u);
+ z8 = z7 transformed S;
+ z5 = 0.5[z9,z7];
+ z10= z9 transformed S;
+ draw z5--z6;
+ draw z9--z7;
+ draw z9--z10;
+ draw z10--z6;
+ draw z6--z3;
+ draw z7--z8;
+ p1 = z2--z6;
+ q1= z5--z9;
+ z11 = p1 intersectionpoint q1;
+ draw z11--z6 dashed evenly;
+ draw z2--z11;
+ p2 = z6--z8;
+ q2= z5--z1;
+ z12 = p2 intersectionpoint q2;
+ draw z12--z6 dashed evenly;
+ draw z8--z12;
+ label.rt(btex $d$ etex scaled echelle, 0.6[z5,z6]);
+ z13=0.5[z5,z6];
+ z14 = z13 shifted (0u,2u);
+ z15 = z13 shifted (0u,-2u);
+ p3 = z0--z1;
+ q3 = z13--z15;
+ z16 = p3 intersectionpoint q3;
+ draw z14--z13;
+ draw z13--z16 dashed evenly;
+ draw z16--z15;
+ z20=0.2[z13,z6];
+ z21=0.2[z13,z14];
+ z22 = z21 shifted z20-z13;
+ draw z22--z20;
+ draw z22--z21;
+ z17 = z13 shifted 0.8(z1-z5);
+ z18 = z13 shifted 0.8(z0-z5);
+ p4 = z13--z18;
+ z19 = q1 intersectionpoint p4;
+ draw z18--z19;
+ draw z19--z13 dashed evenly;
+ draw z13--z17;
+ z30=0.1[z13,z18];z31=0.1[z13,z14];
+ z32 = z31 shifted z30-z13;
+ draw z32--z30;
+ draw z32--z31;
label.urt(btex $\tmplabelespace{P}$ etex scaled echelle, z0+(0.1u,0.025u));
label.rt(btex $\tmplabelespace{Q}$ etex scaled echelle, z9);
+ endfig;
\end{mplibcode}
}%
{plansperpplan}{%
- \begin{mplibcode}
+ \begin{mplibcode}[PfLAR]
+ beginfig(73);
+ numeric u,echelle;
u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;
- repplansperpplan ;
+ % plans perpendiculaires a un meme plan
+ pair t,r;
+ transform T,S;
+ path p[],q[];
+ pickup pencircle scaled 0.025u;
+ t=(5u,0u); r=(1u,2.3u);
+ T = identity shifted t;
+ S = identity shifted r;
+ z0=(0u,0u);
+ z1 = z0 transformed T;
+ z2 = z0 transformed S;
+ z3 = z0 transformed T transformed S;
+ draw z0--z2;
+ draw z0--z1 withpen pencircle scaled 0.05u;
+ draw z1--z3 withpen pencircle scaled 0.05u;
+ z4= 1/4[z0,z1];
+ z5= 3/4[z0,z1];
+ z6= 1/2[z4,z5];
+ z7 = z6 shifted (0u,1u);
+ draw z4--z7;
+ draw z5--z7;
+ z8 = z4 shifted (0u,2u);
+ z9 = z5 shifted (0u,2u);
+ z10 = z7 shifted (0u,2u);
+ z4=0.5[z8,z11];
+ z5=0.5[z12,z9];
+ z7=0.5[z13,z10];
+ draw z8--z11;
+ draw z8--z10;
+ draw z12--z9;
+ draw z9--z10;
+ draw z7--z10;
+ draw z7--z6 dashed evenly;
+ draw z6--z13;
+ draw z11--z13;
+ draw z13--z12;
+ p1 = z2--z3;
+ q1 = z8--z10;
+ q2=z9--z10;
+ z14= p1 intersectionpoint q1;
+ z15= p1 intersectionpoint q2;
+ draw z2--z14;
+ draw z14--z15 dashed evenly;
+ draw z15--z3;
+ z20=0.1[z7,z10];
+ z21=0.2[z7,z4];
+ z22 = z21 shifted z20-z7;
+ draw z22--z20;
+ draw z22--z21;
+ z30=0.1[z7,z10];
+ z31=0.2[z7,z5];
+ z32 = z31 shifted z30-z7;
+ draw z32--z30;
+ draw z32--z31;
label.urt(btex $\tmplabelespace{Q}$ etex scaled echelle, z0+(0.1u,0.025u));
label.bot(btex $\tmplabelespace{P}$ etex scaled echelle, z11+(0.2u,0.6u));
label.bot(btex $\tmplabelespace{P}'$ etex scaled echelle, z12+(-0.2u,0.8u));
+ endfig;
\end{mplibcode}
}%
}%
- \else
- \IfStrEqCase{#3}{%
- {plan}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplansimple ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {interplans}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repinterplan ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.rt(btex $Q$ etex scaled echelle, z9);
- \end{mpost}
- }%
- {plan3points}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplantroispoints ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {plandroitessecantes}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplandeuxdroites ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {plandroitepoint}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplandroite ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {plandroitespara}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplandtespara ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {droitesnoncopla}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- droitesnoncoplan ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {incidence}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repincidence ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.urt(btex $Q$ etex scaled echelle, z4+(0.1u,0u));
- \end{mpost}
- }%
- {droiteparaplans}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repdroiteparaplans ;
- label.urt(btex $P$ etex scaled echelle, z0+(0u,0.025u));
- label.lft(btex $Q$ etex scaled echelle, z6+(0u,0.5u));
- \end{mpost}
- }%
- {toit}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- reptoit ;
- \end{mpost}
- }%
- {planspara}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplanspara ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
- \end{mpost}
- }%
- {droiteplanpara}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repdteplanpara ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {droitesortho}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repdtesortho ;
- \end{mpost}
- }%
- {droiteorthoplan}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repdroiteorthoplan ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- \end{mpost}
- }%
- {plansparadroiteortho}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplansparadroiteortho ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
- \end{mpost}
- }%
- {plansparadroitesortho}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repdrtoitesorthoplanspara ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
- \end{mpost}
- }%
- {plansperp}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplansperp ;
- label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
- label.rt(btex $Q$ etex scaled echelle, z9);
- \end{mpost}
- }%
- {plansperpplan}{%
- \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
- repplansperpplan ;
- label.urt(btex $Q$ etex scaled echelle, z0+(0.1u,0.025u));
- label.bot(btex $P$ etex scaled echelle, z11+(0.2u,0.6u));
- label.bot(btex $P'$ etex scaled echelle, z12+(-0.2u,0.8u));
- \end{mpost}
- }%
- }%
- \fi
+ \else%
+ La commande nécessite \hologo{LuaLaTeX} !%
+ % \else%
+ % \IfStrEqCase{#3}{%
+ % {plan}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplansimple ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {interplans}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repinterplan ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.rt(btex $Q$ etex scaled echelle, z9);
+ % \end{mpost}
+ % }%
+ % {plan3points}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplantroispoints ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {plandroitessecantes}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplandeuxdroites ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {plandroitepoint}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplandroite ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {plandroitespara}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplandtespara ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {droitesnoncopla}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % droitesnoncoplan ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {incidence}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repincidence ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.urt(btex $Q$ etex scaled echelle, z4+(0.1u,0u));
+ % \end{mpost}
+ % }%
+ % {droiteparaplans}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repdroiteparaplans ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0u,0.025u));
+ % label.lft(btex $Q$ etex scaled echelle, z6+(0u,0.5u));
+ % \end{mpost}
+ % }%
+ % {toit}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % reptoit ;
+ % \end{mpost}
+ % }%
+ % {planspara}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplanspara ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
+ % \end{mpost}
+ % }%
+ % {droiteplanpara}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repdteplanpara ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {droitesortho}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repdtesortho ;
+ % \end{mpost}
+ % }%
+ % {droiteorthoplan}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repdroiteorthoplan ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % \end{mpost}
+ % }%
+ % {plansparadroiteortho}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplansparadroiteortho ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
+ % \end{mpost}
+ % }%
+ % {plansparadroitesortho}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repdrtoitesorthoplanspara ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.urt(btex $Q$ etex scaled echelle, z10+(0.1u,0u));
+ % \end{mpost}
+ % }%
+ % {plansperp}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplansperp ;
+ % label.urt(btex $P$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.rt(btex $Q$ etex scaled echelle, z9);
+ % \end{mpost}
+ % }%
+ % {plansperpplan}{%
+ % \begin{mpost}[mpsettings={u=\scaleminischemspace*1cm;echelle=\scaleminischemspace;}]
+ % input PfLEspace;
+ % repplansperpplan ;
+ % label.urt(btex $Q$ etex scaled echelle, z0+(0.1u,0.025u));
+ % label.bot(btex $P$ etex scaled echelle, z11+(0.2u,0.6u));
+ % label.bot(btex $P'$ etex scaled echelle, z12+(-0.2u,0.8u));
+ % \end{mpost}
+ % }%
+ % }%
+ \fi%
}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
index d325b88e74..418c5aa8cc 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
@@ -2,7 +2,7 @@
% Copyright 2023-2024 Cédric Pierquet
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
-%3.02e Thonny via piton + modification clé gobble ?
+%3.03c Thonny via piton + modification clé gobble ?
%3.01f PseudoCode via piton (?)
%3.01e Correction du comportement de la console repl piton/pyluatex
%2.7.6 Correction du comportement de la console, avec une meilleure gestion de la largeur ^^ (merci à ablasz ;-))
@@ -33,7 +33,7 @@
Largeur=\linewidth,%
Alignement=center,%
Lignes=true,%
- Gobble={tabs},%
+ Gobble={},%
TaillePolice=\footnotesize,%
Filigrane=false,%
Style=Classique,%
@@ -97,7 +97,7 @@
Largeur=\linewidth,%
Alignement=center,%
Lignes=true,%
- Gobble={tabs},%
+ Gobble={},%
TaillePolice=\footnotesize,%
Filigrane=false,%
Style=Classique,%
@@ -177,7 +177,7 @@
}
\IfInteger{\CODPITgobble}{\PitonOptions{gobble=\CODPITgobble}}{}%
%--fin gestion du gobble
- \PitonOptions{break-lines,indent-broken-lines,continuation-symbol={}}%,numbers-sep=0.65em}%language=Python}
+ \PitonOptions{break-lines,indent-broken-lines,continuation-symbol={\;}}%,numbers-sep=0.65em}%language=Python}
%------les styles tcbox
\IfEq{\CODPITstyle}{Moderne}%style Moderne (défaut)
{%
@@ -227,7 +227,7 @@
\useKVdefault[envpcpiton]%
\setKV[envpcpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
- \PitonOptions{break-lines,indent-broken-lines,language=minimal,continuation-symbol={}}%,numbers-sep=0.65em}%
+ \PitonOptions{break-lines,indent-broken-lines,language=minimal,continuation-symbol={\;}}%,numbers-sep=0.65em}%
\SetPitonStyle{ Number = }
\ifboolKV[envpcpiton]{Couleurs}%
{%
@@ -360,7 +360,8 @@
{
\restoreKV[consolepyluatex]% revenir au valeurs par défaut
\setKV[consolepyluatex]{#2}% lit les arguments optionnels
- \PitonOptions{width={\ConsPyluaLarg-5mm},break-lines,end-of-broken-line={},continuation-symbol={},#1}
+ \PitonOptions{width={\ConsPyluaLarg-5mm},break-lines,end-of-broken-line={\,},continuation-symbol={\;},#1}
+ %\PitonOptions{width={\ConsPyluaLarg-5mm},#1}
\PyLTVerbatimEnv
\ifboolKV[consolepyluatex]{Logo}
{%
@@ -398,7 +399,7 @@
NomFichier=script.py,%
NomConsole=console,%
IntroConsole={Python 3.11.6 /usr/bin/python},%
- Gobble={tabs}
+ Gobble={}
}
\NewPitonEnvironment{PitonThonnyEditor}{ D<>{} O{} m }%
@@ -434,7 +435,18 @@
\PyLTVerbatimEnv%
\tcbset{tcbthonnypitonconsole/.style={title=\vphantom{pf}\thonnypitonshellname\:\textcolor{gray}{×}},before skip=0.33\baselineskip,after skip=0.33\baselineskip}%
\noindent%
- \PitonOptions{width={#3-5mm},break-lines,end-of-broken-line={},continuation-symbol={}}%
+ %--gestion du gobble
+ \IfStrEqCase{\thonnypitongobble}{%
+ {auto}{\PitonOptions{auto-gobble}}%
+ {env}{\PitonOptions{env-gobble}}%
+ {tabs}{\PitonOptions{tabs-auto-gobble}}%
+ {tabs-auto}{\PitonOptions{tabs-auto-gobble,auto-gobble}}%
+ {auto-tabs}{\PitonOptions{auto-gobble,tabs-auto-gobble}}%
+ {all}{\PitonOptions{auto-gobble,tabs-auto-gobble,env-gobble}}%
+ }
+ \IfInteger{\thonnypitongobble}{\PitonOptions{gobble=\thonnypitongobble}}{}%
+ %--fin gestion du gobble
+ \PitonOptions{width={#3-5mm},break-lines,end-of-broken-line={\,},continuation-symbol={\;}}%
\tcolorbox[sharp corners=all,enhanced,size=small,width=#3,colframe=gray,colback=white,tcbthonnypitonconsole,fonttitle=\scriptsize\sffamily,coltitle=black,
attach boxed title to top left={yshift*=-0.4pt},fontupper=\footnotesize,bottom=-0.25mm,#2,boxed title style={size=tight,colback=lightgray!15,sharp corners=all,boxrule=0.4pt,boxsep=2pt},boxrule=0.4pt,top=1mm]%
\textcolor{gray}{\texttt{\thonnypitonintroconsole}}
diff --git a/macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdf b/macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdf
index e64acd414c..47e8ae1f0e 100644
--- a/macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdf
+++ b/macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex b/macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex
index ca6d4511e1..b721cb848d 100644
--- a/macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex
+++ b/macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex
@@ -33,8 +33,8 @@
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{19/02/2024}
+\def\TPversion{0.1.3}
+\def\TPdate{30/03/2024}
\sethlcolor{lightgray!25}
\NewDocumentCommand\ShowCode{ m }{%
@@ -189,6 +189,10 @@ Recommencer [o/n] ? n
\section{History}
+\verb|v0.1.3|~:~~~~Modification with \texttt{gobble} (for \textsf{piton})
+
+\verb|v0.1.2|~:~~~~Enhancements with \texttt{gobble} (for \textsf{piton})
+
\verb|v0.1.1|~:~~~~New block \textsf{In/Out} with \textsf{piton/pyluatex} (tks to F. Pantigny)
\verb|v0.1.0|~:~~~~Initial version
@@ -474,25 +478,37 @@ The package provides environments :
\end{itemize}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-\begin{NotebookPitonIn}(*)[options tcbox]{<width>}
+\begin{NotebookPitonRaw}[options tcbox]{width}<gobble options>
+<code>
+\end{NotebookPitonRaw}
+\end{codehigh}
+
+\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+\begin{NotebookPitonMarkdown}[options tcbox]{width}
+<code>
+\end{NotebookPitonMarkdown}
+\end{codehigh}
+
+\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+\begin{NotebookPitonIn}(*)[options tcbox]{width}<gobble options>
<code>
\end{NotebookPitonIn}
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-\begin{NotebookPitonOut}(*)[options tcbox]{<width>}
+\begin{NotebookPitonOut}(*)[options tcbox]{width}<gobble options>
<code>
\end{NotebookPitonOut}
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-\begin{NotebookPitonInOut}(*)[options tcbox]{<width>}
+\begin{NotebookPitonInOut}(*)[options tcbox]{width}<gobble options>
<code>
\end{NotebookPitonInOut}
\end{codehigh}
\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-\begin{NotebookPitonConsole}[options tcbox]{<width>}
+\begin{NotebookPitonConsole}[options tcbox]{width}<gobble options>
<code>
\end{NotebookPitonConsole}
\end{codehigh}
@@ -501,6 +517,18 @@ The starred versions removes the counter, and don't display it.
The blocks with \textit{header} (\texttt{In/Out}) are automatically numbered, and the global style is fixed.
+\smallskip
+
+\texttt{gobble options} are given within \textsf{piton} syntax :
+
+\begin{itemize}
+ \item \texttt{auto-gobble} ;
+ \item \texttt{env-gobble} ;
+ \item \texttt{gobble=xx} ;
+ \item \texttt{tabs-auto-gobble} ;
+ \item a mix of them.
+\end{itemize}
+
\subsection{Examples}
Due to the necessary usage of \hologo{LuaLaTeX} and \textsf{--shell-escape}, examples are given in a separate file.
diff --git a/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdf b/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdf
index f5a8cfb331..5a816e5eba 100644
--- a/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdf
+++ b/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex b/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex
index 6dfdc9bd53..34112ed0c7 100644
--- a/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex
+++ b/macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex
@@ -3,7 +3,7 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[a4paper,11pt]{article}
-\def\PLver{0.1.1}
+\def\PLver{0.1.3}
\usepackage[margin=1.5cm]{geometry}
\usepackage{pynotebook}
\usepackage[executable=python]{pyluatex}
@@ -21,6 +21,23 @@
\usepackage[executable=python]{pyluatex} % with a specific compilation !!
\end{codehigh}
+\section{With gobble}
+
+Due to \texttt{gobble} options with \textsf{piton}, it's possible to add \texttt{gobble} parameters to the environments, given within last argument between \texttt{<...>}, and default is \texttt{empty} :
+
+\begin{itemize}
+ \item \texttt{<gobble=xx>} ;
+ \item \texttt{<env-gobble>} ;
+ \item \texttt{<auto-gobble>} ;
+ \item \texttt{<tabs-auto-gobble>}.
+\end{itemize}
+
+\noindent{}\textbf{Explanations} are given in the doc of \textsf{piton} :
+
+\begin{itemize}
+ \item \texttt{https://ctan.org/pkg/piton}
+\end{itemize}
+
\section{Examples of text blocks}
\begin{codehigh}
@@ -116,7 +133,7 @@ print([fibonacci_of(n) for n in range(10)])
\end{NotebookPitonOut}
\end{codehigh}
-\begin{NotebookPitonOut}{\linewidth}
+\begin{NotebookPitonOut}{0.75\linewidth}
def fibonacci_aux(n,a,b):
if n == 0 :
return a
@@ -279,6 +296,20 @@ def fibonacci_of(n):
print([fibonacci_of(n) for n in range(10)])
\end{NotebookPitonInOut}
+\subsection{Alternate environment for In/Out}
+
+Thanks to F. Pantigny, an alternate environment for \texttt{In/Out} is available, with \textit{all} line numbers and continuation symbol.
+
+\begin{codehigh}
+\begin{NotebookPitonAllNum}{0.66\linewidth}
+print([i**2 for i in range(50)])
+\end{NotebookPitonAllNum}
+\end{codehigh}
+
+\begin{NotebookPitonAllNum}{0.66\linewidth}
+print([i**2 for i in range(50)])
+\end{NotebookPitonAllNum}
+
\pagebreak
\section{Global example}
@@ -353,14 +384,14 @@ def calculPerimetre(cote1, cote2, cote3) :
perimetre1 = calculPerimetre(6, 4, 3)
perimetre2 = calculPerimetre(10, 3, 11)
-print(f"Le périmètre de mon 1er triangle est {perimetre1}, et celle de mon 2d est {perimetre2}.")
+print(f"Le périm de mon 1er triangle est {perimetre1}, et celui de mon 2d est {perimetre2}.")
\end{NotebookPitonInOut}
\begin{NotebookPitonInOut}{\linewidth}
A = 15
B = 10
C = 11
-print(f"Le périmètre de mon triangle est {calculPerimetre(A, B, C)}.")
+print(f"Le périmètre de mon triangle est {calculPerimetre(A,B,C)}.")
\end{NotebookPitonInOut}
\begin{NotebookPitonIn}{\linewidth}
@@ -371,4 +402,7 @@ calculPerimetre(4, 4, 4)
print(calculPerimetre(4, 4, 4))
\end{NotebookPitonConsole}
+\begin{NotebookPitonInOut}{0.5\linewidth}
+print([i**2 for i in range(50)])
+\end{NotebookPitonInOut}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/pynotebook/tex/pynotebook.sty b/macros/latex/contrib/pynotebook/tex/pynotebook.sty
index f899c44b15..242c6c0988 100644
--- a/macros/latex/contrib/pynotebook/tex/pynotebook.sty
+++ b/macros/latex/contrib/pynotebook/tex/pynotebook.sty
@@ -3,7 +3,9 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pynotebook}[2024/02/19 0.1.1 Present codes like in jupyter notebook]
+\ProvidesPackage{pynotebook}[2024/03/30 0.1.3 Present codes like in jupyter notebook]
+%0.1.3 Modification with gobble (piton)
+%0.1.2 Enhancement with gobble and new code for in/out with all numbers lines
%0.1.1 New block In/Out
%0.1.0 Initial version
@@ -116,7 +118,7 @@
{\tcbset{tcbjpuptitlein/.style={title=\promptjupyter*{\JupyterPromptIn}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
{\refstepcounter{JupyterIn}\tcbset{tcbjpuptitlein/.style={title=\promptjupyter{\JupyterPromptIn\ifnum\value{JupyterIn}<10~\fi}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
\tcblisting{%
- breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#3,tcbjpuparskip,
+ breakable,sharp corners=all,enhanced,size=small,width=#3,tcbjpuparskip,boxrule=0.5pt,
colframe=gray,colback=lightgray!15,
left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
tcbjpuptitlein,
@@ -124,7 +126,7 @@
attach title to upper,
listing only,
listing options={style=PLJupyter,xleftmargin=\LargeurNumbersJupyter,numbers=left,firstnumber=1,numbersep=2mm},%
- overlay={\begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupyter+1mm}]frame.south west)--([xshift={\LargeurNumbersJupyter+1mm}]frame.north west);\end{tcbclipinterior}},%
+ overlay={\begin{tcbclipinterior}\draw[line width=0.5pt,gray] ([xshift={\LargeurNumbersJupyter+1mm}]frame.south west)--([xshift={\LargeurNumbersJupyter+1mm}]frame.north west);\end{tcbclipinterior}},%
#2
}%
}%
@@ -138,8 +140,8 @@
\addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\tcblisting{%
- breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,tcbjpuparskip,
- colframe=lightgray!15,colback=white,
+ breakable,sharp corners=all,enhanced,size=small,width=#2,tcbjpuparskip,boxrule=0.5pt,
+ colframe=lightgray!25,colback=white,
left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
attach title to upper,
listing only,
@@ -160,8 +162,8 @@
{\tcbset{tcbjpuptitleout/.style={title=\promptjupyter{\JupyterPromptOut\ifnum\value{JupyterIn}<10~\fi}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
\noindent%
\tcblisting{%
- breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#3,tcbjpuparskip,
- colframe=lightgray!15,colback=white,
+ breakable,sharp corners=all,enhanced,size=small,width=#3,tcbjpuparskip,boxrule=0.5pt,
+ colframe=lightgray!25,colback=white,
left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
tcbjpuptitleout,
fonttitle=\linespread{1}\footnotesize,
@@ -181,13 +183,13 @@
\addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\tcblisting{%
- breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#2,tcbjpuparskip,
+ breakable,sharp corners=all,enhanced,size=small,width=#2,tcbjpuparskip,boxrule=0.5pt,
colframe=gray,colback=lightgray!15,
left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
attach title to upper,
listing only,
listing options={style=tcblatex,basicstyle=\ttfamily\footnotesize,numberstyle=\scriptsize\ttfamily\color{gray},xleftmargin=\LargeurNumbersJupyter,numbers=left,firstnumber=1,numbersep=2mm},%
- overlay={\begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupyter+1mm}]frame.south west)--([xshift={\LargeurNumbersJupyter+1mm}]frame.north west);\end{tcbclipinterior}},%
+ overlay={\begin{tcbclipinterior}\draw[line width=0.5pt,gray] ([xshift={\LargeurNumbersJupyter+1mm}]frame.south west)--([xshift={\LargeurNumbersJupyter+1mm}]frame.north west);\end{tcbclipinterior}},%
#1
}%
}%
@@ -200,7 +202,7 @@
\SetJupyterLengths%
\addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
- \tcolorbox[breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,tcbjpuparskip,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#2,tcbjpuparskip,colframe=lightgray!25,colback=white,left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
attach title to upper,fontupper=\footnotesize,tcbjpuparskip,#1]%
}%
{%
@@ -211,7 +213,7 @@
%----With Piton (only lualatex)
\ifluatex
\RequirePackage{piton}
-\RequirePackage{environ}
+%\RequirePackage{environ}
\newlength{\LargeurPromptJupiter}
\newlength{\LargeurPromptJupiterIn}
\newlength{\LargeurPromptJupiterOut}
@@ -226,31 +228,32 @@
\settowidth{\LargeurNumbersJupiter}{\footnotesize\texttt{00}}%
}
-\NewPitonEnvironment{NotebookPitonIn}{ s O{} m }%
+\NewPitonEnvironment{NotebookPitonIn}{ s O{} m !D<>{} }%
{%
\SetJupiterLengths%
\IfBooleanTF{#1}%
{\tcbset{tcbjpuptitlein/.style={title=\promptjupyter*{\JupyterPromptIn}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}}%
{\refstepcounter{JupyterIn}\tcbset{tcbjpuptitlein/.style={title=\promptjupyter{\JupyterPromptIn\ifnum\value{JupyterIn}<10~\fi}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}}%
\noindent%
- \PitonOptions{left-margin={\LargeurNumbersJupiter+1.75mm},all-line-numbers}%
- \PitonOptions{tabs-auto-gobble,break-lines,indent-broken-lines}%
+ \PitonOptions{left-margin={\LargeurNumbersJupiter+1.75mm},line-numbers={skip-empty-lines=false,label-empty-lines=true}}%
+ \PitonOptions{break-lines,indent-broken-lines,continuation-symbol={},#4}%
%on crée la boîte
- \tcolorbox[breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#3,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitlein,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,overlay={%
- \begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west);\end{tcbclipinterior}},bottom=-0.5mm,tcbjpuparskip,#2]%
+ \tcolorbox[size=small,breakable,sharp corners=all,boxrule=0.5pt,enhanced,width=#3,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitlein,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,overlay={%
+ \begin{tcbclipinterior}\draw[line width=0.5pt,gray] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west);\end{tcbclipinterior}},bottom=-0.5mm,top=0.5mm,tcbjpuparskip,#2]%
}%
{%
\endtcolorbox%
+ \ignorespacesafterend%
}
-\NewDocumentEnvironment{NotebookPitonConsole}{ O{} m }%
+\NewDocumentEnvironment{NotebookPitonConsole}{ O{} m !D<>{} }%
{%
\SetJupiterLengths%
\noindent%
- \PitonOptions{tabs-auto-gobble,break-lines,indent-broken-lines}%
+ \PitonOptions{width={#2-5mm-\LargeurPromptJupiter-\OffsetPromptJupiter+2mm},break-lines,end-of-broken-line={},continuation-symbol={},#3}%
%on crée la boîte
\PyLTVerbatimEnv%
- \tcolorbox[breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,tcbjpuparskip,#1]%
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#2,colframe=lightgray!25,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,tcbjpuparskip,#1]%
\begin{pythonq}%
}%
{%
@@ -261,19 +264,20 @@
tex.print("\\end{Piton}")
}%
\endtcolorbox%
+ \ignorespacesafterend%
}
-\NewDocumentEnvironment{NotebookPitonOut}{ s O{} m }%
+\NewDocumentEnvironment{NotebookPitonOut}{ s O{} m !D<>{} }%
{%
\SetJupiterLengths%
\IfBooleanTF{#1}%
{\tcbset{tcbjpuptitleout/.style={title=\promptjupyter*{\JupyterPromptOut}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}}%
{\tcbset{tcbjpuptitleout/.style={title=\promptjupyter{\JupyterPromptOut\ifnum\value{JupyterIn}<10~\fi}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}}%
\noindent%
- \PitonOptions{tabs-auto-gobble,break-lines,indent-broken-lines}%
+ \PitonOptions{continuation-symbol={},end-of-broken-line={},break-lines,#4}%
%on crée la boîte
\PyLTVerbatimEnv%
- \tcolorbox[breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#3,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitleout,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,tcbjpuparskip,#2]%
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#3,colframe=lightgray!25,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitleout,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,top=0.5mm,tcbjpuparskip,#2]%
\begin{pythonq}%
}%
{%
@@ -284,42 +288,44 @@
tex.print("\\end{Piton}")
}%
\endtcolorbox%
+ \ignorespacesafterend%
}
-\NewPitonEnvironment{NotebookPitonRaw}{ O{} m }%
+\NewPitonEnvironment{NotebookPitonRaw}{ O{} m !D<>{} }%
{%
\SetJupiterLengths%
\noindent%
\SetPitonStyle{Number=}%
- \PitonOptions{left-margin={\LargeurNumbersJupiter+1.75mm},all-line-numbers,language=minimal}%
- \PitonOptions{tabs-auto-gobble,break-lines,indent-broken-lines}%
+ \PitonOptions{left-margin={\LargeurNumbersJupiter+1.75mm},line-numbers={skip-empty-lines=false,label-empty-lines=true},language=minimal}%
+ \PitonOptions{continuation-symbol={},break-lines,indent-broken-lines,#3}%
%on crée la boîte
- \tcolorbox[breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#2,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,attach title to upper,fontupper=\footnotesize,overlay={%
- \begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west);\end{tcbclipinterior}},bottom=-0.5mm,tcbjpuparskip,#1]%
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#2,colframe=gray,colback=lightgray!25,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,attach title to upper,fontupper=\footnotesize,overlay={%
+ \begin{tcbclipinterior}\draw[line width=0.5pt,gray] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west);\end{tcbclipinterior}},bottom=-0.5mm,tcbjpuparskip,#1]%
}%
{%
\endtcolorbox%
+ \ignorespacesafterend%
}
\NewDocumentEnvironment{NotebookPitonMarkdown}{ O{} m }%
{%
\SetJupiterLengths%
\noindent%
- \tcolorbox[breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,tcbjpuparskip,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#2,tcbjpuparskip,colframe=lightgray!25,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,
attach title to upper,fontupper=\footnotesize,tcbjpuparskip,#1]%
}%
{%
\endtcolorbox%
+ \ignorespacesafterend%
}%
-\NewDocumentEnvironment{NotebookPitonInOut}{ s O{} m }%
+\NewDocumentEnvironment{NotebookPitonInOut}{ s O{} m !D<>{} }%
{%
\PyLTVerbatimEnv%
\begin{pythonq}%
}%
{%
\end{pythonq}%
- %
\SetJupiterLengths%
\IfBooleanTF{#1}%
{%
@@ -330,10 +336,11 @@
\tcbset{tcbjpuptitlein/.style={title=\promptjupyter{\JupyterPromptIn\ifnum\value{JupyterIn}<10~\fi}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}%
}%
\noindent%
- \tcolorbox[breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#3,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitlein,fonttitle=\linespread{1}\footnotesize,
- attach title to upper,fontupper=\footnotesize,overlay={\begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west) ;\end{tcbclipinterior}},bottom=-0.5mm,tcbjpuparskip,#2]%
+ \tcolorbox[breakable,sharp corners=all,enhanced,size=small,boxrule=0.5pt,width=#3,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitlein,fonttitle=\linespread{1}\footnotesize,
+ attach title to upper,fontupper=\footnotesize,overlay={\begin{tcbclipinterior}\draw[line width=0.5pt,gray] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west) ;\end{tcbclipinterior}},bottom=-0.5mm,top=0.5mm,tcbjpuparskip,#2]%
+ %\PitonOptions{width={#3-5mm}}
\directlua{%
- tex.print("\\begin{Piton}[left-margin=\\LargeurNumbersJupiter+1.75mm,all-line-numbers,tabs-auto-gobble,break-lines,indent-broken-lines]")
+ tex.print("\\begin{Piton}[left-margin=\\LargeurNumbersJupiter+1.75mm,line-numbers={skip-empty-lines=false,label-empty-lines=true},break-lines,indent-broken-lines,continuation-symbol={},#4]")
tex.print(pyluatex.get_last_code())
tex.print("\\end{Piton}")
}%
@@ -347,13 +354,128 @@
}%
\tcbset{reset}%
\noindent%
- \tcolorbox[breakable,sharp corners = all,boxrule=0.3pt,enhanced,size=small,width=#3,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitleout,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,tcbjpuparskip,#2]%
+ \tcolorbox[breakable,sharp corners = all,enhanced,size=small,boxrule=0.5pt,width=#3,colframe=lightgray!25,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitleout,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,top=0.5mm,tcbjpuparskip,#2]%
+ %\PitonOptions{width={#3-5mm-\LargeurPromptJupiter-\OffsetPromptJupiter+2mm}}
\directlua{%
- tex.print("\\begin{Piton}[tabs-auto-gobble,break-lines,indent-broken-lines]")
+ tex.print("\\begin{Piton}[break-lines,continuation-symbol={},end-of-broken-line={},#4]")
tex.print(pyluatex.get_last_output())
tex.print("\\end{Piton}")
}%
\endtcolorbox%
+ \ignorespacesafterend%
+}
+
+\NewPitonEnvironment{NotebookPitonAllNum}{ s O{} m !D<>{} }%
+{%
+\SetJupiterLengths
+\IfBooleanTF{#1}%
+{\tcbset
+{
+tcbjpuptitlein/.style =
+ { title = \promptjupyter*{\JupyterPromptIn}
+ {red!75!black}
+ {\theJupyterIn}
+ {\hspace*{\OffsetPromptJupiter}}
+ }%
+}%
+}%
+{\refstepcounter{JupyterIn}
+\tcbset
+{
+tcbjpuptitlein/.style =
+ { title = \promptjupyter{\JupyterPromptIn \ifnum\value{JupyterIn}<10~\fi}
+ {red!75!black}
+ {\theJupyterIn}
+ {\hspace*{\OffsetPromptJupiter}}
+ }
+}%
+}%
+\noindent
+\PitonOptions
+{
+left-margin = \LargeurNumbersJupiter + 1.75mm ,
+all-line-numbers,
+break-lines,
+indent-broken-lines,
+continuation-symbol={},
+#4
+}%
+\tcolorbox[breakable,
+ sharp corners=all,
+ enhanced,
+ size = small,
+ boxrule = 0.5pt,
+ width = #3,
+ colframe = gray,
+ colback = lightgray!15,
+ left skip = \LargeurPromptJupiter+\OffsetPromptJupiter-2mm,
+ tcbjpuptitlein,
+ fonttitle = \linespread{1}\footnotesize,
+ attach title to upper,
+ fontupper = \footnotesize,
+ overlay = {%
+ \begin{tcbclipinterior}
+ \draw[line width=0.5pt,gray]
+ ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)
+ --([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west) ;
+ \end{tcbclipinterior}},
+ bottom = -0.5mm,
+ tcbjpuparskip,
+ #2]%
+}
+{
+\endtcolorbox
+%
+\tcbset{reset}%
+\IfBooleanTF{#1}%
+{ \tcbset
+{ tcbjpuptitleout/.style =
+ { title =
+ \promptjupyter*{\JupyterPromptOut}
+ {blue!75!black}
+ {\theJupyterIn}
+ {\hspace*{\OffsetPromptJupiter}}
+ }
+}%
+}%
+{ \tcbset
+{ tcbjpuptitleout/.style =
+ { title =
+ \promptjupyter{\JupyterPromptOut \ifnum\value{JupyterIn}<10~\fi}
+ {blue!75!black}
+ {\theJupyterIn}
+ {\hspace*{\OffsetPromptJupiter}}
+ }
+}%
+}%
+\tcolorbox[breakable,
+ sharp corners = all,
+ enhanced,
+ size = small,
+ boxrule = 0.5pt,
+ width = #3,
+ colframe = lightgray!25,
+ colback = white,
+ left skip = \LargeurPromptJupiter + \OffsetPromptJupiter - 2mm,
+ tcbjpuptitleout,
+ fonttitle = \linespread{1}\footnotesize,
+ attach title to upper,
+ fontupper = \footnotesize,
+ overlay = {%
+ \begin{tcbclipinterior}
+ \draw[line width=0.5pt,lightgray!15]
+ ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)
+ --([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west) ;
+ \end{tcbclipinterior}},
+ bottom = -0.5mm,
+ tcbjpuparskip,
+ #2]%
+\directlua{%
+tex.print("\\begin{Piton}")
+tex.print(pyluatex.execute(piton.get_last_code(), false, true, false, true))
+tex.print("\\end{Piton}")
+}%
+\endtcolorbox%
}
\fi
diff --git a/macros/latex/contrib/vectorlogos/README.md b/macros/latex/contrib/vectorlogos/README.md
index 5c689d9c0f..623bd178a8 100644
--- a/macros/latex/contrib/vectorlogos/README.md
+++ b/macros/latex/contrib/vectorlogos/README.md
@@ -1,18 +1,33 @@
-vectorlogos is a package with vectorial logos of some 'classic' softwares.
---------------------------------------------------------------------------
-vectorlogos est un package des logos vectoriels de logiciels 'classiques'.
---------------------------------------------------------------------------
-Author...........: Cédric Pierquet
-email............: cpierquet@outlook.fr
-Licence..........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
-Sources..........: I converted the logos from their original SVG or other forms, as found on the given urls, to PDF
-Texstudio........: FREE https://en.m.wikipedia.org/wiki/File:TeXstudio_Logo.svg
-Emacs............: FREE https://commons.wikimedia.org/wiki/File:EmacsIcon.svg
-Emacs alt........: FREE https://fr.m.wikipedia.org/wiki/Fichier:Emacs-logo.svg
-Geogebra.........: CC30 https://wiki.geogebra.org/en/File:Geogebra-logo-name.svg
-Texmaker.........: FREE https://en.wikipedia.org/wiki/File:TeXmaker_Logo.svg
-Texmaker old.....: FREE https://en.wikipedia.org/wiki/File:TeXmaker_New_Logo.svg
-Scratch..........: Public https://commons.wikimedia.org/wiki/File:Scratchlogo.svg
-Scratch alt......: Public https://commons.wikimedia.org/wiki/File:Scratchlogo.svg
-Scratch cat......: CC40 https://fr.scratch-wiki.info/wiki/Fichier:Scratch_Cat_(cat-a).svg
-Geogebra icon....: CC30 https://fr.m.wikipedia.org/wiki/Fichier:Geogebra.svg
+# vectorlogos
+
+US `vectorlogos` is a package with vectorial logos of some 'classic' softwares.\
+FR `vectorlogos` est un package des logos vectoriels de logiciels 'classiques'.
+
+```
+author: Cédric Pierquet
+email: cpierquet@outlook.fr
+licence: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+```
+
+## Sources
+
+I converted the logos from their original SVG or other forms, as found on the given URLs, to PDF.
+
+| Software | Licence | Source |
+|------------------|---------|------------------------------------------------------------------------------------------------------|
+| Texstudio | FREE | <https://en.m.wikipedia.org/wiki/File:TeXstudio_Logo.svg> |
+| Emacs | FREE | <https://commons.wikimedia.org/wiki/File:EmacsIcon.svg> |
+| Emacs alt | FREE | <https://fr.m.wikipedia.org/wiki/Fichier:Emacs-logo.svg> |
+| Geogebra | CC30 | <https://wiki.geogebra.org/en/File:Geogebra-logo-name.svg> |
+| Texmaker | FREE | <https://en.wikipedia.org/wiki/File:TeXmaker_Logo.svg> |
+| Texmaker old | FREE | <https://en.wikipedia.org/wiki/File:TeXmaker_New_Logo.svg> |
+| Scratch | Public | <https://commons.wikimedia.org/wiki/File:Scratchlogo.svg> |
+| Scratch alt | Public | <https://commons.wikimedia.org/wiki/File:Scratchlogo.svg> |
+| Scratch cat | CC40 | <https://fr.scratch-wiki.info/wiki/Fichier:Scratch_Cat_(cat-a).svg> |
+| Geogebra icon | CC30 | <https://fr.m.wikipedia.org/wiki/Fichier:Geogebra.svg> |
+| MikTex logo | Public | <https://fr.wikipedia.org/wiki/Fichier:Logo_MiKTeX.svg> |
+| Miktex icons | FREE | <https://github.com/MiKTeX/miktex/tree/next/Resources/Icons/MiKTeX/scalable/apps> |
+| CTAN Lion | FREE | CTAN lion drawing by Duane Bibby |
+| LaTeX project | CC40 | <https://github.com/latex3/latex3.github.io/tree/ba511d2fd43dc08ad301e31b2a32c472b252b76b/_site/img> |
+| | | from Jonas Jacek (<https://www.j15k.com/>) |
+| TeXworks | GPL2 | <https://github.com/TeXworks/texworks/blob/main/res/images/TeXworks.png> |
diff --git a/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.pdf b/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.pdf
index 9cd12192e7..258b5776c8 100644
--- a/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.pdf
+++ b/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.tex b/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.tex
index 3bf44201fa..800b33e627 100644
--- a/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.tex
+++ b/macros/latex/contrib/vectorlogos/doc/vectorlogos-doc.tex
@@ -4,7 +4,7 @@
\usepackage{crimson}
\renewcommand*\ttdefault{cmvtt}
\usepackage[T1]{fontenc}
-\usepackage{cabin}
+\usepackage[scale=0.875]{cabin}
\usepackage{vectorlogos}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
@@ -27,8 +27,8 @@
\hypersetup{pdfborder=0 0 0}
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.2}
-\def\TPdate{30/11/2023}
+\def\TPversion{0.1.3}
+\def\TPdate{30/03/2024}
\usepackage{tcolorbox}
\tcbuselibrary{skins,hooks,listingsutf8}
\usepackage{soul}
@@ -91,6 +91,22 @@
\medskip
\scalebox{4}[4]{\logotexmaker}\hspace{1cm}\scalebox{4}[4]{\logotexmaker[alt]}
+
+\medskip
+
+\scalebox{4}[4]{\logomiktex}\hspace{1cm}\scalebox{4}[4]{\logomiktex[icon]}\hspace{1cm}\scalebox{4}[4]{\logomiktex[icon-alt]}
+
+\medskip
+
+\scalebox{4}[4]{\logoctanlion}
+
+\medskip
+
+\scalebox{4}[4]{\logolatexproject}
+
+\medskip
+
+\scalebox{4}[4]{\logotexworks}\hspace{1cm}\scalebox{4}[4]{\logotexworks[alt]}
\end{center}
\end{tcolorbox}
@@ -102,7 +118,9 @@
\emph{%
Logos came with GNU GPL or CC BY-SA (3.0 or 4.0).\\
-Some brand icons/logos are trademarks of their respective owners. Please do not use brand icons/logos for any purpose except to represent the company, product, or service to which they refer.%\\
+Some brand icons/logos are trademarks of their respective owners. Please do not use brand icons/logos for any purpose except to represent the company, product, or service to which they refer.\\
+CTAN lion drawing by Duane Bibby.\\
+LaTeX project logo, from Jonas Jacek (\url{https://www.j15k.com/}).
%"Python" and the Python Logo are trademarks of the Python Software Foundation (\url{https://www.python.org/psf/trademarks/}).%
}
@@ -172,6 +190,17 @@ Available logos are :
& vectorlogo-texmaker-alt.pdf & \logotexmaker[alt] \\
\hline
texstudio & vectorlogo-texstudio.pdf & \logotexstudio\ \\
+ \hline
+ MiKTeX & vectorlogo-miktex.pdf & \logomiktex\ \\
+ & vectorlogo-miktex-icon.pdf & \logomiktex[icon]\ \\
+ & vectorlogo-miktex-icon-alt.pdf & \logomiktex[icon-alt]\ \\
+ \hline
+ CTAN lion & vectorlogo-ctanlion.pdf & \logoctanlion\ \\
+ \hline
+ LaTeX project & vectorlogo-latexproject.pdf & \logolatexproject\ \\
+ \hline
+ TeXworks & vectorlogo-texworks.pdf & \logotexworks\ \\
+ & vectorlogo-texworks-alt.pdf & \logotexworks[alt]\ \\
\end{tblr}
\pagebreak
@@ -195,7 +224,9 @@ There's no automatic height or raising, it's just an \textit{alias} of a classic
\simplevectorlogo*[height=4cm]{scratch-cat}\par
\simplevectorlogo*[scale=0.33]{texstudio}\par
\simplevectorlogo*{emacs}\par
-\simplevectorlogo*[width=3cm]{geogebra-icon}
+\simplevectorlogo*[width=3cm]{geogebra-icon}\par
+\simplevectorlogo*[height=1cm]{miktex}\par
+\simplevectorlogo*[height=2cm]{ctanlion}
\end{tcblisting}
\pagebreak
@@ -226,6 +257,10 @@ Available \textsf{names} are :
\item \texttt{scratch}
\item \texttt{texmaker}
\item \texttt{texstudio}
+ \item \texttt{miktex}
+ \item \texttt{ctanlion}
+ \item \texttt{texworks}
+ \item \texttt{latexproject}
\end{itemize}
\end{multicols}
@@ -253,6 +288,10 @@ There's an other (shortcut) way to insert logos, with a shortcut-name, like in \
\logotexstudio[option]
\logoemacs[option]
\logotexmaker[option]
+\logomiktex[option]
+\logoctanlion
+\logotexworks
+\logolatexproject
\end{verbatim}
\end{quote}
@@ -315,7 +354,29 @@ A sample logo, \logoemacs[alt], inline.
\samplevectorlogo{\logotexmaker[alt]}
\end{tcblisting}
-\pagebreak
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logomiktex}
+\end{tcblisting}
+
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logomiktex[icon]}
+\end{tcblisting}
+
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logomiktex[icon-alt]}
+\end{tcblisting}
+
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logoctanlion}
+\end{tcblisting}
+
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logotexworks}
+\end{tcblisting}
+
+\begin{tcblisting}{listing side text}
+\samplevectorlogo{\logolatexproject}
+\end{tcblisting}
\subsection{Personal logos}
@@ -377,6 +438,7 @@ By this way, and with logo named \MontreCode{vectorlogo-<basename>-...}, a speci
\begin{quote}
\begin{verbatim}
+0.1.3 : Logos for MikTeX + CTAN lion + LateX project
0.1.2 : Alt command for manual insertion, with existing img
0.1.1 : Update licenses
0.1.0 : Initial version
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-ctanlion.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-ctanlion.pdf
new file mode 100644
index 0000000000..30dd09e5b9
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-ctanlion.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-latexproject.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-latexproject.pdf
new file mode 100644
index 0000000000..dd156c2c13
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-latexproject.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon-alt.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon-alt.pdf
new file mode 100644
index 0000000000..4da7d6f729
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon-alt.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon.pdf
new file mode 100644
index 0000000000..5973afb192
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex-icon.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex.pdf
new file mode 100644
index 0000000000..ed8caeaa5f
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-miktex.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks-alt.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks-alt.pdf
new file mode 100644
index 0000000000..b748f51a62
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks-alt.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks.pdf b/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks.pdf
new file mode 100644
index 0000000000..627d48a6e1
--- /dev/null
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogo-texworks.pdf
Binary files differ
diff --git a/macros/latex/contrib/vectorlogos/tex/vectorlogos.sty b/macros/latex/contrib/vectorlogos/tex/vectorlogos.sty
index 329b5e8de3..8b4fe4fa30 100644
--- a/macros/latex/contrib/vectorlogos/tex/vectorlogos.sty
+++ b/macros/latex/contrib/vectorlogos/tex/vectorlogos.sty
@@ -11,12 +11,18 @@
% Geogebra icon...: CC30 https://fr.m.wikipedia.org/wiki/Fichier:Geogebra.svg
% Texmaker........: FREE https://en.wikipedia.org/wiki/File:TeXmaker_Logo.svg
% Texmaker alt....: FREE https://en.wikipedia.org/wiki/File:TeXmaker_New_Logo.svg
+% MikTex logo.....: Public https://fr.wikipedia.org/wiki/Fichier:Logo_MiKTeX.svg
+% Miktex icons....: FREE https://github.com/MiKTeX/miktex/tree/next/Resources/Icons/MiKTeX/scalable/apps
+% CTAN Lion.......: FREE CTAN lion drawing by Duane Bibby
+% LaTeX project...: CC40 https://github.com/latex3/latex3.github.io/tree/ba511d2fd43dc08ad301e31b2a32c472b252b76b/_site/img from Jonas Jacek (https://www.j15k.com/)
+% TeXworks........: GPL 2.0 https://github.com/TeXworks/texworks/blob/main/res/images/TeXworks.png
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{vectorlogos}[2023/11/30 0.1.2 Vectorial logos of 'classic' softwares, for inline use.]
+\ProvidesPackage{vectorlogos}[2024/03/30 0.1.3 Vectorial logos of 'classic' softwares, for inline use.]
%====HISTORY
+% v 0.1.3 Miktex logo/icons + LaTeX-projext + CTAN lion + TeXworks (from png)
% v 0.1.2 Alt command for manual insertion, with existing img
% v 0.1.1 Licenses update
% v 0.1.0 Initial Version
@@ -82,6 +88,10 @@
\IfEq{#2}{texstudio}{\logotexstudio[#1]}{}%
\IfEq{#2}{emacs}{\logoemacs[#1]}{}%
\IfEq{#2}{texmaker}{\logotexmaker[#1]}{}%
+ \IfEq{#2}{miktex}{\logomiktex[#1]}{}%
+ \IfEq{#2}{ctanlion}{\logoctanlion[#1]}{}%
+ \IfEq{#2}{latexproject}{\logolatexproject[#1]}{}%
+ \IfEq{#2}{texworks}{\logotexworks[#1]}{}%
}
%====SPECIFIC MACROS
@@ -90,5 +100,9 @@
\GenMacroLogoVect{\logotexstudio}{texstudio}
\GenMacroLogoVect{\logoemacs}{emacs}
\GenMacroLogoVect{\logotexmaker}{texmaker}
+\GenMacroLogoVect{\logomiktex}{miktex}
+\GenMacroLogoVect{\logoctanlion}{ctanlion}
+\GenMacroLogoVect{\logolatexproject}{latexproject}
+\GenMacroLogoVect{\logotexworks}{texworks}
\endinput \ No newline at end of file