% \iffalse meta-comment % % Copyright (C) 2019-2022 by Antoine Missier % % This file may be distributed and/or modified under the conditions of % the LaTeX Project Public License, either version 1.3 of this license % or (at your option) any later version. The latest version of this % license is in: % % http://www.latex-project.org/lppl.txt % % and version 1.3 or later is part of all distributions of LaTeX version % 2005/12/01 or later. % \fi % % \iffalse %<*driver> \ProvidesFile{frenchmath.dtx} % %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{frenchmath} [2022/12/26 v2.3 .dtx frenchmath file] % %<*driver> \documentclass{ltxdoc} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \usepackage[font=fcm]{lgrmath} \usepackage{mathpazo} \usepackage[upgreek]{frenchmath} \usepackage{textalpha} \usepackage{metalogo} % pour les logos XeLaTeX et LuaLaTeX \DeclareSymbolFont{cmsymbols}{OMS}{cmsy}{m}{n} % symbole \emptyset de computer modern \DeclareMathSymbol{\cmemptyset}{\mathord}{cmsymbols}{'73} % code octal dans cmsy \DeclareTextSymbol{\textmicro}{TS1}{181} % mu de micro \DeclareTextSymbolDefault{\textmicro}{TS1} \DisableCrossrefs %\CodelineIndex %\RecordChanges \usepackage{hyperref} \hypersetup{% colorlinks, linkcolor=blue, citecolor=red, pdftitle={frenchmath}, pdfsubject={LaTeX package}, pdfauthor={Antoine Missier} } \begin{document} \DocInput{frenchmath.dtx} %\PrintChanges %\PrintIndex \end{document} % % \fi % % \CheckSum{541} % % \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 % Lower-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 % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \changes{v0.1}{27/12/2011}{Version personnelle préliminaire} % \changes{v1.0}{15/01/2019}{ % - Première version publiée, création des fichiers dtx et ins} % % \changes{v1.1}{07/04/2019}{ % - Nouvelles macros pour les repères (Oij, Oijk), % - ajouté ensuremath dans curs} % \changes{v1.1}{15/04/2019}{ % - Changements mineurs dans la documentation} % % \changes{v1.2}{25/04/2019}{ % - L'option capsrm fonctionne à présent avec beamer, % - ajouté Ouv, modifications du fichier README.md} % \changes{v1.2}{27/04/2019}{ % - capsrm -> capsup} % % \changes{v1.3}{15/05/2019}{ % - Intégration de icomma et psset{comma=true}, % - changements dans la documentation} % % \changes{v1.4}{2019/05/22}{ % - Changement de la définition de fonte up -> operators, % car incompatibilité avec l'extension unicode-math} % % \changes{v1.5}{2020/11/02}{ % - Ajout des macros étoilées pour les repères du plan et de l'espace et la base (i,j,k)} % % \changes{v1.6}{2022/10/16}{ % - Remplacement de icomma par ncccomma, grâce à une proposition de J. F. Burnol, % - amélioration du code redéfinissant les majuscules mathématiques, % - suppression de l'option capsup (capsit à false suffit), % - remplacement de tgh par th pour la tangente hyperbolique.} % % \changes{v2.0}{2022/10/24}{ % - nouvelle option permettant de définir les lettres grecques minuscules en forme droite, % - correction de bug avec la commande \bslash qui n'était pas définie, % - compatibilité avec mathdesign} % % \changes{v2.1}{11/11/2022}{ % - Reprise du doc pour les lettres grecques, les crochets et les références ; % - nouvelle commande paral*, % - '\mathop{\operatorfont th}' remplacé par '\operatorname{th}'} % % \changes{v2.2}{15/11/2022}{ % - Quelques changements dans la doc, police Palatino avec mathpazo, % - commande paral redéfinie, la commande paral* devient inutile} % % \changes{v2.3}{16/11/2022}{ % - Bug corrigé dans la commande Vect} % \changes{v2.3}{20/11/2022}{ % - Ajout dans la doc : frenchmath doit être chargé après babel} % \changes{v2.3}{19/12/2022}{ % - Suppression des warnings systématiques, % - utilisation de \string à la place de \bslash} % \changes{v2.3}{25/12/2022}{ % - Nouvelle option lgrmath, % - utilisation de l'extension ibrackets, % - définition de cosec et cosech} % % \GetFileInfo{frenchmath.sty} % % \title{L'extension \textsf{frenchmath}\thanks{Ce document % correspond à \textsf{frenchmath}~\fileversion, dernière modification le 26/12/2022.}} % \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} % \date{26 décembre 2022} % \maketitle % % \section{Introduction} % Cette extension, inspirée de \textsf{mafr} de Christian Obrecht~\cite{MAFR}, % permet le respect des règles typographiques mathématiques françaises, % en particulier la possibilité d'obtenir automatiquement % les majuscules en romain (lettres droites) plutôt qu'en italique % (voir~\cite{RTIN} et~\cite{IGEN}) % ainsi que des espacements corrects % pour les virgules %\footnote{Merci à Jean-François Burnol pour certaines améliorations proposées au code.} % et point-virgules. % Depuis la version 2.0, des options permettent % de composer les minuscules grecques du mode mathématique en forme droite. % % D'autres solutions pour composer les majuscules mathématiques en romain % sont proposées dans 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). % Mais \textsf{frenchmath} fournit une solution générique % s'adaptant à n'importe quelle police de caractères. % % D'autres préconisations, telles que composer en lettre droite % et non en italique le symbole différentiel, % les constantes mathématiques i et e~\cite{IGEN}, % sont des règles internationales~\cite{TYPMA}~\cite{NIST}~\cite{ICTNS}. % Elles ne sont donc pas implémentées dans \textsf{frenchmath} % \footnote{Nous proposons pour cela l'extension \textsf{mismath}~\cite{MIS} % qui fournit diverses macros pour les mathématiques internationales.}. % % L'extension fournit en outre diverses macros francisées. % Quelques différences sont à signaler avec \textsf{mafr} : % \begin{itemize} % \item nous avons choisi de ne pas substituer les symboles français aux symboles % anglais avec le même nom de commande ; % \item les macros présentées dans la section 2 correspondant à des macros de \textsf{mafr} % sont signalées par un astérisque en fin d'item, les autres sont nouvelles ; % \item enfin quelques commandes de \textsf{mafr} ne sont pas spécifiques % aux mathématiques françaises et ne sont donc pas abordées ici : % c'est le cas de |\vect| % \footnote{Pour de jolis vecteurs on dispose de l'extension \textsf{esvect} % d'Eddie Saudrais.}, % des ensembles de nombres |\R|, |\N|, \ldots (pour $\mathbf{R}, \mathbf{N}, \ldots$) % ainsi que celles relatives à la réalisation de feuilles d'exercices. % \end{itemize} % % Mentionnons aussi l'extension \textsf{tdsfrmath}~\cite{FRM} de Yvon Henel % qui fournit aussi beaucoup de commandes francisées. % % % \section{Utilisation} % % \subsection{Majuscules mathématiques} % En France, les lettres majuscules du mode mathématique doivent toujours % être composées en romain ($A, B, C, \ldots$) et non en italique % (\cite{RTIN} p.107, voir aussi~\cite{IGEN}). % En utilisant \XeLaTeX\ ou \LuaLaTeX\ avec des polices mathématiques OpenType, % cette convention est assez commode à mettre en œuvre, % mais, avec \LaTeX\ ou pdf\LaTeX, assez peu d'auteurs la respectent % et les extensions précitées ne fonctionnent qu'avec des polices particulières. % Par défaut \textsf{frenchmath} compose automatiquement toutes les majuscules % mathématiques en romain, % quelle que soit la fonte utilisée. % Par exemple |\[ P(X)=\sum_{i=0}^{n} a_i X^i \]| donne avec \textsf{frenchmath} % \[ P(X)=\sum_{i=0}^{n}a_i X^i. \] % % \DescribeEnv{[capsit]} % L'option \texttt{capsit} de \textsf{frenchmath} % permet de désactiver la composition des majuscules du mode mathématique % en romain pour conserver la composition par défaut (en italique) : % |\usepackage[capsit]{frenchmath}| % Que l'option soit activée ou pas, il est toujours possible de changer l'aspect % d'une lettre particulière, avec les macros \LaTeX\ |\mathrm| et |\mathit|. % % \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 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, % 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. % % Pour les physiciens (et chimistes) l'affaire est plus claire puisque % les quantités doivent toujours être écrites en italique et les unités ou les constantes en % 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$. % 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 % en forme droite. % Par exemple les extensions \textsf{mathdesign}~\cite{DESIGN}, % \textsf{fourier}~\cite{FOUR} % ou \textsf{kpfonts}~\cite{KPF} disposent d'options permettant % l'écriture automatique des lettres grecques minuscules en forme droite % (ou des majuscules en italique). % 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}.} % et \textsf{libertinust1math} % de Michael Sharpe, % \textsf{pxgreeks}, \textsf{txgreeks} % \footnote{Si on utilise \textsf{amsmath} (ou \textsf{mismath}), % \textsf{pxgreeks} ou \textsf{txgreeks} doit être chargée % \emph{après} \textsf{amsmath} (ou \textsf{mismath}), % pour éviter une erreur de compilation due à la redéfinition des commandes % \texttt{\string\iint}, \texttt{\string\iiint}, \texttt{\string\iiiint}, % \texttt{\string\idotsint}.} % et \textsf{libgreek} de Jean-François Burnol, % qui donnent de beaux résultats pour une utilisation avec % respectivement les polices Palatino, Times et Libertinus. % % \medskip % \DescribeEnv{[lgrmath]} % 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. % % En activant l'option \texttt{lgrmath}, \textsf{frenchmath} % charge cette extension avec l'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.} % qui se marie particulièrement bien avec la police usuelle Latin Modern. % Les commandes |\alpha|, |\beta|, etc. % produisent alors automatiquement les lettres en forme droite % $\alphaup$, $\betaup$, \ldots, $\piup$, etc., % tandis que |\alphait|, |\betait|, etc. produisent des formes italiques % $\alphait$, $\betait$, \ldots, $\piit$, etc. % Ces dernières sont peu à notre goût, mais elles n'ont pas vocation à être % utilisées lorsque l'on active l'option \texttt{lgrmath}. % Par contre, on peut choisir d'autres options de 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}). % % \medskip % \DescribeEnv{[upgreek]} % Avec la même philosophie, \textsf{frenchmath} fournit l'option \texttt{upgreek} % basée sur l'extension \textsf{upgreek} de Walter Schmidt~\cite{UPGREEK} qui donne % accès aux lettres grecques minuscules en forme droite : % |\upalpha|, |\upbeta|, etc. % L'extension \textsf{upgreek} sera chargée avec l'option par défaut, \texttt{Euler}. % Si l'on veut, par contre, utiliser l'extension \textsf{upgreek} % avec l'une de deux autres options disponibles, \texttt{Symbol} % ou \texttt{Symbolsmallscale} (utilisant la police Adobe Symbol), % il faut charger l'extension \textsf{upgreek} avec l'option souhaitée % \emph{avant} \textsf{frenchmath} % \footnote{L'option \texttt{Symbol} de \textsf{upgreek} se marie mieux % avec une police comme Times par exemple.}. % L'option \texttt{upgreek} de \textsf{frenchmath} redéfinit ensuite les commandes % |\alpha|, |\beta|, etc. % pour produire automatiquement les lettres en forme droite % $\alpha$, $\beta$, \ldots, $\pi$, \ldots ; les formes italiques, $\italpha, \itbeta$, \ldots, % $\itpi$, etc. restant cependant disponibles avec les commandes % |\italpha|, |\itbeta|, \ldots, |\itpi|, etc. % % \medskip % \DescribeEnv{[Upgreek]} % Avec \LaTeX, les lettres grecques majuscules sont automatiquement composées % en forme droite et l'option \texttt{upgreek} ne concerne que les minuscules. % Cependant l'extension \textsf{upgreek} % propose aussi |\Upgamma|, \ldots, |Upomega| : $\Upgamma, \ldots, \Upomega$. % Si l'on veut conserver majuscules et minuscules dans le même style, % l'option \texttt{Upgreek} de \textsf{frenchmath} redéfinit les majuscules % |\Gamma|, \ldots, |\Omega| pour correspondre à ces variantes. % Par contre l'on n'a alors plus accès aux caractères d'origine : $\Gamma, \ldots, \Omega$. % % L'option \texttt{Upgreek} reprend aussi % les minuscules grecques de l'option \texttt{upgreek}, qu'il est donc % inutile d'invoquer simultanément. % % \medskip % Signalons enfin l'extension \textsf{textalpha} de Günter Milde~\cite{ALPHA} qui % donne accès aux lettres en forme droite \textalpha, \textbeta, \ldots, % \textpi, \ldots, % mais en mode texte avec |\textalpha|, |\textbeta|, etc. % Ces glyphes se marient également bien avec la police Latin Modern. % Par contre le theta produit, \texttheta, n'est pas vraiment % celui qui est d'usage en mathématiques. % % \medskip % Mentionnons ce commentaire de Walter Schmidt~\cite{UPGREEK} que le mu % utilisé pour le préfixe des unités physiques, \textmicro, doit se composer avec |\textmu| % \footnote{L'extension \textsf{textalpha} fournit à la place \texttt{\string\textmicro} % (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 $\upmu$ de |\upmu|. % % \subsection{Virgules, point-virgule et crochets} % \DescribeMacro{virgules} % Dans le mode mathématique de \LaTeX, la virgule est toujours, par défaut, % un symbole de ponctuation et sera donc suivi d'une espace. % Ceci est légitime dans un intervalle : % |$[a,b]$| donne $[a,b]$, mais pas pour un nombre en français : |$12,5$| donne % $12, 5$ au lieu de $12,5$. % L'extension \textsf{babel}, avec l'option |french|~\cite{BABEL}, fournit deux bascules : % |\DecimalMathComma| et |\StandardMathComma|, qui permettent d'adapter % le comportement de la virgule du mode mathématique. % % Deux autres extensions bien commodes permettent néanmoins de se passer de ces bascules % \footnote{Dans ce cas il ne faut pas utiliser les bascules, % au risque de rendre ces extensions inopérantes.}. % En mode mathématique : % \begin{itemize} % \item avec \textsf{icomma} (intelligent comma) de Walter Schmidt~\cite{ICOMMA}, % la virgule se comporte comme un caractère de ponctuation si elle est suivie d'une espace, % sinon c'est un caractère ordinaire ; % \item avec \textsf{ncccomma} de Alexander I.~Rozhenko~\cite{NCC}, % la virgule se comporte comme un caractère ordinaire si elle est suivie d'un chiffre % (sans espace), sinon c'est un caractère de ponctuation. % \end{itemize} % % Cette deuxième approche parait meilleure, néanmoins \textsf{ncccomma} % ne fonctionne pas avec avec l'option \texttt{autolanguage} % \footnote{L'option \texttt{autolanguage} de \textsf{numprint} utilisée % conjointement avec l'option \texttt{french} de \textsf{babel} garantit un espacement % correct entre les groupes de trois chiffres dans les grands nombres, % qui doit être une espace insécable et non dilatable~\cite{RTIN}, % légèrement plus grande que l'espace que l'on obtient sans cette option.} % de l'extension \textsf{numprint}. % Par contre \textsf{icomma} fonctionne et était utilisé % jusqu'à la version 1.5 de \textsf{frenchmath}. % Depuis la version 1.6, \textsf{frenchmath} charge \textsf{ncccomma} grâce % à un code proposé par Jean-François Burnol qui permet d'utiliser conjointement % \textsf{ncccomma} et \textsf{numprint} avec \texttt{autolanguage} % \footnote{Mentionnons aussi l'article \emph{Intelligent commas} % de Claudio Beccari~\cite{BECC} qui propose une solution simplifiée % par rapport à \textsf{ncccomma} mais dont l'avantage semble discutable.}. % % Signalons que, si l'on compile avec \LuaLaTeX, il est impératif de charger % \textsf{frenchmath} \emph{après} \textsf{babel-french} % (ce qui est, somme toute, la pratique normale). % % \medskip % Lorsque l'on utilise l'extension \textsf{pstricks-add} de \textsf{PSTricks} % pour tracer des axes de coordonnées, l'appel |\psset{comma=true}| % permet d'avoir les graduations avec une virgule au lieu du point décimal. % Ce réglage est effectué par défaut ici. % % \medskip % \DescribeMacro{point-virgule} % Le symbole \og;\fg\ a été redéfini pour le mode mathématique % car l'espace précédant le point-virgule est incorrecte en français % |$x \in [0,25 ; 3,75]$| donne % $x\in [0,25 \mathpunct; 3,75 ]$ sans \textsf{frenchmath} et $x\in [0,25 ; 3,75]$ % avec \textsf{frenchmath} ; % le comportement de \og ;\fg devient identique à celui de \og:\fg. % % \medskip % \DescribeMacro{crochets} % Alors que les Anglais utilisent généralement les parenthèses % pour les intervalles ouverts $(0, +\infty)$, l'usage en français est d'utiliser % les crochets $]0, +\infty[$. Mais comme cela n'est pas prévu par \LaTeX, % les espaces seront souvent incorrectes. % Nous avons redéfini les crochets dans l'extension \textsf{ibrackets}~\cite{BRACKETS} % qui est chargée par \textsf{frenchmath} % \footnote{L'extension \textsf{interval} fournit une autre % solution basée sur la macro \texttt{\string\interval} ; % citons aussi \textsf{mathtools} et sa commande % \texttt{\string\DeclarePairedDelimiter}.}. % Le code % |$x\in ]-\pi, 0[ \cup ]2\pi, 3\pi[$| % produira % \[ x\in ]-\pi, 0[ \cup ]2\pi, 3\pi[ \mbox{\quad avec \textsf{ibrackets}}, \] % au lieu de % \[ x\in \mathclose{]}-\pi, 0 \mathopen{[} \cup \mathclose{]} 2\pi, 3\pi \mathopen{[} % \mbox{\quad sans \textsf{ibrackets}}. \] % % Dans notre code, les caractères $[$ et $]$ deviennent \og actifs \fg % et ne sont plus définis par défaut comme des délimiteurs. % De ce fait, une coupure de ligne peut se produire entre les deux, % mais il est toujours possible de transformer alors ces crochets en délimiteurs % avec |\left| et |\right|. % % Avec \textsf{ibrackets}, un crochet devient un caractère ordinaire, % sauf s'il est immédiatement suivi par un signe + ou - (sans espace), auquel cas % c'est un délimiteur ouvrant. % Si la borne de gauche possède un signe - (ou +), % \emph{il ne faut pas laisser d'espace entre le premier crochet % et le signe}: par exemple |$x \in ] -\infty, 0]$| produit % $x \in ] -\infty, 0]$ avec des espaces trop grandes autour du signe. % Mais au contraire lorsque l'on souhaite faire de l'algèbre sur les intervalles, % \emph{il faut laisser une espace entre le second crochet et l'opération} + ou -, % par exemple, |$[a, b] + [c, d]$| produit $[a, b] + [c, d]$ % mais |$[a, b]+ [c, d]$| produit $[a, b]+ [c, d]$. % % \subsection{Quelques macros et alias utiles} % % \DescribeMacro{\curs} % Les lettres cursives ($\curs{A}, \curs{B}, \curs{C}, \curs{D}, \ldots$), % provenant de l'extension \textsf{mathrsfs} chargée par \textsf{frenchmath}, sont composées % avec |\curs| et sont différentes de celles obtenues % avec |\mathcal| % \footnote{L'extension \textsf{calrsfs} fournit les mêmes cursives mais en redéfinissant % la commande \texttt{\string\mathcal}.} % ($\mathcal{A}, \mathcal{B}, \mathcal{C}, \mathcal{D}, \ldots$). % La commande |\curs| permet aussi de composer ces lettres en mode texte, % sans les délimiteurs du mode mathématique.* % \footnote{Comme précisé dans l'introduction, l'astérisque en fin d'item signale % une fonctionnalité similaire dans \textsf{mafr}.} % % \medskip % \DescribeMacro{\infeg} \DescribeMacro{\supeg} % Les relations $\infeg$ et $\supeg$ s'obtiennent avec les commandes |\infeg| et |\supeg| % et diffèrent des versions anglaises de |\leq| ($\leq$) et |\geq| ($\geq$). % Ce sont des alias de |\leqslant| et |\geqslant| de l'extension \textsf{amssymb}, % chargée par \textsf{frenchmath}.* % % \medskip % \DescribeMacro{\vide} % Le symbole de l'ensemble vide $\vide$ % s'obtient avec |\vide| (alias de la commande |\varnothing| de l'extension \textsf{amssymb}) ; % il diffère de celui obtenu avec |\emptyset| % (particulièrement laid dans la fonte par défaut Computer Modern : $\cmemptyset$).* % % \medskip % \DescribeMacro{\paral} % La commande |\paral| fournit la \emph{relation} % \footnote{Pour noter que deux objets sont perpendiculaires, on utilise % \texttt{\string\perp} : $\curs{D}\perp\curs{D}'$, % défini comme une \emph{relation} mathématique plutôt que % \texttt{\string\bot} défini comme un \emph{symbole} (les espacements diffèrent).} % du parallélisme : $\curs{D}\paral\curs{D}'$, % plutôt que sa version anglaise |\parallel| : $\curs{D}\parallel\curs{D}'$.* % % \medskip % \DescribeMacro{\ssi} % La commande |\ssi| produit \og \ssi \fg. % % \medskip % \DescribeMacro{\cmod} % Le modulo se compose normalement entre parenthèses, avec |\pmod|, % mais on rencontre aussi, en français, le modulo entre crochets, % ce que permet la commande |\cmod| en respectant le bon espacement % propre au modulo : $ 53 \equiv 5 \cmod{12}$. % % \subsection{Identifiants de \og fonctions\fg classiques} % % \DescribeMacro{\pgcd} \DescribeMacro{\ppcm} % En arithmétique, nous avons les classiques |\pgcd| et |\ppcm|, % qui diffèrent de leur version anglaise |\gcd| et |\lcm| % \footnote{Cette dernière n'est pas implémentée en standard dans \LaTeX\ % (mais dans \textsf{mismath}).}. % % \medskip % \DescribeMacro{\card} \DescribeMacro{\Card} % Pour le cardinal d'un ensemble, nous proposons |\card|, % cité dans~\cite{RTIN} et~\cite{AA}, % ou |\Card|, qui est aussi d'usage courant (cf. Wikipedia). % % \medskip % \DescribeMacro{\Ker} \DescribeMacro{\Hom} % \LaTeX\ fournit les macros % |\ker| et |\hom|, alors que l'usage français est souvent % de commencer ces noms par une majuscule pour obtenir $\Ker$ % \footnote{La commande \texttt{\string\Im} existe déjà pour la % partie imaginaire des nombres complexes et produit $\Im$ ; % elle est redéfinie en Im par l'extension \textsf{mismath} % et peut aussi être utilisée pour l'image.} % et $\Hom$. % % \medskip % \DescribeMacro{\rg} \DescribeMacro{\Vect} % Le rang d'une application linéaire ou d'une matrice ($\rg$) s'obtient avec la commande |\rg| % et l'espace vectoriel engendré par une famille de vecteurs avec |\Vect|. % % \medskip % \DescribeMacro{\ch} \DescribeMacro{\sh} \DescribeMacro{\th} % En principe, les fonctions hyperboliques s'écrivent en français % avec les macros \LaTeX\ standard |\cosh|, |\sinh|, |\tanh|. % Néanmoins les écritures $\ch x$, $\sh x$ et $\th x$, qui sont la norme % avec les langues d'Europe de l'Est~\cite{COMP}, % sont aussi utilisées en français~\cite{RTIN}. % On les obtient avec les commandes |\ch|, |\sh| et |\th| % \footnote{La commande \texttt{\string\th} existe déjà, pour le mode texte uniquement, % et produit \th ; % elle a été redéfinie, uniquement pour le mode mathématique, à la place % de l'ancienne commande \texttt{\string\tgh}, utilisée jusqu'à la version 1.6, % désormais obsolète.}. % % \medskip % \DescribeMacro{\cosec} \DescribeMacro{\cosech} % La fonction cosécante (inverse du sinus) s'obtient avec la macro |\csc|, mais en français, % on utilise aussi |\cosec|~\cite{RTIN} et |\cosech| pour la cosécante hyperbolique % \footnote{La fonction sécante est définie en standard par \LaTeX\ % avec \texttt{\textbackslash sec} et la sécante hyperbolique \texttt{\textbackslash sech} % est définie par \textsf{mismath}~\cite{MIS}.}. % % \subsection{Bases et repères} % % \DescribeMacro{\Oij} \DescribeMacro{\Oijk} % Les repères classiques du plan ou de l'espace seront composés % avec des hauteurs de flèches homogénéisées : % |\Oij| compose \Oij, |\Oijk| compose \Oijk et |\Ouv| compose \Ouv % (utilisé dans le plan complexe). \DescribeMacro{\Ouv} % On peut écrire ces commandes en mode texte, sans les délimiteurs du mode mathématique. % % \DescribeMacro{\Oij*} \DescribeMacro{\Oijk*} \DescribeMacro{\Ouv*} % Les versions étoilées utilisent le point-virgule et non la virgule % comme séparateur après le point O, comme mentionné dans~\cite{RTIN}. % On obtient \Oij*, \Oijk*, \Ouv*. % % \DescribeMacro{\ij} \DescribeMacro{\ijk} % Enfin les macros |\ij| % \footnote{Notons que la macro \texttt{\string\ij} existait déjà % (ligature entre i et j pour le hollandais) et a été redéfinie.} % et |\ijk| composent les bases du plan et de l'espace, \ij % et \ijk, en homogénéisant la hauteur des flèches. % % Signalons que les macros de ce paragraphe peuvent ne pas fonctionner % avec certaines fontes mathématiques qui ne connaissent pas \texttt{\string\jmath}, % par exemple l'extension \textsf{mathptmx} (basée sur la fonte de texte Times). % % \StopEventually{} % % \pagebreak % \section{Le code} % % \begin{macrocode} \RequirePackage{ifthen} \newboolean{capsit} \DeclareOption{capsit}{\setboolean{capsit}{true}} \newboolean{lgrmath} \DeclareOption{lgrmath}{\setboolean{lgrmath}{true}} \newboolean{upgreek} \DeclareOption{upgreek}{\setboolean{upgreek}{true}} \newboolean{Upgreek} \DeclareOption{Upgreek}{\setboolean{Upgreek}{true} \setboolean{upgreek}{true}} \ProcessOptions \relax \AtBeginDocument{ \@ifpackageloaded{mathdesign}{ \PackageWarningNoLine{frenchmath}{Package mathdesign is loaded, \MessageBreak I don't load mathrsfs and amssymb packages} }{ \RequirePackage{mathrsfs} % fournit les majuscules cursives \RequirePackage{amssymb} % \leqslant, \geqslant, \varnothing } } \RequirePackage{amsopn} % fournit \DeclareMathOperator \ifthenelse{\boolean{lgrmath}}{ \@ifpackageloaded{lgrmath}{}{ \RequirePackage[font=fcm,style=french]{lgrmath}} }{} \ifthenelse{\boolean{upgreek}}{ \@ifpackageloaded{upgreek}{}{\RequirePackage[Euler]{upgreek}} }{} \RequirePackage{xspace} % utile pour les commandes \curs, \ssi, \Oij \RequirePackage{ibrackets} % intelligent brackets % \RequirePackage{icomma} % intelligent comma \RequirePackage{ncccomma} % depuis frenchmath 1.6 \AtBeginDocument{\mathcode`\,="8000\relax \@ifpackageloaded{babel}{ \addto\extrasfrench{\mathcode`\,="8000\relax} }{} } % \end{macrocode} % La macro ci-dessus permet d'utiliser \textsf{ncccomma} à la place de \textsf{icomma}. % \textsf{ncccomma} doit être chargée après \textsf{babel-french} si on utilise \LuaLaTeX. % Cette macro m'a été proposée par Jean-François Burnol, de même qu'une amélioration % du code ci-après, redéfinissant les majuscules mathématiques. % % Sauf si l'option \texttt{capsit} est activée, on redéfinit toutes les lettres majuscules % du mode mathématique ; |\AtBeginDocument| est nécessaire pour que % ces définitions soient prises en compte avec la classe \textsf{beamer} % par exemple. % \smallskip % \begin{macrocode} \ifthenelse{\boolean{capsit}}{}{ \AtBeginDocument{ \DeclareMathSymbol{A}\mathalpha{operators}{`A} \DeclareMathSymbol{B}\mathalpha{operators}{`B} \DeclareMathSymbol{C}\mathalpha{operators}{`C} \DeclareMathSymbol{D}\mathalpha{operators}{`D} \DeclareMathSymbol{E}\mathalpha{operators}{`E} \DeclareMathSymbol{F}\mathalpha{operators}{`F} \DeclareMathSymbol{G}\mathalpha{operators}{`G} \DeclareMathSymbol{H}\mathalpha{operators}{`H} \DeclareMathSymbol{I}\mathalpha{operators}{`I} \DeclareMathSymbol{J}\mathalpha{operators}{`J} \DeclareMathSymbol{K}\mathalpha{operators}{`K} \DeclareMathSymbol{L}\mathalpha{operators}{`L} \DeclareMathSymbol{M}\mathalpha{operators}{`M} \DeclareMathSymbol{N}\mathalpha{operators}{`N} \DeclareMathSymbol{O}\mathalpha{operators}{`O} \DeclareMathSymbol{P}\mathalpha{operators}{`P} \DeclareMathSymbol{Q}\mathalpha{operators}{`Q} \DeclareMathSymbol{R}\mathalpha{operators}{`R} \DeclareMathSymbol{S}\mathalpha{operators}{`S} \DeclareMathSymbol{T}\mathalpha{operators}{`T} \DeclareMathSymbol{U}\mathalpha{operators}{`U} \DeclareMathSymbol{V}\mathalpha{operators}{`V} \DeclareMathSymbol{W}\mathalpha{operators}{`W} \DeclareMathSymbol{X}\mathalpha{operators}{`X} \DeclareMathSymbol{Y}\mathalpha{operators}{`Y} \DeclareMathSymbol{Z}\mathalpha{operators}{`Z} } } % \end{macrocode} % Avec l'option \texttt{upgreek}, on charge l'extension \textsf{upgreek} % (sauf si elle est déjà chargée, ce qui évite les incompatibilités d'option) % et on redéfinit les commandes |\alpha|, |\beta|, \ldots % \texttt{Upgreek} transforme en outre les majuscules grecques pour garder % le même style. % \begin{macrocode} \ifthenelse{\boolean{upgreek}}{ \@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}{} }{} \ifthenelse{\boolean{upgreek}}{ \renewcommand\alpha{\upalpha} \renewcommand\beta{\upbeta} \renewcommand\gamma{\upgamma} \renewcommand\delta{\updelta} \renewcommand\epsilon{\upepsilon} \renewcommand\zeta{\upzeta} \renewcommand\eta{\upeta} \renewcommand\theta{\uptheta} \renewcommand\iota{\upiota} \renewcommand\kappa{\upkappa} \renewcommand\lambda{\uplambda} \renewcommand\mu{\upmu} \renewcommand\nu{\upnu} \renewcommand\xi{\upxi} \renewcommand\pi{\uppi} \renewcommand\rho{\uprho} \renewcommand\sigma{\upsigma} \renewcommand\tau{\uptau} \renewcommand\upsilon{\upupsilon} \renewcommand\phi{\upphi} \renewcommand\chi{\upchi} \renewcommand\psi{\uppsi} \renewcommand\omega{\upomega} \renewcommand\varepsilon{\upvarepsilon} \renewcommand\vartheta{\upvartheta} \renewcommand\varpi{\upvarpi} \renewcommand\varrho{\upvarrho} \renewcommand\varsigma{\upvarsigma} \renewcommand\varphi{\upvarphi} }{} \ifthenelse{\boolean{Upgreek}}{ \renewcommand\Gamma{\Upgamma} \renewcommand\Delta{\Updelta} \renewcommand\Theta{\Uptheta} \renewcommand\Lambda{\Uplambda} \renewcommand\Xi{\Upxi} \renewcommand\Pi{\Uppi} \renewcommand\Sigma{\Upsigma} \renewcommand\Upsilon{\Upupsilon} \renewcommand\Phi{\Upphi} \renewcommand\Psi{\Uppsi} \renewcommand\Omega{\Upomega} }{} \AtBeginDocument{\@ifpackageloaded{pstricks-add}{\psset{comma=true}}{}} \DeclareMathSymbol{;}{\mathbin}{operators}{'73} % \mathpunct à l'origine \newcommand*\curs[1]{\ensuremath{\mathscr{#1}}\xspace} \newcommand\infeg{\leqslant} \newcommand\supeg{\geqslant} \newcommand\vide{\varnothing} \newcommand\paral{\mathrel{\ooalign{$\mkern-1.75mu/\mkern1.75mu$\cr% $\mkern1.75mu/\mkern-1.75mu$}} } % \end{macrocode} % Cette définition remplace, depuis la version 2.2, % l'ancienne définition plus simple |\mathrel{/\!\!/}|, mais qui donnait des barres % trop serrées avec \textsf{mathastext} + \textsf{times} ou avec \textsf{libertinust1math}. % Merci à Jean-François Burnol de me l'avoir fait remarquer % et pour ses suggestions dans la mise au point d'une macro plus efficace. % \begin{macrocode} \newcommand\ssi{si, et seulement si,\xspace} \newcommand*\cmod[1]{\quad[#1]} \DeclareMathOperator{\pgcd}{pgcd} \DeclareMathOperator{\ppcm}{ppcm} \DeclareMathOperator{\card}{card} \DeclareMathOperator{\Card}{Card} \DeclareMathOperator{\Ker}{Ker} \DeclareMathOperator{\Hom}{Hom} \DeclareMathOperator{\rg}{rg} \DeclareMathOperator{\Vect}{Vect} \DeclareMathOperator{\ch}{ch} \DeclareMathOperator{\sh}{sh} \AtBeginDocument{\let\oldth\th %\th existe déjà (mode texte) \renewcommand\th{\TextOrMath{\oldth}{\operatorname{th}}}} \DeclareMathOperator{\cosec}{cosec} \DeclareMathOperator{\cosech}{cosech} \newcommand\@Oij{% \ensuremath{\left(O, \vec{\imath}, \vec{\jmath}\,\right)}\xspace} \newcommand\@@Oij{% \ensuremath{\left(O ; \vec{\imath}, \vec{\jmath}\,\right)}\xspace} \newcommand\Oij{\@ifstar{\@@Oij}{\@Oij}} \newcommand\@Oijk{% \ensuremath{% \left(O, \vec{\vphantom{t}\imath}, \vec{\vphantom{t}\jmath}, \vec{\vphantom{t}\smash{k}}\,\right)}% \xspace} \newcommand\@@Oijk{% \ensuremath{% \left(O ; \vec{\vphantom{t}\imath}, \vec{\vphantom{t}\jmath}, \vec{\vphantom{t}\smash{k}}\,\right)}% \xspace} \newcommand\Oijk{\@ifstar{\@@Oijk}{\@Oijk}} \newcommand\@Ouv{% \ensuremath{\left(O, \vec{u}, \vec{v}\,\right)}\xspace} \newcommand\@@Ouv{% \ensuremath{\left(O ; \vec{u}, \vec{v}\,\right)}\xspace} \newcommand\Ouv{\@ifstar{\@@Ouv}{\@Ouv}} \AtBeginDocument{ \renewcommand\ij{% \ensuremath{\left(\vec{\imath}, \vec{\jmath}\,\right)}\xspace}} \newcommand\ijk{% \ensuremath{% \left(\vec{\vphantom{t}\imath}, \vec{\vphantom{t}\jmath}, \vec{\vphantom{t}\smash{k}}\,\right)}% \xspace} % \end{macrocode} % % \medskip % \begin{thebibliography}{25} % \begin{raggedright} % \bibitem{RTIN} \emph{Lexique des règles typographiques en usage à l’Imprimerie Nationale}, % édition du 26/08/2002. % \bibitem{IGEN} \emph{Composition des textes scientifiques}, % Inspection Générale de mathématiques (IGEN-DESCO), 06/12/2001. % \url{http://mslp.ac-dijon.fr/IMG/pdf/typo_txt_sci.pdf} % \bibitem{AA} \emph{Règles françaises de typographie mathématique}, % Alexandre André, 02/09/2015. % \url{http://sgalex.free.fr/typo-maths_fr.pdf} % \bibitem{ES} \emph{Le petit typographe rationnel}, Eddie Saudrais, 20/03/2000. % \url{https://www.gutenberg-asso.fr/IMG/pdf/saudrais-typo.pdf} % \bibitem{TYPMA} \emph{Typesetting mathematics for science and technology according % to ISO 31/XI}, Claudio Beccari, TUGboat Volume 18 (1997), \No1. % \url{http://www.tug.org/TUGboat/tb18-1/tb54becc.pdf} % \bibitem{NIST} \emph{Typefaces for Symbols in Scientific Manuscripts}. % \url{https://www.physics.nist.gov/cuu/pdf/typefaces.pdf} % \bibitem{ICTNS} \emph{On the Use of Italic and up Fonts for Symbols in Scientific Text}, % I.M.~Mills and W.V.~Metanomski, ICTNS (Interdivisional Committee on Terminology, % Nomenclature and Symbols), dec 1999. %\url{https://old.iupac.org/standing/idcns/italic-roman_dec99.pdf} % \bibitem{COMP} \emph{\LaTeX\ Companion}, Frank Mittelbach, Michel Goossens, % 2\ieme édition, Pearson Education France, 2005. % \bibitem{LSHORT} \emph{The Not So Short Introduction to \LaTeXe}, % Tobias Oetiker, Hubert Partl, Irene Hyna et Elisabeth Schlegl, CTAN, v6.4 09/03/2021. % \url{http://tug.ctan.org/info/lshort/english/lshort.pdf} % \bibitem{MAFR} \emph{La distribution \textsf{mafr}}, Christian Obrecht, % CTAN, v1.0 17/09/2006. % \bibitem{FRM} \emph{L'extension \textsf{tdsfrmath}}, Yvon Henel, % CTAN, v1.3 22/06/2009. % \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{KPF} \emph{\textsf{Kp-Fonts} -- The Johannes Kepler project}, % Christophe Caignaert, CTAN, v3.34 20/09/2022. % \bibitem{ALPHA} \emph{The \textsf{textalpha} package} % (partie de l'extension \textsf{greek-fontenc}), Günter Milde, CTAN, v2.1 14/06/2022. % \bibitem{LGR} \emph{The \textsf{lgrmath} package}, Jean-François B., CTAN, % v1.0 16/11/2022. % \bibitem{UPGREEK} \emph{The \textsf{upgreek} package for \LaTeXe}, Walter Schmidt, CTAN, % v2.0 12/03/2003. % \bibitem{ISOM} \emph{\textsf{isomath} -- Mathematical style for science and technology}, % Günter Milde, CTAN, v0.6.1 2012/09/04. % \bibitem{PMISO} \emph{\textsf{PM-ISOmath} -- The Poor Man ISO math bundle}, % Claudio Beccari, CTAN, v1.2.00 2021/08/04. % \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}. % Walter Schmidt, CTAN, v2.0 10/03/2002. % \bibitem{NCC} \emph{The \textsf{ncccomma} package}. Alexander I.~Rozhenko, % CTAN, v1.0 10/02/2005. % \bibitem{BECC} \emph{Intelligent commas}. Claudio Beccari, The Prac\TeX\ Journal, % 2011, No.\@1. % \url{https://tug.org/pracjourn/2011-1/beccari/Intcomma.pdf} % \bibitem{BRACKETS} \emph{Intelligent brackets -- The \textsf{ibrackets} package}, % Antoine Missier, v1.0 19/12/2022. % \bibitem{MIS} \emph{\textsf{mismath} -- Miscellaneus mathematical macros}, % Antoine Missier, CTAN, v2.1 26/12/2022. % \end{raggedright} % \end{thebibliography} % \Finale \endinput