diff options
author | Karl Berry <karl@freefriends.org> | 2024-02-20 21:06:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-02-20 21:06:15 +0000 |
commit | 9361ede47a4c03d1acf723fe20f227bcd2014b10 (patch) | |
tree | 44438982955109e3fe6a9fa892cbfb93062682a4 /Master/texmf-dist | |
parent | 6b2e72b5cd3b05306db196391125158562f09161 (diff) |
frenchmath (20feb24)
git-svn-id: svn://tug.org/texlive/trunk@70022 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/frenchmath/frenchmath.pdf | bin | 577443 -> 580598 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/frenchmath/frenchmath.dtx | 333 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/frenchmath/frenchmath.sty | 170 |
3 files changed, 319 insertions, 184 deletions
diff --git a/Master/texmf-dist/doc/latex/frenchmath/frenchmath.pdf b/Master/texmf-dist/doc/latex/frenchmath/frenchmath.pdf Binary files differindex d32e4471daa..7c77b5ac6ac 100644 --- a/Master/texmf-dist/doc/latex/frenchmath/frenchmath.pdf +++ b/Master/texmf-dist/doc/latex/frenchmath/frenchmath.pdf diff --git a/Master/texmf-dist/source/latex/frenchmath/frenchmath.dtx b/Master/texmf-dist/source/latex/frenchmath/frenchmath.dtx index 4e32e81e0ae..586972372b4 100644 --- a/Master/texmf-dist/source/latex/frenchmath/frenchmath.dtx +++ b/Master/texmf-dist/source/latex/frenchmath/frenchmath.dtx @@ -20,7 +20,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{frenchmath} - [2024/01/22 v2.8 .dtx frenchmath file] + [2024/02/20 v2.9 .dtx Typesetting mathematics according to French rules] %</package> %<*driver> \documentclass{ltxdoc} @@ -37,14 +37,18 @@ \definecolor{darkbrown}{rgb}{0.5,0.1,0.1} \allsectionsfont{\color{darkbrown}} -\DeclareSymbolFont{ugrfm}{U}{psy}{m}{n} % pour les lettres de upgreek avec l'option Symbol +% pour les lettres de upgreek avec l'option Symbol : +\DeclareSymbolFont{ugrfm}{U}{psy}{m}{n} \DeclareMathSymbol{\upalphasym}{\mathord}{ugrfm}{`a} \DeclareMathSymbol{\upbetasym}{\mathord}{ugrfm}{`b} \DeclareMathSymbol{\uppisym}{\mathord}{ugrfm}{`p} -\DeclareSymbolFont{cmsymbols}{OMS}{cmsy}{m}{n} % symbole \emptyset de computer modern +% symbole \emptyset de computer modern au cas où veut changer la police de ce doc : +\DeclareSymbolFont{cmsymbols}{OMS}{cmsy}{m}{n} \DeclareMathSymbol{\cmemptyset}{\mathord}{cmsymbols}{'73} % code octal dans cmsy -\DeclareTextSymbol{\textmicro}{TS1}{181} % mu de micro +% pour avoir le mu de micro : +\DeclareTextSymbol{\textmicro}{TS1}{181} \DeclareTextSymbolDefault{\textmicro}{TS1} + \DisableCrossrefs %\CodelineIndex %\RecordChanges @@ -65,7 +69,7 @@ %</driver> % \fi % -% \CheckSum{519} +% \CheckSum{594} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -172,12 +176,19 @@ % \changes{v2.8}{22/01/2024}{ % - Prise en compte de l'extension mathalpha qui fournit d'autres lettres cursives.} % +% \changes{v2.9}{17/02/2024}{ +% - Compatibilité entre amssymb et unicode-math réglée (par des relax) +% -> permet à la macro varnothing de garder l'aspect de amssymb, +% - compatibilité des options de lettres grecques avec unicode-math (XeLaTeX uniquement) +% -> nouvelles macros SaveGreekItalics et upgreekUndefined, +% - commentaires dans la doc pour la compatibilité avec unicode-math.} +% % \GetFileInfo{frenchmath.sty} % % \title{L'extension \textsf{frenchmath}\thanks{Ce document -% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 22/01/2024.}} +% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 20/02/2024.}} % \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} -% \date{22 janvier 2024} +% \date{20 février 2024} % \maketitle % % \section{Introduction} @@ -195,9 +206,9 @@ % des symboles français aux symboles anglais. % % D'autres solutions existent pour composer les majuscules mathématiques en romain, -% par exemple l'extension \textsf{unicode-math} mais qui doit être compilée -% avec \XeLaTeX\ ou \LuaLaTeX ; -% avec pdf\LaTeX\, nous avons les extensions \textsf{fourier} de Michel Bovani~\cite{FOUR} +% par exemple l'extension \textsf{unicode-math}~\cite{UNIC} mais qui doit être compilée +% avec \XeLaTeX\ ou \LuaLaTeX\ (et doit être chargée \emph{avant} \textsf{frenchmath}) ; +% pour pdf\LaTeX\, nous avons les extensions \textsf{fourier} de Michel Bovani~\cite{FOUR} % (avec la famille des fontes Adobe Utopia) % ou encore \textsf{mathdesign} de Paul Pichaureau~\cite{DESIGN} % (avec les polices Adobe Utopia, URW Garamond ou Bitstream Charter). @@ -219,10 +230,10 @@ % des ensembles de nombres |\R|, |\N|\ldots (pour $\mathbf{R}, \mathbf{N}\ldots$) % ainsi que celles relatives à la réalisation de feuilles d'exercices. % -% Mentionnons par ailleurs l'extension \textsf{tablvar}~\cite{TABL} qui permet de réaliser -% de jolis tableaux de variations, spécificité des mathématiques françaises, -% ou encore \textsf{tdsfrmath} de Yvon Henel~\cite{FRM} -% qui fournit également beaucoup de commandes francisées. +% Mentionnons par ailleurs l'extension \textsf{tdsfrmath} de Yvon Henel~\cite{FRM} +% qui fournit également beaucoup de commandes francisées ou encore +% \textsf{tablvar}~\cite{TABL} qui permet de réaliser +% de jolis tableaux de variations, spécificité des mathématiques françaises. % % Depuis la version 2.0, \textsf{frenchmath} propose deux options permettant % de composer les minuscules grecques du mode mathématique en forme droite. @@ -307,9 +318,9 @@ % séparateur décimal, il fait l'objet d'une extension séparée, % \textsf{decimalcomma}~\cite{DECC}, qui est chargée par \textsf{frenchmath} % (depuis la version 2.7). -% Mais il est alors impératif de charger \textsf{unicode-math} \emph{avant} -% \textsf{frenchmath} -% \footnote{L'extension \textsf{icomma} présente la même limitation et doit être chargé +% Mais si on utilise \textsf{unicode-math}, il est alors impératif de le charger +% \emph{avant} \textsf{frenchmath} +% \footnote{L'extension \textsf{icomma} présente la même limitation et doit être chargée % après \textsf{unicode-math}.}. % % \medskip @@ -340,7 +351,7 @@ % \footnote{D'autres solutions existent, % par exemple avec l'extension \textsf{interval} % ou encore avec la macro \texttt{\string\DeclarePairedDelimiter} -% de \textsf{mathtools}, mais utilisée avec des crochets, +% de \textsf{mathtools}~\cite{TOOLS}, mais utilisée avec des crochets, % cette dernière est incompatible avec \textsf{ibrackets}, % d'où la possibilité de désactiver \textsf{ibrackets}.}. % Le code @@ -381,7 +392,7 @@ % ($\mathcal{A}, \mathcal{B}, \mathcal{C}, \mathcal{D}\ldots$). % En principe \textsf{frenchmath} charge l'extension \textsf{mathrsfs} % qui fournit ces lettres cursives, -% sauf si la commande |\mathscr| est déjà définie par ailleurs, +% sauf si la commande |\mathscr| est définie par ailleurs, % en particulier si on utilise l'extension \textsf{mathdesign}~\cite{DESIGN} % ou l'option \texttt{scr} de \textsf{mathalpha}~\cite{MATAL} % \footnote{L'extension \textsf{mathalpha} de Michael Sharpe @@ -503,15 +514,15 @@ % \subsection{Lettres grecques} % La norme concernant l'usage des lettres grecques en italique ou en forme droite % pour les mathématiques françaises ne semble pas aussi claire que pour les lettres romaines -% et les auteurs -% divergent sur ce point. Plusieurs recommandent l'usage des lettres grecques -% minuscules en forme droite~\cite{FOUR}~\cite{DESIGN}~\cite{PMISO}, mais d'autres -% préconisent l'italique, +% et il y a parfois divergence sur ce point. +% Beaucoup recommandent l'usage des lettres grecques +% minuscules en forme droite~\cite{FOUR}~\cite{DESIGN}~\cite{PMISO}, mais certains +% auteurs préconisent l'italique, % comme pour toutes les variables mathématiques~\cite{AA}. % Le lexique des règles typographiques en usage à l’Imprimerie Nationale~\cite{RTIN} % les compose en forme droite et relativement grasses (p.108) % sans préciser s'il s'agit vraiment d'une règle -% s'appliquant aux variables, au même titre que celles énoncées pour l'alphabet latin. +% s'appliquant aux variables, au même titre que celle énoncée pour l'alphabet latin. % % \medskip % Pour les physiciens (et chimistes) l'affaire est plus claire puisque @@ -519,6 +530,8 @@ % romain (forme droite), conformément à la norme ISO~\cite{TYPMA}~\cite{NIST}~\cite{ICTNS}. % Ainsi la constante $\pi \approx 3,14$ ne s'écrit pas de la même manière % qu'une variable $\itpi$. +% +% \medskip % Dans la section \og How to get upright small Greek letters \fg, % la documentation de \textsf{isomath} de Günter Milde~\cite{ISOM} % expose différentes méthodes pour obtenir les lettres grecques @@ -531,8 +544,9 @@ % Citons également \textsf{newpxmath}, \textsf{newtxmath} % \footnote{L'extension \textsf{newtxmath} doit être chargée % après \textsf{frenchmath} qui utilise \textsf{amssymb} car la compilation -% produit sinon un message d'erreur pour la commande -% \texttt{\string\Bbbk}.} +% produit sinon un message d'erreur ; +% ou sinon on peut ajouter \texttt{\string\let\string\Bbbk\string\relax} +% avant de charger \textsf{frenchmath}.} % et \textsf{libertinust1math} % de Michael Sharpe, % \textsf{pxgreeks}, \textsf{txgreeks} @@ -546,20 +560,30 @@ % qui donnent de beaux résultats pour une utilisation avec % respectivement les polices Palatino, Times et Libertinus. % -% Enfin, comme pour les majuscules, \XeLaTeX\ ou \LuaLaTeX\ réalisent cette tâche -% automatiquement avec l'option \texttt{math-style=french} de l'extension \textsf{unicode-math}. -% -% \medskip % Jean-François Burnol a également développé l'extension \textsf{lgrmath}~\cite{LGR} % qui permet d'utiliser, en mode mathématique, les différentes fontes de lettres % grecques accessibles par \LaTeX\ avec l'encodage LGR. La documentation % de l'extension indique comment consulter et utiliser les fontes accessibles -% sur votre distribution. +% sur votre distribution. +% +% \medskip +% Enfin, comme pour les majuscules, l'extension \textsf{unicode-math} +% réalise cette tâche automatiquement avec l'option \texttt{math-style=french}, +% mais nécessite une compilation avec \XeLaTeX\ ou \LuaLaTeX. +% +% \medskip +% L'extension \textsf{frenchmath} fournit les options décrites ci-dessous +% afin d'obtenir les lettres grecques en forme droite. +% Ces options peuvent être utilisées y compris avec \textsf{unicode-math}, +% mais seulement en compilant avec \XeLaTeX\ et non pas \LuaLaTeX\ +% (et \textsf{unicode-math} doit être chargé +% \emph{avant} \textsf{frenchmath}). +% % % \medskip % \DescribeEnv{[lgrmath]} % En activant l'option \texttt{lgrmath}, \textsf{frenchmath} -% charge cette extension avec son option \texttt{style=french} +% charge l'extension du même nom avec son option \texttt{style=french} % et la fonte fcm (de l'extension \textsf{cm-lgc}) % \footnote{Évidemment il faut que \textsf{cm-lgc} soit installée % sur votre distribution sans quoi la fonte de substitution LGR/cmr/m/n sera utilisée.}. @@ -571,9 +595,18 @@ % $\alphait$, $\betait$, \ldots, $\piit$, etc. % Ces dernières sont peu à notre goût, mais on conserve les lettres % d'origine avec |\italpha|, |\itbeta| : $\italpha$, $\itbeta$, \ldots, $\itpi$, etc. +% +% \DescribeMacro{\SaveGreekItalics} % On peut aussi choisir d'autres fontes en chargeant l'extension -% \textsf{lgrmath} indépendamment de \textsf{frenchmath} -% (voir par exemple avec l'option \texttt{font=Alegreya-LF} ou \texttt{font=Cochineal-LF}). +% \textsf{lgrmath} indépendamment de \textsf{frenchmath} et sans son option \texttt{lgrmath} +% (voir par exemple les options \texttt{font=Alegreya-LF} ou \texttt{font=Cochineal-LF} +% de \textsf{lgrmath}). +% Dans ce cas, si on veut conserver les lettres italiques d'origine, +% il faut précéder le chargement +% de \textsf{lgrmath} de la commande |\SaveGreekItalics| ; +% et si on utilise \textsf{unicode-math}, il faut en outre placer cette commande +% et le |\usepackage[...]{lgrmath}| dans un |\AtBeginDocument|. + % % \medskip % \DescribeEnv{[upgreek]} @@ -586,6 +619,7 @@ % avec une police comme Times par exemple.} % utilisant la police Adobe Symbol et qui produit des lettres grecques assez grasses : % $\upalphasym$, $\upbetasym$, \ldots, $\uppisym$, etc. +% % Si l'on veut, par contre, utiliser l'extension \textsf{upgreek} % avec l'une des deux autres options disponibles, \texttt{Euler} % (qui produit $\upalpha, \upbeta, \ldots, \uppi$, etc.) @@ -594,10 +628,23 @@ % indépendamment de \textsf{frenchmath}. % Mais en conservant toutefois l'option \texttt{upgreek}, \textsf{frenchmath} % redéfinira les commandes |\alpha|, |\beta|, etc. -% pour composer automatiquement les lettres en forme droite ; -% les formes italiques d'origine, -% restant toujours disponibles avec les commandes -% |\italpha|, |\itbeta|, \ldots, |\itpi|, etc. +% pour composer automatiquement les lettres en forme droite +% (comme alias de |\upalpha|, |\upbeta|\ldots). +% +% \DescribeMacro{\upgreekUndefined} +% Comme pour \textsf{lgrmath}, si on veut que les formes italiques d'origine +% restent toujours disponibles avec les commandes +% |\italpha|, |\itbeta|, \ldots, |\itpi|, etc., +% il faut précéder le chargement de l'extension \textsf{upgreek} de la commande +% |\SaveGreekItalics| ; +% et si l'on utilise \textsf{unicode-math}, il faut en outre ajouter la commande +% |\upgreekUndefined| avant le |\usepackage[...]{upgreek}| et les trois +% dans un |\AtBeginDocument| placé entre le chargement de \textsf{unicode-math} +% et celui de \textsf{frenchmath} +% \footnote{Tout cela est bien contraignant mais c'est lié au fonctionnement capricieux +% de \textsf{unicode-math} qui génère de nombreuses incompatibilités. Ceci dit, +% on n'a en principe besoin de nos options de lettres grecques droites que si l'on n'est +% pas satisfait de celles fournies par \textsf{unicode-math}.}. % % \medskip % \DescribeEnv{[Upgreek]} @@ -630,6 +677,7 @@ % (depuis 2020) car elle redéfinit \texttt{\string\textmu}.}, % disponible en mode texte dans beaucoup de fontes (ou avec \textsf{textcomp}) ; % il diffère du $\mu$ droit mathématique. +% % \StopEventually{} % % \section{Le code} @@ -637,49 +685,52 @@ % \begin{macrocode} \newif\ifcapsit \DeclareOption{capsit}{\capsittrue} -\newif\iffrenchmathgreek % pour sauvegarder les lettres d'origine \newif\iflgrmath -\DeclareOption{lgrmath}{\lgrmathtrue\frenchmathgreektrue} +\DeclareOption{lgrmath}{\lgrmathtrue} \newif\ifupgreek -\DeclareOption{upgreek}{\upgreektrue\frenchmathgreektrue} +\DeclareOption{upgreek}{\upgreektrue} \newif\ifUpgreek -\DeclareOption{Upgreek}{\Upgreektrue\upgreektrue\frenchmathgreektrue} +\DeclareOption{Upgreek}{\Upgreektrue\upgreektrue} \newif\ifnoibrackets \DeclareOption{noibrackets}{\noibracketstrue} \ProcessOptions \relax -\AtBeginDocument{ +\@ifpackageloaded{unicode-math}{ \@ifpackageloaded{mathdesign}{ - \PackageInfo{frenchmath}{Package mathdesign + \PackageInfo{frenchmath}{Package mathdesign is loaded, \MessageBreak - I don't load mathrsfs and amssymb packages} + I don't load mathrsfs and amssymb} + }{ + %\let\circledS\relax % utilisé uniquement par mathdesign + \let\eth\relax % 3 incompatibilités unicode-math / amssymb + \let\digamma\relax + \let\backepsilon\relax + \RequirePackage{amssymb} + \PackageInfo{frenchmath}{Package unicode-math + is loaded, \MessageBreak + I don't load mathrsfs} + } + \let\vide\varnothing % \varnothing sera écrasé par unicode-math +}{ + \AtBeginDocument{ + \@ifpackageloaded{mathdesign}{ + \PackageInfo{frenchmath}{Package mathdesign + is loaded, \MessageBreak + I don't load mathrsfs and amssymb} }{ \RequirePackage{amssymb} % \leqslant, \geqslant, \varnothing - \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{} + \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{ + \PackageInfo{frenchmath}{Command \string\mathscr\space + already defined, \MessageBreak + I don't load mathrsfs} + } } + } } \RequirePackage{amsopn} % fournit \DeclareMathOperator \@ifpackageloaded{mathptmx}{\RequirePackage{dotlessj}}{} - -% \end{macrocode} -% Ce n'est qu'à la fin du préambule, donc avec |\AtBeginDocument|, que l'on examine -% si les extensions \textsf{lgrmath} ou \textsf{upgreek} sont déjà chargées, -% pour laisser à l'utilisateur la possibilité de les charger après \textsf{frenchmath} -% et éviter un conflit d'option. -% \begin{macrocode} -\AtBeginDocument{ - \iflgrmath - \@ifpackageloaded{lgrmath}{}{ - \RequirePackage[font=fcm,style=french]{lgrmath}} - \fi - \ifupgreek - \@ifpackageloaded{upgreek}{}{ - \RequirePackage[Symbol]{upgreek}} - \fi -} \RequirePackage{xspace} % utile pour les commandes \ssi, \Oij \ifnoibrackets\else\RequirePackage{ibrackets}\fi % intelligent brackets - \RequirePackage{decimalcomma} % depuis frenchmath 2.7 % \end{macrocode} @@ -706,7 +757,8 @@ % Cette macro a été définie de manière identique dans \textsf{mismath}, % mais cela ne génère pas d'incompatibilité.}. % |\AtBeginDocument| est nécessaire pour que ces définitions -% soient prises en compte avec la classe \textsf{beamer} par exemple. +% soient prises en compte avec la classe \textsf{beamer} par exemple, +% ou avec \textsf{unicode-math}. % \smallskip % \begin{macrocode} \newcommand*\DeclareMathUp[1]{ @@ -717,9 +769,8 @@ \else #1{#2}\afterfi@{\apply@#1}\fi} \def\afterfi@#1#2\fi{\fi#1} -\ifcapsit\else - \AtBeginDocument{ - \apply\DeclareMathUp{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} +\ifcapsit\else\AtBeginDocument{ + \apply\DeclareMathUp{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} } \fi @@ -732,7 +783,7 @@ \newcommand\curs{\mathscr} \newcommand\infeg{\leqslant} \newcommand\supeg{\geqslant} -\newcommand\vide{\varnothing} +\@ifundefined{vide}{\newcommand\vide{\varnothing}}{} % \end{macrocode} % La définition de |\paral| remplace, depuis la version 2.2, % l'ancienne définition plus simple |\mathrel{/\!\!/}|, mais qui donnait des barres @@ -798,53 +849,92 @@ \xspace} % \end{macrocode} -% On sauvegarde les lettres grecques d'origine dans les macros |\italpha|, \ldots, |\itomega|. -% Le booléen |frenchmathgreek| a été activé par les options de lettres grecques -% \texttt{lgrmath}, \texttt{upgreek} ou \texttt{Upgreek}. +% Ce n'est qu'à la fin du préambule, donc avec |\AtBeginDocument|, que l'on examine +% les options \texttt{lgrmath} ou \texttt{upgreek}, +% pour que cela fonctionne avec \textsf{unicode-math} et +% pour laisser à l'utilisateur la possibilité de charger \textsf{upgreek} +% après \textsf{frenchmath} et éviter un conflit d'option. +% On sauvegarde les lettres grecques d'origine dans les macros |\italpha|, \ldots, |\itomega|, +% grâce à la commande |\SavedGreekItalics|. +% La macro |\upgreekUndefined| ne sert que si l'on veut utiliser \textsf{upgreek} +% avec \textsf{unicode-math} : elle permet de \og vider \fg la définition +% de |\upalpha|, |\upbeta|\ldots, car sinon leur redéfinition par \textsf{upgreek} +% est impossible. % \begin{macrocode} -\iffrenchmathgreek - \@ifundefined{italpha}{\let\italpha\alpha}{ - \PackageWarningNoLine{frenchmath}{Command - \string\italpha\space already exist \MessageBreak - and will not be redefined, \MessageBreak - no more warning for the other Greek letters, \MessageBreak - except pi} - } - \@ifundefined{itbeta}{\let\itbeta\beta}{} - \@ifundefined{itgamma}{\let\itgamma\gamma}{} - \@ifundefined{itdelta}{\let\itdelta\delta}{} - \@ifundefined{itepsilon}{\let\itepsilon\epsilon}{} - \@ifundefined{itzeta}{\let\itzeta\zeta}{} - \@ifundefined{iteta}{\let\iteta\eta}{} - \@ifundefined{ittheta}{\let\ittheta\theta}{} - \@ifundefined{itiota}{\let\itiota\iota}{} - \@ifundefined{itkappa}{\let\itkappa\kappa}{} - \@ifundefined{itlambda}{\let\itlambda\lambda}{} - \@ifundefined{itmu}{\let\itmu\mu}{} - \@ifundefined{itnu}{\let\itnu\nu}{} - \@ifundefined{itxi}{\let\itxi\xi}{} - \@ifundefined{itpi}{\let\itpi\pi}{ - \PackageWarningNoLine{frenchmath}{Command - \string\itpi\space already exist \MessageBreak - and will not be redefined} - } - \@ifundefined{itrho}{\let\itrho\rho}{} - \@ifundefined{itsigma}{\let\itsigma\sigma}{} - \@ifundefined{ittau}{\let\ittau\tau}{} - \@ifundefined{itupsilon}{\let\itupsilon\upsilon}{} - \@ifundefined{itphi}{\let\itphi\phi}{} - \@ifundefined{itchi}{\let\itchi\chi}{} - \@ifundefined{itpsi}{\let\itpsi\psi}{} - \@ifundefined{itomega}{\let\itomega\omega}{} - \@ifundefined{itvarepsilon}{\let\itvarepsilon\varepsilon}{} - \@ifundefined{itvartheta}{\let\itvartheta\vartheta}{} - \@ifundefined{itvarpi}{\let\itvarpi\varpi}{} - \@ifundefined{itvarsigma}{\let\itvarsigma\varsigma}{} - \@ifundefined{itvarphi}{\let\itvarphi\varphi}{} -\fi +\newcommand\SaveGreekItalics{ + \let\italpha\alpha + \let\itbeta\beta + \let\itgamma\gamma + \let\itdelta\delta + \let\itepsilon\epsilon + \let\itzeta\zeta + \let\iteta\eta + \let\ittheta\theta + \let\itiota\iota + \let\itkappa\kappa + \let\itlambda\lambda + \let\itmu\mu + \let\itnu\nu + \let\itxi\xi + \let\itpi\pi + \let\itrho\rho + \let\itsigma\sigma + \let\ittau\tau + \let\itupsilon\upsilon + \let\itphi\phi + \let\itchi\chi + \let\itpsi\psi + \let\itomega\omega + \let\itvarepsilon\varepsilon + \let\itvartheta\vartheta + \let\itvarpi\varpi + \let\itvarsigma\varsigma + \let\itvarphi\varphi +} + +\newcommand\upgreekUndefined{ + \let\upalpha\@undefined + \let\upbeta\@undefined + \let\upgamma\@undefined + \let\updelta\@undefined + \let\upepsilon\@undefined + \let\upzeta\@undefined + \let\upeta\@undefined + \let\uptheta\@undefined + \let\upiota\@undefined + \let\upkappa\@undefined + \let\uplambda\@undefined + \let\upmu\@undefined + \let\upnu\@undefined + \let\upxi\@undefined + \let\uppi\@undefined + \let\uprho\@undefined + \let\upsigma\@undefined + \let\uptau\@undefined + \let\upupsilon\@undefined + \let\upphi\@undefined + \let\upchi\@undefined + \let\uppsi\@undefined + \let\upomega\@undefined + \let\upvarepsilon\@undefined + \let\upvartheta\@undefined + \let\upvarpi\@undefined + \let\upvarrho\@undefined + \let\upvarsigma\@undefined + \let\upvarphi\@undefined +} \AtBeginDocument{ + \iflgrmath + \SaveGreekItalics + \RequirePackage[font=fcm,style=french]{lgrmath} + \fi \ifupgreek + \@ifpackageloaded{upgreek}{}{ + \@ifpackageloaded{unicode-math}{\upgreekUndefined}{} + \SaveGreekItalics + \RequirePackage[Symbol]{upgreek} + } \renewcommand\alpha{\upalpha} \renewcommand\beta{\upbeta} \renewcommand\gamma{\upgamma} @@ -875,8 +965,8 @@ \renewcommand\varsigma{\upvarsigma} \renewcommand\varphi{\upvarphi} \fi - \ifUpgreek + % unicode-math utilise \upGamma, \upDelta... \renewcommand\Gamma{\Upgamma} \renewcommand\Delta{\Updelta} \renewcommand\Theta{\Uptheta} @@ -893,7 +983,7 @@ % \end{macrocode} % % \medskip -% \begin{thebibliography}{29} +% \begin{thebibliography}{31} % \begin{raggedright} % \bibitem{RTIN} \emph{Lexique des règles typographiques en usage à l’Imprimerie Nationale}, % édition du 26/08/2002. @@ -921,18 +1011,21 @@ % Claudio Beccari, CTAN, v1.2.00 2021/08/04. % \bibitem{MAFR} \emph{La distribution \textsf{mafr}}, Christian Obrecht, % CTAN, v1.0 17/09/2006. +% \bibitem{UNIC} \emph{Experimental Unicode mathematical typesetting: +% The \textsf{unicode-math} package}, Will Robertson, Philipp Stephani, Joseph Wright, +% Khaled Hosny, and others, CTAN, v0.8r 13/08/2023. % \bibitem{FOUR} \textsf{Fourier-GUT\hspace{-0.1em}\emph{enberg}}, % Michel Bovani, CTAN, v1.3 30/01/2005. % \bibitem{DESIGN} \emph{The \textsf{mathdesign} package}, % Paul Pichaureau, CTAN, v2.31 29/08/2013. % \bibitem{MIS} \emph{\textsf{mismath} -- Miscellaneous mathematical macros}, -% Antoine Missier, CTAN, v2.8 27/07/2023. +% Antoine Missier, CTAN, v2.10 20/02/2024. % \bibitem{VECT} \emph{\textsf{esvect} -- Typesetting vectors with beautiful % arrow with \LaTeXe}, Eddie Saudrais, CTAN, v1.3 11/07/2013. -% \bibitem{TABL} \emph{L'extension \textsf{tablvar}}, Antoine Missier, -% CTAN, v2.0 23/12/2023. % \bibitem{FRM} \emph{L'extension \textsf{tdsfrmath}}, Yvon Henel, % CTAN, v1.3 22/06/2009. +% \bibitem{TABL} \emph{L'extension \textsf{tablvar}}, Antoine Missier, +% CTAN, v2.0 23/12/2023. % \bibitem{BABEL} \emph{A Babel language definition file for French}, extension \LaTeX\ % \textsf{babel-french} de Daniel Flipo, CTAN, v3.5c 14/09/2018. % \bibitem{ICOMMA} \emph{The \textsf{icomma} package for \LaTeXe}. @@ -943,9 +1036,11 @@ % 2011, No.\@1. % \url{https://tug.org/pracjourn/2011-1/beccari/Intcomma.pdf} % \bibitem{DECC} \emph{The \textsf{decimalcomma} package}. Antoine Missier, -% CTAN, v1.1 19/12/2023. +% CTAN, v1.4 30/12/2023. % \bibitem{BRACKETS} \emph{Intelligent brackets -- The \textsf{ibrackets} package}, -% Antoine Missier, v1.1 26/12/2022. +% Antoine Missier, v1.2 26/07/2023. +% \bibitem{TOOLS} \emph{The \textsf{mathtools} package}, +% Morten Høgholm, Lars Madsen and the \LaTeX3 project, CTAN v1.29 29/06/2022. % \bibitem{MATAL} \emph{The \textsf{mathalpha}, \textsc{aka} \textsf{mathalfa} package}, % Michael Sharpe, CTAN, v1.143 18/11/2021. % \bibitem{DLJ} \emph{\textsf{dotlessj}}, David Carlisle, CTAN, v0.03 09/12/1998. diff --git a/Master/texmf-dist/tex/latex/frenchmath/frenchmath.sty b/Master/texmf-dist/tex/latex/frenchmath/frenchmath.sty index 029f45a9029..73513cfb339 100644 --- a/Master/texmf-dist/tex/latex/frenchmath/frenchmath.sty +++ b/Master/texmf-dist/tex/latex/frenchmath/frenchmath.sty @@ -22,46 +22,56 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{frenchmath} - [2024/01/22 v2.8 .dtx frenchmath file] + [2024/02/20 v2.9 .dtx Typesetting mathematics according to French rules] + \newif\ifcapsit \DeclareOption{capsit}{\capsittrue} -\newif\iffrenchmathgreek % pour sauvegarder les lettres d'origine \newif\iflgrmath -\DeclareOption{lgrmath}{\lgrmathtrue\frenchmathgreektrue} +\DeclareOption{lgrmath}{\lgrmathtrue} \newif\ifupgreek -\DeclareOption{upgreek}{\upgreektrue\frenchmathgreektrue} +\DeclareOption{upgreek}{\upgreektrue} \newif\ifUpgreek -\DeclareOption{Upgreek}{\Upgreektrue\upgreektrue\frenchmathgreektrue} +\DeclareOption{Upgreek}{\Upgreektrue\upgreektrue} \newif\ifnoibrackets \DeclareOption{noibrackets}{\noibracketstrue} \ProcessOptions \relax -\AtBeginDocument{ +\@ifpackageloaded{unicode-math}{ + \@ifpackageloaded{mathdesign}{ + \PackageInfo{frenchmath}{Package mathdesign + is loaded, \MessageBreak + I don't load mathrsfs and amssymb} + }{ + %\let\circledS\relax % utilisé uniquement par mathdesign + \let\eth\relax % 3 incompatibilités unicode-math / amssymb + \let\digamma\relax + \let\backepsilon\relax + \RequirePackage{amssymb} + \PackageInfo{frenchmath}{Package unicode-math + is loaded, \MessageBreak + I don't load mathrsfs} + } + \let\vide\varnothing % \varnothing sera écrasé par unicode-math +}{ + \AtBeginDocument{ \@ifpackageloaded{mathdesign}{ \PackageInfo{frenchmath}{Package mathdesign is loaded, \MessageBreak - I don't load mathrsfs and amssymb packages} + I don't load mathrsfs and amssymb} }{ \RequirePackage{amssymb} % \leqslant, \geqslant, \varnothing - \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{} + \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{ + \PackageInfo{frenchmath}{Command \string\mathscr\space + already defined, \MessageBreak + I don't load mathrsfs} + } } + } } \RequirePackage{amsopn} % fournit \DeclareMathOperator \@ifpackageloaded{mathptmx}{\RequirePackage{dotlessj}}{} - -\AtBeginDocument{ - \iflgrmath - \@ifpackageloaded{lgrmath}{}{ - \RequirePackage[font=fcm,style=french]{lgrmath}} - \fi - \ifupgreek - \@ifpackageloaded{upgreek}{}{ - \RequirePackage[Symbol]{upgreek}} - \fi -} \RequirePackage{xspace} % utile pour les commandes \ssi, \Oij \ifnoibrackets\else\RequirePackage{ibrackets}\fi % intelligent brackets - \RequirePackage{decimalcomma} % depuis frenchmath 2.7 \newcommand*\DeclareMathUp[1]{ @@ -72,9 +82,8 @@ \else #1{#2}\afterfi@{\apply@#1}\fi} \def\afterfi@#1#2\fi{\fi#1} -\ifcapsit\else - \AtBeginDocument{ - \apply\DeclareMathUp{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} +\ifcapsit\else\AtBeginDocument{ + \apply\DeclareMathUp{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} } \fi @@ -84,7 +93,7 @@ \newcommand\curs{\mathscr} \newcommand\infeg{\leqslant} \newcommand\supeg{\geqslant} -\newcommand\vide{\varnothing} +\@ifundefined{vide}{\newcommand\vide{\varnothing}}{} \newcommand\paral{\mathrel{\ooalign{$\mkern-1.75mu/\mkern1.75mu$\cr% $\mkern1.75mu/\mkern-1.75mu$}}} \newcommand\ssi{si, et seulement si,\xspace} @@ -138,49 +147,80 @@ \vec{\vphantom{t}\smash{k}}\,\right)}% \xspace} -\iffrenchmathgreek - \@ifundefined{italpha}{\let\italpha\alpha}{ - \PackageWarningNoLine{frenchmath}{Command - \string\italpha\space already exist \MessageBreak - and will not be redefined, \MessageBreak - no more warning for the other Greek letters, \MessageBreak - except pi} - } - \@ifundefined{itbeta}{\let\itbeta\beta}{} - \@ifundefined{itgamma}{\let\itgamma\gamma}{} - \@ifundefined{itdelta}{\let\itdelta\delta}{} - \@ifundefined{itepsilon}{\let\itepsilon\epsilon}{} - \@ifundefined{itzeta}{\let\itzeta\zeta}{} - \@ifundefined{iteta}{\let\iteta\eta}{} - \@ifundefined{ittheta}{\let\ittheta\theta}{} - \@ifundefined{itiota}{\let\itiota\iota}{} - \@ifundefined{itkappa}{\let\itkappa\kappa}{} - \@ifundefined{itlambda}{\let\itlambda\lambda}{} - \@ifundefined{itmu}{\let\itmu\mu}{} - \@ifundefined{itnu}{\let\itnu\nu}{} - \@ifundefined{itxi}{\let\itxi\xi}{} - \@ifundefined{itpi}{\let\itpi\pi}{ - \PackageWarningNoLine{frenchmath}{Command - \string\itpi\space already exist \MessageBreak - and will not be redefined} - } - \@ifundefined{itrho}{\let\itrho\rho}{} - \@ifundefined{itsigma}{\let\itsigma\sigma}{} - \@ifundefined{ittau}{\let\ittau\tau}{} - \@ifundefined{itupsilon}{\let\itupsilon\upsilon}{} - \@ifundefined{itphi}{\let\itphi\phi}{} - \@ifundefined{itchi}{\let\itchi\chi}{} - \@ifundefined{itpsi}{\let\itpsi\psi}{} - \@ifundefined{itomega}{\let\itomega\omega}{} - \@ifundefined{itvarepsilon}{\let\itvarepsilon\varepsilon}{} - \@ifundefined{itvartheta}{\let\itvartheta\vartheta}{} - \@ifundefined{itvarpi}{\let\itvarpi\varpi}{} - \@ifundefined{itvarsigma}{\let\itvarsigma\varsigma}{} - \@ifundefined{itvarphi}{\let\itvarphi\varphi}{} -\fi +\newcommand\SaveGreekItalics{ + \let\italpha\alpha + \let\itbeta\beta + \let\itgamma\gamma + \let\itdelta\delta + \let\itepsilon\epsilon + \let\itzeta\zeta + \let\iteta\eta + \let\ittheta\theta + \let\itiota\iota + \let\itkappa\kappa + \let\itlambda\lambda + \let\itmu\mu + \let\itnu\nu + \let\itxi\xi + \let\itpi\pi + \let\itrho\rho + \let\itsigma\sigma + \let\ittau\tau + \let\itupsilon\upsilon + \let\itphi\phi + \let\itchi\chi + \let\itpsi\psi + \let\itomega\omega + \let\itvarepsilon\varepsilon + \let\itvartheta\vartheta + \let\itvarpi\varpi + \let\itvarsigma\varsigma + \let\itvarphi\varphi +} + +\newcommand\upgreekUndefined{ + \let\upalpha\@undefined + \let\upbeta\@undefined + \let\upgamma\@undefined + \let\updelta\@undefined + \let\upepsilon\@undefined + \let\upzeta\@undefined + \let\upeta\@undefined + \let\uptheta\@undefined + \let\upiota\@undefined + \let\upkappa\@undefined + \let\uplambda\@undefined + \let\upmu\@undefined + \let\upnu\@undefined + \let\upxi\@undefined + \let\uppi\@undefined + \let\uprho\@undefined + \let\upsigma\@undefined + \let\uptau\@undefined + \let\upupsilon\@undefined + \let\upphi\@undefined + \let\upchi\@undefined + \let\uppsi\@undefined + \let\upomega\@undefined + \let\upvarepsilon\@undefined + \let\upvartheta\@undefined + \let\upvarpi\@undefined + \let\upvarrho\@undefined + \let\upvarsigma\@undefined + \let\upvarphi\@undefined +} \AtBeginDocument{ + \iflgrmath + \SaveGreekItalics + \RequirePackage[font=fcm,style=french]{lgrmath} + \fi \ifupgreek + \@ifpackageloaded{upgreek}{}{ + \@ifpackageloaded{unicode-math}{\upgreekUndefined}{} + \SaveGreekItalics + \RequirePackage[Symbol]{upgreek} + } \renewcommand\alpha{\upalpha} \renewcommand\beta{\upbeta} \renewcommand\gamma{\upgamma} @@ -211,8 +251,8 @@ \renewcommand\varsigma{\upvarsigma} \renewcommand\varphi{\upvarphi} \fi - \ifUpgreek + % unicode-math utilise \upGamma, \upDelta... \renewcommand\Gamma{\Upgamma} \renewcommand\Delta{\Updelta} \renewcommand\Theta{\Uptheta} |