diff options
Diffstat (limited to 'macros/latex/contrib')
54 files changed, 2097 insertions, 890 deletions
diff --git a/macros/latex/contrib/highlightx/README.md b/macros/latex/contrib/highlightx/README.md index 6b7890a62e..22ee36999e 100644 --- a/macros/latex/contrib/highlightx/README.md +++ b/macros/latex/contrib/highlightx/README.md @@ -4,5 +4,4 @@ highlightx est un package pour surligner des paragraphes ou des formules. ------------------------------------------------------------------------- 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 -Source : https://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex
\ No newline at end of file +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/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf Binary files differindex 41e5bd8427..674abe53dd 100644 --- a/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf +++ b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf diff --git a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex index bcf972b0c8..bb1dbf1fbe 100644 --- a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex +++ b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex @@ -33,8 +33,8 @@ \hypersetup{pdfborder=0 0 0} \usepackage[margin=1.5cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.0} -\def\TPdate{31 août 2023} +\def\TPversion{0.1.1} +\def\TPdate{1\up*{er} septembre 2023} \usepackage{tcolorbox} \tcbuselibrary{skins,hooks} \sethlcolor{lightgray!25} @@ -56,11 +56,11 @@ \begin{tabular}{c} {\Huge \texttt{highlightx}}\\ \\ - {\LARGE Commandes pour surligner formules ou paragraphes,} \\ + {\LARGE Commandes pour surligner de formules (avec un} \\ \\ - {\LARGE avec un effet main levée, à l'aide des packages} \\ + {\LARGE effet main levée), ou des paragraphes, à l'aide} \\ \\ - {\LARGE \MontreCode{soul} ou \MontreCode{tikz}.} \\ + {\LARGE des packages \MontreCode{soul} et/ou \MontreCode{tikz}.} \\ \\ {\LARGE $\rhd$ Commandes [fr] ou [en] $\lhd$} \\ \\ @@ -105,9 +105,9 @@ Et en mode hors ligne : 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 \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 +%\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 \vfill~ @@ -148,23 +148,25 @@ Et maintenant avec \texttt{fcolorbox} : \colorbox{lightgray!25}{$\int_0^4 x^2\,\ \subsection{Possibilités et limitations} -L'idée du package \MontreCode{highlightx} est de proposer des commandes, simples et basiques, pour \textit{surligner} : +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 des formules en mode math en ligne ou hors-ligne (grâce à \TikZ) ; - \item avec un effet de bordure à \textit{main levée} (sauf pour un paragraphe dans une \MontreCode{tcbox}). + \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}~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 - -{\small\faAngellist}~Le code permettant de surligner un paragraphe avec effet vient d'une solution proposée par l'internaute \MontreCode{gusbrs}, dans un fil de discussion du site \MontreCode{tex.stackexchange} : +{\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{;}. -\smallskip - -\hfill\url{https://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex}\hfill~ +%{\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 +% +%{\small\faAngellist}~Le code permettant de surligner un paragraphe avec effet vient d'une solution proposée par l'internaute \MontreCode{gusbrs}, dans un fil de discussion du site \MontreCode{tex.stackexchange}, et sous licence CC BY-SA : +% +%\smallskip +% +%\hfill\url{https://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex}\hfill~ \subsection{Chargement} @@ -173,9 +175,11 @@ Le package se charge dans le préambule, via \MontreCode{\textbackslash usepacka Les seuls packages chargés sont : \begin{itemize} - \item \MontreCode{soul}, \MontreCode{atbegshi}, \MontreCode{etoolbox} ; - \item \MontreCode{tikz} avec les librairies \MontreCode{tikzmark,calc,decorations.pathmorphing} ; - \item \MontreCode{xstring} et \MontreCode{simplekv}. + \item \MontreCode{soul}, \MontreCode{xstring} et \MontreCode{simplekv}. + \item \MontreCode{tikz} avec les librairies \MontreCode{tikzmark,calc,decorations.pathmorphing}. + %\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} \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] @@ -184,9 +188,9 @@ Les seuls packages chargés sont : {\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}~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 ! \subsection{Commandes disponibles} @@ -196,34 +200,35 @@ Les commandes proposées par le package \MontreCode{highlightx} sont : %Commande pour surligner une formule (mode math) \SurlignerFormule -%Commande pour surligner du texte -\SurlignerTexte - %Commande pour surligner du texte de manière basique, sans effet \genhighlightpar \end{codehigh} -\begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] -Par exemple $\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$.\\ -Ou bien : -\[ \SurlignerFormule{A=\begin{pmatrix}1&2\\3&4\end{pmatrix}}. \] - -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 -une pièce de bois.} \fg. -\end{codehigh} +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +Par exemple une formule en ligne comme $\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$.\\ -Par exemple $\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$.\\ -Ou bien : +Ou bien encore une formule en mode hors-ligne comme : +% \[ \SurlignerFormule{A=\begin{pmatrix}1&2\\3&4\end{pmatrix}}. \] +\end{demohigh} -Et : \og \SurlignerTexte{Une scie à eau se compose d’un +\begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] +Et : \og \genhighlightpar{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.} \fg. +\end{demohigh} + +%Par exemple $\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$.\\ +%Ou bien : +%\[ \SurlignerFormule{A=\begin{pmatrix}1&2\\3&4\end{pmatrix}}. \] +% +%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 +%une pièce de bois.} \fg. \pagebreak @@ -297,58 +302,60 @@ $\SurlignerFormule{f(x)=\displaystyle\frac{1}{1+x}}$ \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 +%\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. -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, au cas où\ldots} +\subsection{Surlignement \og classique \fg, d'un texte ou d'un paragraphe} -Au cas où le surlignement multilignes précédent ne fonctionne pas (dans un environnement spécifique par exemple\ldots), 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}. +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}). \begin{codehigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] %Commande générique pour surligner du texte @@ -358,12 +365,12 @@ Au cas où le surlignement multilignes précédent ne fonctionne pas (dans un en Concernant cette commande, le premier argument (optionnel) est la couleur de fond, et le second argument (obligatoire) est le texte à mettre en évidence. \begin{demohigh}[language=latex/latex2,style/main=cyan!10,style/code=cyan!10] -Un 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. +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. \end{demohigh} \pagebreak @@ -378,9 +385,6 @@ There's also english versions of the commands : %Hightlight formula (math mode) \HighlightFormula -%Highlight text -\HighlightText - %Basic highlight text, without effect \genhighlightpar \end{codehigh} @@ -432,50 +436,50 @@ $\HighlightFormula{f(x)=\displaystyle\frac{1}{1+x}}$ \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} +% +%\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{Generic highlight, without effect} diff --git a/macros/latex/contrib/highlightx/tex/highlightx.sty b/macros/latex/contrib/highlightx/tex/highlightx.sty index fb7a8babf2..1fbcb64591 100644 --- a/macros/latex/contrib/highlightx/tex/highlightx.sty +++ b/macros/latex/contrib/highlightx/tex/highlightx.sty @@ -1,17 +1,15 @@ % Author : C. Pierquet % licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf -% source : https://tex.stackexchange.com/questions/5959/cool-text-highlighting-in-latex \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{highlightx}[2023/08/31 0.1.0 Macros pour surligner du texte, meme en mode paragraphe] +\ProvidesPackage{highlightx}[2023/09/01 0.1.1 Macros pour surligner du texte, meme en mode paragraphe] %====HISTORIQUE +% v 0.1.1 Suppression code paragraphe avec effet % v 0.1.0 Version initiale [fr] et [en] %====BASE \RequirePackage{soul} -\RequirePackage{atbegshi} -\RequirePackage{etoolbox} \RequirePackage{tikz} \RequirePackage{xstring} \RequirePackage{simplekv} @@ -92,237 +90,9 @@ \end{tikzpicture}% } -%====COMMANDES POUR PARAGRAPHES SIMPLES (tcbox par exemple) +%====COMMANDES POUR PARAGRAPHES SIMPLES (sans effet, pour du tcbox par exemple) \NewDocumentCommand\genhighlightpar{ O{hlcolback} m }{% {\sethlcolor{#1}\hl{#2}}% } -%====COMPTEURS ET VARIABLES -\newlength{\txtdec@depth} -\setlength{\txtdec@depth}{.5ex} -\newlength{\txtdec@height} -\setlength{\txtdec@height}{\f@size pt} % sensible default -\newcounter{txtdec@hyphmark} -\newcounter{txtdec@decormark} -\setcounter{txtdec@decormark}{1} -\newcounter{txtdec@hyphdraw} -\setcounter{txtdec@hyphdraw}{1} -\newcounter{txtdec@decordraw} -\setcounter{txtdec@decordraw}{1} -\newcounter{txtdec@thenextpage} -\newtoggle{txtdec@unfinisheddecor} -\newtoggle{txtdec@stayonpage} -\newtoggle{txtdec@stayondecor} -\newtoggle{txtdec@stayonline} - -%====COMMANDES AUXILIAIRES -% from https://tex.stackexchange.com/a/33765/105447 -\newcommand{\gettikzxy}[3]{% - \tikz@scan@one@point\pgfutil@firstofone#1\relax - \edef#2{\the\pgf@x}% - \edef#3{\the\pgf@y}% -} - -% the drawing macros -\tikzset{% - defaultdecor/.style={% - fill=hlcolback, - decoration = {random steps, amplitude=0.5pt, segment length=1em}, - outer sep = -15pt, - inner sep = 0pt, - decorate}% -} - -\newcommand{\txtdec@draw@all}{% - \tikzset{thisdecor/.style/.expanded=\csuse{decor@tikz@style@\thetxtdec@decordraw}}% - \path[defaultdecor, thisdecor] - ($(\Xbegin,\Ybegin)+(0,-\txtdec@depth)$) rectangle - ($(\Xend,\Yend)+(0,\txtdec@height-\txtdec@depth)$) ; -} - -\newcommand{\txtdec@draw@begin}{% - \tikzset{thisdecor/.style/.expanded=\csuse{decor@tikz@style@\thetxtdec@decordraw}}% - \path[defaultdecor, thisdecor] - ($(\Xbegin,\Ybegin)+(0,-\txtdec@depth)$) rectangle - ($(\Xlineend,\Ylineend)+(0,\txtdec@height-\txtdec@depth)$) ; -} - -\newcommand{\txtdec@draw@middle}{% - \tikzset{thisdecor/.style/.expanded=\csuse{decor@tikz@style@\thetxtdec@decordraw}}% - \path[defaultdecor, thisdecor] - ($(\Xlinebegin,\Ylinebegin)+(0,-\txtdec@depth)$) rectangle - ($(\Xlineend,\Ylineend)+(0,\txtdec@height-\txtdec@depth)$) ; -} - -\newcommand{\txtdec@draw@end}{% - \tikzset{thisdecor/.style/.expanded=\csuse{decor@tikz@style@\thetxtdec@decordraw}}% - \path[defaultdecor, thisdecor] - ($(\Xlinebegin,\Ylinebegin)+(0,-\txtdec@depth)$) rectangle - ($(\Xend,\Yend)+(0,\txtdec@height-\txtdec@depth)$) ; -} - -% using soul to set tikzmarks -\def\SOUL@tdleaders{% - \stepcounter{txtdec@hyphmark}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.\arabic{txtdec@hyphmark}}% - \leaders\hrule\@depth\z@\@height\z@\relax -} -\def\SOUL@tdunderline#1{{% - \setbox\z@\hbox{#1}% - \dimen@=\wd\z@ - \dimen@i=\SOUL@uloverlap - \advance\dimen@2\dimen@i - \rlap{% - \null - \kern-\dimen@i - \SOUL@ulcolor{\SOUL@tdleaders\hskip\dimen@}% - \hskip\dimen@ - }% - \unhcopy\z@ -}} -\def\SOUL@tdpreamble{% - \spaceskip\SOUL@spaceskip - \setcounter{txtdec@hyphmark}{0}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.begin}% -} -\def\SOUL@tdeverysyllable{% - \SOUL@tdunderline{% - \the\SOUL@syllable - \SOUL@setkern\SOUL@charkern - }% - \stepcounter{txtdec@hyphmark}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.\arabic{txtdec@hyphmark}}% -} -\def\SOUL@tdeveryhyphen{% - \discretionary{% - \unkern - \SOUL@tdunderline{% - \SOUL@setkern\SOUL@hyphkern - \SOUL@sethyphenchar - }% - \stepcounter{txtdec@hyphmark}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.\arabic{txtdec@hyphmark}}% - }{}{}% -} -\def\SOUL@tdeveryexhyphen#1{% - \SOUL@setkern\SOUL@hyphkern - \SOUL@tdunderline{#1}% - \stepcounter{txtdec@hyphmark}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.\arabic{txtdec@hyphmark}}% - \discretionary{}{}{% - \SOUL@setkern\SOUL@charkern - }% -} -\def\SOUL@tdpostamble{% - % create an extra mark, vertically displaced, to create an exit condition for the last line - \stepcounter{txtdec@hyphmark}% - \raisebox{-5pt}{\tikzmark{p\thepage.d\arabic{txtdec@decormark}.\arabic{txtdec@hyphmark}}}% - \tikzmark{p\thepage.d\arabic{txtdec@decormark}.end}% - \stepcounter{txtdec@decormark}% -} -\def\SOUL@tdsetup{% - \SOUL@setup - \let\SOUL@preamble\SOUL@tdpreamble - \let\SOUL@everysyllable\SOUL@tdeverysyllable - \let\SOUL@everyhyphen\SOUL@tdeveryhyphen - \let\SOUL@everyexhyphen\SOUL@tdeveryexhyphen - \let\SOUL@postamble\SOUL@tdpostamble -} - -%====COMMANDES PRINCIPALES -\DeclareRobustCommand*\SurlignerTexte[1][]{% - \csxdef{decor@tikz@style@\thetxtdec@decormark}{#1}% - \csxdef{decor@fsize@\thetxtdec@decormark}{\f@size pt}% - \SOUL@tdsetup\SOUL@% -} - -\DeclareRobustCommand*\HighlightText[1][]{% - \csxdef{decor@tikz@style@\thetxtdec@decormark}{#1}% - \csxdef{decor@fsize@\thetxtdec@decormark}{\f@size pt}% - \SOUL@tdsetup\SOUL@% -} - -\AtBeginShipout{% - \AtBeginShipoutUpperLeft{% - % getting the number of the next page - \setcounter{txtdec@thenextpage}{\thepage}% - \stepcounter{txtdec@thenextpage}% - % if the current decoration occurs on this page, stay on it - \iftikzmark{p\thepage.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw}}{% - \toggletrue{txtdec@stayonpage}}{}% - \whileboolexpr{togl {txtdec@stayonpage}}{% - \begin{tikzpicture}[remember picture, overlay] - \setlength{\txtdec@height}{\csuse{decor@fsize@\thetxtdec@decordraw}}% - \iftikzmark{p\thepage.d\arabic{txtdec@decordraw}.begin}{% - % if current decor begins in current page, get coordinates - \gettikzxy{(pic cs:p\thepage.d\arabic{txtdec@decordraw}.begin)}{\Xbegin}{\Ybegin}}{% - % if current decor begins in previous page, set to top left of the page - \gettikzxy{(current page.north west)}{\Xbegin}{\Ybegin}}% - \iftikzmark{p\thepage.d\arabic{txtdec@decordraw}.end}{% - % if current decor ends in current page, get coordinates - \gettikzxy{(pic cs:p\thepage.d\arabic{txtdec@decordraw}.end)}{\Xend}{\Yend}}{% - % if current decor ends in future page, set to bottom right of the page - \gettikzxy{(current page.south east)}{\Xend}{\Yend}}% - \ifdim\Ybegin=\Yend % the simplest case, a single line - \txtdec@draw@all - \stepcounter{txtdec@decordraw}% - \else % current textdecor has a line break - \toggletrue{txtdec@stayondecor}% - \whileboolexpr{togl {txtdec@stayondecor}}{% - \gettikzxy{(pic cs:p\thepage.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw})}{\Xlinebegin}{\Ylinebegin}% - \edef\Xcurrent{\Xlinebegin}% - \edef\Ycurrent{\Ylinebegin}% - \edef\Xnext{\Xcurrent}% - \edef\Ynext{\Ycurrent}% - \toggletrue{txtdec@stayonline}% - \whileboolexpr{togl {txtdec@stayonline}}{% - \ifdim\Ycurrent=\Ynext - \stepcounter{txtdec@hyphdraw}% - % if the following tikzmark exists, we are at a page break - \iftikzmark{p\arabic{txtdec@thenextpage}.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw}}{% - \edef\Xcurrent{\Xnext}% - \edef\Ycurrent{\Ynext}% - \gettikzxy{(current page.south east)}{\Xnext}{\Ynext} - \togglefalse{txtdec@stayondecor}% - }{% else, we remain on the same page - \iftikzmark{p\thepage.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw}}{% - \edef\Xcurrent{\Xnext}% - \edef\Ycurrent{\Ynext}% - \gettikzxy{(pic cs:p\thepage.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw})}{\Xnext}{\Ynext}}{}% - }% - \else - \edef\Xlineend{\Xcurrent}% - \edef\Ylineend{\Ycurrent}% - % if we are on the first line of the current decoration - \ifdim\Ylinebegin=\Ybegin - \txtdec@draw@begin - \else - % if we are on the last line of the current decoration - \ifdim\Ycurrent=\Yend - \txtdec@draw@end - \stepcounter{txtdec@decordraw}% - \setcounter{txtdec@hyphdraw}{1}% - \togglefalse{txtdec@stayondecor}% - % if we are in a middle line of the decoration - \else - \txtdec@draw@middle - \fi - \fi - \togglefalse{txtdec@stayonline}% - \fi - }% - }% - \fi - \end{tikzpicture}% - % if the beginning of the next decor does not exist in this page, leave this page - \iftikzmark{p\thepage.d\arabic{txtdec@decordraw}.begin}{}{% - \togglefalse{txtdec@stayonpage}}% - % if the continuation of the current decor exists in the next page, leave this page - \iftikzmark{p\arabic{txtdec@thenextpage}.d\arabic{txtdec@decordraw}.\arabic{txtdec@hyphdraw}}{% - \togglefalse{txtdec@stayonpage}}{}% - }% - }% -} - - \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/iwonamath/Makefile b/macros/latex/contrib/iwonamath/Makefile new file mode 100644 index 0000000000..5b8322bf33 --- /dev/null +++ b/macros/latex/contrib/iwonamath/Makefile @@ -0,0 +1,87 @@ +PACKAGE=iwonamath + +SAMPLES = sample.tex + +PDF = $(PACKAGE).pdf ${SAMPLES:%.tex=%.pdf} + +FD = \ + omliwonamath.fd \ + omliwonamathc.fd \ + omliwonamathl.fd \ + omliwonamathlc.fd \ + omsiwonamath.fd \ + omsiwonamathc.fd \ + omsiwonamathcmsy.fd \ + omsiwonamathl.fd \ + omsiwonamathlc.fd \ + omxiwonamath.fd \ + omxiwonamathc.fd \ + omxiwonamathl.fd \ + omxiwonamathlc.fd \ + ot1iwonamath.fd \ + ot1iwonamathc.fd \ + ot1iwonamathcm.fd \ + ot1iwonamathl.fd \ + ot1iwonamathlc.fd \ + ot1iwonamathlcm.fd \ + ot1iwonamathlm.fd \ + ot1iwonamathm.fd + +all: ${PDF} $(PACKAGE).sty $(FD) + + +%.pdf: %.dtx $(PACKAGE).sty + pdflatex $< + - bibtex $* + pdflatex $< + - makeindex -s gind.ist -o $*.ind $*.idx + - makeindex -s gglo.ist -o $*.gls $*.glo + pdflatex $< + while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \ + do pdflatex $<; done + + +%.sty: %.ins %.dtx + pdflatex $< + +%.pdf: %.tex $(PACKAGE).sty $(FD) + pdflatex $< + - bibtex $* + pdflatex $< + while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \ + do pdflatex $<; done + +%.fd: $(PACKAGE).ins $(PACKAGE).dtx + pdflatex $< + ./makeiwonamathfd.sh + + + + +clean: + $(RM) *_FAMILY_* *.log *.aux \ + *.cfg *.glo *.idx *.toc \ + *.ilg *.ind *.out *.lof \ + *.lot *.bbl *.blg *.gls \ + *.dvi *.ps *.thm *.tgz *.zip *.rpi \ + *.hd sample-blx.bib + + +distclean: clean + $(RM) $(PDF) $(PACKAGE).sty $(FD) + +# +# Archive for the distribution. Includes typeset documentation +# +archive: all clean + COPYFILE_DISABLE=1 \ + tar -C .. -czvf ../$(PACKAGE).tgz --exclude '*~' \ + --exclude '*.tgz' --exclude '*.zip' --exclude .git $(PACKAGE) + mv ../$(PACKAGE).tgz . + +zip: all clean + make $(PACKAGE).sty + $(RM) $(PACKAGE).log + cd ..;\ + zip -r $(PACKAGE).zip $(PACKAGE) -x "*.ins" -x "*.gitignore" + diff --git a/macros/latex/contrib/iwonamath/README b/macros/latex/contrib/iwonamath/README new file mode 100644 index 0000000000..72fe9e3508 --- /dev/null +++ b/macros/latex/contrib/iwonamath/README @@ -0,0 +1,5 @@ +This package provides an interface to Iwona math fonts by Janusz +Marian Nowacki. It allows to use Iwona as math complement for sans +serif fonts without native math. The package allows font scaling, the +choice of light and condensed versions and the creation of multiple +math versions.
\ No newline at end of file diff --git a/macros/latex/contrib/iwonamath/iwonamath.bib b/macros/latex/contrib/iwonamath/iwonamath.bib new file mode 100644 index 0000000000..a40402b8b3 --- /dev/null +++ b/macros/latex/contrib/iwonamath/iwonamath.bib @@ -0,0 +1,29 @@ +@manual{iwona, +title = {The iwona package}, +subtitle = {A two-element sans-serif font}, +author = {Nowacki, Janusz Marian}, +url = {https://ctan.org/pkg/iwona}, +year = 2005, +urldate = {2023-08-28}, +version = {0.995b}, +} + +@book{TLC3, + title = "The LaTeX Companion: Parts I \& II, 3rd Edition", + author = "Frank Mittelbach and Ulrike Fischer", + isbn = "978-01-3816-648-9", + library_name = "Calibre Library", + year = 2023, + month = "May", + publisher = "Addison-Wesley Professional", +} +@manual{lato, +title = {The lato package}, +subtitle = {Lato font family and \LaTeX\ support}, +author = {Dziedzic, Łukasz and El Morabity, Mohamed}, +url = {http://www.latofonts.com/}, +urldate = {2023-08-31}, +year = 2019, +version = {3.3}, +} + diff --git a/macros/latex/contrib/iwonamath/iwonamath.dtx b/macros/latex/contrib/iwonamath/iwonamath.dtx new file mode 100644 index 0000000000..020c8d6ad0 --- /dev/null +++ b/macros/latex/contrib/iwonamath/iwonamath.dtx @@ -0,0 +1,451 @@ +% \iffalse meta-comment +% +% File: iwonamath.dtx +% Copyright 2023 by Boris Veytsman +% +% It may be distributed and/or modified under the conditions of the +% LaTeX Project Public License (LPPL), either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in the file +% +% https://www.latex-project.org/lppl.txt +% +%<*driver> +\documentclass{l3doc} +\usepackage{iwonamath} +\usepackage{natbib, booktabs} +\usepackage[tableposition=top]{caption} +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +%</driver> +% \fi +% +% \GetFileInfo{iwonamath.sty} +% \title{\pkg{iwonamath}---a scaled version of Iwona math fonts} +% \date{\fileversion, \filedate} +% \author{Boris +% Veytsman\thanks{\href{mailto:borisv@lk.net}{borisv@lk.net}, +% \href{mailto:boris@varphi.com}{boris@varphi.com}}} +% \maketitle +% \begin{abstract} +% \LaTeX\ support for scaled Iwona math fonts for mixing with sans +% serif text fonts. +% \end{abstract} +% \begin{documentation} +% +%\section{User manual} +%\label{sec:ug} +% +% +% Iwona is a sans serif typeface by Janusz Marian Nowacki. It has a +% very good math support~\citep{iwona}. Package \pkg{iwona} integrates +% text and math fonts. However, the math fonts may provide +% interesting companions for other text fonts. To enable the +% combination, this package separates math fonts and provides tools +% for the package writers to mix and match them with text. +% +% \begin{variable}{ +% options/light, +% options/condensed, +% options/scale, +% options/Scale, +% options/delimitershack, +% options/standardversion} +% The package has the following options: +% \begin{description} +% \item[light] whether the math fonts use the light version of Iwona, +% either |true| or |false| (default) +% \item[condensed] whether the math fonts use the condensed version of +% Iwona, either |true| or |false| (default). +% \item[scale] the scale of the fonts, a number (by default 1). The +% title cased |Scale| is the synonym for this key. +% \item[delimitershack] whether to use the hack to get \cs{lVert} and +% \cs{rVert} delimiters, absent in the original font (see +% \citep[\S~12.5.5]{TLC3}), either |true| (default) or |false|. +% \item[standardversions] whether to define standard versions |normal| +% and |bold|, either |true| (default) or |false|. If |false|, then +% the package does not define any math fonts, and it is up to the user +% to deploy \cmd{\DefineIwonaMathVersion} do define them. +% \end{description} +% \end{variable} +% +% +% \begin{function}{\DefineIwonaMathVersion} +% \begin{syntax} +% \cs{DefineIwonaMathVersion}\Arg{key/value pairs} +% \end{syntax} +% The main function of the package, +% \cmd{\DefineIwonaMathVersion} defines a new +% math version based on Iwona fonts. +% \end{function} +% The keys are the following (the defaults, where applicable, +% correspond to the package options): +% \begin{variable}{main/name, +% main/light, +% main/condensed, +% main/bold} +% \begin{description} +% \item[name] the name of the version. By default, either |normal| +% or |bold| depending on the |bold| key described below. +% \item[light] whether the math fonts use the light version of +% Iwona, either |true| or |false| +% \item[condensed] whether the math fonts use the condensed version of +% Iwona, either |true| or |false|. +% \item[bold] whether we define a bold version, either |true| or +% |false| (default) +% \end{description} +% \end{variable} +% +% For the boolean keys the setting |=true| can be omitted, so +% |\DefineIwonaMathVersion{light=true}| and +% |\DefineIwonaMathVersion{light}| are equivalent +% +% Note that in the current implementation the parameters |scale| and +% |delimitershack| are the same for all versions defined. +% +% For example, the following invocation defines four math versions, +% |normal|, |bold|, |condensed| and |boldcondensed|, based on Iwona +% light, scaled 1.2: +% \begin{verbatim} +% \usepackage[scale=1.2, light]{iwonamath} +% \DefineIwonaMathVersion{name=condensed, +% condensed=true} +% \DefineIwonaMathVersion{name=boldcondensed, +% bold=true, condensed=true} +% \end{verbatim} +% +% +% \end{documentation} +% +% \begin{implementation} +% +% \section{Implementation} +% \label{sec:impl} +% +% +% +%\subsection{Setting up} +%\label{sec:settingup} +% +% +% +% First, we declare who we are: +% \begin{macrocode} +%<@@=iwonamath> +%<package>\ProvidesExplPackage {iwonamath} +%<fd>\ProvidesExplFile +%<ot1m>{ot1_FAMILY_m.fd} +%<ot1>{ot1_FAMILY_.fd} +%<oml>{oml_FAMILY_.fd} +%<oms>{oms_FAMILY_.fd} +%<omx>{omx_FAMILY_.fd} +%<cmsy>{omsiwonamathcmsy.fd} +%<package|fd>{2023-08-31} {1.0} +%<package|fd>{Scaled Iwona math fonts} +%<*package> +% \end{macrocode} +% +% +% +% +%\subsection{Options} +%\label{sec:optionSetting} +% +% +% +% \begin{variable}{\l_@@_scale_tl, +% \l_@@_mainlight_bool, +% \l_@@_maincondensed_bool, +% \l_@@_delimitershack_bool, +% \l_@@_standardversions_bool, +% options/light, +% options/condensed, +% options/scale, +% options/Scale, +% options/delimitershack, +% options/standardversion} +% \begin{macrocode} +\keys_define:nn { iwonamath/options } +{ + scale .tl_set:N = \l_@@_scale_tl, + Scale .tl_set:N = \l_@@_scale_tl, + light .bool_set:N = \l_@@_mainlight_bool, + light .default:n = true, + condensed .bool_set:N = \l_@@_maincondensed_bool, + condensed .default:n = true, + delimitershack .bool_set:N = \l_@@_delimitershack_bool, + delimitershack .default:n = true, + standardversions .bool_set:N = \l_@@_standardversions_bool, + standardversions .default:n = true, +} + +\keys_set:nn {iwonamath/options } +{ + scale = 1, + light = false, + condensed = false, + delimitershack = true, + standardversions = true, +} +% \end{macrocode} +% +% \end{variable} +% +% +% Options processing +% \begin{macrocode} +\IfFormatAtLeastTF { 2022-06-01 } + { \ProcessKeyOptions [ iwonamath/options ] } + { + \RequirePackage { l3keys2e } + \ProcessKeysOptions { iwonamath/options } + } +% \end{macrocode}% +% +% \begin{variable}{\l_@@_versionname_tl, +% \l_@@_light_bool, +% \l_@@_condensed_bool, +% \l_@@_bold_bool, +% main/name, +% main/light, +% main/condensed, +% main/bold} +% Now the options for the main command +% \begin{macrocode} +\keys_define:nn { iwonamath/main } +{ + name .tl_set:N = \l_@@_versionname_tl, + light .bool_set:N = \l_@@_light_bool, + light .default:n = true, + condensed .bool_set:N = \l_@@_condensed_bool, + condensed .default:n = true, + bold .bool_set:N = \l_@@_bold_bool, + bold .default:n = true, +} +% \end{macrocode} +% +% \end{variable} +% +% +%\subsection{Delimiters hack} +%\label{sec:delimiters} +% +% We add delimiters from |cmsy|, as discussed in +% \citep[\S~12.5.5]{TLC3}). We predefine the symbols for the standard +% versions just in case. +% \begin{macrocode} +\bool_if:NTF \l_@@_delimitershack_bool +{ + \DeclareSymbolFont{symbols2}{OMS}{iwonamathcmsy}{m}{n} + \SetSymbolFont{symbols2} {bold}{OMS}{cmsy}{b}{n} + \DeclareMathDelimiter{\lVert}{\mathopen} {symbols2}{"6B}{largesymbols}{"0D} + \DeclareMathDelimiter{\rVert}{\mathclose}{symbols2}{"6B}{largesymbols}{"0D} +} +{} +% \end{macrocode} +% +% +%\subsection{The main function} +%\label{sec:main} +% +% +% \begin{macro}{\DefineIwonaMathVersion} +% \begin{macrocode} +\DeclareDocumentCommand \DefineIwonaMathVersion { m } +{ + \tl_clear:N \l_@@_versionname_tl + \bool_set_eq:NN \l_@@_light_bool \l_@@_mainlight_bool + \bool_set_eq:NN \l_@@_condensed_bool \l_@@_maincondensed_bool + \bool_set_false:N \l_@@_bold_bool + \keys_set:nn { iwonamath/main } + { + #1 + } + + \tl_if_empty:NTF \l_@@_versionname_tl + { + \bool_if:NTF \l_@@_bold_bool + { + \tl_set:Nn \l_@@_versionname_tl {bold} + } + { + \tl_set:Nn \l_@@_versionname_tl {normal} + } + } + {} + + \tl_set:Nn \l_tmpa_tl {iwonamath} + + + \bool_if:NTF \l_@@_light_bool + { + \tl_set:Ne \l_tmpa_tl {\l_tmpa_tl l} + } + {} + + \bool_if:NTF \l_@@_condensed_bool + { + \tl_set:Ne \l_tmpa_tl {\l_tmpa_tl c} + } + {} + + \DeclareMathVersion{\l_@@_versionname_tl} + \bool_if:NTF \l_@@_bold_bool + { + \SetSymbolFont{operators}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl m} {b}{n} + \SetSymbolFont{letters} {\l_@@_versionname_tl}{OML}{\l_tmpa_tl} {b}{it} + \SetSymbolFont{symbols} {\l_@@_versionname_tl}{OMS}{\l_tmpa_tl}{b}{n} + \SetSymbolFont{largesymbols}{\l_@@_versionname_tl}{OMX}{\l_tmpa_tl}{b}{n} + \SetMathAlphabet\mathsf{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{bx}{n} + \SetMathAlphabet\mathit{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{bx}{it} + \SetSymbolFont{symbols2} {\l_@@_versionname_tl}{OMS}{iwonamathcmsy}{b}{n} + } + { + \SetSymbolFont{operators}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl m}{m}{n} + \SetSymbolFont{letters}{\l_@@_versionname_tl}{OML}{\l_tmpa_tl} {m}{it} + \SetSymbolFont{symbols}{\l_@@_versionname_tl}{OMS}{\l_tmpa_tl}{m}{n} + \SetSymbolFont{largesymbols}{\l_@@_versionname_tl}{OMX}{\l_tmpa_tl}{m}{n} + \SetMathAlphabet{\mathbf}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{bx}{n} + \SetMathAlphabet{\mathsf}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{m}{n} + \SetMathAlphabet{\mathit}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{m}{it} + \SetMathAlphabet{\mathtt}{\l_@@_versionname_tl}{OT1}{\l_tmpa_tl}{m}{n} + \SetSymbolFont{symbols2} {\l_@@_versionname_tl}{OMS}{iwonamathcmsy}{m}{n} + } + + \bool_if:NTF \l_@@_delimitershack_bool + { + + } + {} + +} +% \end{macrocode} +% \end{macro} +% +% +% +%\subsection{Default versions} +%\label{sec:defaults} +% +% If standard versions are requested, we define them +% \begin{macrocode} +\bool_if:NTF \l_@@_standardversions_bool +{ + \DefineIwonaMathVersion{} + \DefineIwonaMathVersion{bold} +} +{} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +%\subsection{Font definition files} +%\label{sec:fd} +% +% +% +% Now, the fd files. Sometimes they are defined in special |fdd| +% files; here we use the main |dtx| for this. +% +% First, we check if the size is defined. If not, +% we define it. +% \begin{macrocode} +%<*fd> +\tl_if_exist:NTF \l_@@_scale_tl +{} +{ + \tl_new:N \l_@@_scale_tl + \tl_set:Nn \l_@@_scale_tl {1} +} +%</fd> +% \end{macrocode} +% +% Our version of |cmsy| just scales the font. Note that right now the +% scaling is exactly the same as for other iwona math +% characters---maybe we need to fine tune this. +% \begin{macrocode} +%<*cmsy> +\DeclareFontFamily{OMS}{iwonamathcmsy}{\skewchar\font48 } +\DeclareFontShape{OMS}{iwonamathcmsy}{m}{n}{% + <-> [\l_@@_scale_tl] cmsy10% + }{} +\DeclareFontShape{OMS}{iwonamathcmsy}{b}{n}{% + <-> [\l_@@_scale_tl] cmbsy10% + }{} +%</cmsy> +% \end{macrocode} +% +% \begin{table} +% \centering +% \caption{Naming scheme for iwona fonts} +% \label{tab:naming} +% \begin{tabular}{lllll} +% \toprule +% Weight/Shape & \multicolumn{4}{c}{Base}\\ +% \cmidrule{2-5}\\ +% & Regular & Condensed & Light & Light Condensed \\ +% \midrule +% m/n & iwonar & iwonacr & iwonal & iwonacl \\ +% m/it & iwonari & iwonacri & iwonali & iwonacli \\ +% b/n & iwonab & iwonacb & iwonam & iwonacm \\ +% b/it & iwonabi & iwonacb & iwonami & iwonacmi \\ +% \bottomrule +% \end{tabular} +% \end{table} +% +% Now, we need many files in the different weights and +% condensed/regular status. It would be too tedious to write all +% them. So we create a template with the special marks and a bash +% script to generate all |fd| files. Of course, \TeX\ with enough +% trickery can be used instead of bash, but why bother: we employ +% Makefiles anyways\ldots +% +% The naming scheme for Iwona fonts is shown in +% Table~\ref{tab:naming}. From this table we see we need three marks: +% |_FAMILY_| for the base family, |_MEDIUM_| for medium font and +% |_BOLD_| for bold font. +% +% We have two |OT1| files: one for default letters, one for |\math...| +% commands. +% \begin{macrocode} +%<*ot1m> +\DeclareFontFamily{OT1}{_FAMILY_m}{} +\DeclareFontShape{OT1}{_FAMILY_m}{m}{n}{<-> [\l_@@_scale_tl] rm-_MEDIUM_}{} +\DeclareFontShape{OT1}{_FAMILY_m}{b}{n}{<-> [\l_@@_scale_tl] rm-_BOLD_}{} +%</ot1m> +%<*ot1> +\DeclareFontFamily{OT1}{_FAMILY_}{} +\DeclareFontShape{OT1}{_FAMILY_}{m}{n}{<-> [\l_@@_scale_tl] rm-_MEDIUM_}{} +\DeclareFontShape{OT1}{_FAMILY_}{m}{it}{<-> [\l_@@_scale_tl] rm-_MEDIUM_i}{} +\DeclareFontShape{OT1}{_FAMILY_}{b}{n}{<-> [\l_@@_scale_tl] rm-_BOLD_}{} +\DeclareFontShape{OT1}{_FAMILY_}{bx}{n}{<-> [\l_@@_scale_tl] rm-_BOLD_}{} +%</ot1> +%<*oml> +\DeclareFontFamily{OML}{_FAMILY_}{} +\DeclareFontShape{OML}{_FAMILY_}{m}{it}{<-> [\l_@@_scale_tl] mi-_MEDIUM_i}{} +\DeclareFontShape{OML}{_FAMILY_}{b}{it}{<-> [\l_@@_scale_tl] mi-_BOLD_i}{} +\DeclareFontShape{OML}{_FAMILY_}{bx}{it}{<-> [\l_@@_scale_tl] mi-_BOLD_i}{} +%</oml> +%<*oms> +\DeclareFontFamily{OMS}{_FAMILY_}{} +\DeclareFontShape{OMS}{_FAMILY_}{m}{n}{<-> [\l_@@_scale_tl] sy-_MEDIUM_z}{} +\DeclareFontShape{OMS}{_FAMILY_}{b}{n}{<-> [\l_@@_scale_tl] sy-_BOLD_z}{} +\DeclareFontShape{OMS}{_FAMILY_}{bx}{n}{<-> [\l_@@_scale_tl] sy-_BOLD_z}{} +%</oms> +%<*omx> +\DeclareFontFamily{OMX}{_FAMILY_}{} +\DeclareFontShape{OMX}{_FAMILY_}{m}{n}{<-> [\l_@@_scale_tl] ex-_MEDIUM_}{} +\DeclareFontShape{OMX}{_FAMILY_}{b}{n}{<-> [\l_@@_scale_tl] ex-_BOLD_}{} +\DeclareFontShape{OMX}{_FAMILY_}{bx}{n}{<-> [\l_@@_scale_tl] ex-_BOLD_}{} +%</omx> +% \end{macrocode} +% +% \end{implementation} +% +% \bibliography{iwonamath} +% \bibliographystyle{plainnat} +% +% \PrintIndex
\ No newline at end of file diff --git a/macros/latex/contrib/iwonamath/iwonamath.ins b/macros/latex/contrib/iwonamath/iwonamath.ins new file mode 100644 index 0000000000..fe0249d16a --- /dev/null +++ b/macros/latex/contrib/iwonamath/iwonamath.ins @@ -0,0 +1,13 @@ +\input l3docstrip.tex +\askforoverwritefalse +\generate +{% + \file{iwonamath.sty}{\from{iwonamath.dtx}{package}}% + \file{ot1_FAMILY_m.fd}{\from{iwonamath.dtx}{fd,ot1m}}% + \file{ot1_FAMILY_.fd}{\from{iwonamath.dtx}{fd,ot1}}% + \file{oml_FAMILY_.fd}{\from{iwonamath.dtx}{fd,oml}}% + \file{oms_FAMILY_.fd}{\from{iwonamath.dtx}{fd,oms}}% + \file{omx_FAMILY_.fd}{\from{iwonamath.dtx}{fd,omx}}% + \file{omsiwonamathcmsy.fd}{\from{iwonamath.dtx}{fd,cmsy}}% +} +\endbatchfile diff --git a/macros/latex/contrib/iwonamath/iwonamath.pdf b/macros/latex/contrib/iwonamath/iwonamath.pdf Binary files differnew file mode 100644 index 0000000000..fc0b5e6e2c --- /dev/null +++ b/macros/latex/contrib/iwonamath/iwonamath.pdf diff --git a/macros/latex/contrib/iwonamath/makeiwonamathfd.sh b/macros/latex/contrib/iwonamath/makeiwonamathfd.sh new file mode 100755 index 0000000000..3e8634f030 --- /dev/null +++ b/macros/latex/contrib/iwonamath/makeiwonamathfd.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# A simple script to create Iwona Math fds from template. +# Public domain +family=( iwonamath iwonamathc iwonamathl iwonamathlc ) +medium=( iwonar iwonacr iwonal iwonacl ) +bold=( iwonab iwonacb iwonam iwonacm ) +tmpl=( oml_FAMILY_.fd oms_FAMILY_.fd omx_FAMILY_.fd ot1_FAMILY_.fd ot1_FAMILY_m.fd ) +for i in 0 1 2 3; do + for template in ${tmpl[@]}; do + file=$(echo $template | sed "s/_FAMILY_/${family[$i]}/") + cat $template | \ + sed "s/_FAMILY_/${family[$i]}/" | sed "s/_MEDIUM_/${medium[$i]}/" | \ + sed "s/_BOLD_/${bold[$i]}/" > $file + done +done diff --git a/macros/latex/contrib/iwonamath/omliwonamath.fd b/macros/latex/contrib/iwonamath/omliwonamath.fd new file mode 100644 index 0000000000..eca19657e2 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omliwonamath.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omliwonamath.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oml') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omliwonamath.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omliwonamath.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OML}{iwonamath}{} +\DeclareFontShape{OML}{iwonamath}{m}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonari}{} +\DeclareFontShape{OML}{iwonamath}{b}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonabi}{} +\DeclareFontShape{OML}{iwonamath}{bx}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonabi}{} +\endinput +%% +%% End of file `omliwonamath.fd'. diff --git a/macros/latex/contrib/iwonamath/omliwonamathc.fd b/macros/latex/contrib/iwonamath/omliwonamathc.fd new file mode 100644 index 0000000000..452341075f --- /dev/null +++ b/macros/latex/contrib/iwonamath/omliwonamathc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omliwonamathc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oml') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omliwonamathc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omliwonamathc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OML}{iwonamathc}{} +\DeclareFontShape{OML}{iwonamathc}{m}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacri}{} +\DeclareFontShape{OML}{iwonamathc}{b}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacbi}{} +\DeclareFontShape{OML}{iwonamathc}{bx}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacbi}{} +\endinput +%% +%% End of file `omliwonamathc.fd'. diff --git a/macros/latex/contrib/iwonamath/omliwonamathl.fd b/macros/latex/contrib/iwonamath/omliwonamathl.fd new file mode 100644 index 0000000000..a0dba2a829 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omliwonamathl.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omliwonamathl.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oml') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omliwonamathl.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omliwonamathl.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OML}{iwonamathl}{} +\DeclareFontShape{OML}{iwonamathl}{m}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonali}{} +\DeclareFontShape{OML}{iwonamathl}{b}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonami}{} +\DeclareFontShape{OML}{iwonamathl}{bx}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonami}{} +\endinput +%% +%% End of file `omliwonamathl.fd'. diff --git a/macros/latex/contrib/iwonamath/omliwonamathlc.fd b/macros/latex/contrib/iwonamath/omliwonamathlc.fd new file mode 100644 index 0000000000..90d147d1ee --- /dev/null +++ b/macros/latex/contrib/iwonamath/omliwonamathlc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omliwonamathlc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oml') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omliwonamathlc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omliwonamathlc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OML}{iwonamathlc}{} +\DeclareFontShape{OML}{iwonamathlc}{m}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacli}{} +\DeclareFontShape{OML}{iwonamathlc}{b}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacmi}{} +\DeclareFontShape{OML}{iwonamathlc}{bx}{it}{<-> [\l__iwonamath_scale_tl] mi-iwonacmi}{} +\endinput +%% +%% End of file `omliwonamathlc.fd'. diff --git a/macros/latex/contrib/iwonamath/omsiwonamath.fd b/macros/latex/contrib/iwonamath/omsiwonamath.fd new file mode 100644 index 0000000000..958053cd49 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omsiwonamath.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omsiwonamath.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oms') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omsiwonamath.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omsiwonamath.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMS}{iwonamath}{} +\DeclareFontShape{OMS}{iwonamath}{m}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonarz}{} +\DeclareFontShape{OMS}{iwonamath}{b}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonabz}{} +\DeclareFontShape{OMS}{iwonamath}{bx}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonabz}{} +\endinput +%% +%% End of file `omsiwonamath.fd'. diff --git a/macros/latex/contrib/iwonamath/omsiwonamathc.fd b/macros/latex/contrib/iwonamath/omsiwonamathc.fd new file mode 100644 index 0000000000..02b892ffc5 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omsiwonamathc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omsiwonamathc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oms') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omsiwonamathc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omsiwonamathc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMS}{iwonamathc}{} +\DeclareFontShape{OMS}{iwonamathc}{m}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonacrz}{} +\DeclareFontShape{OMS}{iwonamathc}{b}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonacbz}{} +\DeclareFontShape{OMS}{iwonamathc}{bx}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonacbz}{} +\endinput +%% +%% End of file `omsiwonamathc.fd'. diff --git a/macros/latex/contrib/iwonamath/omsiwonamathl.fd b/macros/latex/contrib/iwonamath/omsiwonamathl.fd new file mode 100644 index 0000000000..d291ba7eb0 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omsiwonamathl.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omsiwonamathl.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oms') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omsiwonamathl.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omsiwonamathl.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMS}{iwonamathl}{} +\DeclareFontShape{OMS}{iwonamathl}{m}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonalz}{} +\DeclareFontShape{OMS}{iwonamathl}{b}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonamz}{} +\DeclareFontShape{OMS}{iwonamathl}{bx}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonamz}{} +\endinput +%% +%% End of file `omsiwonamathl.fd'. diff --git a/macros/latex/contrib/iwonamath/omsiwonamathlc.fd b/macros/latex/contrib/iwonamath/omsiwonamathlc.fd new file mode 100644 index 0000000000..55a040e93e --- /dev/null +++ b/macros/latex/contrib/iwonamath/omsiwonamathlc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omsiwonamathlc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,oms') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omsiwonamathlc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omsiwonamathlc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMS}{iwonamathlc}{} +\DeclareFontShape{OMS}{iwonamathlc}{m}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonaclz}{} +\DeclareFontShape{OMS}{iwonamathlc}{b}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonacmz}{} +\DeclareFontShape{OMS}{iwonamathlc}{bx}{n}{<-> [\l__iwonamath_scale_tl] sy-iwonacmz}{} +\endinput +%% +%% End of file `omsiwonamathlc.fd'. diff --git a/macros/latex/contrib/iwonamath/omxiwonamath.fd b/macros/latex/contrib/iwonamath/omxiwonamath.fd new file mode 100644 index 0000000000..662121a6be --- /dev/null +++ b/macros/latex/contrib/iwonamath/omxiwonamath.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omxiwonamath.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,omx') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omxiwonamath.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omxiwonamath.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMX}{iwonamath}{} +\DeclareFontShape{OMX}{iwonamath}{m}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonar}{} +\DeclareFontShape{OMX}{iwonamath}{b}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonab}{} +\DeclareFontShape{OMX}{iwonamath}{bx}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonab}{} +\endinput +%% +%% End of file `omxiwonamath.fd'. diff --git a/macros/latex/contrib/iwonamath/omxiwonamathc.fd b/macros/latex/contrib/iwonamath/omxiwonamathc.fd new file mode 100644 index 0000000000..fce676f1e8 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omxiwonamathc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omxiwonamathc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,omx') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omxiwonamathc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omxiwonamathc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMX}{iwonamathc}{} +\DeclareFontShape{OMX}{iwonamathc}{m}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacr}{} +\DeclareFontShape{OMX}{iwonamathc}{b}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacb}{} +\DeclareFontShape{OMX}{iwonamathc}{bx}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacb}{} +\endinput +%% +%% End of file `omxiwonamathc.fd'. diff --git a/macros/latex/contrib/iwonamath/omxiwonamathl.fd b/macros/latex/contrib/iwonamath/omxiwonamathl.fd new file mode 100644 index 0000000000..895f359e35 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omxiwonamathl.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omxiwonamathl.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,omx') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omxiwonamathl.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omxiwonamathl.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMX}{iwonamathl}{} +\DeclareFontShape{OMX}{iwonamathl}{m}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonal}{} +\DeclareFontShape{OMX}{iwonamathl}{b}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonam}{} +\DeclareFontShape{OMX}{iwonamathl}{bx}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonam}{} +\endinput +%% +%% End of file `omxiwonamathl.fd'. diff --git a/macros/latex/contrib/iwonamath/omxiwonamathlc.fd b/macros/latex/contrib/iwonamath/omxiwonamathlc.fd new file mode 100644 index 0000000000..85f60415e3 --- /dev/null +++ b/macros/latex/contrib/iwonamath/omxiwonamathlc.fd @@ -0,0 +1,39 @@ +%% +%% This is file `omxiwonamathlc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,omx') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from omxiwonamathlc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{omxiwonamathlc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OMX}{iwonamathlc}{} +\DeclareFontShape{OMX}{iwonamathlc}{m}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacl}{} +\DeclareFontShape{OMX}{iwonamathlc}{b}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacm}{} +\DeclareFontShape{OMX}{iwonamathlc}{bx}{n}{<-> [\l__iwonamath_scale_tl] ex-iwonacm}{} +\endinput +%% +%% End of file `omxiwonamathlc.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamath.fd b/macros/latex/contrib/iwonamath/ot1iwonamath.fd new file mode 100644 index 0000000000..20be53c3af --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamath.fd @@ -0,0 +1,40 @@ +%% +%% This is file `ot1iwonamath.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamath.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamath.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamath}{} +\DeclareFontShape{OT1}{iwonamath}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonar}{} +\DeclareFontShape{OT1}{iwonamath}{m}{it}{<-> [\l__iwonamath_scale_tl] rm-iwonari}{} +\DeclareFontShape{OT1}{iwonamath}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonab}{} +\DeclareFontShape{OT1}{iwonamath}{bx}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonab}{} +\endinput +%% +%% End of file `ot1iwonamath.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathc.fd b/macros/latex/contrib/iwonamath/ot1iwonamathc.fd new file mode 100644 index 0000000000..a0b92a2b37 --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathc.fd @@ -0,0 +1,40 @@ +%% +%% This is file `ot1iwonamathc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathc}{} +\DeclareFontShape{OT1}{iwonamathc}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacr}{} +\DeclareFontShape{OT1}{iwonamathc}{m}{it}{<-> [\l__iwonamath_scale_tl] rm-iwonacri}{} +\DeclareFontShape{OT1}{iwonamathc}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacb}{} +\DeclareFontShape{OT1}{iwonamathc}{bx}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacb}{} +\endinput +%% +%% End of file `ot1iwonamathc.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathcm.fd b/macros/latex/contrib/iwonamath/ot1iwonamathcm.fd new file mode 100644 index 0000000000..a5e69e07ad --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathcm.fd @@ -0,0 +1,38 @@ +%% +%% This is file `ot1iwonamathcm.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1m') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathcm.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathcm.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathcm}{} +\DeclareFontShape{OT1}{iwonamathcm}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacr}{} +\DeclareFontShape{OT1}{iwonamathcm}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacb}{} +\endinput +%% +%% End of file `ot1iwonamathcm.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathl.fd b/macros/latex/contrib/iwonamath/ot1iwonamathl.fd new file mode 100644 index 0000000000..82060b21d1 --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathl.fd @@ -0,0 +1,40 @@ +%% +%% This is file `ot1iwonamathl.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathl.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathl.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathl}{} +\DeclareFontShape{OT1}{iwonamathl}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonal}{} +\DeclareFontShape{OT1}{iwonamathl}{m}{it}{<-> [\l__iwonamath_scale_tl] rm-iwonali}{} +\DeclareFontShape{OT1}{iwonamathl}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonam}{} +\DeclareFontShape{OT1}{iwonamathl}{bx}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonam}{} +\endinput +%% +%% End of file `ot1iwonamathl.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathlc.fd b/macros/latex/contrib/iwonamath/ot1iwonamathlc.fd new file mode 100644 index 0000000000..c5b2f0024b --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathlc.fd @@ -0,0 +1,40 @@ +%% +%% This is file `ot1iwonamathlc.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathlc.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathlc.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathlc}{} +\DeclareFontShape{OT1}{iwonamathlc}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacl}{} +\DeclareFontShape{OT1}{iwonamathlc}{m}{it}{<-> [\l__iwonamath_scale_tl] rm-iwonacli}{} +\DeclareFontShape{OT1}{iwonamathlc}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacm}{} +\DeclareFontShape{OT1}{iwonamathlc}{bx}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacm}{} +\endinput +%% +%% End of file `ot1iwonamathlc.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathlcm.fd b/macros/latex/contrib/iwonamath/ot1iwonamathlcm.fd new file mode 100644 index 0000000000..130c63822e --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathlcm.fd @@ -0,0 +1,38 @@ +%% +%% This is file `ot1iwonamathlcm.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1m') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathlcm.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathlcm.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathlcm}{} +\DeclareFontShape{OT1}{iwonamathlcm}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacl}{} +\DeclareFontShape{OT1}{iwonamathlcm}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonacm}{} +\endinput +%% +%% End of file `ot1iwonamathlcm.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathlm.fd b/macros/latex/contrib/iwonamath/ot1iwonamathlm.fd new file mode 100644 index 0000000000..ab72419cd8 --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathlm.fd @@ -0,0 +1,38 @@ +%% +%% This is file `ot1iwonamathlm.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1m') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathlm.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathlm.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathlm}{} +\DeclareFontShape{OT1}{iwonamathlm}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonal}{} +\DeclareFontShape{OT1}{iwonamathlm}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonam}{} +\endinput +%% +%% End of file `ot1iwonamathlm.fd'. diff --git a/macros/latex/contrib/iwonamath/ot1iwonamathm.fd b/macros/latex/contrib/iwonamath/ot1iwonamathm.fd new file mode 100644 index 0000000000..7a103a029b --- /dev/null +++ b/macros/latex/contrib/iwonamath/ot1iwonamathm.fd @@ -0,0 +1,38 @@ +%% +%% This is file `ot1iwonamathm.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% iwonamath.dtx (with options: `fd,ot1m') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ot1iwonamathm.fd. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file iwonamath.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesExplFile +{ot1iwonamathm.fd} +{2023-08-31} {1.0} +{Scaled Iwona math fonts} +\tl_if_exist:NTF \l__iwonamath_scale_tl +{} +{ + \tl_new:N \l__iwonamath_scale_tl + \tl_set:Nn \l__iwonamath_scale_tl {1} +} +\DeclareFontFamily{OT1}{iwonamathm}{} +\DeclareFontShape{OT1}{iwonamathm}{m}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonar}{} +\DeclareFontShape{OT1}{iwonamathm}{b}{n}{<-> [\l__iwonamath_scale_tl] rm-iwonab}{} +\endinput +%% +%% End of file `ot1iwonamathm.fd'. diff --git a/macros/latex/contrib/iwonamath/sample.pdf b/macros/latex/contrib/iwonamath/sample.pdf Binary files differnew file mode 100644 index 0000000000..c64d5e078d --- /dev/null +++ b/macros/latex/contrib/iwonamath/sample.pdf diff --git a/macros/latex/contrib/iwonamath/sample.tex b/macros/latex/contrib/iwonamath/sample.tex new file mode 100644 index 0000000000..d6c88f3d22 --- /dev/null +++ b/macros/latex/contrib/iwonamath/sample.tex @@ -0,0 +1,79 @@ +\documentclass{article} +\usepackage[default]{lato} +\usepackage{natbib} +\usepackage {amsmath,amssymb,bm} +\usepackage[scale=1.15]{iwonamath} +\DefineIwonaMathVersion{name=iwonacondensed, condensed} +\DefineIwonaMathVersion{name=iwonalight, light} +\DefineIwonaMathVersion{name=iwonalightcondensed, light, condensed} +\newcommand\ibinom[2]{\genfrac\lbrace\rbrace{0pt}{}{#1}{#2}} +\long\def\sample{% + First some large operators both in text: +\smash{$ \iiint\limits_{\mathcal{Q}} f(x,y,z)\,dx\,dy\,dz $} +and +$\prod_{\gamma\in\Gamma_{\widetilde{C}}} \partial(\widetilde{X}_\gamma)$; +and also on display: + +\begin{equation} +\begin{split} +\iiiint\limits_{\mathbf{Q}} f(w,x,y,z)\,dw\,dx\,dy\,dz &\leq +\oint_{\bm{\partial Q}} f' \left( \max \left\lbrace +\frac{\lVert w \rVert}{\lvert w^2 + x^2 \rvert} ; +\frac{\lVert z \rVert}{\lvert y^2 + z^2 \rvert} ; +\frac{\lVert w \oplus z \rVert}{\lVert x \oplus y \rVert} +\right\rbrace\right) +\\ +&\precapprox \biguplus_{\mathbb{Q} \Subset \bar{\mathbf{Q}}} + \left[ f^{\ast} \left( + \frac{\left\lmoustache\mathbb{Q}(t)\right\rmoustache} + {\sqrt {1 - t^2}} + \right)\right]_{t=\alpha}^{t=\vartheta} + - ( \Delta + \nu - v )^3 +\end{split} +\end{equation} + +For $x$ in the open interval $ \left] -1, 1 \right[ $ +the infinite sum in Equation~\eqref{eq:binom1} is convergent; +however, this does not hold +throughout the closed interval $ \left[ -1, 1 \right] $. +\begin{align} + (1 - x)^{-k} &= + 1 + \sum_{j=1}^{\infty} (-1)^j \ibinom{k}{j} x^j + \text{\quad for $k \in \mathbb{N}$; $k \neq 0$.} + \label{eq:binom1} +\end{align}} + + +\begin{document} + +In this sample we use Lato font~\citep{lato} as the body font. For the math we +use the same input as in The \LaTeX\ Companion~\citep[\S~12.5]{TLC3}). + + +In all examples we use Iwona scaled 1.15 + +\section*{Iwona regular} + +\sample + +\section*{Iwona condensed} + +\mathversion{iwonacondensed} +\sample + +\section*{Iwona light} + +\mathversion{iwonalight} +\sample + +\section*{Iwona light condensed} + +\mathversion{iwonalightcondensed} +\sample + + + +\bibliography{iwonamath} +\bibliographystyle{plainnat} + +\end{document} diff --git a/macros/latex/contrib/jwjournal/jwjournal.cls b/macros/latex/contrib/jwjournal/jwjournal.cls index c178db4e59..9b1e23804f 100644 --- a/macros/latex/contrib/jwjournal/jwjournal.cls +++ b/macros/latex/contrib/jwjournal/jwjournal.cls @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplClass {jwjournal} - {2023/08/31} {} + {2023/09/01} {} {JW's journal class} \keys_define:nn { jwjournal } @@ -105,6 +105,9 @@ \RequirePackage { enumitem } \setlist [ description ] { font = \normalfont\sffamily, leftmargin = 3em, topsep = 0pt, labelsep = 1em } +\dim_new:N \l_jwjournal_labelsep_dim +\dim_set:Nn \l_jwjournal_labelsep_dim { \labelsep } +\setlist [ 2 ] { labelsep = \l_jwjournal_labelsep_dim, labelwidth = !} \RenewDocumentCommand \descriptionlabel { m } { \makebox[\maxof{\width}{2em}][l]{ @@ -115,10 +118,10 @@ left = .1em, right = .1em, top = .05em, bottom = .05em] { #1 } } } -\NewDocumentCommand \JWJournalItem { m } +\NewDocumentCommand \JWJournalItem { m m } { \begin{description} - \item #1 + \item[#1] #2 \end{description} } @@ -341,20 +344,20 @@ \regex_replace_all:nnN { \*\*\* (.*?) \*\*\* } - { \c{textbf}\{ \c{emph}\{ \1 \} \} } + { \c{textbf} { \c{emph} {\1} } } \l_jwjournal_tmp_tl \regex_replace_all:nnN { \*\* (.*?) \*\* } - { \c{textbf}\{ \1 \} } + { \c{textbf} {\1} } \l_jwjournal_tmp_tl \regex_replace_all:nnN { \* (.*?) \* } - { \c{emph}\{ \1 \} } + { \c{emph} {\1} } \l_jwjournal_tmp_tl \regex_replace_once:nnN { >>> \ *? (.*) } - { \c{JWJournalNote}\{\1\} } + { \c{JWJournalNote} {\1} } \l_jwjournal_tmp_tl \regex_replace_all:nnN { \ *? >>> \ *? } @@ -412,12 +415,12 @@ \l_jwjournal_tmp_tl \regex_replace_once:nnN - { ❄️ \ *? (\[.*\] .*) } - { \c{JWJournalItem} {\1} } + { ❄️ \ *? \[(.*)\] (.*) } + { \c{JWJournalItem} {\1} {\2} } \l_jwjournal_tmp_tl \regex_replace_once:nnN { ❄️ \ *? 【(.*)】(.*) } - { \c{JWJournalItem} { \[\1\] \2 } } + { \c{JWJournalItem} {\1} {\2} } \l_jwjournal_tmp_tl \regex_replace_once:nnN { ❄️ } { } \l_jwjournal_tmp_tl diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md index 5f4eb8bb13..5d7e746833 100644 --- a/macros/latex/contrib/siunitx/CHANGELOG.md +++ b/macros/latex/contrib/siunitx/CHANGELOG.md @@ -7,6 +7,13 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v3.3.6] - 2023-09-01 + +### Fixed +- Corrected handling of font commands inside `\ensuremath` in text + mode (see issue + [\#694](https://github.com/josephwright/siunitx/issues/694)) + ## [v3.3.5] - 2023-08-30 ### Fixed @@ -2012,7 +2019,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ### Added - First public testing release (as `si`) -[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.5...HEAD +[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.3.6...HEAD +[v3.3.6]: https://github.com/josephwright/siunitx/compare/v3.3.5...v3.3.6 [v3.3.5]: https://github.com/josephwright/siunitx/compare/v3.3.4...v3.3.5 [v3.3.4]: https://github.com/josephwright/siunitx/compare/v3.3.3...v3.3.4 [v3.3.3]: https://github.com/josephwright/siunitx/compare/v3.3.2...v3.3.3 diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf Binary files differindex 493c8aeced..e6f9a48580 100644 --- a/macros/latex/contrib/siunitx/siunitx-code.pdf +++ b/macros/latex/contrib/siunitx/siunitx-code.pdf diff --git a/macros/latex/contrib/siunitx/siunitx-print.dtx b/macros/latex/contrib/siunitx/siunitx-print.dtx index f802bd7353..79d2d53840 100644 --- a/macros/latex/contrib/siunitx/siunitx-print.dtx +++ b/macros/latex/contrib/siunitx/siunitx-print.dtx @@ -891,15 +891,15 @@ \tl_set:Nn \l_@@_tmp_tl {#1} \tl_if_empty:NF \l_@@_tmp_tl { - \@@_text_replace_font:N \l_@@_tmp_tl - \tl_if_empty:NF \l_siunitx_unit_font_tl - { - \exp_after:wN - \cs_set_eq:NN \l_siunitx_unit_font_tl \scan_stop: - } - \cs_set:Npn \mathord ##1 - { \@@_text_replace_first:N ##1 } - \group_begin: + \group_begin: + \@@_text_replace_font:N \l_@@_tmp_tl + \cs_set:Npn \mathord ##1 + { \@@_text_replace_first:N ##1 } + \tl_if_empty:NF \l_siunitx_unit_font_tl + { + \exp_after:wN + \cs_set_eq:NN \l_siunitx_unit_font_tl \scan_stop: + } \tl_map_inline:nn { \mp \approx \sim \ge \le \geq \leq \gg \ll \angle } { @@ -909,7 +909,10 @@ \cs_set:Npn \sqrt ##1 { \exp_not:N \ensuremath - { \exp_not:N \sqrt { \exp_not:N \text {##1} } } + { + \exp_not:N \sqrt + { \exp_not:N \text { \@@_text_replace:n {##1} } } + } } \protected@edef \l_@@_tmp_tl { \exp_after:wN \@@_text_replace_first:N \l_@@_tmp_tl } diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx index f2ec215fa5..dee6c48699 100644 --- a/macros/latex/contrib/siunitx/siunitx.dtx +++ b/macros/latex/contrib/siunitx/siunitx.dtx @@ -121,7 +121,7 @@ % % Identify the package and give the over all version information. % \begin{macrocode} -\ProvidesExplPackage {siunitx} {2023-08-30} {3.3.5} +\ProvidesExplPackage {siunitx} {2023-09-01} {3.3.6} {A comprehensive (SI) units package} % \end{macrocode} % diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf Binary files differindex 000d5790d6..84048f928d 100644 --- a/macros/latex/contrib/siunitx/siunitx.pdf +++ b/macros/latex/contrib/siunitx/siunitx.pdf diff --git a/macros/latex/contrib/udes-genie-these/acronymes.tex b/macros/latex/contrib/udes-genie-these/Exemple/acronymes.tex index 84eb09844d..84eb09844d 100644 --- a/macros/latex/contrib/udes-genie-these/acronymes.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/acronymes.tex diff --git a/macros/latex/contrib/udes-genie-these/document.tex b/macros/latex/contrib/udes-genie-these/Exemple/document.tex index 66245c37d8..485226c152 100644 --- a/macros/latex/contrib/udes-genie-these/document.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/document.tex @@ -18,7 +18,9 @@ fichier-symboles = {symboles}, fichier-acronymes = {acronymes}, fichiers-references = {references}, + %auto-bib, %style-references = plain, + %legendes-min, } \TitreFrancais{CECI EST LE TITRE FRANÇAIS\\DU DOCUMENT} @@ -36,7 +38,7 @@ \Evaluateur{Prénom5}{NOM5} % Le contenu du document doit respecter le protocole de rédaction. -% Le contenu fourni ici n'est qu'un exemple afin d'illustre l'utilisation de la classe. +% Le contenu fourni ici n'est qu'un exemple afin d'illustrer l'utilisation de la classe. \begin{document} diff --git a/macros/latex/contrib/udes-genie-these/lexique.tex b/macros/latex/contrib/udes-genie-these/Exemple/lexique.tex index 33f0ad57b7..33f0ad57b7 100644 --- a/macros/latex/contrib/udes-genie-these/lexique.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/lexique.tex diff --git a/macros/latex/contrib/udes-genie-these/merci.tex b/macros/latex/contrib/udes-genie-these/Exemple/merci.tex index 1ca4d21385..1ca4d21385 100644 --- a/macros/latex/contrib/udes-genie-these/merci.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/merci.tex diff --git a/macros/latex/contrib/udes-genie-these/references.bib b/macros/latex/contrib/udes-genie-these/Exemple/references.bib index 70583f06ac..70583f06ac 100644 --- a/macros/latex/contrib/udes-genie-these/references.bib +++ b/macros/latex/contrib/udes-genie-these/Exemple/references.bib diff --git a/macros/latex/contrib/udes-genie-these/resume-anglais.tex b/macros/latex/contrib/udes-genie-these/Exemple/resume-anglais.tex index 8a9c6d6202..8a9c6d6202 100644 --- a/macros/latex/contrib/udes-genie-these/resume-anglais.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/resume-anglais.tex diff --git a/macros/latex/contrib/udes-genie-these/resume-francais.tex b/macros/latex/contrib/udes-genie-these/Exemple/resume-francais.tex index 344f5cd372..344f5cd372 100644 --- a/macros/latex/contrib/udes-genie-these/resume-francais.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/resume-francais.tex diff --git a/macros/latex/contrib/udes-genie-these/symboles.tex b/macros/latex/contrib/udes-genie-these/Exemple/symboles.tex index 923a1c85ef..923a1c85ef 100644 --- a/macros/latex/contrib/udes-genie-these/symboles.tex +++ b/macros/latex/contrib/udes-genie-these/Exemple/symboles.tex diff --git a/macros/latex/contrib/udes-genie-these/README.md b/macros/latex/contrib/udes-genie-these/README.md index 82bbd5cff7..7682a7db62 100644 --- a/macros/latex/contrib/udes-genie-these/README.md +++ b/macros/latex/contrib/udes-genie-these/README.md @@ -5,7 +5,7 @@ The udes-genie-these class can be used for Ph.D. thesis, master's thesis and pro The class file documentation is in French, the language of the typical user at the Université de Sherbrooke. An example of use is also distributed with the documentation. -Copyright (C) 2017-2022 Charles-Antoine Brunet +Copyright (C) 2017-2023 Charles-Antoine Brunet ## Class file (udes-genie-these.cls) The class file (udes-genie-these.cls) is generated with the installation file (udes-genie-these.ins) with the following command: diff --git a/macros/latex/contrib/udes-genie-these/udes-genie-these.dtx b/macros/latex/contrib/udes-genie-these/udes-genie-these.dtx index 25fa39a50e..cdd6bdfe6e 100644 --- a/macros/latex/contrib/udes-genie-these/udes-genie-these.dtx +++ b/macros/latex/contrib/udes-genie-these/udes-genie-these.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment %% udes-genie-these.dtx -%% Copyright 2022 Charles-Antoine Brunet +%% Copyright 2023 Charles-Antoine Brunet % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -26,9 +26,9 @@ %<these|protocole>%%--- IDENTIFICATION ------------------------------------------------------ %<these|protocole>%%----------------------------------------------------------------------------- %<these|protocole> -%<these>\ProvidesExplClass{udes-genie-these}{2022/11/17}{3.0.1} +%<these>\ProvidesExplClass{udes-genie-these}{2023/09/01}{3.1.0} %<these> {Université de Sherbrooke, Faculté de génie: classe de document pour thèses, mémoires, DPR et essais} -%<protocole>\ProvidesExplClass{udes-genie-protocole}{2022/11/17}{3.0.1} +%<protocole>\ProvidesExplClass{udes-genie-protocole}{2023/09/01}{3.1.0} %<protocole> {Université de Sherbrooke, Faculté de génie: classe de document pour le protocole de rédaction} %<these|protocole> %<*driver> @@ -132,10 +132,11 @@ % \changes{v2.0.2}{2022-09-15}{Maintenance (LaTeX2e 2020-02-02 à 2022-06-01). Distribution sur CTAN. Adaptations à la documentation.} % \changes{v3.0}{2022-09-19}{Support pour \pkg{biblatex}. Ajustements à la documentation.} % \changes{v3.0.1}{2022-11-17}{Ajustements à la documentation et à l'exemple. Changements internes pour les formats LaTeX antérieurs à 2022-06-01.} +% \changes{v3.1.0}{2023-09-01}{Ajout des champs auto-bib et legendes-min. Ajustements à la documentation. Correction de bugs. Format 2022-06-01 ou plus récent requis. Maintenance interne.} % % \GetFileInfo{udes-genie-these.dtx} % -% \title{CLASSE DE DOCUMENT \latex POUR LA RÉDACTION AUX ÉTUDES SUPÉRIEURES À LA FACULTÉ DE GÉNIE DE L'UNIVERSITÉ DE SHERBROOKE\\{\large \laclassetitre, version 3.0.1}} +% \title{CLASSE DE DOCUMENT \latex POUR LA RÉDACTION AUX ÉTUDES SUPÉRIEURES À LA FACULTÉ DE GÉNIE DE L'UNIVERSITÉ DE SHERBROOKE\\{\large \laclassetitre, version 3.1.0}} % \author{Charles-Antoine Brunet} % \date{\today} % \maketitle @@ -158,7 +159,7 @@ % Le style de références est maintenant spécifié par le nouveau champ de configuration |style-references| et non plus dans le préambule avec la macro |\bibliographystyle|. Il faut donc retirer une macro du style |\bibliographystyle{AAA}| et la remplacer par un champ de configuration du genre |style-references = AAA|. C'est tout! % %\section{Installation et vérification}\label{sec:inst} -% La classe \laclasse utilise des fonctionnalités récentes de \latex. Il faut donc vous assurer d'avoir une version à jour de votre distribution \latex (\texlive ou \miktex). Si vous utilisez \overleaf, il faut vous assurer que votre projet compile avec la version la plus récente de \texlive. +% La classe \laclasse utilise des fonctionnalités récentes de \latex. Il faut donc vous assurer d'avoir une version à jour de votre distribution \latex (\texlive ou \miktex). Si vous utilisez \overleaf, il faut vous assurer que votre projet compile avec la version la plus récente de \texlive offerte. % % Selon votre distribution \latex, choisissez l'option qui vous convient. % la classe @@ -176,11 +177,11 @@ % \textbf{Court terme:}\\ Si vous pensez utiliser \laclasse à court terme, alors procédez comme avec \overleaf, comme ce qui suit. % % \subsection*{\overleaf} -% Pour utiliser \laclasse, vous pouvez récupérer une archive sur l'intranet de la Faculté de génie qui contient tout ce qu'il faut pour compiler un document. L'archive contient aussi la documentation et un exemple d'utilisation. Il suffit d'extraire les fichiers de l'archive dans un répertoire et de compiler avec votre variante favorite de \latex. Cette méthode fonctionne pour \overleaf et aussi toutes les autres distributions \latex. +% Cette méthode fonctionne pour \overleaf et aussi toutes les autres distributions \latex. Pour utiliser \laclasse, vous pouvez récupérer une archive sur l'intranet de la Faculté de génie qui contient tout ce qu'il faut pour compiler un document. Consultez le fichier |README| distribué pour la suite. % % Cette manière de fonctionner fait en sorte que vous êtes responsables de faire les mises à jour, car elles ne se feront pas automatiquement. Cela veut aussi dire qu'au cours du temps, si vous n'êtes pas vigilants, vous pourriez avoir plusieurs projets qui utilisent \laclasse, mais qui utilisent des versions différentes. % -% Dans \overleaf, la classe \laclasse ne fait pas partie des \packages préinstallés et il n'est pas possible non plus de l'installer de manière standard, comme avec les autres distributions \latex (\miktex et \texlive). Il reste deux options: avoir une copie de \laclasse présente dans chaque projet ou utiliser le mécanisme de partage de fichiers entre vos différents projets afin d'éviter d'en avoir plusieurs copies. +% Dans \overleaf, pour l'instant, la classe \laclasse ne fait pas partie des \packages préinstallés et il n'est pas possible non plus de l'installer de manière standard, comme avec les autres distributions \latex (\miktex et \texlive). Selon les informations sur le site web d'\overleaf au moment de l'écriture de ces lignes, leur distribution \texlive est mise à jour une fois par année lorsque la nouvelle version de \texlive est disponible. Avec un peu de chance, \laclasse fera partie d'\overleaf lors de leur prochaine mise à jour. Même dans ce cas, cela veut dire que la classe \laclasse serait mise à jour qu'une seule fois par année. % % \subsection*{Vérification} % Afin de vérifier que l'installation s'est bien passée, il vous est suggéré de compiler l'exemple distribué avec \laclasse. C'est le meilleur moyen de savoir si vous avez tout ce qu'il faut. @@ -227,9 +228,11 @@ %%----------------------------------------------------------------------------- %%--- DECLARATION DES VARIABLES ------------------------------------------- %%----------------------------------------------------------------------------- +\bool_new:N \g_@@_autobib_bool +\bool_new:N \g_@@_legendes_min_bool \bool_new:N \g_@@_lignes_bool -\bool_new:N \g_@@_listeDesFigures_bool -\bool_new:N \g_@@_listeDesTableaux_bool +\bool_new:N \g_@@_liste_figures_bool +\bool_new:N \g_@@_liste_tableaux_bool \clist_new:N \g_@@_dedicace_cl \clist_new:N \g_@@_fichiers_references_cl @@ -297,7 +300,7 @@ %%--- DECLARATION DES CONSTANTES ------------------------------------------ %%----------------------------------------------------------------------------- \int_const:Nn \c_@@_max_pages_dprdoctorat_int {40} -\int_const:Nn \c_@@_max_pages_dprmaitrise_int {30} +\int_const:Nn \c_@@_max_pages_dprmaitrise_int {25} \int_const:Nn \c_@@_max_pages_essai_int {70} \int_const:Nn \c_@@_max_pages_memoire_int {120} %<protocole>\int_const:Nn \c_@@_max_pages_protocole_int {10000} @@ -344,6 +347,61 @@ \clist_gput_right:Nx \g_@@_specialite_cl {\c_@@_type_memoire_tl, \c_@@_type_these_tl} +%%----------------------------------------------------------------------------- +%%--- MESSAGES D'ERREURS -------------------------------------------------- +%%----------------------------------------------------------------------------- +\msg_new:nnnn {udesgeniethese}{erreur_format}{Un~LaTeX~plus~récent~est~nécessaire.~Veuillez~mettre~à~jour~votre~distribution~LaTeX.}{Le~format~2022-06-01~ou~un~plus~récent~est~nécessaire.} + +\msg_new:nnnn {udesgeniethese}{biblatex_en_trop}{Avec~l'option~bibtex,~il~ne~faut~pas~charger~le~package~biblatex.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{biblatex_manquant}{L'option~biblatex~requiert~de~charger~le~package~biblatex~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~exige~un~maximum~de~40~pages.}{Consultez~le~protocole~de~redaction.} + +\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~exige~un~maximum~de~25~pages.}{Consultez~le~protocole~de~redaction.} + +\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.} + +\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.} + +\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.} + +\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.} + +\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} + +\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} + %\end{implementation} % % \subsection{Options} \label{class-options} @@ -365,40 +423,41 @@ % % Si le choix est |bibtex|, le style bibliographique est spécifié avec le champ de configuration |style-references| et les fichiers de références utilisés par |bibtex| sont ceux spécifiés avec le champ |references| (voir la section~\ref{sec:config}). La liste des références est générée automatiquement par \laclasse avec la macro |\bibliography|. % -% Si le choix est de |biblatex|, la personne qui rédige le document est responsable de charger le \package |biblatex| avec la macro |\usepackage| dans le préambule, car trop de cas de figures peuvent survenir afin d'assurer un chargement correct. La liste des références est gérérée automatiquement par \laclasse avec la macro |\printbibliography| et les fichiers de références sont spécifiés avec le champs de configuration |references| (voir la section~\ref{sec:config}). Les fichiers de références sont fournis automatiquement par \laclasse avec la macro |\addbibresource|. Le champ de configuration |references-style| est ignoré, car le style est géré par la personne qui rédige avec avec l'aide de |biblatex|. +% Si le choix est de |biblatex|, la personne qui rédige le document est responsable de charger le \package |biblatex| avec la macro |\usepackage| dans le préambule, car trop de cas de figures peuvent survenir afin d'assurer un chargement correct. La liste des références est gérérée automatiquement par \laclasse avec la macro |\printbibliography| et les fichiers de références sont spécifiés avec le champs de configuration |references| (voir la section~\ref{sec:config}). Les fichiers de références sont fournis automatiquement par \laclasse avec la macro |\addbibresource|. Le champ de configuration |style-references| est ignoré, car le style est géré par la personne qui rédige avec avec l'aide de |biblatex|. % %\end{variable} %\begin{implementation} %%----------------------------------------------------------------------------- %%--- OPTIONS DE CLASSE --------------------------------------------------- %%----------------------------------------------------------------------------- -\keys_define:nn { udes-genie-these } +\IfFormatAtLeastTF {2022-06-01} + {}{\msg_fatal:nn{udesgeniethese}{erreur_format}} + +\DeclareKeys { biblatex .code:n = {\tl_gset_eq:NN \g_@@_references_engin_tl \c_@@_references_biblatex_tl}, + biblatex .usage:n = load, bibtex .code:n = {\tl_gset_eq:NN \g_@@_references_engin_tl \c_@@_references_bibtex_tl}, + bibtex .usage:n = load, livre .code:n = { \PassOptionsToClass{twoside,openright}{book} \PassOptionsToPackage{twoside=true}{geometry} \tl_gset_eq:NN \g_@@_format_tl \c_@@_format_livre_tl }, + livre .usage:n = load, simple .code:n = { \PassOptionsToClass{oneside,openany}{book} \PassOptionsToPackage{twoside=false}{geometry} \tl_gset_eq:NN \g_@@_format_tl \c_@@_format_simple_tl }, + simple .usage:n = load, unknown .code:n = {\PassOptionsToClass{\CurrentOption}{book}}, } -\keys_set:nn { udes-genie-these } {livre} +\SetKeys{livre} + +\ProcessKeyOptions -\IfFormatAtLeastTF {2022-06-01} -{ - \ProcessKeyOptions[udes-genie-these] -} -{ - \RequirePackage {l3keys2e} - \ProcessKeysOptions{udes-genie-these} -} %%----------------------------------------------------------------------------- %%--- DEPENDANCES DE CLASSE ----------------------------------------------- @@ -414,27 +473,14 @@ %\end{implementation} % % \subsection{Configuration du document}\label{sec:config} -% Le \protocole a des exigences au niveau de l'ordonnancement de certaines parties ou de certains éléments de présentation. Certaines de ces exigences sont gérées automatiquement en utilisant la macro de configuration du document, la macro |\ConfigurationDocument|. Cette macro est utilisée dans le préambule du document. Un exemple de configuration avec la description de chacun des champs suit. Vous devez évidemment adapter le contenu des champs de la configuration du document pour refléter vos besoins et les noms de vos fichiers. Il est à remarquer que chaque ligne qui spécifie un champ se termine par une virgule. +% Le \protocole a des exigences au niveau de l'ordonnancement de certaines parties ou de certains éléments de présentation. Certaines de ces exigences sont gérées automatiquement en utilisant la macro de configuration du document, la macro |\ConfigurationDocument|. Cette macro est utilisée dans le préambule du document. L’exemple distribué avec \laclasse montre un exemple de configuration. Vous devez évidemment adapter le contenu des champs de la configuration du document pour refléter vos besoins et les noms de vos fichiers. Il est à remarquer que chaque ligne qui spécifie un champ se termine par une virgule. % %\begin{function}{\ConfigurationDocument} %\begin{syntax} %\begin{verbatim} % \ConfigurationDocument % { -% langue = francais, -% type = memoire, -% programme = electrique, -% lignes, -% liste-figures, -% liste-tableaux, -% fichier-resume-francais = {resumef}, -% fichier-resume-anglais = {resumea}, -% fichier-remerciements = {merci}, -% fichier-lexique = {lexique}, -% fichier-symboles = {symboles}, -% fichier-acronymes = {acronymes}, -% fichiers-references = {journaux,conferences}, -% style-references = plain, +% ... % } %\end{verbatim} %\end{syntax} @@ -508,6 +554,20 @@ % Ce champ spécifie le style bibliographique à utiliser pour la construction de la liste des références, tel que requis par \bibtex ou un autres engins bibliographiques équivalents. Comme ce champ spécifie le style à utiliser, il n'est pas nécessaire de mettre la macro |\bibliographystyle| dans le préambule, car la classe \laclasse automatise cette étape. Ce champ est ignoré, si l'option de classe |biblatex| a été spécifié (voir la section~\ref{class-options}). Consultez le protocole au sujet des styles bibliographiques. D'autres détails au sujet des références bibliographiques sont donnés dans la section~\ref{sec:refbib}. %\end{variable} % +%\begin{variable}[added=2023-08-29]{auto-bib} +%\begin{syntax} +% |auto-bib =| \meta{valeur} +%\end{syntax} +% Ce champ est utilitaire et il est ignoré, sauf si l'option |biblatex| de classe a été spécifié (voir section~\ref{class-options}). Les choix pour \meta{valeur} sont |true| et |false|. Si ce champ est |true|, l'extension |bib| est ajoutée automatiquement à tous les fichiers spécifiés avec le champ |fichiers-references|. Ceci peut être pratique pour uniformiser les noms dans la liste des fichiers que \bibtex ou |biblatex| soit utilisé. Si la valeur de ce champ est |false|, rien n'est fait. Si ce champ est omis, la valeur par défaut est |false|. Il est possible aussi de spécifier uniquement |auto-bib| pour spécifier |true|. +%\end{variable} +% +% +%\begin{variable}[added=2023-08-30]{legendes-min} +%\begin{syntax} +% |legendes-min =| \meta{valeur} +%\end{syntax} +% Ce champ permet de spécifier si les mots \textit{figure} et \textit{tableau} des légendes sont écrits en style \textit{minuscule} ou non. Si ce champ est |true|, alors seule la première lettre du mot est en majuscule et ils sont écrits comme suit: Figure et Tableau. Si ce champ est |false|, alors le style est \textit{petites majuscules} et ils sont écrits comme suit: \textsc{Figure} et \textsc{Tableau}. La valeur par défaut de ce champ est |false|. +%\end{variable} %\begin{implementation} \DeclareDocumentCommand \ConfigurationDocument { m } { \keys_set:nn { udes-genie-these } { #1 } } @@ -524,9 +584,9 @@ programme .choices:nn = {electrique,mecanique,aerospatial,chimique,civil} {\tl_gset_eq:NN \g_@@_programme_tl \l_keys_choice_tl}, programme .value_required:n = true, - liste-figures .bool_gset:N = \g_@@_listeDesFigures_bool, + liste-figures .bool_gset:N = \g_@@_liste_figures_bool, liste-figures .default:n = true, - liste-tableaux .bool_gset:N = \g_@@_listeDesTableaux_bool, + liste-tableaux .bool_gset:N = \g_@@_liste_tableaux_bool, liste-tableaux .default:n = true, lignes .bool_gset:N = \g_@@_lignes_bool, lignes .default:n = true, @@ -546,6 +606,10 @@ fichiers-references .value_required:n = true, style-references .tl_gset:N = \g_@@_style_references_tl, style-references .value_required:n = true, + auto-bib .bool_gset:N = \g_@@_autobib_bool, + auto-bib .default:n = true, + legendes-min .bool_gset:N = \g_@@_legendes_min_bool, + legendes-min .default:n = true, } %\end{implementation} @@ -732,7 +796,7 @@ foot=1.25cm,head=0.9cm,headsep=0.35cm,bindingoffset=0.5cm} \captionsetup[table]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=top,skip=0.5ex} \captionsetup[figure]{labelsep=quad,textformat=simple,font=normal,margin=5ex,position=bottom,skip=1ex} -\frenchbsetup{ItemLabels=\textendash} +\frenchsetup{ItemLabels=\textendash} %%----------------------------------------------------------------------------- %%--- REDEFINITION MACROS STANDARDS ------------------------------------ @@ -765,123 +829,6 @@ \secdef\@@_chapter\@@_schapter } -\addto\captionsfrench -{ - \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES} - \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES} - \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX} - \tl_gset:Nn \chaptername {CHAPITRE} - \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES} - \tl_gset:Nn \appendixname {ANNEXE} - \tl_gset:Nn \partname {PARTIE} - \tl_gset:Nn \figurename {Figure} - \tl_gset:Nn \tablename {Tableau} - \tl_gset:Nn \glossaryname {LEXIQUE} - \tl_gset:Nn \indexname {INDEX} - \tl_gset:Nn \abstractname {RÉSUMÉ} - \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES} - \tl_gset:Nn \prefacename {PRÉFACE} - \tl_gset:Nn \CaptionSeparator {~~} - \tl_gset:Nn \g_@@_listsymbolsname_tl {LISTE~DES~SYMBOLES} - \tl_gset:Nn \g_@@_listacronymsname_tl {LISTE~DES~ACRONYMES} - \tl_gset:Nn \g_@@_acknowledgementsname_tl {REMERCIEMENTS} - \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE} - \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie} - \tl_gset:Nn \g_@@_specialityname_tl {Spécialité~:~} - \tl_gset:Nn \g_@@_juryname_tl {MEMBRES~DU~JURY} - \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada} - \tl_gset:Nn \g_@@_motsclesname_tl {Mots-clés~:} - \tl_gset:Nn \g_@@_jury_codirname_tl {Codirecteur} - \tl_gset:Nn \g_@@_jury_codirnamef_tl {Codirectrice} - \tl_gset:Nn \g_@@_jury_dirname_tl {Directeur} - \tl_gset:Nn \g_@@_jury_dirnamef_tl {Directrice} - \tl_gset:Nn \g_@@_jury_evalname_tl {Évaluateur} - \tl_gset:Nn \g_@@_jury_evalnamef_tl {Évaluatrice} -} - -\addto\captionsenglish -{ - \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS} - \tl_gset:Nn \listfigurename {LIST~OF~FIGURES} - \tl_gset:Nn \listtablename {LIST~OF~TABLES} - \tl_gset:Nn \chaptername {CHAPTER} - \tl_gset:Nn \bibname {LIST~OF~REFERENCES} - \tl_gset:Nn \appendixname {APPENDIX} - \tl_gset:Nn \partname {PART} - \tl_gset:Nn \figurename {Figure} - \tl_gset:Nn \tablename {Table} - \tl_gset:Nn \glossaryname {GLOSSARY} - \tl_gset:Nn \indexname {INDEX} - \tl_gset:Nn \abstractname {ABSTRACT}~ - \tl_gset:Nn \refname {REFERENCES} - \tl_gset:Nn \prefacename {PREFACE} - \tl_gset:Nn \CaptionSeparator {~~} - \tl_gset:Nn \g_@@_listsymbolsname_tl {LIST~OF~SYMBOLS} - \tl_gset:Nn \g_@@_listacronymsname_tl {LIST~OF~ACRONYMS} - \tl_gset:Nn \g_@@_acknowledgementsname_tl {ACKNOWLEDGEMENTS} - \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE} - \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie} - \tl_gset:Nn \g_@@_specialityname_tl {Specialité:~} - \tl_gset:Nn \g_@@_juryname_tl {JURY~MEMBERS} - \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada} - \tl_gset:Nn \g_@@_motsclesname_tl {Keywords:} - \tl_gset:Nn \g_@@_jury_codirname_tl {Co-supervisor} - \tl_gset:Nn \g_@@_jury_codirnamef_tl {Co-supervisor} - \tl_gset:Nn \g_@@_jury_dirname_tl {Supervisor} - \tl_gset:Nn \g_@@_jury_dirnamef_tl {Supervisor} %Directress - \tl_gset:Nn \g_@@_jury_evalname_tl {Examiner} %Internal et external - \tl_gset:Nn \g_@@_jury_evalnamef_tl {Examiner} %Internal et external -} - -%%----------------------------------------------------------------------------- -%%--- MESSAGES D'ERREURS -------------------------------------------------- -%%----------------------------------------------------------------------------- -\msg_new:nnnn {udesgeniethese}{auteur_nom_vide}{Le~nom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{auteur_prenom_vide}{Le~prenom~de~l'auteur~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Auteur~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{config_fichier_vide}{Le~fichier~pour~#1~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{config_fichiers_vides}{Les~fichiers~pour~#1~ne~sont~pas~specifies.~Specifiez-les~avec~la~cle~'#2'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{config_langue_vide}{La~langue~principale~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~cle~'langue'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{config_programme_vide}{Le~programme~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'programme'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{config_type_vide}{Le~type~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~cle~'type'~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{date_annee_vide}{L'annee~de~la~date~du~document~n'est~pas~specifiee.~Specifiez-la~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{date_mois_vide}{Le~mois~de~la~date~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\Date~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{dprdoctorat_max_pages}{La~DPR~de~doctorat~semble~longue.~Le~protocole~suggere~de~25~a~40~pages.}{Consultez~le~protocole~de~redaction.} - -\msg_new:nnnn {udesgeniethese}{dprmaitrise_max_pages}{La~DPR~de~maitrise~semble~longue.~Le~protocole~suggere~de~20~a~30~pages.}{Consultez~le~protocole~de~redaction.} - -\msg_new:nnnn {udesgeniethese}{essai_max_pages}{L'essai~semble~long.~Le~protocole~exige~un~maximum~de~70~pages.}{Consultez~le~protocole~de~redaction.} - -\msg_new:nnnn {udesgeniethese}{memoire_max_pages}{Le~memoire~semble~long.~Le~protocole~exige~un~maximum~de~120~pages.}{Consultez~le~protocole~de~redaction.} - -\msg_new:nnnn {udesgeniethese}{mots_cles_anglais_vide}{Les~mots-cles~anglais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{mots_cles_francais_vide}{Les~mots-cles~francais~ne~sont~pas~specifies.~Specifiez-les~avec~la~macro~\MotsClesFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{remerciements_longs}{Les~remerciements~doivent~etre~d'une~page~maximum.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{resume_anglais_long}{Le~resume~anglais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{titre_resume_mots_cles_anglais}{Le~titre,~le~resume~et~les~mots-cles~anglais~doivent~etre~donnes.~On~ne~peut~donner~l'un~sans~les~autres.}{Consultez~la~documentation.} - -\msg_new:nnnn {udesgeniethese}{resume_francais_long}{Le~resume~francais~doit~etre~d'une~page~maximum,~incluant~les~mots-cles.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{these_max_pages}{La~these~semble~longue.~Le~protocole~exige~un~maximum~de~250~pages}{Consultez~le~protocole~de~redaction.} - -\msg_new:nnnn {udesgeniethese}{titre_anglais_vide}{Le~titre~anglais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreAnglais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{titre_francais_vide}{Le~titre~francais~du~document~n'est~pas~specifie.~Specifiez-le~avec~la~macro~\TitreFrancais~dans~le~preambule.}{Consultez~la~documentation~de~la~classe.} - -\msg_new:nnnn {udesgeniethese}{aerospatial}{Le~type~du~document~doit~etre~essai~si~le~programme~est~aerospatial.~Specifiez-le~~bon~type~dans~la~configuration~du~document.}{Consultez~la~documentation~de~la~classe.} - %%----------------------------------------------------------------------------- %%--- MACROS INTERNES -------------------------------------------------- %%----------------------------------------------------------------------------- @@ -914,19 +861,19 @@ \newcommand*{\@@_makechapterhead}[1] { - { - \parindent \z@ \normalfont % \raggedright - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \LARGE\sffamily\bfseries \chaptername\space \thechapter - \par\nobreak - \vskip 0\p@ - \fi - \fi - \interlinepenalty\@M - \LARGE\sffamily\bfseries #1 \par\nobreak - \vskip 30\p@ - } + \group_begin: + \parindent \z@ \normalfont % \raggedright + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \LARGE\sffamily\bfseries \chaptername\space \thechapter + \par\nobreak + \vskip 0\p@ + \fi + \fi + \interlinepenalty\@M + \LARGE\sffamily\bfseries #1 \par\nobreak + \vskip 30\p@ + \group_end: } \newcommand*{\@@_schapter}[1] @@ -941,12 +888,85 @@ \newcommand*{\@@_makeschapterhead}[1] { + \group_begin: + \parindent \z@ \normalfont %\raggedright + \vskip 0\p@ + \interlinepenalty\@M + \LARGE\sffamily\bfseries #1 \par\nobreak + \vskip 30\p@ + \group_end: +} + +\cs_new:Npn \@@_caption_fmt #1 { #1 } + +\cs_new:Npn \@@_setup_captions +{ + \addto\captionsfrench { - \parindent \z@ \normalfont %\raggedright - \vskip 0\p@ - \interlinepenalty\@M - \LARGE\sffamily\bfseries #1 \par\nobreak - \vskip 30\p@ + \tl_gset:Nn \contentsname {TABLE~DES~MATIÈRES} + \tl_gset:Nn \listfigurename {LISTE~DES~FIGURES} + \tl_gset:Nn \listtablename {LISTE~DES~TABLEAUX} + \tl_gset:Nn \chaptername {CHAPITRE} + \tl_gset:Nn \bibname {LISTE~DES~RÉFÉRENCES} + \tl_gset:Nn \appendixname {ANNEXE} + \tl_gset:Nn \partname {PARTIE} + \tl_gset:Nn \figurename {Figure} + \tl_gset:Nn \tablename {Tableau} + \tl_gset:Nn \glossaryname {LEXIQUE} + \tl_gset:Nn \indexname {INDEX} + \tl_gset:Nn \abstractname {RÉSUMÉ} + \tl_gset:Nn \refname {LISTE~DES~RÉFÉRENCES} + \tl_gset:Nn \prefacename {PRÉFACE} + \tl_gset:Nn \CaptionSeparator {~~} + \tl_gset:Nn \g_@@_listsymbolsname_tl {LISTE~DES~SYMBOLES} + \tl_gset:Nn \g_@@_listacronymsname_tl {LISTE~DES~ACRONYMES} + \tl_gset:Nn \g_@@_acknowledgementsname_tl {REMERCIEMENTS} + \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE} + \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie} + \tl_gset:Nn \g_@@_specialityname_tl {Spécialité~:~} + \tl_gset:Nn \g_@@_juryname_tl {MEMBRES~DU~JURY} + \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada} + \tl_gset:Nn \g_@@_motsclesname_tl {Mots-clés~:} + \tl_gset:Nn \g_@@_jury_codirname_tl {Codirecteur} + \tl_gset:Nn \g_@@_jury_codirnamef_tl {Codirectrice} + \tl_gset:Nn \g_@@_jury_dirname_tl {Directeur} + \tl_gset:Nn \g_@@_jury_dirnamef_tl {Directrice} + \tl_gset:Nn \g_@@_jury_evalname_tl {Évaluateur} + \tl_gset:Nn \g_@@_jury_evalnamef_tl {Évaluatrice} + } + + \addto\captionsenglish + { + \tl_gset:Nn \contentsname {TABLE~OF~CONTENTS} + \tl_gset:Nn \listfigurename {LIST~OF~FIGURES} + \tl_gset:Nn \listtablename {LIST~OF~TABLES} + \tl_gset:Nn \chaptername {CHAPTER} + \tl_gset:Nn \bibname {LIST~OF~REFERENCES} + \tl_gset:Nn \appendixname {APPENDIX} + \tl_gset:Nn \partname {PART} + \tl_gset:Nn \figurename {\_@@_caption_fmt{Figure}} + \tl_gset:Nn \tablename {\_@@_caption_fmt{Table}} + \tl_gset:Nn \glossaryname {GLOSSARY} + \tl_gset:Nn \indexname {INDEX} + \tl_gset:Nn \abstractname {ABSTRACT}~ + \tl_gset:Nn \refname {LIST~OF~REFERENCES} + \tl_gset:Nn \prefacename {PREFACE} + \tl_gset:Nn \CaptionSeparator {~~} + \tl_gset:Nn \g_@@_listsymbolsname_tl {LIST~OF~SYMBOLS} + \tl_gset:Nn \g_@@_listacronymsname_tl {LIST~OF~ACRONYMS} + \tl_gset:Nn \g_@@_acknowledgementsname_tl {ACKNOWLEDGEMENTS} + \tl_gset:Nn \g_@@_udesname_tl {UNIVERSITÉ~DE~SHERBROOKE} + \tl_gset:Nn \g_@@_facultyname_tl {Faculté~de~génie} + \tl_gset:Nn \g_@@_specialityname_tl {Specialité:~} + \tl_gset:Nn \g_@@_juryname_tl {JURY~MEMBERS} + \tl_gset:Nn \g_@@_adressname_tl {Sherbrooke~(Québec)~Canada} + \tl_gset:Nn \g_@@_motsclesname_tl {Keywords:} + \tl_gset:Nn \g_@@_jury_codirname_tl {Co-supervisor} + \tl_gset:Nn \g_@@_jury_codirnamef_tl {Co-supervisor} + \tl_gset:Nn \g_@@_jury_dirname_tl {Supervisor} + \tl_gset:Nn \g_@@_jury_dirnamef_tl {Supervisor} %Directress + \tl_gset:Nn \g_@@_jury_evalname_tl {Examiner} %Internal et external + \tl_gset:Nn \g_@@_jury_evalnamef_tl {Examiner} %Internal et external } } @@ -1024,47 +1044,47 @@ \tl_if_empty:NT \g_@@_date_mois_tl { \msg_error:nn {udesgeniethese}{date_mois_vide} } - \tl_case:Nn \g_@@_langue_tl + \token_case_meaning:Nn \g_@@_langue_tl { \c_@@_langue_francais_tl { \tl_if_empty:NT \g_@@_titre_francais_tl - { \msg_error:nn {udesgeniethese}{titre_francais_vide} } + { \msg_error:nn {udesgeniethese}{titre_francais_vide} } %<*these> - \tl_if_empty:NT \g_@@_mots_cles_francais_tl + \tl_if_empty:NT \g_@@_mots_cles_francais_tl { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} } - \tl_if_empty:NT \g_@@_fichier_resume_francais_tl + \tl_if_empty:NT \g_@@_fichier_resume_francais_tl { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} } - \int_zero:N \l_tmpa_int - \tl_if_empty:NF \g_@@_titre_anglais_tl + \int_zero:N \l_tmpa_int + \tl_if_empty:NF \g_@@_titre_anglais_tl { \int_incr:N \l_tmpa_int } - \tl_if_empty:NF \g_@@_fichier_resume_anglais_tl + \tl_if_empty:NF \g_@@_fichier_resume_anglais_tl { \int_incr:N \l_tmpa_int } - \tl_if_empty:NF \g_@@_mots_cles_anglais_tl + \tl_if_empty:NF \g_@@_mots_cles_anglais_tl { \int_incr:N \l_tmpa_int } - \int_case:nnF { \l_tmpa_int } - { {0}{}{3}{} } - { - \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais} - \tl_gclear:N \g_@@_fichier_resume_anglais_tl % resume pas genere - } + \int_case:nnF { \l_tmpa_int } + { {0}{}{3}{} } + { + \msg_error:nn {udesgeniethese}{titre_resume_mots_cles_anglais} + \tl_gclear:N \g_@@_fichier_resume_anglais_tl % resume pas genere + } } \c_@@_langue_english_tl { - \tl_if_empty:NT \g_@@_titre_francais_tl - { \msg_error:nn {udesgeniethese}{titre_francais_vide} } - \tl_if_empty:NT \g_@@_mots_cles_francais_tl - { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} } - \tl_if_empty:NT \g_@@_fichier_resume_francais_tl - { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} } - \tl_if_empty:NT \g_@@_titre_anglais_tl - { \msg_error:nn {udesgeniethese}{titre_anglais_vide} } - \tl_if_empty:NT \g_@@_mots_cles_anglais_tl - { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} } - \tl_if_empty:NT \g_@@_fichier_resume_anglais_tl - { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} } + \tl_if_empty:NT \g_@@_titre_francais_tl + { \msg_error:nn {udesgeniethese}{titre_francais_vide} } + \tl_if_empty:NT \g_@@_mots_cles_francais_tl + { \msg_error:nn {udesgeniethese}{mots_cles_francais_vide} } + \tl_if_empty:NT \g_@@_fichier_resume_francais_tl + { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~francais}{fichierResumeFrancais} } + \tl_if_empty:NT \g_@@_titre_anglais_tl + { \msg_error:nn {udesgeniethese}{titre_anglais_vide} } + \tl_if_empty:NT \g_@@_mots_cles_anglais_tl + { \msg_error:nn {udesgeniethese}{mots_cles_anglais_vide} } + \tl_if_empty:NT \g_@@_fichier_resume_anglais_tl + { \msg_error:nnnn {udesgeniethese}{config_fichier_vide}{le~resume~anglais}{fichierResumeAnglais} } %</these> } } @@ -1111,7 +1131,6 @@ \@@_setup_mecanique \tl_gset:Nn \g_@@_essai_tl {GMC~809~Projet~en~génie~aérospatial} - \tl_if_eq:NNF \g_@@_type_tl \c_@@_type_essai_tl {\msg_error:nn {udesgeniethese}{aerospatial}} } @@ -1154,7 +1173,7 @@ \cs_new:Npn \@@_setup { - \tl_case:Nn \g_@@_langue_tl + \token_case_meaning:Nn \g_@@_langue_tl { \c_@@_langue_francais_tl { \selectlanguage{french} @@ -1174,7 +1193,7 @@ \renewcommand{\footrulewidth}{0pt} } - \tl_case:Nn \g_@@_format_tl + \token_case_meaning:Nn \g_@@_format_tl { \c_@@_format_livre_tl { @@ -1191,134 +1210,134 @@ \cfoot{\thepage} } } - %<these> %<these> \use:c {_@@_setup_ \g_@@_programme_tl} } \cs_new:Npn \@@_generer_page_titre { - { - \begin{titlepage} - \renewcommand*{\thepage}{T1} - \vspace*{-0.5 in} - \begin{center} - \begin{tabular}{c} - \Large \g_@@_udesname_tl \\ -%<protocole> \Large\g_@@_facultyname_tl -%<these> \Large\g_@@_facultyname_tl\\ -%<these> \Large\g_@@_departement_tl\\[0.5ex] - \end{tabular} - \vfill - \tl_case:Nn \g_@@_langue_tl - { - \c_@@_langue_francais_tl { - {\huge\g_@@_titre_francais_tl\par} - } - \c_@@_langue_english_tl { - \begin{otherlanguage}{french} - {\huge\g_@@_titre_francais_tl} - \end{otherlanguage}\par - {\Large\g_@@_titre_anglais_tl\par} - } + \group_begin: + \begin{titlepage} + \renewcommand*{\thepage}{T1} + \vspace*{-0.5 in} + \begin{center} + \begin{tabular}{c} + \Large \g_@@_udesname_tl \\ +%<protocole> \Large\g_@@_facultyname_tl +%<these> \Large\g_@@_facultyname_tl\\ +%<these> \Large\g_@@_departement_tl\\[0.5ex] + \end{tabular} + \vfill + \token_case_meaning:Nn \g_@@_langue_tl + { + \c_@@_langue_francais_tl { + {\huge\g_@@_titre_francais_tl\par} } - \vfill -%<these> \begin{tabular}{c} -%<these> \Large \use:c {g_@@_ \g_@@_type_tl _tl} -%<these> \clist_if_in:NVT \g_@@_specialite_cl \g_@@_type_tl -%<these> { -%<these> \\[0.5ex]\Large\g_@@_specialityname_tl\g_@@_specialite_tl -%<these> } -%<these> \end{tabular} -%<these> \vfill - \begin{tabular}{c} - {\Large\g_@@_auteur_prenom_tl\ \g_@@_auteur_nom_tl} - \end{tabular} - \vfill - {\Large \g_@@_adressname_tl \par \vspace{2ex}\g_@@_date_mois_tl\ \g_@@_date_annee_tl} - \end{center} - \end{titlepage} - \clearpage -%<protocole> \thispagestyle{empty} -%<protocole> \renewcommand*{\thepage}{T2} -%<protocole> \null\vfill -%<protocole> \c_@@_protocole_notice_tl\par -%<protocole> \textcopyright\g_@@_date_annee_tl\ \c_@@_protocole_droits_tl -%<protocole> \cleardoublepage -%<these> \clearpage -%<these> \if@openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi - } + \c_@@_langue_english_tl { + \begin{otherlanguage}{french} + {\huge\g_@@_titre_francais_tl} + \end{otherlanguage}\par + {\Large\g_@@_titre_anglais_tl\par} + } + } + \vfill +%<these> \begin{tabular}{c} +%<these> \Large \use:c {g_@@_ \g_@@_type_tl _tl} +%<these> \clist_if_in:NVT \g_@@_specialite_cl \g_@@_type_tl +%<these> { +%<these> \\[0.5ex]\Large\g_@@_specialityname_tl\g_@@_specialite_tl +%<these> } +%<these> \end{tabular} +%<these> \vfill + \begin{tabular}{c} + {\Large\g_@@_auteur_prenom_tl\ \g_@@_auteur_nom_tl} + \end{tabular} + \vfill + {\Large \g_@@_adressname_tl \par \vspace{2ex}\g_@@_date_mois_tl\ \g_@@_date_annee_tl} + \end{center} + \end{titlepage} +%<protocole> \thispagestyle{empty} +%<protocole> \renewcommand*{\thepage}{T2} +%<protocole> \null\vfill +%<protocole> \c_@@_protocole_notice_tl\par +%<protocole> \textcopyright\g_@@_date_annee_tl\ \c_@@_protocole_droits_tl +%<protocole> \cleardoublepage +%<these> \clearpage +%<these> \if@openright\null\thispagestyle{empty}\renewcommand*{\thepage}{T2}\cleardoublepage\fi + \group_end: } \cs_new:Npn \@@_generer_jury { - { - {\centering\chapter*{\g_@@_juryname_tl}} + \group_begin: + {\centering\chapter*{\g_@@_juryname_tl}} + + \begin{center} + \vspace{4ex} + \begin{tabular}{p{3in}} + \hfill\large\g_@@_jury_directeur_tl\hfill\null \\ \hline + \centering\small + \token_case_meaning:Nn \g_@@_jury_directeur_mf_tl + { + \c_@@_male_tl {\g_@@_jury_dirname_tl} + \c_@@_female_tl {\g_@@_jury_dirnamef_tl} + } + \end{tabular}\par - \begin{center} - \vspace{4ex} + \tl_if_empty:NF \g_@@_jury_codirecteurs_cl + { \vspace{6ex} } + + \clist_map_inline:Nn \g_@@_jury_codirecteurs_cl + { \begin{tabular}{p{3in}} - \hfill\large\g_@@_jury_directeur_tl\hfill\null \\ \hline + \hfill\large ##1 \hfill\null \\ \hline + \seq_gpop_left:NN \g_@@_jury_codirecteurs_mf_seq \l_tmpa_tl \centering\small - \tl_case:Nn \g_@@_jury_directeur_mf_tl + \token_case_meaning:Nn \l_tmpa_tl { - \c_@@_male_tl {\g_@@_jury_dirname_tl} - \c_@@_female_tl {\g_@@_jury_dirnamef_tl} + \c_@@_male_tl {\g_@@_jury_codirname_tl} + \c_@@_female_tl {\g_@@_jury_codirnamef_tl} } \end{tabular}\par + } - \tl_if_empty:NF \g_@@_jury_codirecteurs_cl - { \vspace{6ex} } - - \clist_map_inline:Nn \g_@@_jury_codirecteurs_cl - { - \begin{tabular}{p{3in}} - \hfill\large ##1 \hfill\null \\ \hline - \seq_gpop_left:NN \g_@@_jury_codirecteurs_mf_seq \l_tmpa_tl - \centering\small - \tl_case:Nn \l_tmpa_tl - { - \c_@@_male_tl {\g_@@_jury_codirname_tl} - \c_@@_female_tl {\g_@@_jury_codirnamef_tl} - } - \end{tabular}\par - } - - \tl_if_empty:NF \g_@@_jury_evaluateurs_cl - { \vspace{6ex} } + \tl_if_empty:NF \g_@@_jury_evaluateurs_cl + { \vspace{6ex} } - \clist_map_inline:Nn \g_@@_jury_evaluateurs_cl - { - \begin{tabular}{p{3in}} - \hfill\large ##1 \hfill\null \\ \hline - \seq_gpop_left:NN \g_@@_jury_evaluateurs_mf_seq \l_tmpa_tl - \centering\small - \tl_case:Nn \l_tmpa_tl - { - \c_@@_male_tl {\g_@@_jury_evalname_tl} - \c_@@_female_tl {\g_@@_jury_evalnamef_tl} - } - \end{tabular}\par - } - \end{center} + \clist_map_inline:Nn \g_@@_jury_evaluateurs_cl + { + \begin{tabular}{p{3in}} + \hfill\large ##1 \hfill\null \\ \hline + \seq_gpop_left:NN \g_@@_jury_evaluateurs_mf_seq \l_tmpa_tl + \centering\small + \token_case_meaning:Nn \l_tmpa_tl + { + \c_@@_male_tl {\g_@@_jury_evalname_tl} + \c_@@_female_tl {\g_@@_jury_evalnamef_tl} + } + \end{tabular}\par + } + \end{center} - \thispagestyle{empty}\clearpage - \if@openright\null\thispagestyle{empty}\cleardoublepage\fi - } + \thispagestyle{empty}\clearpage + \if@openright\null\thispagestyle{empty}\cleardoublepage\fi + \group_end: } \cs_new:Npn \@@_generer_dedicace { \tl_if_empty:NF \g_@@_dedicace_tl { - {\null\vfill\flushright - \begin{minipage}{0.5\linewidth} - \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em} - \g_@@_dedicace_tl - \end{minipage} - \vfill\vfill - \thispagestyle{empty}\clearpage - \if@openright\null\thispagestyle{empty}\cleardoublepage\fi} + \group_begin: + \null\vfill\flushright + \begin{minipage}{0.5\linewidth} + \setlength{\parskip}{1.5ex}\setlength{\parindent}{0em} + \g_@@_dedicace_tl + \end{minipage} + \vfill\vfill + \thispagestyle{empty}\clearpage + \if@openright\null\thispagestyle{empty}\cleardoublepage\fi + \group_end: } } @@ -1383,7 +1402,7 @@ { \@@_generer_jury } \@@_generer_resume_francais - \tl_case:Nn \g_@@_langue_tl + \token_case_meaning:Nn \g_@@_langue_tl { \c_@@_langue_francais_tl { \tl_if_blank:VF \g_@@_fichier_resume_anglais_tl @@ -1404,13 +1423,13 @@ \tableofcontents \if@openright\cleardoublepage\else\clearpage\fi - \bool_if:NT \g_@@_listeDesFigures_bool + \bool_if:NT \g_@@_liste_figures_bool { \listoffigures \if@openright\cleardoublepage\else\clearpage\fi } - \bool_if:NT \g_@@_listeDesTableaux_bool + \bool_if:NT \g_@@_liste_tableaux_bool { \listoftables \if@openright\cleardoublepage\else\clearpage\fi @@ -1448,7 +1467,7 @@ \refstepcounter{chapter} \addcontentsline{toc}{chapter}{\bibname} - \tl_case:Nn \g_@@_references_engin_tl + \token_case_meaning:Nn \g_@@_references_engin_tl { \c_@@_references_bibtex_tl { \bibliography{\g_@@_fichiers_references_cl} } @@ -1462,21 +1481,38 @@ %%----------------------------------------------------------------------------- %%--- GESTION AUTOMATISEE ------------------------------------------------- %%----------------------------------------------------------------------------- -\AtEndPreamble +\AddToHook{begindocument/before} { - \tl_case:Nn \g_@@_references_engin_tl + \bool_if:NTF \g_@@_legendes_min_bool + {\frenchsetup{SmallCapsFigTabCaptions=false}} + {\cs_gset:Npn \@@_caption_fmt #1 { \textsc{#1} }} + + \token_case_meaning:Nn \g_@@_references_engin_tl { \c_@@_references_bibtex_tl - { \bibliographystyle{\g_@@_style_references_tl} } + { + \IfPackageLoadedTF{biblatex} + {\msg_error:nn {udesgeniethese}{biblatex_en_trop}}{} + \bibliographystyle{\g_@@_style_references_tl} + } \c_@@_references_biblatex_tl { + \IfPackageLoadedTF{biblatex} + {}{\msg_error:nn {udesgeniethese}{biblatex_manquant}} + \clist_map_inline:Nn \g_@@_fichiers_references_cl - {\addbibresource{#1}} + { + \bool_if:nTF \g_@@_autobib_bool + { \addbibresource{#1.bib} } + { \addbibresource{#1} } + } } } + \@@_setup_captions } -\AfterEndPreamble{ +\AddToHook{begindocument/end} +{ \@@_validation \@@_setup \frontmatter @@ -1487,7 +1523,8 @@ \onehalfspacing } -\AtEndDocument{ +\AddToHook{enddocument} +{ % Si pas eu d'annexes avec \appendix \int_compare:nNnT {\g_@@_pages_int} = {0} { \int_gset:Nn \g_@@_pages_int {\value{page}} } @@ -1500,5 +1537,5 @@ \@@_generer_liste_references } %\end{implementation} -% \Finale +%\Finale \endinput diff --git a/macros/latex/contrib/udes-genie-these/udes-genie-these.ins b/macros/latex/contrib/udes-genie-these/udes-genie-these.ins index 2975ed180c..473fd9e0d2 100644 --- a/macros/latex/contrib/udes-genie-these/udes-genie-these.ins +++ b/macros/latex/contrib/udes-genie-these/udes-genie-these.ins @@ -1,5 +1,5 @@ %% udes-genie-these.dtx -%% Copyright 2022 Charles-Antoine Brunet +%% Copyright 2023 Charles-Antoine Brunet %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -10,7 +10,7 @@ %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is Charles-Antoine Brunet. %% %% This work consists of the files udes-genie-these.dtx and udes-genie-these.ins @@ -22,7 +22,7 @@ \preamble -Copyright 2022 Charles-Antoine Brunet +Copyright 2023 Charles-Antoine Brunet This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/udes-genie-these/udes-genie-these.pdf b/macros/latex/contrib/udes-genie-these/udes-genie-these.pdf Binary files differindex e834a41846..12bdda374b 100644 --- a/macros/latex/contrib/udes-genie-these/udes-genie-these.pdf +++ b/macros/latex/contrib/udes-genie-these/udes-genie-these.pdf diff --git a/macros/latex/contrib/wrapfig2/README.txt b/macros/latex/contrib/wrapfig2/README.txt index 45260e1909..b8169719a7 100644 --- a/macros/latex/contrib/wrapfig2/README.txt +++ b/macros/latex/contrib/wrapfig2/README.txt @@ -1,39 +1,47 @@ %%%% README.txt file -This README.txt for package wrapfig2[2023-02-23 v.6.1.1 ...] +This README.txt for package wrapfig2[2023-09-01 v.6.2.0 ...] This work is author maintained -This work consists of wrapfig2.dtx, the main file, this README.txt -and the derived files wrapfig2.pdf and wrapfig2.sty. +This work consists of wrapfig2.dtx, the main file, +this README.txt and the derived files wrapfig2.pdf +and wrapfig2.sty. -The package besides the source documented source file contains the -image file stele-todi-small.jpg, a slightly cropped image downloaded from -the internet site of the Gregorian Etruscan Museum in Rome. Apparently -this image is free provided the source is duly acknowledged. +The package besides the source documented source +file contains the image file stele-todi-small.jpg, +a slightly cropped image downloaded from the +internet site of the Gregorian Etruscan Museum in +Rome. Apparently this image is free provided the +source is duly acknowledged. Licence appended to the wrapfig2.sty file. -The software contained herein is a fork of Donald Arseneau wrapfig -package. It uses most of his code, but adds a new environment, -wraptext, to the existing wrapfigure and wraptable ones. - -Supposedly this software is backwards compatible with Arseneau's -original environments. Future experience may confirm this statement. - -The user commands are defined by means of the LaTeX3 functionalities. -Therefore this package does not work with LaTeX2e kernels older than -about 2018, although a warning is issued if the LaTeX format file is -older than 1st January 2019. In any case this package loading is -aborted in order to avoid conflicts, and in some other circumstances; -the error messages describe why the process was aborted. - -Version 6 of this package accepts options in the form key = value. -Options are available to fall back to version 5 and version 4. - -IMPORTANT NOTICE: An incompatibility with the amsmath package was -discovered, but it vanishes if amsmath is loaded after wrapfig2. -The source of this incompatibility was not discovered, therefore -wrapfig2 produces an error message when it is loaded after amsmath. +The software contained herein is a fork of Donald +Arseneau wrapfig package. It uses most of his code, +but adds a new environment, wraptext, to the +existing wrapfigure and wraptable ones. + +Supposedly this software is backwards compatible +with Arseneau's original environments. Future +experience may confirm this statement. + +The user commands are defined by means of the +LaTeX3 functionalities. Therefore this package does +not work with LaTeX2e kernels older than about +2018, although a warning is issued if the LaTeX +format file is older than 1st January 2019. +In any case this package loading is aborted in +order to avoid conflicts, and in some other +circumstances; the error messages describe why the +process was aborted. + +Version 6 of this package accepts options in the +form key = value. Options are available to fall +back to version 5 and version 4. + +IMPORTANT NOTICE: An incompatibility with the +amsmath package but with version 6.2.0 this +incompatibility was corrected. Claudio Beccari diff --git a/macros/latex/contrib/wrapfig2/wrapfig2.dtx b/macros/latex/contrib/wrapfig2/wrapfig2.dtx index f54c71c6c2..c7a30fa316 100644 --- a/macros/latex/contrib/wrapfig2/wrapfig2.dtx +++ b/macros/latex/contrib/wrapfig2/wrapfig2.dtx @@ -45,14 +45,14 @@ wrapfig2.sty and wrapfig2.pdf, plus this file README.txt. %<+package>\ProvidesPackage{wrapfig2}% %^^A<+readme>File README.txt for package wrapfig2 %<*package|readme> - [2023-02-23 v.6.1.1 Wrap text around figures, tables, framed text blocks] + [2023-09-01 v.6.2.0 Wrap text around figures, tables, framed text blocks] %</package|readme> %<*driver> % \documentclass{ltxdoc}\errorcontextlines=100 \hfuzz 10pt \usepackage[greek.ancient, english]{babel} -\usepackage[utf8]{inputenc} +\usepackage[utf8]{inputenc}% for vintage exec.s \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{mflogo} @@ -644,62 +644,21 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi %^^A %\end{description} % -% This version~6 has a more flexible way compared to version~5 -% to specify the details relative to the framed text, but they are -% relevant only for the \cs{includeframedtext} command; the syntax -% for the \Env{wraptext} environment opening command is identical. -% As it was previously shown, the syntax of environment \Env{wraptext} -% for version~6 and~5 is practically identical to the one used for the -% other two environments; actually, as it can be seen below in -% the code description of version~6 and~5, it has a fairly -% longer definition; it is required by the necessity of avoiding -% the \cs{caption} changes foreseen in package{wrapfig} when -% \pack{float} is used to define another floating object, but in -% effects the new definition of the \Env{wraptext} environment uses -% the same \cs{wrapfloat} and \cs{endwrapfloat} commands. -% -% In all three cases the \meta{width} parameter is a \emph{braced optional -% argument}; for the \Env{wraptext} environment its preset value is -% half the column width, that in one column typesetting mode -% coincides with the text width. The wrapped text is typeset -% in justified mode within a \cs{parbox} argument; the -% measure of this text box should not be too small (unless -% the text is less than one line long) otherwise the inter -% word spacing might be too large; at the same time the measure -% of the mini paragraph cannot be too large, otherwise the indented -% wrapping lines, generally justified, might get a bad word -% spacing. As it was already explained, it is reccommended to avoid -% specifying the optional \meta{widh} outside the range of 40\% to 60\% -% the column width. Actually specifying \texttt{0.2\cs{textwidth}} -% or \texttt{0.4\cs{columnwidth}} when typesetting in two column -% mode produces approximately the same result, because -% \cs{columnwidth} is a little less than half the \cs{textwidth}. -% In any case versions~6 and~5 of \Env{wrapfig2} reset any specified -% width outside the above range to the nearest range bound. +% This version~6 has a more flexible way compared to version~5 to specify the details relative to the framed text, but they are relevant only for the \cs{includeframedtext} command; the syntax for the \Env{wraptext} environment opening command is identical. As it was previously shown, the syntax of environment \Env{wraptext} for version~6 and~5 is practically identical to the one used for both other environments; actually, as it can be seen below in the code description of version~6 and~5, it has a fairly longer definition; it is required by the necessity of avoiding the \cs{caption} changes foreseen in package{wrapfig} when \pack{float} is used to define another floating object, but in effects the new definition of the \Env{wraptext} environment uses the same \cs{wrapfloat} and \cs{endwrapfloat} commands. +% +% In all three cases the \meta{width} parameter is a \emph{braced optional argument}; for the \Env{wraptext} environment its preset value is half the column width, that in one column typesetting mode coincides with the text width. The wrapped text is typeset in justified mode within a \cs{parbox} argument; the measure of this text box should not be too small (unless the text is less than one line long) otherwise the inter word spacing might be too large; at the same time the measure of the mini paragraph cannot be too large, otherwise the indented wrapping lines, generally justified, might get a bad word spacing. As it was already explained, it is recommended to avoid specifying the optional \meta{widh} outside the range of 40\% to 60\% the column width. Actually specifying \texttt{0.2\cs{textwidth}} or \texttt{0.4\cs{columnwidth}} when typesetting in two column mode produces approximately the same result, because \cs{columnwidth} is a little less than half the \cs{textwidth}. In any case versions~6 and~5 of \Env{wrapfig2} reset any specified width outside the above range to the nearest range bound. % %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \section{Remarks} %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The syntax of the original environments \amb{wrapfigure} and -% \amb{wraptable} has not been changed, except for a last optional -% star. The fact that the last \emph{braced argument is optional} does not -% change the backward compatibility with the original environments. -% -% Therefore the optional \meta{line number} argument maintains its -% meaning, unless the optional star is specified; in such a case that -% number assumes the meaning of a correction to the computed number -% of the indented lines. -% -% The mandatory \meta{location} maintains its meaning and the legal -% values are \texttt{l} (left), \texttt{r} (right), \texttt{L} -% (floating left), \texttt{R} (floating right), \texttt{i} -% (inner margin), \texttt{o} (outer margin), \texttt{I} -% (floating inner margin), \texttt{O} (floating outer margin). +% The syntax of the original environments \amb{wrapfigure} and \amb{wraptable} has not been changed, except for a last optional star. The fact that the last \emph{braced argument is optional} does not change the backward compatibility with the original environments. +% +% Therefore the optional \meta{line number} argument maintains its meaning, unless the optional star is specified; in such a case that number assumes the meaning of a correction to the computed number of the indented lines. +% +% The mandatory \meta{location} maintains its meaning and the legal values are \texttt{l} (left), \texttt{r} (right), \texttt{L} (floating left), \texttt{R} (floating right), \texttt{i} (inner margin), \texttt{o} (outer margin), \texttt{I} (floating inner margin), \texttt{O} (floating outer margin). % -% We tested all of them, but as a (possibly questionable) personal -% choice we prefer to place the wrapped object at the left of the text, -% without floating it and irrespective of the folio parity. +% We tested all of them, but as a (possibly questionable) personal choice we prefer to place the wrapped object at the left of the text, without floating it and irrespective of the folio parity. % %\begin{wraptext}{l}{0.5\textwidth}% %\includegraphics[width=\hsize]{stele-todi-small} @@ -884,15 +843,18 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % scenes uses a very heavy set of multifunctional macros that offer % functionalities that are not required for this problem. % -% Warm thanks also to Juan Luis Varona Malumbres for his precious -% feedback and his suggestions. +% Warm thanks also to Juan Luis Varona +% Malumbresfor his precious feedback and his +% suggestions. % -% Herbert Voß spotted the necessity to follow a specific loading -% order if the \pack{amsmath} needs to be used; he was so kind to -% send me a bug notice together with a minimum working example. -% Thanks a lot Herbert! The best I could do to manage this bug -% consisted in adding an error message, if \pack{wrapfig2} during its -% loading process found \pack{amsmath} already loaded. +% Herbert Voß spotted the necessity to follow a +% specific loading order if the \pack{amsmath} +% needs to be used; he was so kind to send me a +% bug notice together with a minimum working +% example. +% Thanks to Bruno Pagani whos pinpointed the exact +% point that conflicts with \pack{wrapfig2} so +% that I could fix this conflict. % %^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \CheckSum{1428} @@ -938,13 +900,14 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % % \begin{macrocode} \ifcsname c@WF@wrappedlines\endcsname -\PackageError{wrapfig2}{ \MessageBreak - ****************************************************\MessageBreak +\PackageError{wrapfig2}{ +\MessageBreak +**************************************************\MessageBreak Package `wrapfig' has already been loaded perhaps \MessageBreak by other packages, for example caption or subcaption.\MessageBreak Such packages are incompatible with wrapfig2 \MessageBreak Loading of`wrapfig2' is aborted \MessageBreak - ****************************************************\MessageBreak +**************************************************\MessageBreak }{You might type X <return> and might get along without\MessageBreak this package if you don't use the new environment \MessageBreak `wraptext' and the new commands; otherwise you get \MessageBreak @@ -954,31 +917,13 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % \end{macrocode} % -% {\color{red}{\paragraph{Loading order} Some users needed to use -% \pack{wrapfig2} in documents where they required also the -% \pack{amsmath} package functionalities; they noticed that some -% incompatibility showed up if package \pack{amsmath} was input -% before \pack{wrapfig2}. Such incompatibility vanishes if -% \pack{amsmath} is loaded \emph{after} \pack{wrapfig2}. This -% package now issues an error message if it finds \pack{amsmath} -% already loaded.}} -% \begin{macrocode} -\@ifpackageloaded{amsmath}{% - \PackageError{wrapfig2}{ \MessageBreak - +++++++++++++++++++++++++++++++++++++++++++\MessageBreak - Package amsmath already loaded \MessageBreak - If you need amsmath, load it after wrapfig2\MessageBreak - Expect error messages \MessageBreak - +++++++++++++++++++++++++++++++++++++++++++\MessageBreak - \MessageBreak - }{Abort the job}}{\relax} -% \end{macrocode} -% -% We keep the original definition of the \cs{WF@warning} and the -% original definition of the \opt{verbose} option; but we add the -% new \opt{WFold} and \opt{WFfive} options in order to fall back -% to the functionalities of the previous version~4 or~5, at least -% for what concerns the \Env{wraptext} environment. +% We keep the original definition of the +% \cs{WF@warning} and the original definition of +% the \opt{verbose} option; but we add the new +% \opt{WFold} and \opt{WFfive} options in order to +% fall back to the functionalities of the previous +% version~4 or~5, at least for what concerns the +% \Env{wraptext} environment. % % % \begin{macrocode} @@ -1040,6 +985,16 @@ X\ifdim\fontdimen1\font=0pt\kern-0.15em\fi % redefines some \pack{color} internal commands; everything is % explained in the \pack{xcolor} documentation.} % +% Here we have a little trick for avoiding +% conflicts with \pack{amsmath} and its|\text| +% command- +% \begin{macrocode} +\@ifpackageloaded{amsmath}{% +\let\amsmathtext\text +\AtEndPreamble{\let\text\amsmathtext}% +}{\relax} +% \end{macrocode} +% % In order to define the new floating object \texttt{text} we have % to load the package \pack{float}, but only if versions~5 or~6 % are used; in other words only if the \cs{ifWFnew} switch @@ -1210,13 +1165,11 @@ backgroundcolor, textcolor, fontstyle, radius, insertionwidth} % Here is the code of some extra macros and of the \Env{wraptext} % environment. % -% We start with two different \cs{includeframedtext}, one for -% version~6, that accepts \texttt{key=velue} options, and -% another one for version~5, that requires only a comma -% separated list of dimensional values. +% We start with two different \cs{includeframedtext}, one for version~6, that accepts \texttt{key=velue} options, and another one for version~5, that requires only a comma separated list of dimensional values. % \begin{macrocode} \ifbool{WFnew}{% -\NewDocumentCommand\includeframedtext{O{\insertwidth} m O{} o}{\bgroup% +\NewDocumentCommand\includeframedtext{% + O{\insertwidth} m O{} o}{\bgroup% \ExecuteOptionsX<wraptext>{#3}% executes possible key=value options \insertwidth=#1\WFscalewidth \framedbox{#2}{\fboxrule}{\fboxsep}[\radius]\egroup} @@ -1244,48 +1197,9 @@ backgroundcolor, textcolor, fontstyle, radius, insertionwidth} %\cs{includeframedtext}\oarg{text width}\marg{text}\oarg{dimensions}\oarg{radius} %\end{ttsintassi} % -% The optional \meta{text width} is the (possibly scaled) width computed -% by the \Env{wraptext} environment; but if the authors use this command -% outside the \Env{wraptext} environment, they should specify a width; -% in any case the default value is half the current measure -% \cs{linewidth}. The \meta{text} is the unformatted text to be wrapped; -% it will be boxed and framed by the service macro \cs{framedbox}; the -% \meta{dimensions} are passed on to \cs{framedbox} command; they are a -% comma separated list of dimensions, namely the thickness of the frame -% and the necessary frame distance from the formatted text. The -% \meta{options} contains a comma separated list of zero to nine options -% with the syntax \texttt{key=vale} that are going to be used by both -% the \cs{includeframedtext} and \cs{framedbox}. The last optional -% \meta{radius} is the curvature radius of the rounded frame corners; -% the default value is going to be set to \cs{fboxsep}: in -% version~5 \cs{framedbox} by default sets it equal to the frame -% separation width, while with version~6 its value is received with -% the option \texttt{radius=\meta{dimension}}; the default value is -% certainly the best one, but the users can specify a different value, -% of course not too different from the default one. See some examples -% in figure~\ref{fig:framed text}. -% -% The definition of the \cs{framedbox} command appears to be -% complicated; it is just an apparent complication due to the -% fact that it uses the powerful \cs{Curve} command that draws an -% arbitrary curved line or fills the area delimited by such -% curved line; it suffices to specify the nodes and the tangents -% to each node; the nodes are the points the line should pass -% through, their tangents may be specified with arbitrary vector -% components along the horizontal and vertical axes. For a -% rectangle such vector components are just 0 or $\pm 1$. The -% node coordinates of the rounded corners, on the opposite, must be -% determined with accuracy; we used the \cs{fpeval} function of -% package \pack{xfp}, that performs precise computations on operands -% in fractional decimal numbers; if the operands are dimensions, the -% operands are their fractional decimal values in printer points, the -% results of such operations are pure fractional decimal numbers -% without units; if the numerical result is to be interpreted again -% as the measure of a dimensional entity, \texttt{pt} must be appended -% to the assignments to a dimension register; within the \Env{picture} -% environment, any coordinate is expressed in multiples of -% \cs{unitlength}, therefore no unit of measure is necessary, once -% \cs{unitlength} has been specified. +% The optional \meta{text width} is the (possibly scaled) width computed by the \Env{wraptext} environment; but if the authors use this command outside the \Env{wraptext} environment, they should specify a width; in any case the default value is half the current measure \cs{linewidth}. The \meta{text} is the unformatted text to be wrapped; it will be boxed and framed by the service macro \cs{framedbox}; the \meta{dimensions} are passed on to \cs{framedbox} command; they are a comma separated list of dimensions, namely the thickness of the frame and the necessary frame distance from the formatted text. The \meta{options} contains a comma separated list of zero to nine options with the syntax \texttt{key=vale} that are going to be used by both the \cs{includeframedtext} and \cs{framedbox}. The last optional \meta{radius} is the curvature radius of the rounded frame corners; the default value is going to be set to \cs{fboxsep}: in version~5 \cs{framedbox} by default sets it equal to the frame separation width, while with version~6 its value is received with the option \texttt{radius=\meta{dimension}}; the default value is certainly the best one, but the users can specify a different value, of course not too different from the default one. See some examples in figure~\ref{fig:framed text}. +% +% The definition of the \cs{framedbox} command appears to be complicated; it is just an apparent complication due to the fact that it uses the powerful \cs{Curve} command that draws an arbitrary curved line or fills the area delimited by such curved line; it suffices to specify the nodes and the tangents to each node; the nodes are the points the line should pass through, their tangents may be specified with arbitrary vector components along the horizontal and vertical axes. For a rectangle such vector components are just 0 or $\pm 1$. The node coordinates of the rounded corners, on the opposite, must be determined with accuracy; we used the \cs{fpeval} function of package \pack{xfp}, that performs precise computations on operands in fractional decimal numbers; if the operands are dimensions, the operands are their fractional decimal values in printer points, the results of such operations are pure fractional decimal numbers without units; if the numerical result is to be interpreted again as the measure of a dimensional entity, \texttt{pt} must be appended to the assignments to a dimension register; within the \Env{picture} environment, any coordinate is expressed in multiples of \cs{unitlength}, therefore no unit of measure is necessary, once \cs{unitlength} has been specified. % % For a rectangle with curved corners of a given radius \cs{R} % we have four quarter circles joined by straight lines; therefore @@ -1307,10 +1221,10 @@ backgroundcolor, textcolor, fontstyle, radius, insertionwidth} \NewDocumentCommand\framedbox{ m m m O{#3}}{\bgroup \fboxrule=#2\fboxsep=#3\relax \setbox0\hbox{\fboxrule=\z@\fboxsep=#3\relax -\framebox{\parbox{% draw a framed box without the frame +\framebox{\parbox{% draw a framed box without the frame \fpeval{\insertwidth-2\fboxrule-2\fboxsep}\p@}{\textcolor{WFtext}{#1}}}} -\unitlength=\fpeval{\wd0/100}\p@ % set the picture \unitlength +\unitlength=\fpeval{\wd0/100}\p@ % set the picture \unitlength % determine the picture coordinates and displacement of the axes origin \edef\x{100}% \edef\y{\fpeval{(\ht0 +\dp0)/\unitlength}}% @@ -1464,15 +1378,15 @@ backgroundcolor, textcolor, fontstyle, radius, insertionwidth} \def\textplacement{#2}% \def\textcorrection{#1}% \def\textoverhang{#3}% - \IfBooleanTF{#5}{\PackageWarning{wrapfig2}{% + \IfBooleanT{#5}{\PackageWarning{wrapfig2}{% *********************************************\MessageBreak With wraptext the optional star is useless \MessageBreak because the first optional argument always \MessageBreak means the "lines number CORRECTION" \MessageBreak - *********************************************\MessageBreak}}{}%%%<------------------ + *********************************************\MessageBreak}} \bgroup\edef\x{\egroup\noexpand\wrapfloat{text}% [\textcorrection]{\textplacement}[\textoverhang]{\insertwidth}*}\x% - \def\caption{\unskip + \def\caption{\unskip\unskip \refstepcounter\@captype \let\@tempf\@caption \unless\ifcsname @float@c@\@captype\endcsname diff --git a/macros/latex/contrib/wrapfig2/wrapfig2.pdf b/macros/latex/contrib/wrapfig2/wrapfig2.pdf Binary files differindex 22c81080cf..823efb6847 100644 --- a/macros/latex/contrib/wrapfig2/wrapfig2.pdf +++ b/macros/latex/contrib/wrapfig2/wrapfig2.pdf |