texlive[68171] Master/texmf-dist: highlightx (4sep23)

commits+karl at tug.org commits+karl at tug.org
Mon Sep 4 21:46:27 CEST 2023


Revision: 68171
          http://tug.org/svn/texlive?view=revision&revision=68171
Author:   karl
Date:     2023-09-04 21:46:27 +0200 (Mon, 04 Sep 2023)
Log Message:
-----------
highlightx (4sep23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/highlightx/README.md
    trunk/Master/texmf-dist/doc/latex/highlightx/highlightx-doc.pdf
    trunk/Master/texmf-dist/doc/latex/highlightx/highlightx-doc.tex
    trunk/Master/texmf-dist/tex/latex/highlightx/highlightx.sty

Modified: trunk/Master/texmf-dist/doc/latex/highlightx/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/highlightx/README.md	2023-09-04 19:46:17 UTC (rev 68170)
+++ trunk/Master/texmf-dist/doc/latex/highlightx/README.md	2023-09-04 19:46:27 UTC (rev 68171)
@@ -3,5 +3,6 @@
 highlightx est un package pour surligner des paragraphes ou des formules.
 -------------------------------------------------------------------------
 Author  : Cédric Pierquet
+Code    : Antal Spector-Zabusky (for hightlighting paragraphs)
 email   : cpierquet at 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

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

Modified: trunk/Master/texmf-dist/doc/latex/highlightx/highlightx-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/highlightx/highlightx-doc.tex	2023-09-04 19:46:17 UTC (rev 68170)
+++ trunk/Master/texmf-dist/doc/latex/highlightx/highlightx-doc.tex	2023-09-04 19:46:27 UTC (rev 68171)
@@ -33,8 +33,8 @@
 \hypersetup{pdfborder=0 0 0}
 \usepackage[margin=1.5cm]{geometry}
 \setlength{\parindent}{0pt}
-\def\TPversion{0.1.1}
-\def\TPdate{1\up*{er} septembre 2023}
+\def\TPversion{0.1.2}
+\def\TPdate{3 septembre 2023}
 \usepackage{tcolorbox}
 \tcbuselibrary{skins,hooks}
 \sethlcolor{lightgray!25}
@@ -56,12 +56,9 @@
 			\begin{tabular}{c}
 				{\Huge \texttt{highlightx}}\\
 				\\
-				{\LARGE Commandes pour surligner de formules (avec un} \\
-				\\
-				{\LARGE effet main levée), ou des paragraphes, à l'aide} \\
-				\\
-				{\LARGE des packages \MontreCode{soul} et/ou \MontreCode{tikz}.} \\
-				\\
+				{\LARGE Commandes pour surligner de formules ou} \\
+				{\LARGE des paragraphes (avec un effet main levée),} \\
+				{\LARGE à l'aide des packages \MontreCode{soul} et/ou \MontreCode{tikz}.} \\
 				{\LARGE $\rhd$ Commandes [fr] ou [en] $\lhd$} \\
 				\\
 				{\small \texttt{Version \TPversion{} -- \TPdate}}
@@ -75,7 +72,9 @@
 	\begin{tabular}{c}
 	\texttt{Cédric Pierquet}\\
 	{\ttfamily c pierquet -- at -- outlook . fr}\\
-	\texttt{\url{https://github.com/cpierquet/highlightx}}
+	\texttt{\url{https://github.com/cpierquet/highlightx}} \\
+	\\
+	\texttt{Merci à Antal Spector-Zabusky pour le code dédié aux paragraphes !}
 \end{tabular}
 \end{center}
 
@@ -102,9 +101,15 @@
 \vspace*{5mm}
 
 \begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
-Et on peut même mettre en forme un paragraphe (dans une \MontreCode{tcbox}), généré aléatoirement grâce au site \url{https://ipsum.one/} par exemple : \og \genhighlightpar{Enfin, comme le dernier coup de dix heures retentissait encore, il étendit la main et prit celle de Mme Rênal, qui la retira aussitôt. Julien, sans trop savoir ce qu’il faisait, la saisit de nouveau. Quoique bien ému lui-même, il fut frappé de la froideur glaciale de la main qu’il prenait ; il la serrait avec une force convulsive ; on fit un dernier effort pour la lui ôter, mais enfin cette main lui resta.} \fg
+Et on peut même mettre en forme un paragraphe généré aléatoirement grâce au site \textsf{\url{https://ipsum.one/}} par exemple : \og \SurlignerTexte{Enfin, comme le dernier coup de dix heures retentissait encore, il étendit la main et prit celle de Mme Rênal, qui la retira aussitôt. Julien, sans trop savoir ce qu’il faisait, la saisit de nouveau. Quoique bien ému lui-même, il fut frappé de la froideur glaciale de la main qu’il prenait ; il la serrait avec une force convulsive ; on fit un dernier effort pour la lui ôter, mais enfin cette main lui resta.} \fg
 \end{tcolorbox}
 
+\vspace*{5mm}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+Un deuxième, avec un peu de couleurs, généré aléatoirement grâce au site \textsf{\url{https://ipsum.one/}} par exemple : \og \SurlignerTexte*[Fond=orange,Bord=teal]{De là le succès du petit paysan Julien. Elle trouva des jouissances douces, et toutes brillantes du charme de la nouveauté, dans la sympathie de cette âme noble et fière. Mme de Rênal lui eut bientôt pardonné son ignorance extrême qui était une grâce de plus, et la rudesse de ses façons qu’elle parvint à corriger. Elle trouva qu’il valait la peine de l’écouter, même quand on parlait des choses les plus communes, même quand il s’agissait d’un pauvre chien écrasé, comme il traversait la rue, par la charrette d’un paysan allant au trot.} \fg
+\end{tcolorbox}
+
 %\vspace*{5mm}
 %
 %Et dans un paragraphe classique, on peut mettre des effets, comme par exemple avec le texte suivant, généré aléatoirement grâce au site \url{https://ipsum.one/} par exemple : \og \SurlignerTexte[orange!25,draw=teal]{Une scie à eau se compose d’un hangar au bord d’un ruisseau. Le toit est soutenu par une charpente qui porte sur quatre gros piliers en bois. À huit ou dix pieds d’élévation, au milieu du hangar, on voit une scie qui monte et descend, tandis qu’un mécanisme fort simple pousse contre cette scie une pièce de bois. C’est une roue mise en mouvement par le ruisseau qui fait aller ce double mécanisme ; celui de la scie qui monte et descend, et celui qui pousse doucement la pièce de bois vers la scie, qui la débite en planches.} \fg
@@ -129,7 +134,7 @@
 
 \subsection{Solutions existantes}
 
-Le package \MontreCode{soul} permet de surligner du texte, de manière efficace, mais avec des formules mathématiques le surlignage n'est pas forcément optimal.
+Le package \MontreCode{soul} permet de surligner du texte, de manière très efficace, mais avec des formules mathématiques le surlignage n'est pas forcément optimal.
 
 Il est également possible d'utiliser \MontreCode{fcolorbox} pour des formules mathématiques.
 
@@ -144,6 +149,12 @@
 Et maintenant avec \texttt{fcolorbox} : \colorbox{lightgray!25}{$\int_0^4 x^2\,\text{d}x$}.
 \end{demohigh}
 
+\subsection{Remerciements}
+
+Je remercie Antal Spector-Zabusky qui m'a autorisé à utiliser son code pour le surlignage de paragraphes avec un effet \textit{main levée}, et qui m'a autorisé à le distribuer sous licence \textsf{LPPL 1.3c} !
+
+Le code est adapté d'une réponse issue de cette  \href{https://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex}{\fbox{discussion}} sur \textsf{tex.stackexchange.com}.
+
 \pagebreak
 
 \subsection{Possibilités et limitations}
@@ -151,13 +162,14 @@
 L'idée du package \MontreCode{highlightx} est de proposer des commandes basiques, pour \textit{surligner} :
 
 \begin{itemize}
-	\item du texte simple ou multi-lignes (paragraphes) ;
+	\item du texte simple ou multi-lignes (paragraphes) avec un effet de bordure à \textit{main levée} ;
 	\item des formules en mode math en ligne ou hors-ligne (grâce à \TikZ) avec un effet de bordure à \textit{main levée}.
-	%\item avec un effet de bordure à \textit{main levée} (sauf pour un paragraphe dans une \MontreCode{tcbox}).
 \end{itemize}
 
-{\small\faBomb}~En ce qui concerne les paragraphes, le package \MontreCode{soul} est performant dans le cas où la police courante est en \MontreCode{\textbackslash normalsize}, dans le cas contraire, il se peut que le rendu ne soit pas optimal. Il se peut également que le surlignage ne donne pas un résultat optimal avec certains caractères, comme par exemple \MontreCode{;}.
+{\small\faBomb}~Compte tenu du code utilisé pour le surlignage des paragraphes, il se peut que des dysfonctionnements apparaissent, notamment liés à \MontreCode{babel} et à l'utilisation de caractères \textit{actifs}.
 
+%{\small\faBomb}~En ce qui concerne les paragraphes, le package \MontreCode{soul} est performant dans le cas où la police courante est en \MontreCode{\textbackslash normalsize}, dans le cas contraire, il se peut que le rendu ne soit pas optimal. Il se peut également que le surlignage ne donne pas un résultat optimal avec certains caractères, comme par exemple \MontreCode{;}.
+
 %{\small\faBomb}~Pour le moment le surlignement avec effet en mode paragraphe n'est pas compatible avec des environnements (comme \MontreCode{tcolorbox}), donc dans ce cas il n'y aura pas d'effet possible.
 %
 %\medskip
@@ -176,32 +188,39 @@
 
 \begin{itemize}
 	\item \MontreCode{soul}, \MontreCode{xstring} et \MontreCode{simplekv}.
-	\item \MontreCode{tikz} avec les librairies \MontreCode{tikzmark,calc,decorations.pathmorphing}.
+	\item \MontreCode{tikz} avec les librairies \MontreCode{tikzmark,calc,decorations.pathmorphing,nbabel}.
 	%\item \MontreCode{soul}, \MontreCode{atbegshi}, \MontreCode{etoolbox} ;
 	%\item \MontreCode{tikz} avec les librairies \MontreCode{tikzmark,calc,decorations.pathmorphing} ;
 	%\item \MontreCode{xstring} et \MontreCode{simplekv}.
 \end{itemize}
 
+Si l'utilisateur ne souhaite pas charger la librairie \MontreCode{babel} de \TikZ, il suffit de charger le package avec l'option \MontreCode{[nobabel]}.
+
 \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+%chargement classique, avec la librairie babel de tikz
 \usepackage{highlightx}
 \end{codehigh}
 
+\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+%chargement sans la librairie babel de tikz
+\usepackage[nobabel]{highlightx}
+\end{codehigh}
+
 {\small\faAngleDoubleRight}~\MontreCode{highlightx} est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}.
 
-%\medskip
-%
-%{\small\faBomb}~Des erreurs peuvent apparaître lors de la compilation, dans ce cas une nouvelle compilation sera nécessaire afin de placer correctement les effets de surlignage !
+\medskip
 
+{\small\faBomb}~Une double compilation est nécessaire afin de placer correctement les effets de surlignage !
+
 \subsection{Commandes disponibles}
 
 Les commandes proposées par le package \MontreCode{highlightx} sont :
 
 \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%Commande pour surligner une formule (mode math)
+%Commande pour surligner une formule (mode math), avec ou sans effet
 \SurlignerFormule
-
-%Commande pour surligner du texte de manière basique, sans effet
-\genhighlightpar
+%Commande pour surligner du texte, avec ou sans effet
+\SurlignerTexte
 \end{codehigh}
 
 \begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
@@ -213,7 +232,7 @@
 \end{demohigh}
 
 \begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-Et : \og \genhighlightpar{Une scie à eau se compose d’un 
+Et : \og \SurlignerTexte{Une scie à eau se compose d’un 
 hangar au bord d’un ruisseau. Le toit est soutenu par une charpente qui porte sur quatre 
 gros piliers en bois. À huit ou dix pieds d’élévation, au milieu du hangar, on voit une 
 scie qui monte et descend, tandis qu’un mécanisme fort simple pousse contre cette scie 
@@ -234,7 +253,7 @@
 
 \section{Les commandes}
 
-\subsection{Surligner une formule}
+\subsection{Surligner une formule, avec  ou sans effet}
 
 La commande dédiée à la mise en évidence d'une formule mathématique est \MontreCode{\textbackslash SurlignerFormule} :
 
@@ -302,91 +321,114 @@
 
 \tikzstyle{encadreformule}=[decorate,decoration={random steps,amplitude=0.5pt,segment length=1em}]
 
-%\subsection{Surligner du texte, y compris multilignes}
-%
-%La commande dédiée à la mise en évidence d'une formule mathématique est \MontreCode{\textbackslash SurlignerTexte} :
-%
-%\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%%Commande pour surligner du texte
-%\SurlignerTexte[options tikz]{texte}
-%\end{codehigh}
-%
-%Concernant cette commande, pour laquelle le fonctionnement (interne) est très différent du mode \textit{math} :
-%
-%\begin{itemize}
-%	\item les options tikz permettent de spécifier la couleur de fond et l'éventuelle couleur de bordure, grâce à \MontreCode{[couleurfond,draw=couleurbord]}.
-%\end{itemize}
-%
-%\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%%Paragraphes venant du site https://ipsum.one/
-%
-%Un premier paragraphe : \og \SurlignerTexte{Quand Julien aperçut les ruines pittoresques 
-%de l’ancienne église de Vergy, il remarqua que depuis l’avant-veille il n’avait pas pensé 
-%une seule fois à Mme de Rênal. L’autre jour en partant, cette femme m’a rappelé la distance 
-%infinie qui nous sépare, elle m’a traité comme le fils d’un ouvrier. Sans doute elle a voulu 
-%me marquer son repentir de m’avoir laissé sa main la veille... Elle est pourtant bien jolie, 
-%cette main ! quel charme ! quelle noblesse dans les regards de cette femme !} \fg.
-%
-%Un deuxième paragraphe : \og \SurlignerTexte[teal!35,draw=red]{Ce ne fut que dans la nuit 
-%du samedi au dimanche, après trois jours de pourparlers, que l’orgueil de l’abbé Maslon plia 
-%devant la peur du maire qui se changeait en courage. Il fallut écrire une lettre mielleuse à 
-%l’abbé Chélan, pour le prier d’assister à la cérémonie de la relique de Bray-le-Haut, si 
-%toutefois son grand âge et ses infirmités le lui permettaient. M. Chélan demanda et obtint 
-%une lettre d’invitation pour Julien qui devait l’accompagner en qualité de sous-diacre.} \fg.
-%\end{codehigh}
-%
-%Un premier paragraphe : \og \SurlignerTexte{Quand Julien aperçut les ruines pittoresques 
-%de l’ancienne église de Vergy, il remarqua que depuis l’avant-veille il n’avait pas pensé 
-%une seule fois à Mme de Rênal. L’autre jour en partant, cette femme m’a rappelé la distance 
-%infinie qui nous sépare, elle m’a traité comme le fils d’un ouvrier. Sans doute elle a voulu 
-%me marquer son repentir de m’avoir laissé sa main la veille... Elle est pourtant bien jolie, 
-%cette main ! quel charme ! quelle noblesse dans les regards de cette femme !} \fg.
-%
-%\medskip
-%
-%Un deuxième paragraphe : \og \SurlignerTexte[teal!35,draw=red]{Ce ne fut que dans la nuit 
-%du samedi au dimanche, après trois jours de pourparlers, que l’orgueil de l’abbé Maslon plia 
-%devant la peur du maire qui se changeait en courage. Il fallut écrire une lettre mielleuse à 
-%l’abbé Chélan, pour le prier d’assister à la cérémonie de la relique de Bray-le-Haut, si 
-%toutefois son grand âge et ses infirmités le lui permettaient. M. Chélan demanda et obtint 
-%une lettre d’invitation pour Julien qui devait l’accompagner en qualité de sous-diacre.} \fg.
-
 \pagebreak
 
-\subsection{Surlignement \og classique \fg, d'un texte ou d'un paragraphe}
+\subsection{Surligner un texte, y compris multilignes, avec  ou sans effet}
 
-Pour du surlignement multilignes, il est possible d'utiliser une commande \textit{générique}, qui utilise uniquement le package \MontreCode{soul} (donc pas d'effet !), qui est \MontreCode{\textbackslash genhighlightpar} (qui est basée \textit{basiquement} sur la commande \MontreCode{\textbackslash hl} du package \MontreCode{soul}).
+La commande dédiée à la mise en évidence d'une formule mathématique est \MontreCode{\textbackslash SurlignerTexte} :
 
 \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%Commande générique pour surligner du texte
-\genhighlightpar[couleur]{texte}
+%Commande pour surligner du texte
+\SurlignerTexte(*)[clés]<options tikz>{texte}
 \end{codehigh}
 
-Concernant cette commande, le premier argument (optionnel) est la couleur de fond, et le second argument (obligatoire) est le texte à mettre en évidence.
+Concernant cette commande, le fonctionnement est similaire à celui dédié aux formules :
 
+\begin{itemize}
+	\item la version étoilée désactive l'effet \textit{main levée} ;
+	\item les clés disponibles sont :
+	\begin{itemize}
+		\item \MontreCode{Fond} pour la couleur de fond (\MontreCode{yellow} par défaut) ;
+		\item \MontreCode{Bord} pour une éventuelle bordure, \MontreCode{none} ou \MontreCode{couleur} (\MontreCode{none} par défaut) ;
+		\item \MontreCode{Opacite} pour régler l'opacité du surlignage (\MontreCode{0.25} par défaut) ;
+		\item \MontreCode{Offset} pour \textit{élargir} le surlignage, sous la forme \MontreCode{Offset} ou \MontreCode{OffsetH/OffsetV} (\MontreCode{1pt} par défaut) ;
+	\end{itemize}
+	\item les \textit{options tikz} sont optionnelles.
+\end{itemize}
+
 \begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-Un \genhighlightpar{paragraphe} : \og \genhighlightpar[orange!35]{Pour arriver à la 
-considération publique à Verrières, l’essentiel est de ne pas adopter, tout en bâtissant 
-beaucoup de murs, quelque plan apporté d’Italie par ces maçons, qui au printemps 
-traversent les gorges du Jura pour gagner Paris. Une telle innovation vaudrait à 
-l’imprudent bâtisseur une éternelle réputation de mauvaise tête, et il serait à jamais 
-perdu auprès des gens sages et modérés qui distribuent la considération en Franche-Comté.} \fg.
+%Paragraphes venant du site https://ipsum.one/
+Un premier paragraphe : \og \SurlignerTexte{Quand Julien aperçut les ruines pittoresques de 
+l’ancienne église de Vergy, il remarqua que depuis l’avant-veille il n’avait pas pensé 
+une seule fois à Mme de Rênal. L’autre jour en partant, cette femme m’a rappelé la 
+distance infinie qui nous sépare, elle m’a traité comme le fils d’un ouvrier. Sans 
+doute elle a voulu me marquer son repentir de m’avoir laissé sa main la veille... 
+Elle est pourtant bien jolie, cette main ! quel charme ! quelle noblesse dans 
+les regards de cette femme !} \fg \\
+
+Un deuxième paragraphe : \og \SurlignerTexte[Fond=teal!35,Bord=red]{Ce ne fut que 
+dans la nuit du samedi au dimanche, après trois jours de pourparlers, que l’orgueil 
+de l’abbé Maslon plia devant la peur du maire qui se changeait en courage. Il fallut 
+écrire une lettre mielleuse à l’abbé Chélan, pour le prier d’assister à la cérémonie 
+de la relique de Bray-le-Haut, si toutefois son grand âge et ses infirmités le lui 
+permettaient. M. Chélan demanda et obtint une lettre d’invitation pour Julien qui 
+devait l’accompagner en qualité de sous-diacre.} \fg
 \end{demohigh}
 
 \pagebreak
 
+Le surlignage s'adapte également à la taille de la police courante :
+
+\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+Un troisième : \og {\LARGE\SurlignerTexte*[Fond=orange,Bord=violet]<thick>{%
+Quelle pitié notre provincial ne va-t-il pas inspirer aux jeunes lycéens de Paris qui, à 
+quinze ans, savent déjà entrer dans un café d’un air si distingué ? Mais ces enfants, 
+si bien stylés à quinze ans, à dix-huit tournent au commun. La timidité passionnée que 
+l’on rencontre en province se surmonte quelquefois et alors elle enseigne à vouloir. 
+En s’approchant de cette jeune fille si belle ; qui daignait lui adresser la parole, 
+il faut que je lui dise la vérité, pensa Julien, qui devenait courageux à force de 
+timidité vaincue.}} \fg
+\end{demohigh}
+
+Le surlignage s'adapte aussi à la police courante :
+
+\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+Un quatrième : \og {\sffamily\SurlignerTexte[Fond=green,Bord=green,Offset=2pt]{%
+Cette magnificence mélancolique, dégradée par la vue des briques nues et du plâtre encore 
+tout blanc, toucha Julien. Il s’arrêta en silence. À l’autre extrémité de la salle, 
+près de l’unique fenêtre par laquelle le jour pénétrait, il vit un miroir mobile en 
+acajou. Un jeune homme, en robe violette et en surplis de dentelle, mais la tête nue, 
+était arrêté à trois pas de la glace. Ce meuble semblait étrange en un tel lieu, et, 
+sans doute, y avait été apporté de la ville. Julien trouva que le jeune homme avait 
+l’air irrité ; de la main droite il donnait gravement des bénédictions du côté du 
+miroir.}} \fg
+\end{demohigh}
+
+\bigskip
+
+Le style \textit{main levée} est fixé par défaut, mais peut être modifié en adaptant le style \TikZ{} :
+
+\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+%Style main levée
+\tikzstyle{encadreformule}=[%
+    decorate,decoration={random steps,amplitude=0.5pt,segment length=1em}]
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+\tikzstyle{encadreformule}=[%
+    decorate,decoration={random steps,amplitude=2mm,segment length=10mm}]
+
+Un paragraphe : \og \SurlignerTexte{Quand Julien aperçut les ruines pittoresques de 
+l’ancienne église de Vergy, il remarqua que depuis l’avant-veille il n’avait pas pensé 
+une seule fois à Mme de Rênal. L’autre jour en partant, cette femme m’a rappelé la 
+distance infinie qui nous sépare, elle m’a traité comme le fils d’un ouvrier.} \fg
+\end{demohigh}
+
+\tikzstyle{encadreformule}=[decorate,decoration={random steps,amplitude=0.5pt,segment length=1em}]
+
+\pagebreak
+
 \section{English commands}
 
 \subsection{Introduction}
 
-There's also english versions of the commands :
+There's also english versions of the commands and keys :
 
 \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%Hightlight formula (math mode)
+%Hightlight formula (math mode), with or without effect
 \HighlightFormula
-
-%Basic highlight text, without effect
-\genhighlightpar
+%Basic highlight text, with or without effect
+\TextHighlight
 \end{codehigh}
 
 \subsection{Highlight formula}
@@ -436,412 +478,43 @@
 
 \tikzstyle{borderformula}=[decorate,decoration={random steps,amplitude=0.5pt,segment length=1em}]
 
-%\subsection{Highlight text}
-%
-%\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%%Highlight text, with effect
-%\HighlightText[tikz options]{text}
-%\end{codehigh}
-%
-%\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%%Paragraphs from https://ipsum.one/
-%
-%A first one : \HighlightText{In order to modify it, he has only to press his hand lightly 
-%on a small wheel, measuring hardly a foot in diameter, and placed within his reach. Immediately 
-%the valves open, the steam from the boilers rushes along the conducting tubes into the two 
-%cylinders of the small engine, the pistons move rapidly, and the rudder instantly obeys. 
-%If this plan succeeds, a man will be able to direct the gigantic body of the 'Great Eastern' 
-%with one finge}.
-%
-%A second one : \HighlightText[teal!35,draw=red]{On Wednesday night the weather was very bad, 
-%my balance was strangely variable, and I was obliged to lean with my knees and elbows against 
-%the sideboard, to prevent myself from falling. Portmanteaus and bags came in and out of my cabin; 
-%an unusual hubbub reigned in the adjoining saloon, in which two or three hundred packages were 
-%making expeditions from one end to the other, knocking the tables and chairs with loud crashes; 
-%doors slammed, the boards creaked, the partitions made that groaning noise peculiar to pine wood;
-%bottles and glasses jingled together in their racks, and a cataract of plates and dishes rolled 
-%about on the pantry floors}.
-%\end{codehigh}
-%
-%A first one : \HighlightText{In order to modify it, he has only to press his hand lightly 
-%on a small wheel, measuring hardly a foot in diameter, and placed within his reach. Immediately 
-%the valves open, the steam from the boilers rushes along the conducting tubes into the two 
-%cylinders of the small engine, the pistons move rapidly, and the rudder instantly obeys. 
-%If this plan succeeds, a man will be able to direct the gigantic body of the 'Great Eastern' 
-%with one finge}.
-%
-%\medskip
-%
-%A second one : \HighlightText[teal!35,draw=red]{On Wednesday night the weather was very bad, 
-%my balance was strangely variable, and I was obliged to lean with my knees and elbows against 
-%the sideboard, to prevent myself from falling. Portmanteaus and bags came in and out of my cabin ;
-%an unusual hubbub reigned in the adjoining saloon, in which two or three hundred packages were 
-%making expeditions from one end to the other, knocking the tables and chairs with loud crashes ;
-%doors slammed, the boards creaked, the partitions made that groaning noise peculiar to pine wood ;
-%bottles and glasses jingled together in their racks, and a cataract of plates and dishes rolled 
-%about on the pantry floors}.
+\subsection{Highlight text or paragraphs, with or without effect}
 
-\subsection{Generic highlight, without effect}
-
 \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-%generic command, without effect
-\genhighlightpar[color]{text}
+%Highlight text, with effect
+\HighlightText(*)<keys>[tikz options]{text}
 \end{codehigh}
 
 \begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
-A paragraph : \genhighlightpar[violet!35]{This steam-ship is indeed a masterpiece of naval 
-construction ; more than a vessel, it is a floating city, part of the country, detached from 
-English soil, which after having crossed the sea, unites itself to the American Continent.
-I pictured to myself this enormous bulk borne on the waves, her defiant struggle with the wind, 
-her boldness before the powerless sea, her indifference to the billows, her stability in the 
-midst of that element which tosses 'Warriors' and 'Solferinos' like ship's boats.}.
+%Paragraphs from https://ipsum.one/
+A first one : \HighlightText{In order to modify it, he has only to press his hand lightly 
+on a small wheel, measuring hardly a foot in diameter, and placed within his reach. 
+Immediately the valves open, the steam from the boilers rushes along the conducting 
+tubes into the two cylinders of the small engine, the pistons move rapidly, and the 
+rudder instantly obeys. If this plan succeeds, a man will be able to direct the gigantic 
+body of the 'Great Eastern' with one finge}.
 \end{demohigh}
 
+\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+%Paragraphs from https://ipsum.one/
+A second one : \HighlightText[bg=teal!35,border=red]{On Wednesday night the weather was 
+very bad, my balance was strangely variable, and I was obliged to lean with my knees 
+and elbows against the sideboard, to prevent myself from falling. Portmanteaus and 
+bags came in and out of my cabin ; an unusual hubbub reigned in the adjoining saloon, 
+in which two or three hundred packages were making expeditions from one end to the other, 
+knocking the tables and chairs with loud crashes ; doors slammed, the boards creaked, 
+the partitions made that groaning noise peculiar to pine wood ; bottles and glasses 
+jingled together in their racks, and a cataract of plates and dishes rolled about on 
+the pantry floors}.
+\end{demohigh}
 
-%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
+\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10]
+%Paragraphs from https://ipsum.one/
+A third one : \HighlightText*[bg=green,border=green]{A profound silence reigned among 
+the congregation ; the officers occupied the apsis of the church, and, in the midst of 
+them, stood Captain Anderson, as pastor. My friend Dean Pitferge was near him, his quick
+little eyes running over the whole assembly. I will venture to say he was there more out 
+of curiosity than anything else.}
+\end{demohigh}
 
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/highlightx/highlightx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/highlightx/highlightx.sty	2023-09-04 19:46:17 UTC (rev 68170)
+++ trunk/Master/texmf-dist/tex/latex/highlightx/highlightx.sty	2023-09-04 19:46:27 UTC (rev 68171)
@@ -1,13 +1,21 @@
 % Author     : C. Pierquet
+% Source     : Antal Spector-Zabusky
 % licence    : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{highlightx}[2023/09/01 0.1.1 Macros pour surligner du texte, meme en mode paragraphe]
+\ProvidesPackage{highlightx}[2023/09/03 0.1.2 Macros pour surligner du texte, meme en mode paragraphe]
 
 %====HISTORIQUE
+% v 0.1.2	Version étoilée pour \genhighlightpar afin d'activer \NoAutoSpacing + retour du code paragraphe main levée
 % v 0.1.1	Suppression code paragraphe avec effet
 % v 0.1.0	Version initiale [fr] et [en]
 
+%====OPTION babel
+\newif\if at babel\@babeltrue
+\DeclareOption{nobabel}{\@babelfalse}
+\DeclareOption*{}
+\ProcessOptions\relax
+
 %====BASE
 \RequirePackage{soul}
 \RequirePackage{tikz}
@@ -14,6 +22,9 @@
 \RequirePackage{xstring}
 \RequirePackage{simplekv}
 \usetikzlibrary{tikzmark,calc,decorations.pathmorphing}
+\if at babel
+	\usetikzlibrary{babel}
+\fi
 \colorlet{hlcolback}{yellow!35}
 
 %====COMMANDES POUR FORMULES
@@ -91,8 +102,216 @@
 }
 
 %====COMMANDES POUR PARAGRAPHES SIMPLES (sans effet, pour du tcbox par exemple)
-\NewDocumentCommand\genhighlightpar{ O{hlcolback} m }{%
-	{\sethlcolor{#1}\hl{#2}}%
+\NewDocumentCommand\genhighlightpar{ s O{hlcolback} m }{%
+	\IfBooleanTF{#1}%
+		{\sethlcolor{#2}\NoAutoSpacing\hl{#3}}%
+		{\sethlcolor{#2}\hl{#3}}%
 }
 
+%====COMMANDES POUR PARAGRAPHES avec effet, code de base de Antal Spector-Zabusky :-)
+\def\surlignparbg{yellow}
+\def\surlignparopac{0.25}
+\newlength{\tmp at hauteur@char}
+\newlength{\tmp at profondeur@char}
+\newdimen\highlight at previous
+\newdimen\highlight at current
+
+\defKV[surligpar]{%
+	Fond=\def\surlignparbg{#1},%
+	Bord=\def\surlignparborder{#1},%
+	Offset=\def\surlignparoffset{#1},%
+	Opacite=\def\surlignparopac{#1}
+}
+
+\setKVdefault[surligpar]{%
+	Fond=yellow,%
+	Bord=none,%
+	Offset=1pt,%
+	Opacite=0.25
+}
+
+\defKV[hlightpar]{%
+	bg=\def\surlignparbg{#1},%
+	border=\def\surlignparborder{#1},%
+	offset=\def\surlignparoffset{#1},%
+	opacity=\def\surlignparopac{#1}
+}
+
+\setKVdefault[hlightpar]{%
+	bg=yellow,%
+	border=none,%
+	offset=1pt,%
+	opacity=0.25
+}
+
+\newcommand{\highlight at DoHighlight}{
+	\fill[hlparhw] ($(begin highlight)+(-\surlignparoffsetH,1.05*\tmp at hauteur@char+\surlignparoffsetV)$) rectangle ($(end highlight)+(\surlignparoffsetH,-1.05*\tmp at profondeur@char-\surlignparoffsetV)$) ;
+}
+
+\newcommand{\highlight at BeginHighlight}{
+	\coordinate (begin highlight) at (0,0) ;
+}
+
+\newcommand{\highlight at EndHighlight}{
+	\coordinate (end highlight) at (0,0) ;
+}
+
+\NewDocumentCommand\SurlignerTexte{ s O{} D<>{} }{%
+	%étoilée = supprimer effet bordure
+	%1 = clés simplekv
+	%2 = options tikz
+	\useKVdefault[surligpar]%
+	\setKV[surligpar]{#2}%
+	\IfBooleanTF{#1}%
+		{%
+			\tikzset{hlparhw/.style={outer sep=-15pt, inner sep=0pt,every highlighter,this highlighter}}%
+		}%
+		{%
+			\tikzset{hlparhw/.style={encadreformule,outer sep=-15pt,inner sep=0pt,every highlighter,this highlighter}}%
+		}%
+	\IfSubStr{\surlignparoffset}{/}%
+		{%
+			\StrCut{\surlignparoffset}{/}{\surlignparoffsetH}{\surlignparoffsetV}%
+		}%
+		{%
+			\def\surlignparoffsetH{\surlignparoffset}\def\surlignparoffsetV{\surlignparoffset}%
+		}%
+	\tikzset{every highlighter/.style={color=\surlignparbg,fill opacity=\surlignparopac,draw=\surlignparborder,#3}}%
+	\settoheight{\tmp at hauteur@char}{\hbox{B}}%
+	\settodepth{\tmp at profondeur@char}{\hbox{q}}%
+	\tikzset{this highlighter/.style={#3}}%
+	\SOUL at setup
+	%
+	\def\SOUL at preamble{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\highlight at BeginHighlight
+			\highlight at EndHighlight
+		\end{tikzpicture}%
+	}%
+	%
+	\def\SOUL at postamble{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\highlight at EndHighlight
+			\highlight at DoHighlight
+		\end{tikzpicture}%
+	}%
+	%
+	\def\SOUL at everyhyphen{%
+		\discretionary{%
+			\SOUL at setkern\SOUL at hyphkern
+			\SOUL at sethyphenchar
+			\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+		}{%
+		}{%
+			\SOUL at setkern\SOUL at charkern
+		}%
+	}%
+	%
+	\def\SOUL at everyexhyphen##1{%
+		\SOUL at setkern\SOUL at hyphkern
+		\hbox{##1}%
+		\discretionary{%
+			\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+		}{%
+		}{%
+			\SOUL at setkern\SOUL at charkern
+		}%
+	}%
+	%
+	\def\SOUL at everysyllable{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\path let \p0 = (begin highlight), \p1 = (0,0) in \pgfextra
+			\global\highlight at previous=\y0
+			\global\highlight at current =\y1
+			\endpgfextra (0,0) ;
+			\ifdim\highlight at current < \highlight at previous
+			\highlight at DoHighlight
+			\highlight at BeginHighlight
+			\fi
+		\end{tikzpicture}%
+		\the\SOUL at syllable
+		\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+	}%
+	\SOUL@
+}
+
+\NewDocumentCommand\HighlightText{ s O{} D<>{} }{%
+	%étoilée = supprimer effet bordure
+	%1 = clés simplekv
+	%2 = options tikz
+	\useKVdefault[hlightpar]%
+	\setKV[hlightpar]{#2}%
+	\IfBooleanTF{#1}%
+		{%
+			\tikzset{hlparhw/.style={outer sep=-15pt, inner sep=0pt,every highlighter,this highlighter}}%
+		}%
+		{%
+			\tikzset{hlparhw/.style={borderformula,outer sep=-15pt,inner sep=0pt,every highlighter,this highlighter}}%
+		}%
+	\IfSubStr{\surlignparoffset}{/}%
+		{%
+			\StrCut{\surlignparoffset}{/}{\surlignparoffsetH}{\surlignparoffsetV}%
+		}%
+		{%
+			\def\surlignparoffsetH{\surlignparoffset}\def\surlignparoffsetV{\surlignparoffset}%
+		}%
+	\tikzset{every highlighter/.style={color=\surlignparbg,fill opacity=\surlignparopac,draw=\surlignparborder,#3}}%
+	\settoheight{\tmp at hauteur@char}{\hbox{B}}%
+	\settodepth{\tmp at profondeur@char}{\hbox{q}}%
+	\tikzset{this highlighter/.style={#3}}%
+	\SOUL at setup
+	%
+	\def\SOUL at preamble{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\highlight at BeginHighlight
+			\highlight at EndHighlight
+		\end{tikzpicture}%
+	}%
+	%
+	\def\SOUL at postamble{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\highlight at EndHighlight
+			\highlight at DoHighlight
+		\end{tikzpicture}%
+	}%
+	%
+	\def\SOUL at everyhyphen{%
+		\discretionary{%
+			\SOUL at setkern\SOUL at hyphkern
+			\SOUL at sethyphenchar
+			\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+		}{%
+		}{%
+			\SOUL at setkern\SOUL at charkern
+		}%
+	}%
+	%
+	\def\SOUL at everyexhyphen##1{%
+		\SOUL at setkern\SOUL at hyphkern
+		\hbox{##1}%
+		\discretionary{%
+			\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+		}{%
+		}{%
+			\SOUL at setkern\SOUL at charkern
+		}%
+	}%
+	%
+	\def\SOUL at everysyllable{%
+		\begin{tikzpicture}[overlay, remember picture]
+			\path let \p0 = (begin highlight), \p1 = (0,0) in \pgfextra
+			\global\highlight at previous=\y0
+			\global\highlight at current =\y1
+			\endpgfextra (0,0) ;
+			\ifdim\highlight at current < \highlight at previous
+			\highlight at DoHighlight
+			\highlight at BeginHighlight
+			\fi
+		\end{tikzpicture}%
+		\the\SOUL at syllable
+		\tikz[overlay, remember picture] \highlight at EndHighlight ;%
+	}%
+	\SOUL@
+}
+
 \endinput
\ No newline at end of file



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