summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/frenchmath/frenchmath.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/frenchmath/frenchmath.dtx')
-rw-r--r--macros/latex/contrib/frenchmath/frenchmath.dtx88
1 files changed, 56 insertions, 32 deletions
diff --git a/macros/latex/contrib/frenchmath/frenchmath.dtx b/macros/latex/contrib/frenchmath/frenchmath.dtx
index ebe9e760c2..63c577e173 100644
--- a/macros/latex/contrib/frenchmath/frenchmath.dtx
+++ b/macros/latex/contrib/frenchmath/frenchmath.dtx
@@ -20,7 +20,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{frenchmath}
- [2022/12/26 v2.3 .dtx frenchmath file]
+ [2023/01/22 v2.4 .dtx frenchmath file]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -32,6 +32,10 @@
\usepackage[upgreek]{frenchmath}
\usepackage{textalpha}
\usepackage{metalogo} % pour les logos XeLaTeX et LuaLaTeX
+\usepackage{sectsty}
+\usepackage{xcolor}
+\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
+\allsectionsfont{\color{darkbrown}}
\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
@@ -56,7 +60,7 @@
%</driver>
% \fi
%
-% \CheckSum{541}
+% \CheckSum{552}
%
% \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
@@ -109,7 +113,7 @@
% - 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,
+% - 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}
%
@@ -134,12 +138,16 @@
% - utilisation de l'extension ibrackets,
% - définition de cosec et cosech}
%
+% \changes{v2.4}{22/01/2023}{
+% - Option noibrackets car incompatibilité avec DeclarePairedDelimiter,
+% - warning si compilation avec LuaLaTeX et babel-french non chargé.}
+%
% \GetFileInfo{frenchmath.sty}
%
% \title{L'extension \textsf{frenchmath}\thanks{Ce document
-% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 26/12/2022.}}
+% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 22/01/2023.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{26 décembre 2022}
+% \date{22 janvier 2023}
% \maketitle
%
% \section{Introduction}
@@ -149,9 +157,7 @@
% 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.
+% pour les virgules, point-virgules et crochets.
% Depuis la version 2.0, des options permettent
% de composer les minuscules grecques du mode mathématique en forme droite.
%
@@ -198,8 +204,8 @@
% ê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
+% cette convention est assez commode à mettre en œuvre ;
+% par contre, 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,
@@ -371,16 +377,17 @@
% 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
+% 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}
+% \textsf{ncccomma} avec l'option \texttt{autolanguage} de \textsf{numprint}
% \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).
+% Signalons que, si l'on compile avec \LuaLaTeX, \textsf{ncccomma}
+% (et donc \textsf{frenchmath}) doit être chargé
+% \emph{après} \textsf{babel-french}
+% (ce qui est, somme toute, la pratique normale),
+% sinon \textsf{babel} génère une erreur.
%
% \medskip
% Lorsque l'on utilise l'extension \textsf{pstricks-add} de \textsf{PSTricks}
@@ -404,11 +411,15 @@
% 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}.}.
+% qui est chargée par \textsf{frenchmath},
+% \DescribeMacro{[noibrackets]}
+% sauf si l'on active l'option \texttt{noibrackets}
+% \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,
+% cette dernière est incompatible avec \textsf{ibrackets},
+% d'où la possibilité de désactiver \textsf{ibrackets}.}.
% Le code
% |$x\in ]-\pi, 0[ \cup ]2\pi, 3\pi[$|
% produira
@@ -417,12 +428,6 @@
% \[ 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.
@@ -435,6 +440,11 @@
% par exemple, |$[a, b] + [c, d]$| produit $[a, b] + [c, d]$
% mais |$[a, b]+ [c, d]$| produit $[a, b]+ [c, d]$.
%
+% En cas de comportement problématique, par exemple si
+% une coupure de ligne se produit entre les deux crochets d'un intervalle,
+% il est toujours possible de transformer alors ces crochets en délimiteurs
+% avec |\left| et |\right|.
+%
% \subsection{Quelques macros et alias utiles}
%
% \DescribeMacro{\curs}
@@ -447,7 +457,7 @@
% ($\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
+% \footnote{L'astérisque en fin d'item signale
% une fonctionnalité similaire dans \textsf{mafr}.}
%
% \medskip
@@ -578,6 +588,8 @@
\newboolean{Upgreek}
\DeclareOption{Upgreek}{\setboolean{Upgreek}{true}
\setboolean{upgreek}{true}}
+\newboolean{noibrackets}
+\DeclareOption{noibrackets}{\setboolean{noibrackets}{true}}
\ProcessOptions \relax
\AtBeginDocument{
@@ -599,18 +611,30 @@
\@ifpackageloaded{upgreek}{}{\RequirePackage[Euler]{upgreek}}
}{}
\RequirePackage{xspace} % utile pour les commandes \curs, \ssi, \Oij
-\RequirePackage{ibrackets} % intelligent brackets
+\ifthenelse{\boolean{noibrackets}}{}{
+ \RequirePackage{ibrackets}} % intelligent brackets
% \RequirePackage{icomma} % intelligent comma
\RequirePackage{ncccomma} % depuis frenchmath 1.6
+\@ifpackagewith{babel}{french}{}{
+ \RequirePackage{iftex}
+ \ifluatex
+ \PackageWarningNoLine{frenchmath}{With LuaTeX engine,
+ \MessageBreak
+ load babel before frenchmath}
+ \fi
+}
\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
+% La macro ci-dessus, qui m'a été proposée par Jean-François Burnol,
+% permet d'utiliser \textsf{ncccomma} à la place de \textsf{icomma}.
+% L'extension \textsf{ncccomma} doit être chargée après \textsf{babel-french}
+% si on utilise \LuaLaTeX, sinon une erreur de compilation se produit.
+%
+% Je dois également à Jean-François Burnol 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