diff options
author | Karl Berry <karl@freefriends.org> | 2023-08-27 19:53:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-08-27 19:53:19 +0000 |
commit | d5515ac6c674357e891c2e17177b1bc5c5149b33 (patch) | |
tree | 6245fd4f58cf72f5893e11fcaf6265647329892b | |
parent | b1d436874da1905230c6f30abcdb32dad8fab78b (diff) |
creationboites (27aug23)
git-svn-id: svn://tug.org/texlive/trunk@68087 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.pdf | bin | 0 -> 158107 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.tex | 582 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/creationboites/README.md | 7 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/creationboites/CreationBoites.sty | 126 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/creationboites.tlpsrc | 0 |
8 files changed, 718 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.pdf b/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.pdf Binary files differnew file mode 100644 index 00000000000..e3984e5e878 --- /dev/null +++ b/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.pdf diff --git a/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.tex b/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.tex new file mode 100644 index 00000000000..e3470deb96b --- /dev/null +++ b/Master/texmf-dist/doc/latex/creationboites/CreationBoites-doc.tex @@ -0,0 +1,582 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: lualatex: {shell: no, synctex: no, interaction: batchmode} +% arara: lualatex: {shell: no, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[french,11pt,a4paper]{article} +%\usepackage[utf8]{inputenc} +%\usepackage[T1]{fontenc} +%\usepackage{amssymb} +\usepackage{fontspec} +\setmonofont[Scale=MatchLowercase]{Inconsolatazi4} +\usepackage{CreationBoites} +\usepackage{enumitem} +\usepackage{soul} +\usepackage{codehigh} +\usepackage{multicol} +\usepackage{tabularray} +\usepackage{lipsum} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +%\rhead{\sffamily\small\affloetalab[Legende]} +\lfoot{\sffamily\small [CreationBoites]} +\cfoot{\sffamily\small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} +\usepackage{hologo} +\providecommand\tikzlogo{Ti\textit{k}Z} +\providecommand\TeXLive{\TeX{}Live\xspace} +\providecommand\PSTricks{\textsf{PSTricks}\xspace} +\let\pstricks\PSTricks +\let\TikZ\tikzlogo + +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=1.5cm]{geometry} +\setlength{\parindent}{0pt} + +\def\TPversion{0.1.0} +\def\TPdate{26 août 2023} +\sethlcolor{lightgray!25} +\NewDocumentCommand\MontreCode{ m }{% + \hl{\vphantom{\texttt{pf}}\texttt{#1}}% +} + +\CreationBoite[blue]{BoiteDeDemo}{CompteurBoiteDemo}{\faIcons}{Boîte Démo/Boîtes Démos} +\CreationBoite[red]{BoiteDanger}{CompteurBoiteDanger}{\faBomb}{Danger/Dangers} + +\usepackage{babel} + +\begin{document} + +\pagestyle{fancy} + +\thispagestyle{empty} + +\begin{center} + \begin{minipage}{0.88\linewidth} + \begin{tcolorbox}[colframe=yellow,colback=yellow!15] + \begin{center} + \begin{tabular}{c} + {\Huge \texttt{CreationBoites}}\\ + \\ + {\LARGE Création \textit{semi-}automatique de boîtes \textit{tcbox}} \\ + \\ + {\LARGE avec quelques éléments de personnalisation.} \\ + \\ + {\small \texttt{Version \TPversion{} -- \TPdate}} + \end{tabular} + \end{center} + \end{tcolorbox} +\end{minipage} +\end{center} + +\begin{center} + \begin{tabular}{c} + \texttt{Cédric Pierquet}\\ + {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{\url{https://github.com/cpierquet/creationboites}} +\end{tabular} +\end{center} + +\hrule + +\vfill + +\begin{tcolorbox}[colframe=lightgray,colback=white] +\begin{BoiteDeDemo} + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[Compteur=false] + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[Pluriel] + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[SousTitre={Un petit sous-titre}] + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[ComplementTitre={ - Un complément de titre}]%noter l'espace ;-) + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[ModifLabel={ super important}]%noter l'espace ;-) + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDeDemo}[Logo={example-image}] + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDanger}[Compteur=false] + \lipsum[1][1] +\end{BoiteDanger} +\end{tcolorbox} + +\vfill~ + +\pagebreak + +\phantomsection + +\hypertarget{matoc}{} + +\tableofcontents + +\vspace*{5mm} + +\hrule + +\vspace*{5mm} + +\section{Le package CreationBoites} + +\subsection{Idées} + +L'idée est de proposer un moyen de \textit{générer} des boîtes simples, créées grâce à \MontreCode{tcolorbox}, de manière \textit{semi}-automatisée. + +\smallskip + +Chaque boîte sera définie -- avec un style global -- via : + +\begin{itemize} + \item un \textbf{nom} (pour l'environnement) ; + \item un nom de \textbf{compteur} pour la numéroter ; + \item une \textbf{couleur} (optionnelle et noire par défaut) ; + \item une \textbf{icône} ; + \item un \textbf{label} (singulier ou pluriel). +\end{itemize} + +\medskip + +Il ne faut pas voir ce package comme un outil avancé de création, \MontreCode{tcolorbox} étant déjà suffisamment complet pour que l'utilisateur puisse faire tout ce dont il a envie, mais comme un \textit{assistant simple} pour créer des boîtes pour des supports de cours par exemple ! + +\subsection{Chargement} + +Le package se charge dans le préambule, via \MontreCode{\textbackslash usepackage\{CreationBoites\}}. + +Les seuls packages chargés sont : + +\begin{itemize} + \item \MontreCode{tcolorbox} (avec les libraires \MontreCode{fitting,skins}) ; + \item \MontreCode{fontawesome5}, \MontreCode{simplekv} et \MontreCode{xstring}. +\end{itemize} + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\usepackage{CreationBoites} +\end{codehigh} + +\subsection{Utilisation basique} + +Le package propose deux macros principales : + +\begin{itemize} + \item \MontreCode{\textbackslash CreationBoite} pour créer les différentes boîtes/environnements ; + \item \MontreCode{\textbackslash ParamBoites} pour une modification \textit{globale} de certains paramètres des boîtes (polices et marges). +\end{itemize} + +\medskip + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\CreationBoite[Couleur]{Nom}{Compteur}{Icône}{Libéllés} +\ParamBoites[Clés] +\end{codehigh} + +\medskip + +Ainsi, les exemples de boîtes données sur la page de garde ont été créées grâce à : + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\CreationBoite% + [blue] %Couleur de base + {BoiteDeDemo} %Nom de l'environnement + {CompteurBoiteDemo} %Compteur + {\faIcons} %Icône + {Boîte Démo/Boîtes Démos} %Libélés (sing/plur) + +\CreationBoite% + [red] %Couleur de base + {BoiteDanger} %Nom de l'environnement + {CompteurBoiteDanger} %Compteur + {\faBomb} %Icône + {Danger/Dangers} %Libélés (sing/plur) +\end{codehigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\setcounter{CompteurBoiteDemo}{0} +\setcounter{CompteurBoiteDanger}{0} +\begin{BoiteDeDemo} + \lipsum[1][1] +\end{BoiteDeDemo} + +\begin{BoiteDanger} + \lipsum[2][1] +\end{BoiteDanger} +\end{demohigh} + +Dans ce cas la boîte est créée grâce à la syntaxe suivante : + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{NomEnv}[Clés]<Options tcbox> +... +\end{NomEnv} +\end{codehigh} + +\pagebreak + +\section{Utilisation basique} + +\subsection{Style global de la boîte} + +Le style global des boîtes est défini par : + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\tcbset{baseboite/.style={ + enhanced,sharp corners=uphill,boxrule=\eptraitboite,% + before skip=0.5em,after skip=0.5em,% + colback=white,top=4mm,% + left={\margeboite-\margeinttitreboite-\eptraitboite},% + right={\margeboite-\margeinttitreboite-\eptraitboite} +}% +} +\end{codehigh} + +À noter que le \MontreCode{\textbackslash margeboite-\textbackslash margeinttitreboite-\textbackslash eptraitboite} vient : + +\begin{itemize} + \item des \MontreCode{\textbackslash margeinttitreboite} du paramètre \MontreCode{inner sep} du nœud Ti\textit{k}Z ; + \item des \MontreCode{\textbackslash eptraitboite} du paramètre \MontreCode{boxrule} de la boîte \textit{titre}. +\end{itemize} + +\subsection{Paramétrage simple de la boîte} + +Il est possible de rajouter ou modifier quelques éléments de chaque boîte (les clés suivantes sont cumulables) : + +\begin{itemize} + \item un \textsf{sous-titre} (couleur \textsf{rouge foncé}) peut être ajouté (en haut à droite de la boîte), via la clé \MontreCode{[SousTitre=...]} ; + \item le label peut être modifié : + \begin{itemize} + \item le compteur peut être désactivé, grâce à la clé \MontreCode{[Compteur=false]} ; + \item la clé \MontreCode{[Pluriel]} force le pluriel du label ; + \item un complément peut être rajouté entre le label et le compteur grâce à la clé \MontreCode{[ModifLabel=...]} ; + \item un complément peut être rajouté après le compteur grâce à la clé \MontreCode{[ComplementTitre=...]} ; + \end{itemize} + \item une petite image (type \textit{filigrane}) peut être rajoutée (de hauteur 24pt et pivotée de 45° dans le sens horaire par défaut), dans le coin \textit{bas-droite} de la boîte : + \begin{itemize} + \item en spécifiant l'image grâce à la clé \MontreCode{[Logo=...]} ; + \item en spécifiant hauteur/rotation/opacité grâce aux clés \MontreCode{[HauteurLogo=...]} , \MontreCode{[RotationLogo=...]} et \MontreCode{[OpaciteLogo=...]}. + \end{itemize} +\end{itemize} + +Des options spécifiques \MontreCode{tcolorbox} peuvent être passées en option à l'environnement, elles sont à mettre entre \MontreCode{<...>} avant le corps de l'environnement. + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\setcounter{CompteurBoiteDemo}{0} +\begin{BoiteDeDemo}[Compteur=false] +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[Pluriel]<width=0.5\linewidth> +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[SousTitre={Un petit sous-titre}] +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[ComplementTitre={ - Un complément de titre}]%noter l'espace ;-) +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[ModifLabel={ super important}]%noter l'espace ;-) +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[Logo={example-image}] +\lipsum[1][3-4] +\end{BoiteDeDemo} +\end{demohigh} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[Logo={example-image},HauteurLogo=5mm,RotationLogo=10] +\lipsum[1][3-4] +\end{BoiteDeDemo} +\end{demohigh} + +\pagebreak + +Et en \textit{cumulant} des clés de personnalisation on peut obtenir : + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[% + ModifLabel={s super importants},ComplementTitre={ (vraiment super importants)},% + SousTitre={- Source -},Compteur=false,Logo={example-image-a},% + HauteurLogo=1cm,RotationLogo=15,OpaciteLogo=1 + ] +\lipsum[2][1-4] +\end{BoiteDeDemo} +\end{demohigh} + +\subsection{Personnalisation \textit{intermédiaire}} + +Il est possible de paramétrer \textit{facilement} certaines options, via la commande \MontreCode{\textbackslash ParamBoites[...]} : + +\begin{itemize} + \item la police du label grâce à la clé \MontreCode{[PoliceTitre=...]} (\verb*|\bfseries\sffamily| par défaut) ; + \item la police du sous-titre grâce à la clé \MontreCode{[PoliceSousTitre=...]} (\verb*|\small\bfseries\sffamily| par défaut) ; + \item la couleur de base du sous-titre grâce à la clé \MontreCode{[CouleurSousTitre=...]} (\verb*|red| par défaut) ; + \item les marges gauche et droite grâce à la clé \MontreCode{[Marge=...]} (\verb*|4mm| par défaut) ; + \item l'épaisseur des bordures grâce à la clé \MontreCode{[EpaisseurBordure=...]} (\verb*|1.25pt| par défaut) ; + \item la marge spécifique pour la boîte \textit{titre} grâce à clé \MontreCode{[MargeTitre=...]} (\verb*|3pt| par défaut). +\end{itemize} + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\ParamBoites[% + Marge=2cm,MargeTitre=2mm,% + PoliceTitre=\large\bfseries\ttfamily,% + PoliceSousTitre=\scriptsize\bfseries\sffamily,% + CouleurSousTitre=orange] +\end{codehigh} + +\ParamBoites[Marge=2cm,MargeTitre=2mm,PoliceTitre=\large\bfseries\ttfamily,PoliceSousTitre=\scriptsize\bfseries\sffamily,CouleurSousTitre=orange] + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\begin{BoiteDeDemo}[SousTitre={- Un petit sous-titre -}] +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +On peut revenir aux paramètres par défaut grâce à la commande \MontreCode{\textbackslash ParamBoites} (sans argument). + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\ParamBoites +\begin{BoiteDeDemo}[SousTitre={- Un petit sous-titre -}] +\lipsum[1][1-2] +\end{BoiteDeDemo} +\end{demohigh} + +\pagebreak + +\section{Utilisation avancée} + +\subsection{Styles spécifiques} + +Il est possible quand même de modifier \textit{en profondeur} les boîtes créées, en redéfinissant les commandes suivantes via \verb*|\RenewDocumentCommand| : + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\NewDocumentCommand\TitreBoite{ m m m m }{% + %1=couleur + %2=icone + %3=nom + %4=compteur + % \BoxModifLabel = texte entre label et compteur + % \BoxCpltTitle = Texte après le compteur + \node[inner sep=\margeinttitreboite,rounded corners=3pt,draw=#1,line width=\eptraitboite,% + rectangle,fill=#1!5!white,anchor=west,xshift=\margeboite,text=black,% + font=\policetitreboite]% + at (frame.north west) + {% + \,\IfStrEq{#2}{}{}{{\small#2}~}\vphantom{Ppé}% + \ifboolKV[Boites]{Pluriel}{\StrBehind{#3}{/}}{\StrBefore{#3}{/}}% + \IfStrEq{\BoxModifLabel}{}{}{\BoxModifLabel}\ifboolKV[Boites]{Compteur}{~#4}{}% + \IfStrEq{\BoxCpltTitle}{}{}{\BoxCpltTitle}\,% + } ; +} +\end{codehigh} + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\NewDocumentCommand\SousTitreBoite{ }{%\BoxSubTitle = Sous-titre + \node[fill=white,anchor=east,xshift=-\margeboite,text=red!75!black,% + font=\policesoustitreboite] at (frame.north east) % + {\vphantom{Ppé}\BoxSubTitle} ; +} +\end{codehigh} + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\NewDocumentCommand\LogoCoinDroit{ }{% + \begin{tcbclipinterior}% + \node[opacity=\BoxOpaciteLogo,rotate=-\BoxRotationLogo]% + at ($(interior.south east)+(-10pt,10pt)$) % + {\includegraphics[height=\BoxHauteurLogo]{\BoxLogo}};% + \end{tcbclipinterior}% +} +\end{codehigh} + +\pagebreak + +\subsection{Exemple de personnalisations avancées} + +Par exemple, on peut modifier globalement le comportement de la boîte : + +\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\tcbset{baseboite/.style={ + enhanced,boxrule=0.75pt,% + center,width=0.75\linewidth,% + before skip=1em,after skip=1em,% + colback=white,top=4mm,left=1mm,right=1mm + }% +} +\RenewDocumentCommand\TitreBoite{ m m m m }{% + \node[inner sep=2pt,draw=#1,line width=0.75pt,rounded corners,% + rectangle,fill=white,anchor=center,xshift=-1cm,text=black,% + font=\policetitreboite]% + at (frame.north) + {% + ~#2 #3\ifboolKV[Boites]{Compteur}{~#4}{}\IfStrEq{\BoxCpltTitle}{}{}{\BoxCpltTitle}~ + } ; +} +\RenewDocumentCommand\SousTitreBoite{ }{% + \node[fill=white,anchor=center,% + font=\policesoustitreboite] at (frame.south) {\vphantom{pP}\BoxSubTitle} ; +} +\ParamBoites[PoliceTitre=\bfseries,PoliceSousTitre=\small\sffamily] +\CreationBoite{BoxDef}{CompteurDefi}{\faAddressBook}{Définition} +\CreationBoite[lime]{BoxProp}{CompteurProp}{\faAmbulance}{Propriété} +\end{codehigh} + +\tcbset{baseboite/.style={ +enhanced,boxrule=0.75pt,% +center,width=0.75\linewidth,% +before skip=1em,after skip=1em,% +colback=white,top=4mm,left=1mm,right=1mm +}% +} + +\RenewDocumentCommand\TitreBoite{ m m m m }{% +\node[inner sep=2pt,draw=#1,line width=0.75pt,rounded corners,% +rectangle,fill=white,anchor=center,text=black,% +font=\policetitreboite]% +at (frame.north) +{% +~#2 #3\ifboolKV[Boites]{Compteur}{~#4}{}\IfStrEq{\BoxCpltTitle}{}{}{\BoxCpltTitle}~ +} ; +} + +\RenewDocumentCommand\SousTitreBoite{ }{% +\node[fill=white,anchor=center,% +font=\policesoustitreboite] at (frame.south) % +{\vphantom{pP}\BoxSubTitle} ; +} + +\ParamBoites[PoliceTitre=\bfseries,PoliceSousTitre=\small\sffamily] + +\CreationBoite{BoxDef}{CompteurDefi}{\faAddressBook}{Définition} +\CreationBoite[lime]{BoxProp}{CompteurProp}{\faAmbulance}{Propriété} + +\begin{demohigh} +On va montrer en situation : + +\begin{BoxDef}[ComplementTitre={ (importante)},SousTitre={- Fin -}] +\lipsum[1][1-2] +\end{BoxDef} + +\begin{BoxProp}[ComplementTitre={ (très importante)},Compteur=false] +\lipsum[1][3-4] +\end{BoxProp} + +Voili voilà ! +\end{demohigh} + +\pagebreak + +\subsection{Galerie pour des boîtes à destination de cours} + +Pour les exemples suivants, les paramètres et styles ont été remis par défaut. + +Toute couleur (\MontreCode{xcolor} n'est pas chargé avec des options spécifiques) peut être utilisée pour créer une boîte. + +\tcbset{baseboite/.style={ + enhanced,sharp corners=uphill,boxrule=1.25pt,% + before skip=0.5em,after skip=0.5em,% + colback=white,top=4mm,left={\margeboite-4.25pt},right={\margeboite-4.25pt} +}% +} + +\RenewDocumentCommand\TitreBoite{ m m m m }{% + %1=couleur + %2=icone + %3=nom + %4=compteur + % \BoxModifLabel = texte entre label et compteur + % \BoxCpltTitle = Texte après le compteur + \node[inner sep=3pt,rounded corners=3pt,draw=#1,line width=1.25pt,% + rectangle,fill=#1!5!white,anchor=west,xshift=\margeboite,text=black,% + font=\policetitreboite]% + at (frame.north west) + {% + \,\IfStrEq{#2}{}{}{{\small#2}~}\vphantom{Ppé}% + \ifboolKV[Boites]{Pluriel}{\StrBehind{#3}{/}}{\StrBefore{#3}{/}}% + \IfStrEq{\BoxModifLabel}{}{}{\BoxModifLabel}\ifboolKV[Boites]{Compteur}{~#4}{}% + \IfStrEq{\BoxCpltTitle}{}{}{\BoxCpltTitle}\,% + } ; +} + +\RenewDocumentCommand\SousTitreBoite{ }{%\BoxSubTitle = Sous-titre + \node[fill=white,anchor=east,xshift=-\margeboite,text=red!75!black,% + font=\policesoustitreboite] at (frame.north east) % + {\vphantom{Ppé}\BoxSubTitle} ; +} + +\RenewDocumentCommand\LogoCoinDroit{ }{% + \begin{tcbclipinterior}% + \node[opacity=\BoxOpaciteLogo,rotate=-\BoxRotationLogo]% + at ($(interior.south east)+(-10pt,10pt)$) % + {\includegraphics[height=\BoxHauteurLogo]{\BoxLogo}};% + \end{tcbclipinterior}% +} + +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +\ParamBoites %on remet à 0 les paramètres +\CreationBoite[teal]{EnvDefi}{CptDefi}{\faIcon[regular]{comment-dots}}{Définition/Définitions} +\CreationBoite[yellow]{EnvHumour}{CptHumour}{\faIcon[regular]{laugh-wink}}{Humour/Humours} +\CreationBoite[violet]{EnvProp}{CptProp}{\faCog}{Propriété/Propriétés} +\CreationBoite[red]{EnvThm}{CptThm}{\faBullhorn}{Théorème/Théorèmes} +\CreationBoite[blue]{EnvRmq}{CptRmq}{\faHandPointRight[regular]}{Remarque/Remarques} + +\begin{EnvDefi} +\lipsum[1][3-4] +\end{EnvDefi} + +\begin{EnvHumour} +\lipsum[2][3-4] +\end{EnvHumour} + +\begin{EnvProp} +\lipsum[2][3-4] +\end{EnvProp} + +\begin{EnvThm} +\lipsum[2][3-4] +\end{EnvThm} + +\begin{EnvRmq}[Pluriel,Logo={example-image-1x1},SousTitre={ - Fondamentales -}] +\lipsum[3][1-7] +\end{EnvRmq} +\end{demohigh} + +\pagebreak + +\section{Historique} + +\verb|v0.1.0|~:~~~~Version initiale + +\vspace*{15mm} + +\pagebreak + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/creationboites/README.md b/Master/texmf-dist/doc/latex/creationboites/README.md new file mode 100644 index 00000000000..40d24c24cf3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/creationboites/README.md @@ -0,0 +1,7 @@ +CreationBoites is a package for creating and personnalize tcbox with macros. +--------------------------------------------------------------------------------- +CreationBoites est un package pour créer des boîtes tcbox avec personnalisations. +--------------------------------------------------------------------------------- +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
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/creationboites/CreationBoites.sty b/Master/texmf-dist/tex/latex/creationboites/CreationBoites.sty new file mode 100644 index 00000000000..d40505a12e5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/creationboites/CreationBoites.sty @@ -0,0 +1,126 @@ +% Author : C. Pierquet +% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{CreationBoites}[2023/08/26 0.1.0 Macros pour creer des boites tcbox simples, avec personnalisation(s)] + +%====HISTORIQUE +% v 0.1.0 Version initiale + +%====BASE +\RequirePackage{tcolorbox} +\tcbuselibrary{fitting,skins} +\usetikzlibrary{calc} +\RequirePackage{fontawesome5} +\RequirePackage{simplekv} +\RequirePackage{xstring} + +%====CRÉATION DES COMPTEURS ET DES PARAMÈTRES DE BASE +\NewDocumentCommand\CreerCompteur{ m }{% + \newcounter{#1}%création + \setcounter{#1}{0}%initialisation +} +\newcommand\policetitreboite{\bfseries\sffamily} +\newcommand\policesoustitreboite{\small\bfseries\sffamily} +\newcommand\couleursoustitreboite{red} +\newcommand\tailleiconeboite{\small} +\newcommand\margeboite{4mm} +\newcommand\eptraitboite{1.25pt} +\newcommand\margeinttitreboite{3pt} + +%====STYLE GÉNÉRAL DES TCBOX +\tcbset{baseboite/.style={ + enhanced,sharp corners=uphill,boxrule=\eptraitboite,% + before skip=0.5em,after skip=0.5em,% + colback=white,top=4mm,left={\margeboite-\margeinttitreboite-\eptraitboite},right={\margeboite-\margeinttitreboite-\eptraitboite} + }% +} + +%====MACROS TITRE/SOUS-TITRE/LOGO +\NewDocumentCommand\TitreBoite{ m m m m }{% + %1=couleur + %2=icone + %3=noms + %4=compteur + \node[inner sep=\margeinttitreboite,rounded corners=3pt,draw=#1,line width=\eptraitboite,rectangle,fill=#1!5!white,anchor=west,xshift=\margeboite,text=black,font=\policetitreboite] at (frame.north west) {\,\IfStrEq{#2}{}{}{{\tailleiconeboite#2}~}\vphantom{Ppé}\ifboolKV[Boites]{Pluriel}{\StrBehind{#3}{/}}{\StrBefore{#3}{/}}\IfStrEq{\BoxModifLabel}{}{}{\BoxModifLabel}\ifboolKV[Boites]{Compteur}{~#4}{}\IfStrEq{\BoxCpltTitle}{}{}{\BoxCpltTitle}\,} ; +} + +\NewDocumentCommand\SousTitreBoite{ }{% + \node[fill=white,anchor=east,xshift=-\margeboite,text=\couleursoustitreboite!75!black,font=\policesoustitreboite] at (frame.north east) {\vphantom{Ppé}\BoxSubTitle} ; +} +\NewDocumentCommand\LogoCoinDroit{ }{% + \begin{tcbclipinterior}\node[opacity=\BoxOpaciteLogo,rotate=-\BoxRotationLogo] at ($(interior.south east)+(-10pt,10pt)$){\includegraphics[height=\BoxHauteurLogo]{\BoxLogo}};\end{tcbclipinterior}% +} + +%====MACRO POUR QQUES PARAMÈTRES BASIQUES +\defKV[ParamBoites]{% + PoliceTitre=\renewcommand\policetitreboite{#1},% + PoliceSousTitre=\renewcommand\policesoustitreboite{#1},% + Marge=\renewcommand\margeboite{#1},% + TailleIcone=\renewcommand\tailleiconeboite{#1},% + CouleurSousTitre=\renewcommand\couleursoustitreboite{#1},% + EpaisseurBordure=\renewcommand\eptraitboite{#1},% + MargeTitre=\renewcommand\margeinttitreboite{#1} +} +\setKVdefault[ParamBoites]{% + PoliceTitre=\bfseries\sffamily,% + PoliceSousTitre=\small\bfseries\sffamily,% + Marge=4mm,% + TailleIcone=\small,% + CouleurSousTitre=red,% + EpaisseurBordure=1.25pt,% + MargeTitre=3pt +} +\NewDocumentCommand\ParamBoites{ O{} }{% + \useKVdefault[ParamBoites]% + \setKV[ParamBoites]{#1}% +} + +%====MACRO PRINCIPALE +\defKV[Boites]{% + ComplementTitre=\def\BoxCpltTitle{#1},% + SousTitre=\def\BoxSubTitle{#1},% + Logo=\def\BoxLogo{#1},% + ModifLabel=\def\BoxModifLabel{#1},% + HauteurLogo=\def\BoxHauteurLogo{#1},% + RotationLogo=\def\BoxRotationLogo{#1},% + OpaciteLogo=\def\BoxOpaciteLogo{#1} +} +\setKVdefault[Boites]{% + Pluriel=false,% + ComplementTitre={},% + SousTitre={}, + Compteur=true,% + Logo={},% + ModifLabel={},% + HauteurLogo=24pt,% + RotationLogo=45,% + OpaciteLogo=0.33 +} + +\NewDocumentCommand\CreationBoite{ O{black} m m m m }{% + %1 = couleur + %2 = nom + %2 = compteur + %4 = icone + %5 = label singulier/pluriel + \CreerCompteur{#3}% + \NewDocumentEnvironment{#2}{ O{} D<>{} }% + %1 = clés + %2 = options spécifiques tcbox + {% + \useKVdefault[Boites]% + \setKV[Boites]{##1}% + \ifboolKV[Boites]{Compteur}{\stepcounter{#3}}{}%on augmente le compteur si demandé + \tcolorbox[baseboite,colframe=#1,##2,overlay={% + \IfStrEq{\BoxLogo}{}{}{\LogoCoinDroit}%logo + \tikzset{overlay=false}% + \TitreBoite{#1}{#4}{#5}{\arabic{#3}}%titre + \IfStrEq{\BoxSubTitle}{}{}{\SousTitreBoite}%soustitre + }% + ]% + }% + {\endtcolorbox}% +} + +\endinput
\ No newline at end of file diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index bea6bf9d186..25ebc06d7ed 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -231,7 +231,7 @@ my @TLP_working = qw( courseoutline coursepaper coverpage covington cprotect cprotectinside cqubeamer cquthesis - crbox create-theorem crefthe crimson crimsonpro crop + crbox create-theorem creationboites crefthe crimson crimsonpro crop crossreference crossreftools crossrefenum crossrefware crossword crosswrd crumbs cryptocode cryst cs csassignments csbulletin cslatex csplain csquotes csquotes-de diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index f210f012807..eee14a62753 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1697,6 +1697,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'context-games' => '&POSTcontext_games', 'coordsys' => '&POSTcoordsys', 'couleurs-fr' => '&POST_onelevel', + 'creationboites' => '&POST_onelevel', 'crossrefenum' => '&POSTcrossrefenum', 'ctanify' => '&POST_do_man', 'cs' => '&POSTcs', diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index 7998e7bd316..fb8a3947c86 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -270,6 +270,7 @@ depend cprotect depend cprotectinside depend crbox depend create-theorem +depend creationboites depend crefthe depend crossreference depend crossreftools diff --git a/Master/tlpkg/tlpsrc/creationboites.tlpsrc b/Master/tlpkg/tlpsrc/creationboites.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/creationboites.tlpsrc |