texlive[75981] Master/texmf-dist: customenvs (5aug25)
commits+karl at tug.org
commits+karl at tug.org
Tue Aug 5 22:36:19 CEST 2025
Revision: 75981
https://tug.org/svn/texlive?view=revision&revision=75981
Author: karl
Date: 2025-08-05 22:36:19 +0200 (Tue, 05 Aug 2025)
Log Message:
-----------
customenvs (5aug25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.tex
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.pdf
trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.tex
trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-exams.sty
trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-tikzpictos.sty
trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex 2025-08-05 20:36:19 UTC (rev 75981)
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.41a}
-\def\TPdate{29/07/2025}
+\def\TPversion{0.41b}
+\def\TPdate{04/08/2025}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -114,8 +114,10 @@
\section{History}
-\verb|v0.41a|~:~~~Option \textsf{noninlinegraphicx} for compatibility with \textsf{MikTeX} + Bugfix
+\verb|v0.41b|~:~~~Bugfix + pre-compatibility with \textsf{fa5/fa6/fa7} + new pictograms
+\verb|v0.41a|~:~~~Option \textsf{noinlinegraphicx} for compatibility with \textsf{MikTeX} + Bugfix
+
\verb|v0.40f|~:~~~\textsf{WhatsApp} style for 'Chat'
\verb|v0.40e|~:~~~\textsf{customenvs-icons} \texttt{v0.1.0}
@@ -188,42 +190,44 @@
\subsection{Idea}
-The idea is to propose some classics environments with customizations (some are, for the moment, only in french) :
+The idea is to propose some classics environments with customizations (some are, for the moment, only in french):
\begin{itemize}
- \item write in \textit{multicols}, with spacings enhancements ;
- \item present answers for a \textit{MCQ} ;
- \item create a list with \textit{choosen items} (randomly or by numbers) ;
+ \item write in \textit{multicols}, with spacings enhancements;
+ \item present answers for a \textit{MCQ};
+ \item create a list with \textit{choosen items} (randomly or by numbers);
\item present a skill table.
\end{itemize}
\smallskip
-The globa idea is ti propose \textit{user-friendly} environments, with explicit customizations, without using verbose syntax ; but there's other solutions, using for example \MontreCode{\textbackslash vspace} ou \MontreCode{\textbackslash setlength} or \MontreCode{spacingtricks} package.
+The globa idea is ti propose \textit{user-friendly} environments, with explicit customizations, without using verbose syntax; but there's other solutions, using for example \MontreCode{\textbackslash vspace} ou \MontreCode{\textbackslash setlength} or \MontreCode{spacingtricks} package.
\subsection{Loading}
The package loads within the preamble with \MontreCode{\textbackslash usepackage\{customenvs\}}.
-Loaded packages are
+Loaded packages are:
\begin{itemize}
- \item \MontreCode{xstring}, \MontreCode{simplekv}, \MontreCode{listofitems}, \MontreCode{randomlist} and \MontreCode{xintexpr} ;
- \item \MontreCode{enumitem} ;
- \item \MontreCode{multicol} ;
- \item \MontreCode{tabularray} ;
- \item \MontreCode{fontawesome} ;
+ \item \MontreCode{xstring}, \MontreCode{simplekv}, \MontreCode{listofitems}, \MontreCode{randomlist} and \MontreCode{xintexpr};
+ \item \MontreCode{enumitem};
+ \item \MontreCode{multicol};
+ \item \MontreCode{tabularray};
+ \item \MontreCode{fontawesome};
\end{itemize}
-Due to limitations, \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{fontawesome5/6}/\MontreCode{inlinegraphicx} can be \textit{un}loaded by \MontreCode{customenvs} (user must load them manually) via options :
+Due to limitations, \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{fontawesome5/6}/\MontreCode{inlinegraphicx} can be \textit{un}loaded by \MontreCode{customenvs} (user must load them manually) via options:
\begin{itemize}
- \item \MontreCode{$\mathtt{\langle}$beamer$\mathtt{\rangle}$} for using with \textsf{beamer} ;
- \item \MontreCode{$\mathtt{\langle}$noenum$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$nomulticol$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$notblr$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$noinlinegraphicx$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$nofa$\mathtt{\rangle}$}.
+ \item \MontreCode{$\mathtt{\langle}$beamer$\mathtt{\rangle}$} for using with \textsf{beamer};
+ \item \MontreCode{$\mathtt{\langle}$noenum$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$nomulticol$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$notblr$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$noinlinegraphicx$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$nofa$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$fa6$\mathtt{\rangle}$};
+ \item \MontreCode{$\mathtt{\langle}$fa7$\mathtt{\rangle}$}.
\end{itemize}
\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
@@ -236,7 +240,7 @@
\pagebreak
-\subsection{Subpackage customenvs-tikzpictos (v0.1.4)}
+\subsection{Subpackage customenvs-tikzpictos (v0.1.5)}
The package \MontreCode{customenvs-tikzpictos}, loaded within \MontreCode{customenvs} (but can be loaded independently), proposes small pictograms.
@@ -316,24 +320,24 @@
\AnswersMCQ[options]{list of answers}<tblr options>
\end{codehigh}
-The avalailable \MontreCode{options} are :
+The avalailable \MontreCode{options} are:
\begin{itemize}
- \item \MontreCode{Width} : \MontreCode{0.99\textbackslash linewidth} by default ;
- \item \MontreCode{Lines} : \MontreCode{false} by default ;
- \item \MontreCode{SpaceCR} for Columns/Rows spacing, within \MontreCode{col/row} or \MontreCode{global} : \MontreCode{6pt/2pt} by default ;
- \item \MontreCode{NumCols}, 2 or 4 : \MontreCode{4} by default ;
- \item \MontreCode{Labels} for the labels : \MontreCode{a.} by default ;
+ \item \MontreCode{Width}: \MontreCode{0.99\textbackslash linewidth} by default;
+ \item \MontreCode{Lines}: \MontreCode{false} by default;
+ \item \MontreCode{SpaceCR} for Columns/Rows spacing, within \MontreCode{col/row} or \MontreCode{global}: \MontreCode{6pt/2pt} by default;
+ \item \MontreCode{NumCols}, 2 or 4: \MontreCode{4} by default;
+ \item \MontreCode{Labels} for the labels: \MontreCode{a.} by default;
\begin{itemize}
- \item with \MontreCode{box} to use a \textit{Box} ;
- \item with \MontreCode{a} to \textit{enumerate} \MontreCode{a b c d} ;
- \item with \MontreCode{A} to \textit{enumerate} \MontreCode{A B C D} ;
- \item with \MontreCode{1} to \textit{enumerate} \MontreCode{1 2 3 4} ;
+ \item with \MontreCode{box} to use a \textit{Box};
+ \item with \MontreCode{a} to \textit{enumerate} \MontreCode{a b c d};
+ \item with \MontreCode{A} to \textit{enumerate} \MontreCode{A B C D};
+ \item with \MontreCode{1} to \textit{enumerate} \MontreCode{1 2 3 4};
\end{itemize}
- \item \MontreCode{FontLabels} : \MontreCode{\textbackslash bfseries} by default ;
- \item \MontreCode{SpaceLabels} : \MontreCode{\textbackslash kern5pt} by default ;
- \item \MontreCode{Shuffle}, for mixing answers : \MontreCode{false} by default ;
- \item \MontreCode{Swap}, for ACBD instead of ABCD : \MontreCode{false} by default.
+ \item \MontreCode{FontLabels}: \MontreCode{\textbackslash bfseries} by default;
+ \item \MontreCode{SpaceLabels}: \MontreCode{\textbackslash kern5pt} by default;
+ \item \MontreCode{Shuffle}, for mixing answers: \MontreCode{false} by default;
+ \item \MontreCode{Swap}, for ACBD instead of ABCD: \MontreCode{false} by default.
\end{itemize}
The list of answers must be given within \MontreCode{answA § answB § ...}.
@@ -397,10 +401,10 @@
\subsection{Global use}
-The idea is to :
+The idea is to:
\begin{itemize}
- \item create a list of items, the base for choices ;
+ \item create a list of items, the base for choices;
\item print the list with picked items.
\end{itemize}
@@ -412,11 +416,11 @@
\ListItemsChoice[keys]{macro}{listname}(numbers)<enumitem options>!beamer options!
\end{codehigh}
-The available \MontreCode{keys} are :
+The available \MontreCode{keys} are:
\begin{itemize}
- \item \MontreCode{Type} : \MontreCode{enum} or \MontreCode{item} ;
- \item \MontreCode{Random} : \MontreCode{false} by default.
+ \item \MontreCode{Type}: \MontreCode{enum} or \MontreCode{item};
+ \item \MontreCode{Random}: \MontreCode{false} by default.
\end{itemize}
The second argument, mandatory and between \MontreCode{\{...\}} is the macro for the list.
@@ -423,10 +427,10 @@
The third argument, mandatory and between \MontreCode{\{...\}} is the name of the list.
-The fourth argument, mandatory and between \MontreCode{(...)} give :
+The fourth argument, mandatory and between \MontreCode{(...)} give:
\begin{itemize}
- \item the number of random items to display, with \MontreCode{Random=true} ;
+ \item the number of random items to display, with \MontreCode{Random=true};
\item the numbers of picked itemps, within \MontreCode{num1,num2,...}.
\end{itemize}
@@ -436,10 +440,10 @@
\medskip
-Controls are done :
+Controls are done:
\begin{itemize}
- \item to verify that the list doesn't exist (for the creation) ;
+ \item to verify that the list doesn't exist (for the creation);
\item to verify that that the list still exist (for the display).
\end{itemize}
@@ -490,14 +494,14 @@
\subsection{Global use}
-The idea is to :
+The idea is to:
\begin{itemize}
- \item present of list of categories and skills ;
+ \item present of list of categories and skills;
\item presented like a pencil.
\end{itemize}
-The code (within CC-BY-SA 4.0 license) is adapted from :
+The code (within CC-BY-SA 4.0 license) is adapted from:
\hfill{\footnotesize \url{https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145}}\hfill~
@@ -509,19 +513,19 @@
\subsection{The macro}
-Available \MontreCode{keys} are :
+Available \MontreCode{keys} are:
\begin{itemize}
- \item \MontreCode{FontCateg} : font for the categories ;
- \item \MontreCode{FontBlock} : font for the skills ;
- \item \MontreCode{Colors} : list of category's colors
+ \item \MontreCode{FontCateg}: font for the categories;
+ \item \MontreCode{FontBlock}: font for the skills;
+ \item \MontreCode{Colors}: list of category's colors
\MontreCode{BgCateg1/FgCateg1,BgCateg1/FgCateg1,...}
(if \MontreCode{FgCateg1} est missing, \MontreCode{black} is used)
- \item \MontreCode{BlockWidth} : width of skill's block ;
- \item \MontreCode{Scale} : global scale
- \item \MontreCode{BlackWhite} : boolean for B\&W.
+ \item \MontreCode{BlockWidth}: width of skill's block;
+ \item \MontreCode{Scale}: global scale
+ \item \MontreCode{BlackWhite}: boolean for B\&W.
\end{itemize}
The second argument, optional and between \MontreCode{<...>} gives specific options to \MontreCode{enumitem} environment.
@@ -576,20 +580,20 @@
\subsection{The macro}
-Available \MontreCode{keys} are :
+Available \MontreCode{keys} are:
\begin{itemize}
- \item \MontreCode{Height} : height of the banner (without the legend) ; \MontreCode{1} by default
- \item \MontreCode{Ratio} : ratio of boxes ; \MontreCode{0.6} by default
- \item \MontreCode{Symbols} : labels ; \MontreCode{A,B,C,D,E} by default
- \item \MontreCode{Legend} : legend (uppercase) ; \MontreCode{score} by default ;
- \item \MontreCode{Font} : global font ; \MontreCode{\textbackslash bfseries\textbackslash sffamily} by default
- \item \MontreCode{ShowLegend} : boolean for the legend ; \MontreCode{false} by default ;
- \item \MontreCode{Colors} : colors for boxes ;
+ \item \MontreCode{Height}: height of the banner (without the legend); \MontreCode{1} by default
+ \item \MontreCode{Ratio}: ratio of boxes; \MontreCode{0.6} by default
+ \item \MontreCode{Symbols}: labels; \MontreCode{A,B,C,D,E} by default
+ \item \MontreCode{Legend}: legend (uppercase); \MontreCode{score} by default;
+ \item \MontreCode{Font}: global font; \MontreCode{\textbackslash bfseries\textbackslash sffamily} by default
+ \item \MontreCode{ShowLegend}: boolean for the legend; \MontreCode{false} by default;
+ \item \MontreCode{Colors}: colors for boxes;
- \hfill\MontreCode{colorNS1,colorNS2,colorNS3,colorNS4,colorNS5} by default ;
- \item \MontreCode{ScaleSymbols} : scale H/V of labels ; \MontreCode{1.25,1.65} by default ;
- \item \MontreCode{Colbg} : background color for select box ; \MontreCode{white} by default.
+ \hfill\MontreCode{colorNS1,colorNS2,colorNS3,colorNS4,colorNS5} by default;
+ \item \MontreCode{ScaleSymbols}: scale H/V of labels; \MontreCode{1.25,1.65} by default;
+ \item \MontreCode{Colbg}: background color for select box; \MontreCode{white} by default.
\end{itemize}
\smallskip
@@ -628,21 +632,21 @@
\subsection{The environment}
-Available \MontreCode{keys} are :
+Available \MontreCode{keys} are:
\begin{itemize}
- \item \MontreCode{height} : height of the window (auto or specific) ; \MontreCode{auto} by default
- \item \MontreCode{width} : width of the window ; \MontreCode{7cm} by default
- \item \MontreCode{margin} : margin (L or R) for the bubble \MontreCode{1.5cm} by default
- \item \MontreCode{color} : \textit{main} color (banner) ; \MontreCode{teal!75!cyan!75!white} by default ;
- \item \MontreCode{colback} : color for background ; \MontreCode{lightgray!5} by default
- \item \MontreCode{colorin} : color for incoming SMS ; \MontreCode{lime!25} by default
- \item \MontreCode{colorout} : color for outcoming SMS ; \MontreCode{teal!25} by default
- \item \MontreCode{writetxt} : text of sending zone ; \MontreCode{Write} by default
- \item \MontreCode{fonttxt} : bubble's font ; \MontreCode{\textbackslash normalfont} by default
- \item \MontreCode{avatar} : avatar of contact ; \MontreCode{\textbackslash faAddressCard} by default
- \item \MontreCode{dispavatar} : boolean for displaying avatar near the bubbles ; \MontreCode{false} by default
- \item \MontreCode{blackwhite} : boolean pour black\&white. \MontreCode{false} by default
+ \item \MontreCode{height}: height of the window (auto or specific); \MontreCode{auto} by default
+ \item \MontreCode{width}: width of the window; \MontreCode{7cm} by default
+ \item \MontreCode{margin}: margin (L or R) for the bubble \MontreCode{1.5cm} by default
+ \item \MontreCode{color}: \textit{main} color (banner); \MontreCode{teal!75!cyan!75!white} by default;
+ \item \MontreCode{colback}: color for background; \MontreCode{lightgray!5} by default
+ \item \MontreCode{colorin}: color for incoming SMS; \MontreCode{lime!25} by default
+ \item \MontreCode{colorout}: color for outcoming SMS; \MontreCode{teal!25} by default
+ \item \MontreCode{writetxt}: text of sending zone; \MontreCode{Write} by default
+ \item \MontreCode{fonttxt}: bubble's font; \MontreCode{\textbackslash normalfont} by default
+ \item \MontreCode{avatar}: avatar of contact; \MontreCode{\textbackslash faAddressCard} by default
+ \item \MontreCode{dispavatar}: boolean for displaying avatar near the bubbles; \MontreCode{false} by default
+ \item \MontreCode{blackwhite}: boolean pour black\&white. \MontreCode{false} by default
\end{itemize}
The argument, mandatory and between \MontreCode{(...)} give the name of the contact.
@@ -653,7 +657,7 @@
\begin{itemize}
\item the \textit{starred} version does not display the \textit{checkmarks} of \textit{good reception};
- \item the first mandatory argument is the time to display ;
+ \item the first mandatory argument is the time to display;
\item the second mandatory argument is the message to display (including multi-lines).
\end{itemize}
@@ -688,7 +692,7 @@
Un style type \textit{WhatsApp} est également disponible, avec un fonctionnement similaire à celui présenté précédemment.
-Les clés disponibles sont :
+Les clés disponibles sont:
\begin{itemize}
\item \MontreCode{height}: \MontreCode{auto} by default
@@ -710,7 +714,7 @@
\WaRec{19:23}{Hi!}
\WaDate{today}
\WaSend*{08:33}{Hi!!}
- \WaSend*{08:35}{You're using WhApp so :-)}
+ \WaSend*{08:35}{You're using WhApp so:-)}
\WaRec{10:15}{Yep!!}
\WaRec{10:18}{Could you help me?}
\WaRec{10:18}{I've got pb with tables in \LaTeX\ldots}
@@ -723,7 +727,7 @@
\WaRec{19:23}{Hi!}
\WaDate{today}
\WaSend*{08:33}{Hi!!}
- \WaSend*{08:35}{You're using WhApp so :-)}
+ \WaSend*{08:35}{You're using WhApp so:-)}
\WaRec{10:15}{Yep!!}
\WaRec{10:18}{Could you help me?}
\WaRec{10:18}{I've got pb with tables in \LaTeX\ldots}
@@ -748,7 +752,7 @@
\tkzBannerTri{01}{Title of document}
\end{demohigh}
-Available \MontreCode{keys} are :
+Available \MontreCode{keys} are:
\begin{itemize}
\item \MontreCode{height} (\MontreCode{2.5em} by default)
@@ -863,11 +867,11 @@
\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
\begin{tikzpicture}
- \draw[thin,lightgray] (-3,-1) grid (5,5) ;
- \coordinate (A) at (0,0) ; \coordinate (B) at (4,1) ;
- \coordinate (C) at (1,1) ; \coordinate (D) at (5,4) ;
- \coordinate (E) at (0,1) ; \coordinate (F) at (0,5) ;
- \coordinate (G) at (-2,0) ;
+ \draw[thin,lightgray] (-3,-1) grid (5,5);
+ \coordinate (A) at (0,0); \coordinate (B) at (4,1);
+ \coordinate (C) at (1,1); \coordinate (D) at (5,4);
+ \coordinate (E) at (0,1); \coordinate (F) at (0,5);
+ \coordinate (G) at (-2,0);
\tkzFlaredArrow[color=green,arrowstyle=Triangle]{A}{B}
\tkzFlaredArrow[color=blue,bend=right/10]{D}{C}
\tkzFlaredArrow%
@@ -1031,8 +1035,8 @@
\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
\begin{imgannotate}[node=IMGTEST][height=5cm]<rotate=10>{example-image-golden.pdf}
%tikz usual commands
- \draw (IMGTEST.center) node[above=5mm,font=\Huge\ttfamily\bfseries,text=blue] {TEST1} ;
- \draw (IMGTEST.north west) node[draw,thick,red,inner sep=0.5mm,below right=2.5mm,font=\LARGE\sffamily\bfseries,text=red] {TEST2} ;
+ \draw (IMGTEST.center) node[above=5mm,font=\Huge\ttfamily\bfseries,text=blue] {TEST1};
+ \draw (IMGTEST.north west) node[draw,thick,red,inner sep=0.5mm,below right=2.5mm,font=\LARGE\sffamily\bfseries,text=red] {TEST2};
\end{imgannotate}
\end{demohigh}
@@ -1102,16 +1106,16 @@
\storetotalheighttolength{\tmpbox}{\mytmpboxtotheight}%
\storedepthtolength{\tmpbox}{\mytmpboxdepth}%
\begin{tikzpicture}[scale=5,transform shape]
- \node[draw=lightgray,inner sep=0pt,text=black] (BOX) {\large $1+\frac{1}{x}$} ;
+ \node[draw=lightgray,inner sep=0pt,text=black] (BOX) {\large $1+\frac{1}{x}$};
\begin{scope}
- \clip (BOX) ;
- \draw[lightgray] ([yshift=\mytmpboxdepth]BOX.south west) --++ ({\mytmpboxwidth+2\pgflinewidth},0) ;
+ \clip (BOX);
+ \draw[lightgray] ([yshift=\mytmpboxdepth]BOX.south west) --++ ({\mytmpboxwidth+2\pgflinewidth},0);
\end{scope}
- \draw[lightgray] ([yshift=\mytmpboxdepth]BOX.south west) --++ ({\mytmpboxwidth},0) ;
- \draw[<->,>=latex] ([yshift=-2pt]BOX.south west) --++ ({\mytmpboxwidth},0) node[midway,below,scale=0.2] {\the\mytmpboxwidth} ;
- \draw[<->,>=latex] ([xshift=-2pt]BOX.south west) --++ (0,\mytmpboxdepth) node[midway,left,scale=0.2] {\the\mytmpboxdepth} ;
- \draw[<->,>=latex] ([xshift=-2pt]BOX.north west) --++ (0,-\mytmpboxheight) node[midway,left,scale=0.2] {\the\mytmpboxheight} ;
- \draw[<->,>=latex] ([xshift=2pt]BOX.south east) --++ (0,\mytmpboxtotheight) node[midway,right,scale=0.2] {\the\mytmpboxtotheight} ;
+ \draw[lightgray] ([yshift=\mytmpboxdepth]BOX.south west) --++ ({\mytmpboxwidth},0);
+ \draw[<->,>=latex] ([yshift=-2pt]BOX.south west) --++ ({\mytmpboxwidth},0) node[midway,below,scale=0.2] {\the\mytmpboxwidth};
+ \draw[<->,>=latex] ([xshift=-2pt]BOX.south west) --++ (0,\mytmpboxdepth) node[midway,left,scale=0.2] {\the\mytmpboxdepth};
+ \draw[<->,>=latex] ([xshift=-2pt]BOX.north west) --++ (0,-\mytmpboxheight) node[midway,left,scale=0.2] {\the\mytmpboxheight};
+ \draw[<->,>=latex] ([xshift=2pt]BOX.south east) --++ (0,\mytmpboxtotheight) node[midway,right,scale=0.2] {\the\mytmpboxtotheight};
\end{tikzpicture}
\end{center}
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex 2025-08-05 20:36:19 UTC (rev 75981)
@@ -39,8 +39,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.41a}
-\def\TPdate{29 juillet 2025}
+\def\TPversion{0.41b}
+\def\TPdate{4 août 2025}
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8}
%\usepackage{eurosym}
@@ -148,6 +148,8 @@
\section{Historique}
+\verb|v0.41b|~:~~~Bugfix + pre-compatibilité \textsf{fa5/6/7} + nouveaux pictogrammes
+
\verb|v0.41a|~:~~~Option \textsf{noninlinegraphicx} pour garder la compatibilité avec \textsf{MikTeX} + Bugfix
\verb|v0.40f|~:~~~Style \textsf{WhatsApp} pour les fenêtre \textit{conversation}
@@ -262,7 +264,7 @@
\item \MontreCode{multicol} ;
\item \MontreCode{tabularray} ;
\item \MontreCode{xcolor} ;
- \item \MontreCode{fontawesome} (en attendant une compatibilité avec la version \MontreCode{6}, via les options \MontreCode{[fa6] / [fa5fa6]} !);
+ \item \MontreCode{fontawesome5} (en attendant une compatibilité avec la version \MontreCode{6/7}, via les options \MontreCode{[fa6] / [fa7]} !);
\item \MontreCode{tikz} avec les librairies :
\begin{itemize}
\item \MontreCode{decorations.pathmorphing,positioning,shapes.misc,calc,arrows,arrows.meta}.
@@ -269,7 +271,7 @@
\end{itemize}
\end{itemize}
-À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{adjustbox}/\MontreCode{fontawesome5/6}/\MontreCode{inlinegraphicx} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
+À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{adjustbox}/\MontreCode{fontawesome5/6/7}/\MontreCode{inlinegraphicx} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
\begin{itemize}
\item \MontreCode{$\mathtt{\langle}$beamer$\mathtt{\rangle}$} (pour assurer une compatibilité avec \textsf{beamer});
@@ -279,7 +281,9 @@
\item \MontreCode{$\mathtt{\langle}$nonxcolor$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nonadjustbox$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$noninlinegraphicx$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$nonfa$\mathtt{\rangle}$}.
+ \item \MontreCode{$\mathtt{\langle}$nonfa$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$fa6$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$fa7$\mathtt{\rangle}$}.
\end{itemize}
\begin{DemoCode}{listing only}
@@ -290,7 +294,7 @@
\usepackage[option(s)]{customenvs}
\end{DemoCode}
-\subsection{Sous-package customenvs-tikzpictos (v0.1.4)}
+\subsection{Sous-package customenvs-tikzpictos (v0.1.5)}
\MontreCode{customenvs} charge, pour \textit{ses} petits pictogrammes, le package \MontreCode{customenvs-tikzpictos}, qui est fourni avec.
@@ -326,7 +330,7 @@
\end{tblr}\hfill\null
\end{DemoCode}
-\subsection{Sous-package customenvs-exams (v0.1.0)}
+\subsection{Sous-package customenvs-exams (v0.1.1)}
\MontreCode{customenvs} charge, pour quelques environnements ou commandes type \textit{examens}, le package \MontreCode{customenvs-exams}, qui est fourni avec.
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.tex 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-exams-doc.tex 2025-08-05 20:36:19 UTC (rev 75981)
@@ -37,8 +37,8 @@
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{06/07/2025}
+\def\TPversion{0.1.1}
+\def\TPdate{01/08/2025}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
@@ -385,6 +385,8 @@
\section{Historique}
+\verb|v0.1.1|~:~Correction dans les espacements
+
\verb|v0.1.0|~:~Version initiale
\end{document}
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.tex 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-tikzpictos-doc.tex 2025-08-05 20:36:19 UTC (rev 75981)
@@ -18,6 +18,7 @@
\usepackage{lipsum}
\usepackage{codehigh}
\usepackage{fontawesome5}
+\usepackage{openmoji}
\usepackage{twemojis}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
@@ -41,8 +42,8 @@
\usepackage[margin=2cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.4}
-\def\TPdate{06/07/2025}
+\def\TPversion{0.1.5}
+\def\TPdate{04/08/2025}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
@@ -558,9 +559,9 @@
\twdifficultylevels[hoffset=1mm,size=\Huge,opacity=0.25]{snake}{2/6}
\end{demohigh}
-\section{Stamp}
+\section{Stamps}
-\subsection{Macros}
+\subsection{Macro (1)}
\begin{codehigh}[language=latex/latex2]
%normal positionning
@@ -576,12 +577,49 @@
%absolute positionning
\pictostamp*%
[radius=...,color=...,rotate=...,font=...,starsfilled=TF,strut=...,alt=TF]%
- <tikz options>
+ <shift position>
{text}
%[strut=...] is for vphantom of text ^_^
\end{codehigh}
+\subsection{Macro (2)}
+
+\begin{codehigh}[language=latex/latex2]
+%normal positionning
+\pictosmallstamp%
+ [keys]%
+ <tikz options>
+ {text}
+\end{codehigh}
+
+\begin{codehigh}[language=latex/latex2]
+%absolute positionning
+\pictosmallstamp*%
+ [keys]%
+ <shift position>
+ {top text}
+ {bottom text}
+ {logo}
+\end{codehigh}
+
+\begin{codehigh}[language=latex/latex2]
+height = <global height>
+maincolor = <main color>
+toptxtcolor = <color for top text>
+bottomtxtcolor = <color for bottom text>
+logocolor = <color for logo text>,
+inner circle = <boolean>
+rotate = <rotation>
+toptxtfont = <font for top text>
+bottomtxtfont = <font for bottom text>
+reverse bottom = <boolean for bottom orientation>
+image = <boolean for using image as loo>
+logoscale = <scale for text logo>
+fill inner = <boolean for inner filling>
+color = <global color, override others>
+\end{codehigh}
+
\subsection{Examples}
\begin{demohigh}[language=latex/latex2]
@@ -621,16 +659,75 @@
\pagebreak
+\begin{demohigh}[language=latex/latex2]
+\colorlet{mygreenpython}{green!50!black}
+\pictosmallstamp%
+ [color=mygreenpython]%keys
+ {{\textbullet} Python {\textbullet}}%top
+ {inside}%bottom
+ {\faPython}%inside
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex2]
+\pictosmallstamp%
+ [image,rotate=-30]%
+ {{\textbullet}~Cédric~{\textbullet}}%
+ {Pierquet}%
+ {avatar}%
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex2]
+\pictosmallstamp%
+ [image,rotate=-30,reverse bottom=false]%
+ {{\textbullet}~Cédric~{\textbullet}}%
+ {P\,i\,e\,r\,q\,u\,e\,t}%for better spacing
+ {pfl-ok.pdf}%
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex2]
+\pictosmallstamp%
+ [rotate=0,logoscale=1.1,color=teal,fill inner]%
+ {LaTeX}%
+ {inside}%
+ {\faStar}%
+\end{demohigh}
+
+\begin{codehigh}[language=latex/latex2]
+\pictosmallstamp*%
+ [%
+ height=6cm,maincolor=brown,toptxtcolor=teal,bottomtxtcolor=gray,%
+ toptxtfont=\bfseries\sffamily,bottomtxtfont=\ttfamily
+ ]%
+ < ([xshift=-4cm,yshift=6cm]current page.south east) >%
+ {{\openmoji[height=auto]{cactus}}TOP{\openmoji[height=auto]{cactus}}}%
+ {{\openmoji[height=auto]{butterfly}}BOTTOM{\openmoji[height=auto]{butterfly}}}%
+ {\openmoji{bullseye}}%
+\end{codehigh}
+
+\pictosmallstamp*%
+[%
+height=6cm,maincolor=brown,toptxtcolor=teal,bottomtxtcolor=gray,%
+toptxtfont=\bfseries\sffamily,bottomtxtfont=\ttfamily
+]%
+< ([xshift=-4cm,yshift=6cm]current page.south east) >%
+{{\openmoji[height=auto]{cactus}}TOP{\openmoji[height=auto]{cactus}}}%
+{{\openmoji[height=auto]{butterfly}}BOTTOM{\openmoji[height=auto]{butterfly}}}%
+{\openmoji{bullseye}}%
+
+\pagebreak
+
\section{History}
-\verb|v0.1.4|~:~(d)strut option for height/depth + bdall + difficulty levels + stamp
+\verb|v0.1.5| :~Inline badge (inspired by \textsf{tikz-shields}) + simple stamp
-\verb|v0.1.3|~:~Clippy
+\verb|v0.1.4| :~(d)strut option for height/depth + bdall + difficulty levels + stamp
-\verb|v0.1.2|~:~Mini calendar
+\verb|v0.1.3| :~Clippy
-\verb|v0.1.1|~:~Traffic Light
+\verb|v0.1.2| :~Mini calendar
-\verb|v0.1.0|~:~Initial version
+\verb|v0.1.1| :~Traffic Light
+\verb|v0.1.0| :~Initial version
+
\end{document}
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-exams.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-exams.sty 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-exams.sty 2025-08-05 20:36:19 UTC (rev 75981)
@@ -2,11 +2,18 @@
% licence.........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs-exams}[2025/07/06 0.1.0 customenvs for exam documents]
+\ProvidesPackage{customenvs-exams}[2025/08/04 0.1.1 customenvs for exam documents]
%====HISTORY
+% v 0.1.1 Bugfix + BlocExo
% v 0.1.0 Initial version subpackage (exam) of customenvs
+%====OPTION
+\newif\if at pictos\@pictosfalse%
+\DeclareOption{pictos}{\@pictostrue}%
+\DeclareOption*{}
+\ProcessOptions\relax
+
%====PACKAGES
\RequirePackage{tcolorbox}
\RequirePackage{varwidth}
@@ -18,6 +25,9 @@
\RequirePackage{xstring}
\RequirePackage{listofitems}
\RequirePackage{randomlist}
+\if at pictos
+ \RequirePackage{customenvs-tikzpictos}
+\fi
\tcbuselibrary{skins,breakable}
%====INT MACRO
@@ -47,7 +57,7 @@
%====EXAM QCM
\NewList{TmpListereponsesexamqcm}
-\def\ReponsesExamQCMbox{\raisebox{-0.2ex}{\faSquare[regular]}}
+\def\ReponsesExamQCMbox{\raisebox{-0.2ex}{\faSquare[regular]}} %avec fontawesome567, à charger...
\defKV[reponsesexamqcm]{%
NbCols=\def\RepExamQCMNbCol{#1},%
@@ -312,15 +322,15 @@
%====EXAM CONFIG
\@ifpackageloaded{amssymb}%
{%
- \newcommand\examdecoexo{\scalebox{0.66}[1]{$\blacktriangleright$}~}%
- \newcommand\examdecoquest{\scalebox{0.66}[1]{$\blacktriangleright$}~}%
+ \newcommand\examdecoexo{\scalebox{0.66}[1]{$\blacktriangleright$}\space}%
+ \newcommand\examdecoquest{\scalebox{0.66}[1]{$\blacktriangleright$}\space}%
}%
{%
- \newcommand\examdecoexo{\textbullet~}%
- \newcommand\examdecoquest{\textbullet~}%
+ \newcommand\examdecoexo{\textbullet\space}%
+ \newcommand\examdecoquest{\textbullet\space}%
}%
\newcommand\ExamTitreExo[2]{%
- \textbf{\large\examdecoexo\underline{Exercice #1}~(#2 points)}%
+ \textbf{\large\examdecoexo\underline{Exercice #1}\space(#2 points)}%
}
\newcommand\ExamLabelAutomat[1]{%
\textbf{\examdecoquest\underline{Question #1}}%
@@ -444,12 +454,12 @@
\NewDocumentCommand\SousTitreSujetEpreuve{ O{black} m }{%
\tcbset{StyleTitreSujetSousEpreuveCouleur/.style={colframe=#1,colupper=#1}}
\IfStrEqCase{#2}{%
- {U21}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\:\:,after upper=\:\:\faProjDiag]{Épreuve E2 - Mathématiques pour l'Informatique}}%
- {U2}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\:\:,after upper=\:\:\faProjDiag]{Épreuve E2 - Mathématiques pour l'Informatique}}%
- {U2CG}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\:\:,after upper=\:\:\faProjDiag]{Épreuve E2 - Mathématiques appliquées}}%
- {U3}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\:\:,after upper=\:\:\faProjDiag]{Épreuve E3 - Mathématiques pour l'Informatique}}%
- {UF2}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faDice\:\:,after upper=\:\:\faChartLine]{Épreuve EF2 - Mathématiques Approfondies}}%
- {U41OL}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faDice\:\:,after upper=\:\:\faBezierCurve]{Épreuve U41 - Mathématiques}}}%
+ {U21}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\space\space,after upper=\space\space\faProjDiag]{Épreuve E2 - Mathématiques pour l'Informatique}}%
+ {U2}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\space\space,after upper=\space\space\faProjDiag]{Épreuve E2 - Mathématiques pour l'Informatique}}%
+ {U2CG}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\space\space,after upper=\space\space\faProjDiag]{Épreuve E2 - Mathématiques appliquées}}%
+ {U3}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faArrDownNb\space\space,after upper=\space\space\faProjDiag]{Épreuve E3 - Mathématiques pour l'Informatique}}%
+ {UF2}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faDice\space\space,after upper=\space\space\faChartLine]{Épreuve EF2 - Mathématiques Approfondies}}%
+ {U41OL}{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur,before upper=\faDice\space\space,after upper=\space\space\faBezierCurve]{Épreuve U41 - Mathématiques}}}%
[{\tcbox[StyleTitreSujetSousEpreuve,StyleTitreSujetSousEpreuveCouleur]{#2}}]%
}
@@ -461,4 +471,155 @@
\endgroup%
}
+%====BLOC EXO NEW V3
+\newcounter{numeroblocexo}
+\setcounter{numeroblocexo}{0}
+\newlength{\eptraitblocexo}
+\setlength{\eptraitblocexo}{1.1pt}
+\newlength{\eptraitblocexospace}
+\setlength{\eptraitblocexospace}{1.5\eptraitblocexo}
+
+\colorlet{macouleurblocexo}{black}
+\colorlet{macouleurblocexodeco}{black}
+\colorlet{macouleurblocexodecofond}{black!50}
+
+\newcommand\tmpstyleblocexo{\bfseries\sffamily\large}%
+\newcommand\tmplabelblocexo{Exercice\space}%
+
+\tcbset{monstyleblocexo/.style={%
+ enhanced,%
+ opacityfill=0,%
+ size=small,%
+ boxrule=0.25mm,%
+ titlerule=0.25mm,%
+ arc=2mm,%
+ sharp corners=uphill,%
+ nobeforeafter,%
+ before skip=0.5\baselineskip,%
+ after skip=0.5\baselineskip,%
+ colback=white,%
+ colbacktitle=white,%
+ coltitle=macouleurblocexo,%
+ colframe=macouleurblocexo,%
+ left=1.5mm,%
+ right=1.5mm,%
+ top=1mm,%
+ bottom=1mm,%
+ fonttitle=\tmpstyleblocexo
+ }%
+}
+
+\tikzset{ligne bloc exo/.style={line width=0.3mm,macouleurblocexo}}
+
+\defKV[StyleBlocExo]{%
+ Libelle=\renewcommand\tmplabelblocexo{#1},%
+ Couleur=\colorlet{macouleurblocexo}{#1},%
+ CouleurDeco=\colorlet{macouleurblocexodeco}{#1},%
+ CouleurFondDeco=\colorlet{macouleurblocexodecofond}{#1},%
+ Police=\renewcommand\tmpstyleblocexo{#1},%
+ EpTrait=\setlength{\eptraitblocexo}{#1}
+}
+
+\setKVdefault[StyleBlocExo]{%
+ Libelle={Exercice\space},%
+ Couleur={black},%
+ CouleurDeco=black,
+ CouleurFondDeco={black!33},%
+ Police={\bfseries\sffamily\large},%
+ EpTrait={1.1pt}
+}
+
+\defKV[BlocExo]{%
+ Type=\def\EnvtExoAltType{#1},%
+ ComplementTitre=\def\EnvtExoAltCpltTitre{#1},%
+ CodeDebut=\def\EnvtExoAltCodeAvant{#1},%
+ Etoiles=\def\EnvtExoAltEtoiles{#1},%
+ Trait=\def\EnvtExoAltTrait{#1},%
+ Bordures=\def\EnvtExoAltBordures{#1},%
+ Strut=\def\blocexostrut{#1}
+}
+\setKVdefault[BlocExo]{
+ Type=Classique,%
+ ComplementTitre={},%
+ CodeDebut={},%
+ Compteur=true,%
+ Etoiles={},%
+ Breakable=false,%
+ Trait=non,%
+ Bordures=alt,%
+ Strut=()
+}
+
+\tcbuselibrary{breakable}%à voir...
+
+\NewDocumentEnvironment{BlocExo}{ O{} m }%
+{%
+ \useKVdefault[BlocExo]%
+ \setKV[BlocExo]{#1}%
+ \addtocounter{numeroblocexo}{1}%
+ \ifboolKV[BlocExo]{Compteur}{}{\addtocounter{numeroblocexo}{-1}}%
+ %styles
+ \tcbset{reset}%
+ \ifboolKV[BlocExo]{Breakable}%
+ {%
+ \tcbset{monstyleblocexobreakable/.style={breakable}}%
+ }%
+ {%
+ \tcbset{monstyleblocexobreakable/.style={}}%
+ }%
+ \IfStrEqCase{\EnvtExoAltBordures}{%
+ {normal}{\tcbset{monstylebloexobordures/.style={}}}%
+ {aucune}{\tcbset{monstylebloexobordures/.style={frame empty,left=0mm,right=0mm,boxsep=0mm,boxrule=0mm,top=2mm,before upper={\EnvtExoAltCodeAvant}}}}%
+ {alt}{\tcbset{monstylebloexobordures/.style={frame empty,top=0mm,finish={\draw[ligne bloc exo,|-|] ([xshift=0.5em-0.1mm]title.west) --++ (-0.5em-0.1mm,0) {[rounded corners=2mm]|- (frame.south east)} |- ([xshift=-0.5em+0.1mm]title.east) ;}}}}%
+ {fleche}{\tcbset{monstylebloexobordures/.style={frame empty,top=0mm,righttitle=0mm,finish={\draw[ligne bloc exo,->,>=latex] ([xshift=0.5em-0.1mm]title.west) --++ (-0.5em-0.1mm,0) {[rounded corners=2mm]|- (frame.south east)} -- ($(frame.south east)!0.5!(frame.north east)$) ;}}}}%
+ }%
+ \tcbset{monstyleblocexotitre/.style={
+ title={%
+ \vphantom{\blocexostrut}%
+ \IfStrEq{\EnvtExoAltType}{Classique}%
+ {%
+ \tmplabelblocexo%
+ }%
+ {%
+ \StrBehind{\EnvtExoAltType}{/}[\EnvtExoLabel]%
+ \EnvtExoLabel%
+ }%
+ \ifboolKV[BlocExo]{Compteur}{\thenumeroblocexo}{}\EnvtExoAltCpltTitre%
+ \IfStrEq{\EnvtExoAltEtoiles}{}{}%les étoiles au début...
+ {%
+ \space(%
+ \IfSubStr{\EnvtExoAltEtoiles}{§}%
+ {%
+ \StrCut{\EnvtExoAltEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+ \pictostars[colors=macouleurblocexodeco/macouleurblocexodecofond,dstrut=()]{\EnvtExoStarNb/\EnvtExoStarTot}%
+ }%
+ {%
+ \pictostars[colors=macouleurblocexodeco/macouleurblocexodecofond,dstrut=()]{\EnvtExoStarNb}%
+ }%
+ )%
+ }%
+ %trait éventuel
+ \IfStrEqCase{\EnvtExoAltTrait}{%
+ {plein}%
+ {%
+ \def\hrulefill{\leavevmode\leaders\hrule height \eptraitblocexo\hfill\kern\z@}%épaisseur
+ \,\hrulefill\null%
+ \def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
+ }%
+ {pointilles}{\,\dotfill\null}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitblocexo}{\eptraitblocexospace}\null}%
+ {non}{\hfill\null}%
+ {aucun}{}%
+ }%
+ %la décoration, manuelle
+ {#2}
+ }
+ }
+ }%
+ \noindent\tcolorbox[monstyleblocexo,monstyleblocexotitre,monstyleblocexobreakable,monstylebloexobordures]
+}%
+{%
+ \endtcolorbox%
+}
+
\endinput
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-tikzpictos.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-tikzpictos.sty 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/tex/latex/customenvs/customenvs-tikzpictos.sty 2025-08-05 20:36:19 UTC (rev 75981)
@@ -2,9 +2,10 @@
% licence.........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs-tikzpictos}[2025/07/06 0.1.4 Small pictograms, made with tikz]
+\ProvidesPackage{customenvs-tikzpictos}[2025/08/04 0.1.5 Small pictograms, made with tikz]
%====HISTORY
+% v 0.1.5 Inline badge (inspired by tikz-shields) + small stamp
% v 0.1.4 Strut option for sample characters + difficultylevels + dballs + stamp
% v 0.1.3 Clippy
% v 0.1.2 Mini-calendar
@@ -20,9 +21,12 @@
\RequirePackage{calc}
\RequirePackage{tikz}
\usetikzlibrary{shapes.geometric,bbox}
+\RequirePackage{tcolorbox}
+\tcbuselibrary{skins}
%====strutletters
\def\samplestrutletters{AZERTYUIOPSDFGHKLMWXCVBN}
+\def\samplestrutletters{AZERTYUIOPSDFGHKLMWXCVBN}
\def\sampledstrutletters{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}
%====pictostars
@@ -1626,4 +1630,195 @@
}%
}
+%====TIKZSHIELD (inspired by tikz-shields
+\definecolor{inlinebadge-right}{HTML}{1283c4}
+\definecolor{inlinebadge-right-text}{HTML}{ffffff}
+\definecolor{inlinebadge-left}{HTML}{5e5e5e}
+\definecolor{inlinebadge-left-text}{HTML}{ffffff}
+
+\colorlet{inlinebadgeright}{inlinebadge-right}
+\colorlet{inlinebadgerighttext}{inlinebadge-right-text}
+\colorlet{inlinebadgeleft}{inlinebadge-left}
+\colorlet{inlinebadgelefttext}{inlinebadge-left-text}
+
+\def\inlinebadgefont{\small\sffamily}
+
+\tcbset{tcbinlinebadgeleft/.style={nobeforeafter,enhanced,box align=base,sharp corners=east,arc=2pt,bicolor,boxrule=0pt,boxsep=1.75pt,top=0pt,left=0pt,right=0pt, bottom=-0.05ex,fontupper=\inlinebadgefont,interior style={top color=inlinebadgeleft,bottom color=inlinebadgeleft!60!black}}}
+
+\tcbset{tcbinlinebadgeright/.style={nobeforeafter,enhanced,box align=base,sharp corners=west,arc=2pt,bicolor,boxrule=0pt,boxsep=1.75pt,top=0pt,left=0pt,right=0pt, bottom=-0.05ex,fontupper=\inlinebadgefont,interior style={top color=inlinebadgeright,bottom color=inlinebadgeright!60!black}}}
+
+\NewDocumentCommand\iconscaled{O{0.85}m}{\scalebox{#1}[#1]{#2}}
+
+\NewDocumentCommand\intdropshadowtextleft{m}{%
+ \begin{tikzpicture}[baseline=(TESTL.base),outer sep=0pt, inner sep=0pt]
+ \node[inlinebadge-left-text!40!black] at (0,-0.05ex) {#1};
+ \node[inlinebadge-left-text] (TESTL) at (0,0) {#1};
+ \end{tikzpicture}%
+}
+
+\NewDocumentCommand\intdropshadowtextright{m}{%
+ \begin{tikzpicture}[baseline=(TESTR.base),outer sep=0pt, inner sep=0pt]
+ \node[inlinebadge-right-text!40!black] at (0,-0.05ex) {#1};
+ \node[inlinebadge-right-text] (TESTR) at (0,0) {#1};
+ \end{tikzpicture}%
+}
+
+\newtcbox\intleftpart{tcbinlinebadgeleft}
+\newtcbox\intrightpart{tcbinlinebadgeright}
+
+\defKV[inlinetikzbadge]{%
+ leftcolor=\colorlet{inlinebadgeleft}{#1},%
+ rightcolor=\colorlet{inlinebadgeright}{#1},%
+ lefttextcolor=\colorlet{inlinebadgelefttext}{#1},%
+ righttextcolor=\colorlet{inlinebadgerighttext}{#1},%
+ font=\def\inlinebadgefont{#1},%
+ link=\def\inlinebadgelink{#1},%
+}
+
+\setKVdefault[inlinetikzbadge]{%
+ leftcolor=inlinebadge-left,
+ rightcolor=inlinebadge-right,
+ lefttextcolor=inlinebadge-left-text,
+ righttextcolor=inlinebadge-left-text,
+ font=\small\sffamily,%
+ link={}
+}
+
+\NewDocumentCommand\tikzinlinebadge{O{}mm}{%
+ \restoreKV[inlinetikzbadge]%
+ \setKV[inlinetikzbadge]{#1}%
+ \IfEq{\inlinebadgelink}{}%
+ {%
+ \mbox{\intleftpart{\intdropshadowtextleft{\vphantom{#3}#2}}\intrightpart{\intdropshadowtextright{\vphantom{#2}#3}}}%
+ }%
+ {%
+ {\mbox{\intleftpart{\href{\inlinebadgelink}{\intdropshadowtextleft{\vphantom{#3}#2}}}\intrightpart{\href{\inlinebadgelink}{\intdropshadowtextright{\vphantom{#2}#3}}}}}%
+ }%
+}
+
+%====SMALLSTAMP
+\usetikzlibrary{decorations,decorations.text}
+\newlength\mylensmallstamp
+\setlength\mylensmallstamp{2cm}
+\newlength\mylensmallstampxinnerseptop
+\newlength\mylensmallstampxinnersepbottom
+\newlength\mylensmallstamptxtheight
+\newlength\mylensmallstamplogoheight
+\newlength\mylensmallstampbottomtxtheight
+\newlength\mylensmallstamptoptxtheight
+\newlength\mylensmallstamptxtlogoheight
+
+\defKV[tkzsmallstamp]{%
+ height=\setlength\mylensmallstamp{#1},%
+ maincolor=\def\mycolorsmallstamp{#1},%
+ toptxtcolor=\def\mytoptxtcolorsmallstamp{#1},%
+ bottomtxtcolor=\def\mybottomtxtcolorsmallstamp{#1},%
+ logocolor=\def\mylogotcolorsmallstamp{#1},%
+ rotate=\def\myrotatesmallstamp{#1},%
+ toptxtfont=\def\myfontsmallstamptop{#1},%
+ bottomtxtfont=\def\myfontsmallstampbottom{#1},%
+ logoscale=\def\mylogoscalesmallstamp{#1},%
+ color=\def\myglobalcolorsmallstamp{#1}
+}
+
+\setKVdefault[tkzsmallstamp]{%
+ height=2cm,%
+ maincolor={black},%
+ toptxtcolor={black},%
+ bottomtxtcolor={black},%
+ logocolor={black},
+ inner circle=false,%
+ rotate=35,%
+ toptxtfont={\bfseries},%
+ bottomtxtfont={\bfseries},
+ reverse bottom=true,%
+ image=false,%
+ logoscale=1,%
+ fill inner=false,%
+ color={}
+}
+
+\tikzset{smallstamp/.style={line width=0.0125\mylensmallstamp}}
+\tikzset{smallstampinner/.style={line width=0.005\mylensmallstamp}}
+
+\NewDocumentCommand\pictosmallstamp{sO{}D<>{}mmm}{%
+ \restoreKV[tkzsmallstamp]%
+ \setKV[tkzsmallstamp]{#2}%
+ \setlength\mylensmallstamptxtheight{0.125\mylensmallstamp}%
+ \setlength\mylensmallstamplogoheight{\fpeval{\mylogoscalesmallstamp*0.4}\mylensmallstamp}%
+ \settoheight\mylensmallstamptoptxtheight{\hbox{\myfontsmallstamptop#4}}%TOP
+ \settoheight\mylensmallstampbottomtxtheight{\hbox{\myfontsmallstampbottom#5}}%BOTTOM
+ %----logo
+ \ifboolKV[tkzsmallstamp]{image}%
+ {}%
+ {%
+ \settototalheight\mylensmallstamptxtlogoheight{\hbox{#6}}%LOGO
+ \xdef\mytmpscalesmallstamplogo{\fpeval{\mylensmallstamplogoheight/\mylensmallstamptxtlogoheight}}%LOGO
+ }%
+ %----end logo
+ \xdef\mytmpscalesmallstamptoptext{\fpeval{\mylensmallstamptxtheight/\mylensmallstamptoptxtheight}}%TOP
+ \xdef\mytmpinvscalesmallstamptoptext{\fpeval{1/\mytmpscalesmallstamptoptext}}%
+ \xdef\mytmpscalesmallstampbottomtext{\fpeval{\mylensmallstamptxtheight/\mylensmallstampbottomtxtheight}}%BOTTOM
+ %----global color
+ \ifthenelse{\equal{\myglobalcolorsmallstamp}{}}%
+ {}%
+ {%
+ \def\mycolorsmallstamp{\myglobalcolorsmallstamp}%
+ \def\mytoptxtcolorsmallstamp{\myglobalcolorsmallstamp}%
+ \def\mybottomtxtcolorsmallstamp{\myglobalcolorsmallstamp}%
+ \def\mylogotcolorsmallstamp{\myglobalcolorsmallstamp}%
+ }%
+ %----global color end
+ \IfBooleanTF{#1}%
+ {%
+ \begin{tikzpicture}[overlay,remember picture,shift={#3},transform shape]
+ }%
+ {%
+ \begin{tikzpicture}[transform shape,#3]
+ }%
+ \draw[\mycolorsmallstamp,smallstamp] (0,0) circle[radius=0.5\mylensmallstamp] ;
+ \useasboundingbox (0,0) circle[radius=0.5\mylensmallstamp] ;
+ \begin{scope}[rotate=\myrotatesmallstamp]
+ \clip (0,0) circle[radius=0.5\mylensmallstamp] ;
+ \ifboolKV[tkzsmallstamp]{inner circle}%
+ {%
+ \ifboolKV[tkzsmallstamp]{fill inner}%
+ {%
+ \fill[\mycolorsmallstamp!10,smallstampinner] (0,0) circle[radius=0.3\mylensmallstamp] ;%
+ }%
+ {%
+ \draw[\mycolorsmallstamp!50,fill=\mycolorsmallstamp!10,smallstampinner] (0,0) circle[radius=0.3\mylensmallstamp] ;%
+ }%
+ }%
+ {%
+ \ifboolKV[tkzsmallstamp]{fill inner}%
+ {%
+ \fill[draw=none,\mycolorsmallstamp!10,smallstampinner] (0,0) circle[radius=0.3\mylensmallstamp] ;%
+ }%
+ {}%
+ }%
+ %top text
+ \draw [draw=none,postaction={decorate},decoration={raise=0.0375\mylensmallstamp,text effects along path,text align=center,reverse path,text={#4},text effects/.cd,characters={scale=\mytmpscalesmallstamptoptext,font=\myfontsmallstamptop,color=\mytoptxtcolorsmallstamp}},text effects={text along path},rotate=-90] (0,0) circle[radius=0.3\mylensmallstamp] ;
+ %bottom text
+ \ifboolKV[tkzsmallstamp]{reverse bottom}%
+ {%
+ \draw [draw=none,postaction={decorate},decoration={reverse path,raise=0.0375\mylensmallstamp,text effects along path,text align=center,text={#5},text effects/.cd,characters={scale=\mytmpscalesmallstamptoptext,font=\myfontsmallstampbottom,color=\mybottomtxtcolorsmallstamp}},text effects={text along path},rotate=90] (0,0) circle[radius=0.3\mylensmallstamp] ;
+ }%
+ {%
+ \draw [draw=none,postaction={decorate},decoration={raise=0.05\mylensmallstamp,text effects along path,text align=center,text={#5},text effects/.cd,characters={scale=\mytmpscalesmallstamptoptext,font=\myfontsmallstampbottom,color=\mybottomtxtcolorsmallstamp}},text effects={text along path},rotate=90] (0,0) circle[radius=0.5\mylensmallstamp] ;
+ }%
+ %middle logo
+ \ifboolKV[tkzsmallstamp]{image}%
+ {%
+ \draw (0,0) node[anchor=center] {\includegraphics[height=\mylensmallstamplogoheight]{#6}} ;
+ }%
+ {%
+ \clip (0,0) circle[radius=0.3\mylensmallstamp] ;
+ \draw[\mylogotcolorsmallstamp] (0,0) node[scale=\mytmpscalesmallstamplogo] {#6} ;
+ }%
+ \end{scope}
+ \end{tikzpicture}%
+}
+
+
\endinput
\ No newline at end of file
Modified: trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty 2025-08-05 20:36:09 UTC (rev 75980)
+++ trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty 2025-08-05 20:36:19 UTC (rev 75981)
@@ -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}[2025/07/29 0.41a Custom classic environments]
+\ProvidesPackage{customenvs}[2025/08/04 0.41b Custom classic environments]
%====HISTORIQUE
+% v 0.41b New BlocExo (workinprogress) + precompat fa(567) + new pictos
% v 0.41a Bugfix with inlinegraphicx and MiKTeX...
% v 0.40f WhatsApp like Chat
% v 0.40e Sous-package customenvs-icons
@@ -65,11 +66,11 @@
\DeclareOption{noxcolor}{\@xcolorfalse}%
\newif\if at fafive \@fafivetrue
\newif\if at fasix \@fasixfalse
-\newif\if at fafivesix \@fafivesixfalse
-\DeclareOption{nonfa}{\@fafivefalse\@fasixfalse\@fafivesixfalse}
-\DeclareOption{nofa}{\@fafivefalse\@fasixfalse\@fafivesixfalse}
-\DeclareOption{fa6}{\@fafivefalse\@fafivesixfalse\@fasixtrue}
-\DeclareOption{fa5fa6}{\@fafivefalse\@fasixfalse\@fafivesixtrue}
+\newif\if at faseven \@fasevenfalse
+\DeclareOption{nonfa}{\@fafivefalse\@fasixfalse\@fasevenfalse}
+\DeclareOption{nofa}{\@fafivefalse\@fasixfalse\@fasevenfalse}
+\DeclareOption{fa6}{\@fafivefalse\@fasixtrue\@fasevenfalse}
+\DeclareOption{fa7}{\@fafivefalse\@fasixfalse\@faseventrue}
\newif\if at adjustbox\@adjustboxtrue%
\DeclareOption{nonadjustbox}{\@adjustboxfalse}%
\DeclareOption{noadjustbox}{\@adjustboxfalse}%
@@ -86,39 +87,6 @@
\if at xcolor
\RequirePackage{xcolor}
\fi
-\if at fafive
- \RequirePackage{fontawesome5}
- %aliases fa5/fa6
- \def\faStarHalf{\faIcon{star-half-alt}} %semble ko avec fa5alias (à surveiller)
- \def\faThreeDotsV{\faEllipsisV} %semble ok avec fa5alias
- \def\faCPlus{\faPlusCircle} %semble ok avec fa5alias
- \def\faCheckCircleReg{\faCheckCircle[regular]} %semble ok avec fa5alias
- \def\faArrDownNb{\faSortNumericDown} %semble ok avec fa5alias
- \def\faProjDiag{\faProjectDiagram} %semble ok avec fa5alias
- \def\faFlipPhone{\faPhone*} %semble ko avec fa5alias (à surveiller)
-\fi
-\if at fasix
- \RequirePackage{fontawesome6}
- %aliases fa5/fa6
- \def\faStarhalf{\faIcon{star-half-stroke}}
- \def\faThreeDotsV{\faEllipsisVertical}
- \def\faCPlus{\faCirclePlus}
- \def\faCheckCircleReg{\faCircleCheck[regular]}
- \def\faArrDownNb{\faIcon{arrow-down-1-9}}
- \def\faProjDiag{\faDiagramProject}
- \def\faFlipPhone{\faPhoneFlip}
-\fi
-\if at fafivesix
- \RequirePackage[fa5alias]{fontawesome6}
- %aliases fa5/fa6
- \def\faStarhalf{\faIcon{star-half-stroke}}
- \def\faThreeDotsV{\faEllipsisVertical}
- \def\faCPlus{\faCirclePlus}
- \def\faCheckCircleReg{\faCircleCheck[regular]}
- \def\faArrDownNb{\faIcon{arrow-down-1-9}}
- \def\faProjDiag{\faDiagramProject}
- \def\faFlipPhone{\faPhoneFlip}
-\fi
\if at enum
\RequirePackage{enumitem}
\fi
@@ -152,6 +120,61 @@
\RequirePackage{varwidth}
\tcbuselibrary{skins}
+%====FONTAWESOME (5/6/7)
+
+\if at fafive
+ \RequirePackage{fontawesome5}
+\fi
+\if at fasix
+ \RequirePackage{fontawesome6}
+\fi
+\if at faseven
+ \RequirePackage{fontawesome7}
+\fi
+
+\def\faHalfStar{}
+\def\faThreeDotsV{}
+\def\faCPlus{}
+\def\faCheckCircleReg{}
+\def\faArrDownNb{}
+\def\faProjDiag{}
+\def\faFlipPhone{}
+
+\@ifpackageloaded{fontawesome5}%
+ {%
+ \def\faHalfStar{\faIcon{star-half-alt}}
+ \def\faThreeDotsV{\faEllipsisV}
+ \def\faCPlus{\faPlusCircle}
+ \def\faCheckCircleReg{\faCheckCircle[regular]}
+ \def\faArrDownNb{\faSortNumericDown}
+ \def\faProjDiag{\faProjectDiagram}
+ \def\faFlipPhone{\faPhone*}
+ }%
+ {}
+
+\@ifpackageloaded{fontawesome6}%
+ {%
+ \def\faHalfStar{\faIcon{star-half-stroke}}
+ \def\faThreeDotsV{\faEllipsisVertical}
+ \def\faCPlus{\faCirclePlus}
+ \def\faCheckCircleReg{\faCircleCheck[regular]}
+ \def\faArrDownNb{\faIcon{arrow-down-1-9}}
+ \def\faProjDiag{\faDiagramProject}
+ \def\faFlipPhone{\faPhoneFlip}
+ }%
+ {}%
+\@ifpackageloaded{fontawesome7}%
+ {%
+ \def\faHalfStar{\faIcon{star-half-stroke}}
+ \def\faThreeDotsV{\faEllipsisVertical}
+ \def\faCPlus{\faCirclePlus}
+ \def\faCheckCircleReg{\faCircleCheck[regular]}
+ \def\faArrDownNb{\faIcon{arrow-down-1-9}}
+ \def\faProjDiag{\faDiagramProject}
+ \def\faFlipPhone{\faPhoneFlip}
+ }%
+ {}%
+
%====MACRO TESTEMPTY expl3
\ExplSyntaxOn
\DeclareExpandableDocumentCommand\CustEnvsIfNoValueOrEmptyTF{mmm}{\IfNoValueTF{#1}{#2}{\tl_if_empty:nTF {#1} {#2} {#3}}}
@@ -505,7 +528,7 @@
\def\TroisNivSmiley{\vcenterfa[regular]{face-angry} § \vcenterfa[regular]{face-frown} § \vcenterfa[regular]{face-smile}}
\def\QuatreNivSmiley{\vcenterfa[regular]{face-angry} § \vcenterfa[regular]{face-frown} § \vcenterfa[regular]{face-smile} § \vcenterfa[regular]{face-grin}}
\fi
-\if at fafivesix
+\if at faseven
\def\DeuxNivSmiley{\vcenterfa[regular]{face-angry} § \vcenterfa[regular]{face-smile}}
\def\TroisNivSmiley{\vcenterfa[regular]{face-angry} § \vcenterfa[regular]{face-frown} § \vcenterfa[regular]{face-smile}}
\def\QuatreNivSmiley{\vcenterfa[regular]{face-angry} § \vcenterfa[regular]{face-frown} § \vcenterfa[regular]{face-smile} § \vcenterfa[regular]{face-grin}}
@@ -961,7 +984,7 @@
\NewDocumentCommand\NiveauDiffExos{ O{3} m }{%avec des demis ??
%les tailles de boîtes
\settowidth{\largstarsempty}{{\faStar[regular]}}%
- \settowidth{\largstarsmid}{{\faStarHalf}}%
+ \settowidth{\largstarsmid}{{\faHalfStar}}%
\settowidth{\largstarfull}{{\faStar}}%
\pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
%les calculs intermédiaires
@@ -982,7 +1005,7 @@
%affichage des full
\xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
%affichage des mid
- \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faStarHalf}}}{}%
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faHalfStar}}}{}%
%affichage des vides
\xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
}
@@ -991,7 +1014,7 @@
\NewDocumentCommand\DiffLevelStars{ O{3} m }{%avec des demis ??
%les tailles de boîtes
\settowidth{\largstarsempty}{{\faStar[regular]}}%
- \settowidth{\largstarsmid}{{\faStarHalf}}%
+ \settowidth{\largstarsmid}{{\faHalfStar}}%
\settowidth{\largstarfull}{{\faStar}}%
\pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
%les calculs intermédiaires
@@ -1012,7 +1035,7 @@
%affichage des full
\xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
%affichage des mid
- \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faStarHalf}}}{}%
+ \xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faHalfStar}}}{}%
%affichage des vides
\xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
}
@@ -1032,7 +1055,7 @@
\colorlet{macouleurexodecofond}{blue!50!black}
\newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}%
-\newcommand\tmplabelexo{Exercice~}%
+\newcommand\tmplabelexo{Exercice\space}%
\defKV[globalstyleexo]{%
Libelle=\renewcommand\tmplabelexo{#1},%
@@ -1046,7 +1069,7 @@
}
\setKVdefault[globalstyleexo]{%
- Libelle={Exercice~},%
+ Libelle={Exercice\space},%
Couleur={blue!50!black},%
CouleurDeco={blue!50!black},%
CouleurFondDeco={macouleurexodeco!50},%
@@ -1175,7 +1198,7 @@
\ifboolKV[EnvtExerciceAlt]{Compteur}{\thenumeroexoalt}{}\EnvtExoAltCpltTitre%
\IfStrEq{\EnvtExoAltEtoiles}{}{}%les étoiles au début...
{%
- ~(%
+ \space(%
\IfSubStr{\EnvtExoAltEtoiles}{§}%
{%
\StrCut{\EnvtExoAltEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
@@ -1188,10 +1211,10 @@
}%
%trait éventuel
\IfStrEqCase{\EnvtExoAltTrait}{%
- {plein}{\,\hrulefill\,}%
- {pointilles}{\,\dotfill\,}%
- {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}\,}%
- {non}{\hfill\,}%
+ {plein}{\,\hrulefill\null}%
+ {pointilles}{\,\dotfill\null}%
+ {dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}\null}%
+ {non}{\hfill\null}%
{aucun}{}%
}%
\IfSubStr{\EnvtExoAltDeco}{Icone}%icone fa
@@ -1204,6 +1227,16 @@
\StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoEmoji]%
\raisebox{-\tmptitreexoprofondeur}{\twemoji[height=\tmptitreexohauteurtotale]{\EnvtExoEmoji}}%
}{}%
+ \IfSubStr{\EnvtExoAltDeco}{Openmoji}%emojo openoji
+ {%
+ \StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoEmoji]%
+ \openmoji[height=dauto]{\EnvtExoEmoji}%
+ }{}%
+ \IfSubStr{\EnvtExoAltDeco}{Tablericon}%emojo openoji
+ {%
+ \StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoEmoji]%
+ \tablericon[height=dauto]{\EnvtExoEmoji}%
+ }{}%
\IfSubStr{\EnvtExoAltDeco}{Ceinture}%
{%
\StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoCouleur]%
@@ -1213,7 +1246,7 @@
{%
\StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoPts]%
\xintifboolexpr{ \EnvtExoPts <= 1 }{\def\pts{point}}{\def\pts{points}}%
- (\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\ \pts)%
+ (\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\space\pts)%
}{}%
\IfSubStr{\EnvtExoAltDeco}{Image}%
{%
@@ -1340,7 +1373,7 @@
%étoiles au début
\IfStrEq{\EnvtExoEtoiles}{}{}%
{%
- \,(\IfSubStr{\EnvtExoEtoiles}{§}%
+ \space(\IfSubStr{\EnvtExoEtoiles}{§}%
{%
\StrCut{\EnvtExoEtoiles}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
\tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
@@ -1356,7 +1389,7 @@
{pointilles}{\,\dotfill}%
{dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
{non}{\hfill}%
- {aucun}{~}%
+ {aucun}{\space}%
}%
%décorations éventuelles
\IfSubStr{\EnvtExoDeco}{Icone}%
@@ -1369,6 +1402,16 @@
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoEmoji]%
\,\texttwemoji{\EnvtExoEmoji}%
}{}%
+ \IfSubStr{\EnvtExoAltDeco}{Openmoji}%emojo openoji
+ {%
+ \StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoEmoji]%
+ \openmoji[height=dauto]{\EnvtExoEmoji}%
+ }{}%
+ \IfSubStr{\EnvtExoAltDeco}{Tablericon}%emojo openoji
+ {%
+ \StrBehind{\EnvtExoAltDeco}{/}[\EnvtExoEmoji]%
+ \tablericon[height=dauto]{\EnvtExoEmoji}%
+ }{}%
\IfSubStr{\EnvtExoDeco}{Barres}%
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
@@ -1436,7 +1479,7 @@
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\xintifboolexpr{ \EnvtExoPts <= 1 }{\def\pts{point}}{\def\pts{points}}%
- \,\textcolor{macouleurexodeco}{(\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\ \pts)}%
+ \,\textcolor{macouleurexodeco}{(\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\space\pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -1519,7 +1562,7 @@
{pointilles}{\,\dotfill}%
{dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
{non}{\hfill}%
- {aucun}{~}%
+ {aucun}{\space}%
}%
%décorations éventuelles
\IfSubStr{\EnvtExoDeco}{Icone}%
@@ -1599,7 +1642,7 @@
{%
\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
\xintifboolexpr{ \EnvtExoPts <= 1 }{\def\pts{point}}{\def\pts{points}}%
- \,\textcolor{macouleurexodeco}{(\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\ \pts)}%
+ \,\textcolor{macouleurexodeco}{(\StrSubstitute{\EnvtExoPts}{.}{{{,}}}\space\pts)}%
}{}%
\IfSubStr{\EnvtExoDeco}{Image}%
{%
@@ -1678,7 +1721,7 @@
enhanced,arc=0pt,outer arc=0pt,colback=\ProjectSmsColback,toptitle=0.3cm,bottomtitle=0.3cm,title={\null},
overlay={
%la barre de titre
- \node[anchor=east,smscoltitle,font=\large] at ([xshift=-1mm]title.east) {\faVideo\:\:\faFlipPhone\:\:\faThreeDotsV};
+ \node[anchor=east,smscoltitle,font=\large] at ([xshift=-1mm]title.east) {\faVideo\space\space\faFlipPhone\space\space\faThreeDotsV};
\node[draw=none,anchor=west,inner sep=1pt,text=smscoltitle,font=\large] at ([xshift=1mm]title.west) (picture) {\ProjectSmsAvat};
\node[draw=none,anchor=west,text=smscoltitle,font=\large,text depth=0pt,inner sep=1pt] at (picture.east) {\sffamily\bfseries\vphantom{pB}\NameofSMS} ;
%le bas
@@ -1799,7 +1842,7 @@
attach boxed title to top left,
coltitle=black,fonttitle=\scriptsize\sffamily,
boxed title style={size=fbox,bottom=0pt,boxsep=2pt,frame empty,interior empty},
- title={\@ifpackageloaded{babel}{\NoAutoSpacing#2}{#2}\IfBooleanTF{#1}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\:}{}},left=1mm,right=1mm,boxsep=0mm,SMSAffLogo]{#3}%
+ title={\@ifpackageloaded{babel}{\NoAutoSpacing#2}{#2}\IfBooleanTF{#1}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\space}{}},left=1mm,right=1mm,boxsep=0mm,SMSAffLogo]{#3}%
}
\NewDocumentCommand\SMSenv{ s m m }{%
\tcbox[enhanced,interior code={},before skip=0.5mm,after skip=0.5mm,halign=left,left=1.5mm,right=1.5mm,
@@ -1812,7 +1855,7 @@
attach boxed title to top right,
coltitle=black,fonttitle=\scriptsize\sffamily,
boxed title style={size=fbox,bottom=0pt,boxsep=2pt,frame empty,interior empty},
- title={\@ifpackageloaded{babel}{\NoAutoSpacing#2}{#2}\IfBooleanTF{#1}{}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\:}},left=1mm,right=1mm,boxsep=0mm]{#3}%
+ title={\@ifpackageloaded{babel}{\NoAutoSpacing#2}{#2}\IfBooleanTF{#1}{}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\space}},left=1mm,right=1mm,boxsep=0mm]{#3}%
}
%====Nutriscore
@@ -2340,7 +2383,7 @@
attach boxed title to top left,
coltitle=black,fonttitle=\scriptsize\sffamily,
boxed title style={size=fbox,bottom=0pt,boxsep=2pt,frame empty,interior empty},
- title={#2\IfBooleanTF{#1}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\:}{}},left=1mm,right=1mm,boxsep=0mm,SMSAffLogo]{#3}%
+ title={#2\IfBooleanTF{#1}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\space}{}},left=1mm,right=1mm,boxsep=0mm,SMSAffLogo]{#3}%
}
\NewDocumentCommand\OutSMS{ s m m }{%
\tcbox[enhanced,interior code={},before skip=0.5mm,after skip=0.5mm,halign=left,left=1.5mm,right=1.5mm,
@@ -2353,7 +2396,7 @@
attach boxed title to top right,
coltitle=black,fonttitle=\scriptsize\sffamily,
boxed title style={size=fbox,bottom=0pt,boxsep=2pt,frame empty,interior empty},
- title={#2\IfBooleanTF{#1}{}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\:}},left=1mm,right=1mm,boxsep=0mm]{#3}%
+ title={#2\IfBooleanTF{#1}{}{$\cdot$\scalebox{0.6}[0.6]{\faCheckCircleReg\!\faCheckCircleReg}\space}},left=1mm,right=1mm,boxsep=0mm]{#3}%
}
%====SMALL BOXES CREATION
@@ -3441,10 +3484,10 @@
\NewDocumentCommand\VilleDist{ s m m }{%
\IfBooleanTF{#1}%
{%
- #2\hfill~#3
+ #2\hfill\space#3
}%
{%
- #2\hfill~#3\\
+ #2\hfill\space#3\\
}%
}
@@ -3459,9 +3502,9 @@
\newlength{\tmphautlignesol}
\newlength{\tmphautsoles}
-\def\labelancienprix{Ancien Prix~:~}
-\def\labelnouveauprix{Nouveau Prix~:~}
-\def\labelreduction{SOLDES~:~}
+\def\labelancienprix{Ancien Prix\space:\space}
+\def\labelnouveauprix{Nouveau Prix\space:\space}
+\def\labelreduction{SOLDES\space:\space}
\defKV[PanoSoldes]{%
Couleur=\def\panosoldescolor{#1},%
@@ -4180,7 +4223,7 @@
\IfEq{\tkzBannermaintrilogotwemoji}{}%OK
{}%
{%
- \node[inner sep=1.25pt,left=2pt,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartAltKeys]{fonttxt}},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartAltKeys]{width}},{0.55*(\useKV[tkzBannerpartAltKeys]{height})}) {\vphantom{qÉ}\twemoji[height={0.5\tmp at tkzbanneralt@height}]{\tkzBannermaintrilogotwemoji}\:};
+ \node[inner sep=1.25pt,left=2pt,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartAltKeys]{fonttxt}},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartAltKeys]{width}},{0.55*(\useKV[tkzBannerpartAltKeys]{height})}) {\vphantom{qÉ}\twemoji[height={0.5\tmp at tkzbanneralt@height}]{\tkzBannermaintrilogotwemoji}\space};
}%
}%
{%
@@ -4195,7 +4238,7 @@
\IfEq{\tkzBannermaintrilogotwemoji}{}%OK
{}%
{%
- \node[inner sep=1.25pt,left=2pt,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartAltKeys]{fonttxt}},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartAltKeys]{width}},{0.55*(\useKV[tkzBannerpartAltKeys]{height})}) {\vphantom{qÉ}\twemoji[height={0.5\tmp at tkzbanneralt@height}]{\tkzBannermaintrilogotwemoji}\:};
+ \node[inner sep=1.25pt,left=2pt,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartAltKeys]{fonttxt}},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartAltKeys]{width}},{0.55*(\useKV[tkzBannerpartAltKeys]{height})}) {\vphantom{qÉ}\twemoji[height={0.5\tmp at tkzbanneralt@height}]{\tkzBannermaintrilogotwemoji}\space};
}%
}%
\end{scope}
@@ -4534,12 +4577,12 @@
enhanced,arc=1.25pt,colback=\ProjectWaColback,toptitle=0.3cm,bottomtitle=0.3cm,title={\null},
overlay={
%la barre de titre
- \node[anchor=east,wacoltitle,text=wacoltitle] at ([xshift=-1mm]title.east) {\faVideo\:\faFlipPhone\:\faThreeDotsV};
+ \node[anchor=east,wacoltitle,text=wacoltitle] at ([xshift=-1mm]title.east) {\faVideo\space\space\faFlipPhone\space\space\faThreeDotsV};
\node[draw=none,anchor=west,inner sep=1pt,text=wacoltitle] at ([xshift=1mm]title.west) (arrowleft) {\faArrowLeft};
- \node[draw=none,anchor=west,inner sep=1pt,text=wacoltitle] at ([xshift=1mm]title.west) (picture) {\phantom{\faArrowLeft}\:\ProjectWaAvat};
- \node[draw=none,anchor=west,text=wacoltitle,text depth=0pt,inner sep=1pt] at (picture.east) {\:\sffamily\vphantom{pB}\NameofWa} ;
+ \node[draw=none,anchor=west,inner sep=1pt,text=wacoltitle] at ([xshift=1mm]title.west) (picture) {\phantom{\faArrowLeft}\space\ProjectWaAvat};
+ \node[draw=none,anchor=west,text=wacoltitle,text depth=0pt,inner sep=1pt] at (picture.east) {\space\sffamily\vphantom{pB}\NameofWa} ;
%le bas
- \node[draw=white,fill=white,line width=1pt,rounded corners=8pt,text width={\WidthofWa-2.5mm-1cm},minimum height=0.75cm,font=\ProjectWaFonte,text=darkgray,inner xsep=3pt,anchor=west] at ([shift={(1.25mm,0.5cm)}]frame.south west) {\faIcon{smile}\:\rule[-0.1cm]{1pt}{0.5cm}\,\ProjectWaWrite\hfill\faPaperclip\:\:\faVideo\:};
+ \node[draw=white,fill=white,line width=1pt,rounded corners=8pt,text width={\WidthofWa-2.5mm-1cm},minimum height=0.75cm,font=\ProjectWaFonte,text=darkgray,inner xsep=3pt,anchor=west] at ([shift={(1.25mm,0.5cm)}]frame.south west) {\faIcon{smile}\space\rule[-0.1cm]{1pt}{0.5cm}\,\ProjectWaWrite\hfill\faPaperclip\space\space\faVideo\space};
\node[draw=wacolmicro,fill=wacolmicro,line width=1pt,rounded corners=8pt,text width={0.35cm},minimum height=0.75cm,font=\ProjectWaFonte,text=white,anchor=east,align=center] at ([shift={(-1.25mm,0.5cm)}]frame.south east) {\faMicrophone};
},
boxrule=0.8pt,colframe=wacolmicro!50!gray,title style={color=white},
More information about the tex-live-commits
mailing list.