summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/arraycols/arraycols.dtx148
-rw-r--r--macros/latex/contrib/arraycols/arraycols.ins4
-rw-r--r--macros/latex/contrib/arraycols/arraycols.pdfbin464654 -> 129129 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx6
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin640971 -> 627343 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex8
-rw-r--r--macros/latex/contrib/frenchmath/frenchmath.dtx719
-rw-r--r--macros/latex/contrib/frenchmath/frenchmath.pdfbin580908 -> 871342 bytes
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.dtx51
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.pdfbin751202 -> 752015 bytes
10 files changed, 492 insertions, 444 deletions
diff --git a/macros/latex/contrib/arraycols/arraycols.dtx b/macros/latex/contrib/arraycols/arraycols.dtx
index b3a438be98..aebd0bb195 100644
--- a/macros/latex/contrib/arraycols/arraycols.dtx
+++ b/macros/latex/contrib/arraycols/arraycols.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+% Copyright (C) 2019-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -20,16 +20,16 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{arraycols}
- [2023/09/13 v1.4 .dtx arraycols file]
+ [2024/05/04 v1.5 .dtx New column types for array and tabular]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french,english]{babel}
-\usepackage{lmodern}
+\usepackage[charter]{mathdesign}
\usepackage{arraycols}
-
+\usepackage{spacingtricks}
\usepackage{sectsty}
\usepackage{xcolor}
\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
@@ -56,7 +56,7 @@
%</driver>
% \fi
%
-% \CheckSum{46}
+% \CheckSum{42}
%
% \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
@@ -81,23 +81,29 @@
% minor changes in documentation}
% \changes{v1.2}{2021/09/20}{Incompatibility with siunitx package
% (called by pstricks-add) is solved}
-% \changes{v1.3}{2023/08/09}{Small changes in documentation}
-% \changes{v1.4}{2023/09/13}{More changes in documentation}
+% \changes{v1.3}{2023/08/09}{A few changes in the documentation}
+% \changes{v1.4}{2023/09/13}{More changes in the documentation}
+% \changes{v1.5}{2024/05/04}{Mention of the tabularray and mdwtab packages in the doc;
+% explanations about the gape and Gape macros from the makecell package}
%
% \GetFileInfo{arraycols.sty}
%
% \title{The \textsf{arraycols} package\thanks{This document
% corresponds to \textsf{arraycols}~\fileversion, dated \filedate.
-% Thanks to François Bastouil for assistance with the English translation.}}
+% Thanks to François Bastouil for initial assistance with the English translation.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{September 13, 2023}
+% \date{May 4, 2024}
% \maketitle
%
% \section{Introduction}
%
-% This package introduces new predefined column types for tables, in addition to
-% the \textsf{array} package by Frank Mittelbach and David Carlisle~\cite{ARRAY}.
-% It also includes a command for wide horizontal rule drawing.
+% Although the remarkable \textsf{tabularray} package by Jianrui Lyu~\cite{TABUL},
+% developed in \LaTeX 3, offers many new possibilities and great flexibility
+% in composing tables, many users are still familiar with
+% Frank Mittelbach and David Carlisle's \textsf{array} package~\cite{ARRAY}.
+% In addition to \textsf{array}, this modest \textsf{arraycols} package introduces
+% new predefined column types for tables and also includes a command
+% for wide horizontal rule drawing.
% Below is a summary of the column types and macro defined by \textsf{arraycols},
% which will be detailed in the following section.
%
@@ -142,7 +148,7 @@
% \end{tabular}
% \end{center}
%
-% Note that if a column type has been previously defined by another package,
+% If a column type has been previously defined by another package,
% using \textsf{arraycols} will overwrite it and display a warning message.
%
% In addition to loading the \textsf{array} package, \textsf{arraycols}
@@ -151,13 +157,10 @@
% Moreover it relies on
% \textsf{tabularx}~\cite{TABX} for \texttt{T} and \texttt{Z} column types and
% loads \textsf{makecell}~\cite{MKCELL} for creation of multilined tabular cells.
-% It's worth mentioning that the \textsf{tablestyles} package~\cite{TBLSTY}
-% also defines L, C, R and Z column types, but differently.
-% Nevertheless, \textsf{tablestyles} is incompatible with \textsf{makecell}
-% and consequently with \textsf{arraycols} as well.
-%
-% With its minimal code, \textsf{arraycols} makes no claim to develop new macros.
-% Its purpose is to combine and configure functionalities derived from other packages.
+% Note that the \textsf{tablestyles} package~\cite{TBLSTY}
+% also defines the column types L, C, R and Z, but differently.
+% However, \textsf{tablestyles} is incompatible with \textsf{makecell}
+% and therefore also with \textsf{arraycols} as well.
%
% \section{Usage}
%
@@ -171,14 +174,13 @@
% in a \texttt{tabular} environment.
% For instance, using the declaration "\begin{tabular}{|l|C|r|}" sets the second column
% in centered mathematical mode. Similarly, using the declaration "\begin{array}{|L|c|c|}"
-% sets the first column in text mode, left-aligned\footnote{The declarations
-% \texttt{L, C, R} do not work in a \texttt{tabularx} environment.
+% sets the first column in text mode, left-aligned
+% \footnote{The declarations \texttt{L, C, R} do not work in a \texttt{tabularx} environment.
% Additionally, the \mbox{\textsf{tabulary}} package by David Carlisle~\cite{TABY}
% already defines the \texttt{L, C, R} (and \texttt{J}) column types for specific alignments
% in tables of the same type as \texttt{tabularx}.
-% However, there is no incompatibility with \textsf{arraycols} because these column definitions
-% apply exclusively within \texttt{tabulary} environments.
-% }.
+% However, there is no incompatibility with \textsf{arraycols} because these
+% column definitions apply exclusively within \texttt{tabulary} environments.}.
%
% \medskip
% \DescribeEnv{t\marg{width}}
@@ -230,17 +232,18 @@
% \end{array}
% \]
%
-% The \textsf{cellspace} package is loaded with the \texttt{math} option\footnote{The
-% \texttt{math} option loads the \textsf{amsmath} package.
+% The \textsf{cellspace} package is loaded with the \texttt{math} option
+% \footnote{The \texttt{math} option loads the \textsf{amsmath} package.
% As mentionned in the \textsf{cellspace} package documentation:
% \og the \textsf{amsmath} package can be loaded beforehand with other
% packages (such as \texttt{empheq} or \texttt{mathtools}),
% were an incompatibility to arise from one’s loading it later\fg.}
% to efficiently manage row heights, including in matrices.
% Another option of \textsf{cellspace}, \texttt{column=Q}
-% (with \texttt{S} being the default in \textsf{cellspace})\footnote{The
-% letter Q is a substitute for the default column modifier S of the \textsf{cellspace}
-% package.}, was necessary to prevent any compatibility issues
+% (with \texttt{S} being the default in \textsf{cellspace})
+% \footnote{The letter Q is a substitute for the default column modifier
+% S of the \textsf{cellspace} package.},
+% was necessary to prevent any compatibility issues
% with the \textsf{siunitx} package (also loaded by \textsf{pstricks-add}).
% The \texttt{Q} declaration serves as a \og modifier \fg{}
% that, when placed before a column type declaration,
@@ -253,19 +256,44 @@
% excellent row height adjustment. However, regrettably, it doesn't handle the height
% of vertical separators ``"|"''.
% In order to achieve a similar vertical adjustment as \textsf{booktabs},
-% we set the \textsf{cellspace} parameters as follows:\\
-% \indent\indent"\setlength{\cellspacetoplimit}{3pt}", \\
-% \indent\indent"\setlength{\cellspacebottomlimit}{2pt}".
-%
-% Additionally, it's worth mentioning the \textsf{tabls} package by Donald Arneseau~\cite{TABLS}
-% that makes a good adjustment of row heights as well, but it is incompatible
-% with the \textsf{array} and \textsf{numprint} packages.
+% we set the \textsf{cellspace} parameters as follows:
+% \begin{center}
+% \begin{tabular}{l}
+% "\setlength{\cellspacetoplimit}{3pt}", \\
+% "\setlength{\cellspacebottomlimit}{2pt}".
+% \end{tabular}
+% \end{center}
%
% \medskip
-% Finally, manual adjustments can also be achieved using the "\vstrut" command
-% from the \textsf{spacingtricks} package~\cite{SPA}, or by utilizing "\gape" and "\Gape"
-% from the \textsf{makecell} package~\cite{MKCELL},
-% as well as employing "\bigstrut" from the \textsf{bigstrut} package~\cite{STRUT}.
+% A common issue with \LaTeX\ tables is that there isn’t enough space
+% around horizontal rules. As seen previously,
+% \textsf{cellspace} partially addresses this issue,
+% but if you want to add some more space around the horizontal rules, it's not straightforward.
+% First, note that Donald Arsenau's \textsf{tabls} package~\cite{TABLS} produces
+% a nice and automatic solution in this regard, but is not compatible with \textsf{array}
+% nor with \textsf{numprint}.
+%
+% Several other methods can be employed:
+% you can increase the space on top or bottom of a particular cell
+% by using
+% \begin{center}
+% "\gape"\oarg{\texttt{t} or \texttt{b}}\marg{text}
+% or "\Gape"\oarg{height}\oarg{depth}\marg{text}
+% \end{center}
+% from the \textsf{makecell} package~\cite{MKCELL}.
+% You have also the "\bigstrut" command from the \textsf{bigstrut} package~\cite{STRUT},
+% but it's less efficient and convenient.
+% An efficient method is provided by the \textsf{mdwtab} package
+% of Mark Wooding~\cite{MDWTAB} with its macros
+% "\vgap"\marg{length} or "\hlx"\marg{hlx-cmd},
+% where in \marg{hlx-cmd} you can place "h", representing "\hline", and "s"\oarg{length},
+% meaning "\vgap" (among others).
+% This package provides also many other interesting features.
+% Finally, manual adjustments of particular rows can be achieved using
+% the "\vstrut"\oarg{depth}\marg{height} command
+% from the \textsf{spacingtricks} package~\cite{SPA},
+% These packages are not loaded by \textsf{arraycols}, except \textsf{makecell}.
+% Have a look at their documentation.
%
% \medskip
% \DescribeEnv{z\marg{width}}
@@ -281,16 +309,19 @@
% the \texttt{X} column definition, which calculates its width in relation to
% the required width for the entire table. It aligns text to the left
% similar to \texttt{p}\marg{width}.
-% For instance, using "\begin{tabularx}{8cm}{|c|X|X|}"
+% Using "\begin{tabularx}{8cm}{|c|X|X|}"
% adjusts the width of the \texttt{X} columns
% to achieve a total width of 8\,cm. To complement this, we offer
% the \texttt{T} declaration, which performs a similar function
% but centers the content horizontally.
% Additionally the \texttt{Z} declaration activates mathematical
% mode and adjusts
-% line heights, comparable to \texttt{x} or \texttt{z}). Here's an example with
-% "\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}".
+% line heights, comparable to \texttt{x} or \texttt{z}).
+% The following example is obtained with
% \begin{center}
+% "\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}".
+%
+% \medskip
% \begin{tabularx}{\linewidth}{|T|y|x|Z|T|}
% \hline
% A good job &
@@ -301,6 +332,7 @@
% \hline
% \end{tabularx}
% \end{center}
+%
% Observe that cells 3 and 4 are not vertically centered to preserve
% the precise alignment of fraction bars within mathematical formulas
% across cells.
@@ -317,7 +349,8 @@
% compared to the one achieved
% with the standard declaration ``"|"''. For selecting the line thickness,
% we additionally provide the column
-% definition \texttt{V}\marg{thickness}\footnote{The definition of \texttt{V}
+% definition \texttt{V}\marg{thickness}
+% \footnote{The definition of \texttt{V}
% would have been simplified by utilizing an optional argument for \texttt{I},
% but unfortunately, this approach doesn't function.}.
%
@@ -334,14 +367,12 @@
% Horizontal rules at the beginning and end of the table are accomplished using "\whline",
% while a "\Xhline{0.8pt}" rule is employed after the legend rows.
% The formatting of header rows is achieved using the "\thead" command
-% from the \textsf{makecell} package. By default, \textsf{arraycols} sets:
-% "\renewcommand\theadfont{\footnotesize\sffamily}"
-% (in \textsf{makecell} it is |\footnotesize| only, without "\sffamily").
+% from the \textsf{makecell} package.
% Lastly, following a recommendation of the \textsf{array} package~\cite{ARRAY},
% an additional 1\,pt has been added to the standard height of each row within this table.
% This adjustment is implemented with the command
-% "\setlength{\extrarowheight}{1pt}"\footnote{As stated
-% in the \textsf{array} package documentation:
+% "\setlength{\extrarowheight}{1pt}"
+% \footnote{As stated in the \textsf{array} package documentation:
% \og This is important for tables with horizontal lines because those
% lines normally touch the capital letters\fg.}.
%
@@ -362,8 +393,8 @@
% The \textsf{cellspace} package provides the \texttt{S} modifier
% (we used \texttt{Q} instead), which,
% when placed before a column declaration, allows for the adjustment of cell content height
-% to prevent any overlap with horizontal rules. The spacing between the content and the rules
-% is governed by the parameters
+% to prevent any overlap with horizontal rules. The spacing between the content and the
+% horizontal rules is governed by the parameters
% "\cellspacetoplimit" and "\cellspacebottomlimit".
%
% \begin{macrocode}
@@ -400,32 +431,35 @@
\newcolumntype{V}[1]{!{\vrule width #1}}
\newlength\savedwidth
\newcommand{\whline}{%
- \noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 1pt}
+ \noalign{\global\savedwidth\arrayrulewidth
+ \global\arrayrulewidth 1pt}
\hline
\noalign{\global\arrayrulewidth\savedwidth}
}
-\renewcommand\theadfont{\footnotesize\sffamily}
% \end{macrocode}
%
% \bigskip
-% \begin{thebibliography}{11}
+% \begin{thebibliography}{13}
+% \bibitem{TABUL} \emph{Tabularray -- Typeset Tabulars and Arrays with \LaTeX 3},
+% Jianrui Lyu, CTAN, 2024A 2024/02/16.
% \bibitem{ARRAY} \emph{A new implementation of LATEX’s \textsf{tabular} and \textsf{array}
% environment}, Frank Mittelbach, David Carlisle, CTAN, v2.4k revised 2018/12/30.
% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN,
% v1.8.1 2019/03/11.
% \bibitem{TABX} \emph{The \textsf{tabularx} package}, David Carlisle, CTAN, v2.11.b 2016/02/03.
% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03.
-% \bibitem{TABY} \emph{The \textsf{tabulary} package}, David Carlisle, CTAN, v1.10 2014/06/11.
% \bibitem{TBLSTY} \emph{The \textsf{tablestyles} package}, Matthias Pospiech, CTAN,
% v0.1 2014/06/27.
+% \bibitem{TABY} \emph{The \textsf{tabulary} package}, David Carlisle, CTAN, v1.10 2014/06/11.
% \bibitem{BOOK} \emph{Publication quality tables in \LaTeX}, package \textsf{booktabs} by
% Simon Fear, CTAN, v1.618033 2016/04/29.
% \bibitem{TABLS} \emph{The \textsf{tabls} package}, Donald Arseneau, CTAN, v3.5 2010/02/26.
% \bibitem{STRUT} \emph{The \textsf{multirow}, \textsf{bigstrut}
% and \textsf{bigdelim} packages},
% Piet van Oostrum, Øystein Bache, Jerry Leichter, CTAN, v2.4 2019/01/01.
+% \bibitem{MDWTAB} \emph{The \textsf{mdwtab} package}, Mark Wooding, CTAN, v1.9 1998/04/28.
% \bibitem{SPA} \emph{The \textsf{spacingtricks} package}, Antoine Missier,
-% CTAN, v1.3 2020/11/02.
+% CTAN, v1.8 2023/12/06.
% \bibitem{COMP} \emph{The \LaTeX\ Companion}. Frank Mittelbach, Michel Goossens,
% Johannes Braams, David Carlisle, Chris Rowley, 2nd edition, Pearson Education, 2004.
% \end{thebibliography}
diff --git a/macros/latex/contrib/arraycols/arraycols.ins b/macros/latex/contrib/arraycols/arraycols.ins
index 567b7a7540..66bf4af2f4 100644
--- a/macros/latex/contrib/arraycols/arraycols.ins
+++ b/macros/latex/contrib/arraycols/arraycols.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+%% Copyright (C) 2019-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -21,7 +21,7 @@
This is a generated file.
-Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+Copyright (C) 2019-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr>
This file may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3 of this license
diff --git a/macros/latex/contrib/arraycols/arraycols.pdf b/macros/latex/contrib/arraycols/arraycols.pdf
index b42c461d36..d280a956f3 100644
--- a/macros/latex/contrib/arraycols/arraycols.pdf
+++ b/macros/latex/contrib/arraycols/arraycols.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 8b013bb90c..7261ed05e2 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<*class>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplClass{easybook}{2024/05/03}{2024bf}
+\ProvidesExplClass{easybook}{2024/05/04}{2024bh}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -301,7 +301,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/05/03}{2024bf}
+\ProvidesExplPackage{easybase}{2024/05/04}{2024bh}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2534,7 +2534,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/05/03}{2024bf}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/05/04}{2024bh}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 19d165d5aa..71fb6cb89b 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 4cbd925e2b..3cf3361f55 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -4,8 +4,8 @@
\usepackage[fontset = fandol]{ctex}
\usepackage
{
- enumitem,newtxmath,indentfirst,tabularray,
- fancyvrb,geometry,hologo,pifont,changelog,calc
+ enumitem,indentfirst,tabularray,fancyvrb,
+ geometry,hologo,pifont,changelog,calc
}
\definecolorscheme{blue}
{
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024bf,
- date = 2024/05/03,
+ version = v2024bh,
+ date = 2024/05/04,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
diff --git a/macros/latex/contrib/frenchmath/frenchmath.dtx b/macros/latex/contrib/frenchmath/frenchmath.dtx
index edd050c10a..6af5bc2038 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}
- [2024/02/25 v2.10 .dtx Typesetting mathematics according to French rules]
+ [2024/05/04 v3.0 .dtx Typesetting mathematics according to French rules]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -28,26 +28,21 @@
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{lmodern}
-\usepackage[lgrmath]{frenchmath}
-\usepackage[Euler]{upgreek}
-\usepackage{textalpha}
+\usepackage[lgrmath,savegreeks,otherfonts]{frenchmath}
\usepackage{metalogo} % pour les logos XeLaTeX et LuaLaTeX
\usepackage{sectsty}
\usepackage{xcolor}
+%\usepackage{textalpha}
+\usepackage{tabls}
\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
\allsectionsfont{\color{darkbrown}}
-% 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}
-% 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
+
+% symbole \emptyset de computer modern au cas où on change la police de ce doc :
+\def\CMemptyset{\mathord{\text{\usefont{OMS}{cmsy}{m}{n}\symbol{'73}}}}
% pour avoir le mu de micro :
\DeclareTextSymbol{\textmicro}{TS1}{181}
-\DeclareTextSymbolDefault{\textmicro}{TS1}
+%\DeclareTextSymbolDefault{\textmicro}{TS1}
\DisableCrossrefs
%\CodelineIndex
@@ -62,6 +57,7 @@
pdfauthor={Antoine Missier}
}
\begin{document}
+%\MakeShortVerb" % incompatible si placé avant
\DocInput{frenchmath.dtx}
%\PrintChanges
%\PrintIndex
@@ -69,7 +65,7 @@
%</driver>
% \fi
%
-% \CheckSum{594}
+% \CheckSum{320}
%
% \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
@@ -118,7 +114,7 @@
% - ajout des macros pour les bases (i,j) et (i,j,k).}
%
% \changes{v1.6}{2022/10/16}{
-% - Remplacement de icomma par ncccomma, grâce à une proposition de J. F. Burnol,
+% - Remplacement de icomma par ncccomma, grâce à un "patch" 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.}
@@ -182,17 +178,28 @@
% - 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.}
-
+%
% \changes{v2.10}{22/02/2024}{
% - Changements dans la doc concernant la gestion des lettres grecques et unicode-math.}
%
+% \changes{v3.0}{04/03/2024}{
+% - Redéfinition de cmod qui correspond au pod de amsmath,
+% - Modification du chargement conditionnel de dotlessj,
+% - Copie du code de legslant, geqslant, varnothing sans importer amssymb,
+% - Utilisation de AtEndPreamble pour pouvoir charger frenchmath avant unicode-math,
+% - Ajout d'une table des matières.}
+% \changes{v3.0}{12/04/2024}{
+% - Développement et intégration de l'extension mathgreeks
+% - Mise à jour de la documentation}
+%
% \GetFileInfo{frenchmath.sty}
%
% \title{L'extension \textsf{frenchmath}\thanks{Ce document
-% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 25/02/2024.}}
+% correspond à \textsf{frenchmath}~\fileversion, dernière modification le 04/05/2024.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{25 février 2024}
+% \date{4 mai 2024}
% \maketitle
+% \tableofcontents
%
% \section{Introduction}
% Cette extension, inspirée à l'origine de \textsf{mafr} de Christian Obrecht~\cite{MAFR},
@@ -206,19 +213,20 @@
% \footnote{Contrairement à \textsf{mafr} nous avons choisi de ne pas
% conserver le même nom de commande pour substituer
% des symboles français aux symboles anglais.}.
-% Depuis la version 2.0, \textsf{frenchmath} propose en outre deux options permettant
+% Depuis la version 2.0, \textsf{frenchmath} propose en outre des options permettant
% de composer les minuscules grecques du mode mathématique en forme droite.
%
% \medskip
% D'autres solutions existent pour composer les majuscules mathématiques en romain,
% par exemple avec \XeLaTeX\ ou \LuaLaTeX\ et l'extension \textsf{unicode-math}~\cite{UNIC}.
-% Celle-ci peut être utilisée avec \textsf{frenchmath} à condition d'être chargée \emph{avant}.
% 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).
+% (avec la famille des fontes Adobe Utopia),
+% \textsf{mathdesign} de Paul Pichaureau~\cite{DESIGN}
+% (avec les polices Adobe Utopia, URW Garamond ou Bitstream Charter)
+% ou encore \textsf{kpfonts} de Christophe Caignaert~\cite{KPF}.
% Mais \textsf{frenchmath} fournit une solution générique
-% s'adaptant à n'importe quelle police de caractères.
+% s'adaptant à n'importe quelle police de caractères
+% (et compatible avec \textsf{unicode-math}).
%
% \medskip
% Certaines préconisations, telles que composer en lettre droite
@@ -250,10 +258,11 @@
% (cf. \cite{RTIN} p.107, voir aussi~\cite{IGEN}).
% En utilisant \XeLaTeX\ ou \LuaLaTeX,
% avec l'option \texttt{math-style=french} de l'extension \textsf{unicode-math},
-% cette convention est assez commode à mettre en œuvre,
-% y compris avec les polices TrueType ou OpenType ;
+% cette convention est commode à mettre en œuvre,
% par contre, avec \LaTeX\ ou pdf\LaTeX, elle est peu respectée
-% et les extensions précitées ne fonctionnent qu'avec des polices particulières.
+% et les extensions comme \textsf{mathdesign} (avec \texttt{uppercase=upright}),
+% \textsf{fourier} (avec \texttt{upright}) ou \textsf{kpfonts} (avec \texttt{uprightRoman})
+% ne fonctionnent qu'avec des polices particulières.
% Par défaut \textsf{frenchmath} compose automatiquement les majuscules
% mathématiques latines en romain,
% quelle que soit la police utilisée.
@@ -302,28 +311,30 @@
% (sans espace), sinon c'est un caractère de ponctuation.
% \end{itemize}
%
-% Cette deuxième approche parait meilleure, néanmoins \textsf{ncccomma}
+% Cette deuxième approche est plus souple, néanmoins \textsf{ncccomma}
% ne fonctionne pas avec \textsf{babel-french} utilisé conjointement avec
-% l'extension \textsf{numprint} et son option \texttt{autolanguage}
+% 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.}.
+% légèrement plus grande que l'espace que l'on obtient sans cette option.}
+% de l'extension \textsf{numprint}.
% En outre \textsf{ncccomma} ne fonctionne pas non plus
% avec l'extension \textsf{unicode-math} (et bugue à l'appel |\setmathfont|).
% Dans son article \emph{Intelligent commas}~\cite{BECC},
% Claudio Beccari propose une autre solution,
% voisine de \textsf{ncccomma}, mais qui produit le même type d'incompatibilités.
-% Le code a donc été revu et simplifié afin de régler proprement ces incompatibilités.
-% Comme bien des pays utilisent la virgule comme
+% Le code a donc été revu afin de régler ces incompatibilités.
+% Comme de nombreux pays utilisent la virgule comme
% séparateur décimal, il fait l'objet d'une extension séparée,
% \mbox{\textsf{decimalcomma}}~\cite{DECC}, qui est chargée par \textsf{frenchmath}
% (depuis la version 2.7).
-% Mais, si on utilise \textsf{unicode-math}, il est alors impératif de charger
-% \textsf{frenchmath} \emph{après}.
+% Bien que \textsf{decimalcomma} ne fonctionne avec \textsf{unicode-math}
+% que s'il est chargé après
% \footnote{L'extension \textsf{icomma} présente la même limitation et doit être chargée
-% après \textsf{unicode-math}.}.
+% après \textsf{unicode-math}.},
+% \textsf{frenchmath} s'est affranchi de cette contrainte (depuis la version 2.11).
%
% \medskip
% Lorsque l'on utilise l'extension \textsf{pstricks-add} de \textsf{PSTricks}
@@ -340,7 +351,7 @@
% avec \textsf{frenchmath} ;
% le comportement de \og ;\fg devient identique à celui de \og:\fg.
%
-% \medskip
+% \bigskip
% \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
@@ -349,7 +360,7 @@
% Nous avons redéfini les crochets dans l'extension \textsf{ibrackets}~\cite{BRACKETS}
% qui est chargée par \textsf{frenchmath},
% \DescribeMacro{[noibrackets]}
-% sauf si l'on active l'option \texttt{noibrackets}
+% sauf si on la désactive avec l'option \texttt{noibrackets}
% \footnote{D'autres solutions existent,
% par exemple avec l'extension \textsf{interval}
% ou encore avec la macro \texttt{\string\DeclarePairedDelimiter}
@@ -374,8 +385,8 @@
% et le signe}: par exemple |$x \in ] -\infty, 0]$| produit
% $x \in ] -\infty, 0]$ au lieu de $x \in ]-\infty, 0]$.
% Mais au contraire lorsque l'on veut 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]$
+% \emph{il faut laisser une espace entre le second crochet et l'opération} + ou --,
+% par exemple, |$[a,b] +[c,d]$| donne $[a,b] +[c,d]$
% mais |$[a,b]+ [c,d]$| produit $[a,b]+ [c,d]$.
%
% En cas de comportement problématique, par exemple si
@@ -405,15 +416,23 @@
% \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}.
+% Ce sont des alias de |\leqslant| et |\geqslant| de l'extension \textsf{amssymb}
+% (non 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}) ;
+% 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 classique Latin Modern : $\cmemptyset$.
+% particulièrement laid dans la fonte classique Latin Modern : $\CMemptyset$.
+%
+% \DescribeMacro{\AMSvarnothing}
+% Avec \textsf{unicode-math} et la fonte mathématique Latin Modern Math
+% (appelée avec |\setmathfont|), |\varnothing| produit le même glyphe
+% laid que |\emptyset|. Pour corriger cela, on dispose de la commande
+% |\AMSvarnothing|, qui doit être appelée dans le préambule
+% et permet d'obtenir le même glyphe que celui de \textsf{amssymb}.
%
% \medskip
% \DescribeMacro{\paral}
@@ -431,10 +450,10 @@
%
% \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}$.
+% Le modulo se compose normalement entre parenthèses, avec |\pod| ou |\pmod|,
+% mais, en français, on le rencontre aussi 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}
%
@@ -492,8 +511,9 @@
% 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.
+% (utilisé dans le plan complexe).
+% \DescribeMacro{\Ouv}
+% Ces commandes peuvent être utilisées sans expliciter 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
@@ -503,9 +523,10 @@
% \medskip
% \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
+% \footnote{Notons que la macro \texttt{\string\ij} existe déjà
+% (ligature entre i et j pour le hollandais) ; elle a été redéfinie pour le mode
+% mathématique uniquement, qui doit donc ici être explicite : \texttt{\$\string\ij \$}.}
+% 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, pour l'extension \textsf{mathptmx} (basée sur la police de texte Times),
@@ -514,8 +535,9 @@
% ce qui permet aux macros ci-dessus de fonctionner normalement.
%
% \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
+% Dans les mathématiques françaises, la norme concernant l'usage
+% des lettres grecques minuscules en italique ou en forme droite
+% ne semble pas aussi claire que pour les lettres romaines
% 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
@@ -538,29 +560,17 @@
% 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}
+% Par exemple les extensions \textsf{fourier}~\cite{FOUR}
+% \mbox{\textsf{mathdesign}}~\cite{DESIGN},
% ou \textsf{kpfonts}~\cite{KPF} disposent d'options permettant
% l'écriture automatique des lettres grecques minuscules en forme droite
-% (ou des majuscules en italique).
+% (et aussi des majuscules en italique) dans la police donnée.
% 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 ;
-% ou sinon on peut ajouter \texttt{\string\let\string\Bbbk\string\relax}
-% avant de charger \textsf{frenchmath}.}
-% et \textsf{libertinust1math}
-% de Michael Sharpe,
+% et \textsf{libertinust1math} de Michael Sharpe ou
% \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.
+% qui fournissent les formes droites avec
+% les polices Palatino, Times et Libertine respectivement.
%
% 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
@@ -571,171 +581,206 @@
% \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
-% qui permettent d'obtenir les lettres grecques en forme droite.
-% Ces options peuvent être utilisées y compris avec \textsf{unicode-math},
-% mais \textsf{frenchmath} doit toujours être chargé
-% \emph{après} \textsf{unicode-math}.
+% mais nécessite une compilation \XeLaTeX\ ou \LuaLaTeX.
%
% \medskip
-% \DescribeEnv{[lgrmath]}
-% En activant l'option \texttt{lgrmath}, \textsf{frenchmath}
-% charge l'extension du même nom avec son option \texttt{style=french}
-% et la fonte \texttt{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.}.
-% Celle-ci se marie particulièrement bien avec la police usuelle Latin Modern.
-% Les commandes |\alpha|, |\beta|, etc.
-% produisent alors 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 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 les options \texttt{font=Alegreya-LF} ou \texttt{font=Cochineal-LF}
-% de \textsf{lgrmath}).
-% Dans ce cas, il ne faut pas activer l'option \texttt{lgrmath} de \textsf{frenchmath}
-% et, si l'on veut conserver les lettres italiques d'origine,
-% il faut précéder le chargement
-% de \textsf{lgrmath} de la commande |\SaveGreekItalics| ;
-% avec \textsf{unicode-math}, il faut en outre placer cette commande
-% dans un |\AtBeginDocument| avec |\usepackage[style=french,font=...]{lgrmath}|
-% et \emph{après} le chargement de \textsf{unicode-math}.
+% Avant la version 3.0, \textsf{frenchmath} disposait de deux options pour composer
+% les lettres grecques en forme droite : \texttt{lgrmath} et \texttt{upgreek}
+% \footnote{En fait il y avait une troisième option, \texttt{Upgreek}, mais celle-ci
+% est désormais obsolète.}.
+% Inspiré par le travail de Jean-François Burnol, nous avons développé, et intégré
+% à \textsf{frenchmath}, l'extension \textsf{mathgreeks}~\cite{MGREEK}
+% qui permet d'utiliser de nombreuses fontes de lettres grecques
+% sans modifier les autres caractères et symboles.
+% Il suffit d'appeler \textsf{frenchmath} avec une des options de fonte de
+% \textsf{mathgreeks}, de la forme \texttt{clé=valeur}.
+% Par exemple, les lettres grecques droites de la police Utopia,
+% telles que fournies par l'extension \textsf{mathdesign}, s'obtiennent avec
+% \begin{center}
+% |\usepackage[mathdesign=Utopia]{frenchmath}|.
+% \end{center}
+% L'extension \textsf{mathdesign} elle-même ne sera pas chargée.
+% Lorsqu'une valeur n'est pas précisée, il y a toujours une valeur par défaut.
+% Par exemple pour \texttt{mathdesign}, nous avons choisi \texttt{Charter}.
+% Pour \texttt{upgreek}, la fonte par défaut est \texttt{Symbol}.
+% Pour \texttt{lgrmath}, nous avons choisi \texttt{fcm}
+% \footnote{Il faut que l'extension \textsf{cm-lgc} (développée par Alexej Kryukov)
+% soit installée sur votre distribution,
+% sans quoi la fonte de substitution LGR/lmr/m/n sera utilisée.
+% Les formes italiques du thêta $\ittheta$ ou du rho $\itrho$ de \texttt{fcm}
+% ne sont pas vraiment ceux d'usage en mathématiques, mais les formes droites
+% sont bien adaptées.
+% \texttt{Alegreya-LF} est une autre fonte assez élégante pour \texttt{lgrmath},
+% {\mathgreeksfont{enc=LGR,fam=Alegreya-LF,shape=n}\
+% mais produit un \texttt{\string \phi} $\phi$} moins courant et sans la variante
+% $\phi$.
+% }
+% qui se marie particulièrement bien avec la police usuelle Latin Modern.
+%
+% Les commandes |\alpha|, |\beta|, \ldots |\pi|, etc.
+% produisent alors les lettres en forme droite $\alpha$, $\beta$, \ldots, $\pi$, etc.
+% tandis que |\italpha|, |\itbeta|, \ldots, |\itpi|, etc. produisent les formes italiques
+% $\italpha$, $\itbeta$, \ldots, $\itpi$, etc.
+% Si ces dernières déplaisent, on peut activer l'option \texttt{savegreeks}
+% (option booléenne passée à \textsf{mathgreeks}) pour conserver les lettres
+% d'origine avec |\backalpha|, |\backbeta|, \ldots, |\backpi|, etc. :
+% $\backalpha$, $\backbeta$, \ldots, $\backpi$, etc.
%
% \medskip
-% \DescribeEnv{[upgreek]}
-% Avec la même philosophie, \textsf{frenchmath} fournit aussi l'option \texttt{upgreek}
-% basée sur l'extension \textsf{upgreek} de Walter Schmidt~\cite{UPGREEK} qui donne
-% accès à d'autres fontes de lettres grecques minuscules en forme droite avec
-% |\upalpha|, |\upbeta|, etc.
-% L'extension \textsf{upgreek} sera chargée avec son option \texttt{Symbol}
-% \footnote{L'option \texttt{Symbol} de \textsf{upgreek} se marie bien
-% 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 utiliser l'extension \textsf{upgreek}
-% avec l'une des deux autres options disponibles, \texttt{Euler}
-% (qui produit $\upalpha, \upbeta, \ldots, \uppi$, etc.)
-% ou \texttt{Symbolsmallscale},
-% il faut charger l'extension \textsf{upgreek} avec l'option souhaitée
-% indépendamment de \mbox{\textsf{frenchmath}}.
-% Par contre, pour que les commandes |\alpha|, |\beta|\ldots correspondent
-% aux formes droites (comme alias de |\upalpha|, |\upbeta|\ldots),
-% il faut ici conserver l'option \texttt{upgreek} de \textsf{frenchmath}.
-% Comme pour \textsf{lgrmath}, si l'on veut que les formes italiques d'origine
-% restent toujours disponibles avec les commandes
-% |\italpha|, |\itbeta|, etc.,
-% il faut précéder le chargement de l'extension \textsf{upgreek} de la commande
-% |\SaveGreekItalics| ;
-% \DescribeMacro{\upgreekUndefined}
-% 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é \emph{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}.}.
+% Nous présentons ci-après quelques unes des nombreuses options possibles.
+% On se référera à la documentation de \textsf{mathgreeks}~\cite{MGREEK}
+% pour d'autres exemples ou pour les formes italiques correspondantes.
+% La seconde ligne de chaque exemple contient, outre les majuscules,
+% des variantes obtenues avec |\varpepsilon|, |\vartheta|, etc.
+% (sans effet avec la clé \texttt{lgrmath}, excepté pour |\varsigma|).
+% Les clés sans valeur sont en fait des booléens dont la valeur par défaut est \texttt{true}.
%
% \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$.
-% Afin de conserver majuscules et minuscules dans le même style,
-% \textsf{frenchmath} fournit l'option \texttt{Upgreek} qui 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.
+% \DeleteShortVerb{\|}
+% \newcommand\eg{\texttt{=}}
+% \noindent\begin{tabular}{|l|c|}
+% \hline
+% Option \texttt{clé=valeur} & Résultat \\
+% \hline
+% \textbf{lgrmath\eg Cochineal-LF} &
+% \mathgreeksfont{enc=LGR, fam=Cochineal-LF, shape=n}
+% \greektable \\
+% \hline
+% \textbf{lgrmath\eg fcm} &
+% \mathgreeksfont{enc=LGR, fam=fcm, shape=n}
+% \greektable \\
+% \hline
+% \textbf{upgreek\eg Euler} &
+% \mathgreeksfont{enc=U, fam=eur, shape=n}
+% \greektable \\
+% \hline
+% \textbf{upgreek\eg Symbol} &
+% \mathgreeksfont{enc=U, fam=psy, shape=n}
+% \greektable \\
+% \hline
+% \textbf{mathdesign\eg Charter} &
+% \mathgreeksfont{enc=OML, fam=mdbch, shape=n}
+% \greektable \\
+% \hline
+% \textbf{fourier} &
+% \mathgreeksfont{enc=FML, fam=futm}
+% \greektable \\
+% \hline
+% \textbf{pxfonts} &
+% \mathgreeksfont{enc=U, fam=pxmia}
+% \greektable \\
+% \hline
+% \textbf{txfonts} &
+% \mathgreeksfont{enc=U, fam=txmia}
+% \greektable \\
+% \hline
+% \textbf{libertinus} &
+% \mathgreeksfont{enc=LS1, fam=libertinust1math, shape=n}
+% \greektable \\
+% \hline
+% \end{tabular}
+% \MakeShortVerb{|}
+
+% \bigskip
+% Une option spéciale, \texttt{libsans} (booléen), permet d'obtenir une fonte
+% sans empattement pour \texttt{libertinus}.
+% Une autre option, non présentée dans le tableau, est \textbf{kpfonts},
+% avec deux valeurs possibles. Enfin
+% deux autres options sont disponibles, mais pour une compilation avec
+% \LuaLaTeX\ (ou \XeLaTeX):
+% \begin{description}
+% \item[fontspec\eg \ldots] De nombreuses valeurs sont possibles, par exemple
+% \texttt{FreeSerif},
+% \texttt{LiberationSerif},
+% \texttt{GFS Artemisia},
+% \texttt{GFS Didot} (valeur par défaut)\ldots
+% mais aussi des polices non libres comme \texttt{Cambria}, \texttt{Arial},
+% \texttt{Palatino Linotype}, \texttt{Times New Roman}\ldots\
+% si elles sont installées sur votre système ;
+% nécessite de charger l'extension \textsf{fontspec}
+% \footnote{L'extension \textsf{fontspec} est chargée automatiquement par
+% \textsf{unicode-math} ou \textsf{mathspec} (cette dernière étant spécifique à
+% \XeLaTeX), mais l'option \texttt{fontspec} permet une variété de polices
+% TrueType ou OpenType bien plus grande que l'option \texttt{unicode-math}.}.
+%
+% \item[unicode-math\eg \ldots]
+% Donne un beau résultat avec \texttt{Latin Modern Math} (valeur par défaut)
+% ou \texttt{STIX Two Math} ; nécessite le module \textsf{unicode-math}.
+%
+% \end{description}
%
% \medskip
-% Signalons aussi l'extension \textsf{textalpha} de Günter Milde~\cite{ALPHA} qui
-% donne accès aux lettres en forme droite \textalpha, \textbeta, \ldots,
-% \textpi, etc.,
-% mais en mode texte avec |\textalpha|, |\textbeta|, etc.
-% Ces glyphes, semblables à celles de la fonte \texttt{lmr} accessible avec \textsf{lgrmath},
-% se marient également bien avec la police Latin Modern,
-% par contre le thêta produit, \texttheta, n'est pas vraiment
-% celui qui est d'usage en mathématiques.
+% Par défaut \LaTeX\ compose les majuscules grecques en forme droite et il
+% n'est donc pas indispensable de recoder celles-ci. L'option \texttt{uppercase=false}
+% permet de conserver les majuscules d'origine : $\backGamma$, $\backDelta$, \ldots,
+% $\backOmega$ (sans le préfixe |\back...|).
%
% \medskip
% Mentionnons pour finir 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|
+% utilisé pour le préfixe des unités physiques, \textmu, 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 $\mu$ droit mathématique.
+% il diffère du $\mu$ droit mathématique, obtenu avec |$\mu$| si l'on a activé
+% une des options de fonte précédentes.
+%
%
% \StopEventually{}
%
% \section{Le code}
%
+% Les seules options de \textsf{frenchmath} sont \texttt{capsit} et \texttt{noibrackets}.
+% Tout le travail sur les lettre grecques est dorénavant géré par \textsf{mathgreeks}
+% et toute option inconnue de \textsf{frenchmath} sera passée à \textsf{mathgreeks}.
+% Auquel cas, l'on y ajoute automatiquement l'option \texttt{upright}
+% pour composer les lettres grecques en forme droite.
+% Si l'on donne une clé ou une valeur invalide, c'est alors \textsf{mathgreeks} qui produira
+% un message d'erreur.
+%
% \begin{macrocode}
-\newif\ifcapsit
-\DeclareOption{capsit}{\capsittrue}
-\newif\iflgrmath
-\DeclareOption{lgrmath}{\lgrmathtrue}
-\newif\ifupgreek
-\DeclareOption{upgreek}{\upgreektrue}
-\newif\ifUpgreek
-\DeclareOption{Upgreek}{\Upgreektrue\upgreektrue}
-\newif\ifnoibrackets
-\DeclareOption{noibrackets}{\noibracketstrue}
+\newif\iffrenchmath@capsit
+\DeclareOption{capsit}{\frenchmath@capsittrue}
+\newif\iffrenchmath@noibrackets
+\DeclareOption{noibrackets}{\frenchmath@noibracketstrue}
+\newif\iffrenchmath@mathgreeks
+\DeclareOption*{\frenchmath@mathgreekstrue
+ \PassOptionsToPackage{\CurrentOption,upright}{mathgreeks}}
\ProcessOptions \relax
-\@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}
- }{
- \RequirePackage{amssymb} % \leqslant, \geqslant, \varnothing
- \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{
- \PackageInfo{frenchmath}{Command \string\mathscr\space
- already defined, \MessageBreak
- I don't load mathrsfs}
- }
- }
- }
-}
+% \end{macrocode}
+% Assurer une bonne compatibilité avec \textsf{unicode-math} est un peu compliqué
+% car \textsf{unicode-math} définit ou redéfinit de nombreux symboles, lettres,
+% signes dans |\AtBeginDocument|. Les extensions \textsf{decimalcomma}
+% et \textsf{ibrackets} font déjà appel à |\AtBeginDocument| mais pour garantir
+% que leur action soit bien postérieure à celle de \textsf{unicode-math}
+% leur appel a été placé dans un |\AtEndPreamble|, fourni par l'extension \textsf{etoolbox}.
+% Il y a par contre un problème si on utilise une instruction comme |\MakeShortVerb"| du
+% module \textsf{shortvrb} ou |\lstMakeShortInline"| du module \mbox{\textsf{listings}}.
+% Ce type d'instruction doit agir \emph{après} \textsf{frenchmath}, donc être
+% placée après |\begin{document}| ou bien dans un |\AtBeginDocument{...}|.
+%
+% L'extension \textsf{mathptmx} ne fournit pas de |\jmath| mais considère néanmoins
+% cette commande comme existante. Dans ce cas, nous la rendons donc \og indéfinie \fg
+% pour la définir ensuite dans une commande générale faisant appel
+% à l'extension \textsf{dotlessj}.
+% \begin{macrocode}
\RequirePackage{amsopn} % fournit \DeclareMathOperator
-\@ifpackageloaded{mathptmx}{\RequirePackage{dotlessj}}{}
\RequirePackage{xspace} % utile pour les commandes \ssi, \Oij
-\ifnoibrackets\else\RequirePackage{ibrackets}\fi % intelligent brackets
-\RequirePackage{decimalcomma} % depuis frenchmath 2.7
+\RequirePackage{etoolbox} % fournit \AtEndPreamble
+\iffrenchmath@mathgreeks \RequirePackage{mathgreeks} \fi
+\AtEndPreamble{
+ \RequirePackage{decimalcomma}
+ \iffrenchmath@noibrackets\else\RequirePackage{ibrackets}\fi
+ \@ifpackageloaded{mathptmx}{\let\jmath\@undefined}{}
+ \@ifundefined{jmath}{\RequirePackage{dotlessj}}{}
+ \@ifpackageloaded{pstricks-add}{\psset{comma=true}}{}
+}
% \end{macrocode}
%
% \DescribeMacro{\DeclareMathUp}
-% Sauf si l'option \texttt{capsit} est activée, on redéfinit toutes les lettres majuscules
+% Sauf si l'on a invoqué l'option \texttt{capsup=false} (ou \texttt{capsit}),
+% on redéfinit toutes les lettres majuscules
% du mode mathématique grâce à la commande |\DeclareMathUp|.
% Contrairement aux bascules |\MathUp| et |\MathIt| de l'extension \textsf{mismath},
% |\DeclareMathUp| ne fonctionne que dans le préambule, mais son code est bien plus simple
@@ -753,14 +798,14 @@
% se trouve sur le forum de discussion \texttt{iterate190.rssing.com},
% en réponse à \og TeX How to iterate over a comma separated list$?$\fg.
% Que son auteur, Petr Olšák, soit remercié.
-% Cette macro a été définie de manière identique dans \textsf{mismath},
+% Cette macro a d'ailleurs été utilisée 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,
% ou avec \textsf{unicode-math}.
% \smallskip
% \begin{macrocode}
-\newcommand*\DeclareMathUp[1]{
+\providecommand*\DeclareMathUp[1]{
\DeclareMathSymbol{#1}{\mathalpha}{operators}{`#1}}
\def\apply#1#2{\apply@#1#2,\apply@,}
@@ -768,33 +813,102 @@
\else #1{#2}\afterfi@{\apply@#1}\fi}
\def\afterfi@#1#2\fi{\fi#1}
-\ifcapsit\else\AtBeginDocument{
+\AtEndPreamble{\iffrenchmath@capsit\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
+ }\fi
+}
-\AtBeginDocument{\@ifpackageloaded{pstricks-add}{\psset{comma=true}}{}}
-\DeclareMathSymbol{;}{\mathbin}{operators}{'73} % \mathpunct à l'origine
+% \end{macrocode}
+% En utilisant |\AtEndPreamble| (de l'extension \mbox{\textsf{etoolbox}}),
+% avec |\AtBeginDocument| à l'intérieur, on garantit que certaines actions
+% auront bien lieu après celles de \textsf{unicode-math},
+% même si \textsf{frenchmath} est chargé avant \mbox{\textsf{unicode-math}}.
+%
+% Certains symboles, provenant de \textsf{amssymb} sont déjà définis par certaines
+% extensions (\textsf{mathdesign} ou \textsf{unicode-math}) et ne seront pas redéfinis.
+% Un avertissement sera affiché dans ce cas. Comme \textsf{amssymb}
+% (qui utilise \textsf{amsfonts}) charge plusieurs fontes mathématiques et un grand
+% nombre de symboles pas forcément nécessaires, nous n'avons extrait que les
+% trois symboles dont nous avons besoin dans cette extension :
+% |\leqslant|, |\geqslant| et |\varnothing|.
+% \begin{macrocode}
+\AtEndPreamble{% au cas où frenchmath est chargé avant unicode-math
+ \AtBeginDocument{% après actions de unicode-math
+ \DeclareMathSymbol{;}{\mathbin}{operators}{'73} % et non \mathpunct
+ \@ifundefined{mathscr}{\RequirePackage{mathrsfs}}{
+ \PackageWarningNoLine{frenchmath}{Command \string\mathscr\space
+ already defined, \MessageBreak
+ I don't load mathrsfs}
+ }
+ \@ifundefined{leqslant}{
+ \DeclareSymbolFont{AMSa}{U}{msa}{m}{n}% de amsfonts
+ \DeclareMathSymbol{\leqslant}{\mathrel}{AMSa}{"36}% de amssymb
+ \DeclareMathSymbol{\geqslant}{\mathrel}{AMSa}{"3E}
+ }{
+ \PackageWarningNoLine{frenchmath}{\string\leqslant\space
+ and \string\geqslant\space already defined,
+ \MessageBreak
+ they will not be redefined}
+ }
+ \@ifundefined{varnothing}{% de amssymb
+ \newcommand\varnothing{% \usefont évite de déclarer AMSb
+ \mathord{\text{\usefont{U}{AMSb}{m}{n}\symbol{"3F}}}}
+ }{
+ \PackageWarningNoLine{frenchmath}{\string\varnothing\space
+ already defined,
+ \MessageBreak
+ it will not be redefined,
+ \MessageBreak
+ except by using \string\AMSvarnothing}
+ }
+ }
+}
% \end{macrocode}
-% Passons aux alias et identifiants de fonctions classiques.
+% Voyons les alias et quelques commandes particulières.
+%
+% La commande |\varnothing| produit $\varnothing$ mais par contre,
+% le symbole fournit par \textsf{unicode-math}, avec \textsf{Latin Modern Math},
+% est très laid et malheureusement identique à |\emptyset| : $\CMemptyset$.
+% Afin de récupérer le symbole de \textsf{amssymb}, sans être obligé de charger
+% cette extension, nous proposons la commande |\AMSvarnothing|,
+% à placer dans le préambule, après l'appel de \textsf{unicode-math}.
% \begin{macrocode}
\newcommand\curs{\mathscr}
\newcommand\infeg{\leqslant}
\newcommand\supeg{\geqslant}
-\@ifundefined{vide}{\newcommand\vide{\varnothing}}{}
+\newcommand\vide{\varnothing}
+\newcommand\AMSvarnothing{% doit être appelé après \setmathfont ?
+ \AtEndPreamble{\AtBeginDocument{% après actions de unicode-math
+ \renewcommand\varnothing{%
+ \mathord{\text{\usefont{U}{AMSb}{m}{n}\symbol{"3F}}}}
+ }}
+}
% \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
-% trop serrées avec \textsf{mathastext} + \textsf{times} ou avec \textsf{libertinust1math}.
+% trop serrées avec \mbox{\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.
+%
+% La macro |\cmod|, copiée du |\pod| de \textsf{amsmath} (depuis v2.11),
+% permet de gérer différemment
+% l'espacement en mode \og mathématiques centrées \fg (hors-ligne)
+% ou en mode \og en ligne \fg.
% \begin{macrocode}
\newcommand\paral{\mathrel{\ooalign{$\mkern-1.75mu/\mkern1.75mu$\cr%
$\mkern1.75mu/\mkern-1.75mu$}}}
\newcommand\ssi{si, et seulement si,\xspace}
-\newcommand*\cmod[1]{\quad[#1]}
+%\newcommand*\cmod[1]{\quad[#1]}
+\newif\if@display % provient de amsmath, peut être appelé 2 fois
+\everydisplay\@xp{\the\everydisplay \@displaytrue}
+\newcommand*\cmod[1]{\penalty \z@ % similaire à amsmath \allowbreak
+ \if@display\mkern 18mu\else\mkern 8mu\fi [#1]}
+% \end{macrocode}
+% Passons aux identifiants de fonctions classiques.
+% \begin{macrocode}
\DeclareMathOperator{\pgcd}{pgcd}
\DeclareMathOperator{\ppcm}{ppcm}
\DeclareMathOperator{\card}{card}
@@ -811,7 +925,7 @@
\DeclareMathOperator{\cosech}{cosech}
% \end{macrocode}
-% Présentons les commandes pour les bases et repères, qui peuvent être utilisées
+% Les commandes pour les bases et repères peuvent être utilisées
% en mode texte grâce à |\ensuremath| (et |\xspace| qui garantit le bon espacement).
% \begin{macrocode}
\newcommand\@Oij{%
@@ -838,9 +952,10 @@
\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}}
+\AtBeginDocument{\let\oldij\ij %\ij existe déjà (mode texte)
+ \renewcommand\ij{\TextOrMath{\oldij}{%
+ \left(\vec{\imath}, \vec{\jmath}\,\right)}}
+}
\newcommand\ijk{%
\ensuremath{%
\left(\vec{\vphantom{t}\imath}, \vec{\vphantom{t}\jmath},
@@ -848,141 +963,9 @@
\xspace}
% \end{macrocode}
-% 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}
-\providecommand\SaveGreekItalics{% pourrait être définie ailleurs
- \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
-}
-
-\providecommand\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}
- \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}
- \fi
- \ifUpgreek
- % unicode-math utilise \upGamma, \upDelta...
- \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}
- \fi
-}
-% \end{macrocode}
%
% \medskip
-% \begin{thebibliography}{31}
+% \begin{thebibliography}{32}
% \begin{raggedright}
% \bibitem{RTIN} \emph{Lexique des règles typographiques en usage à l’Imprimerie Nationale},
% édition du 26/08/2002.
@@ -1010,6 +993,12 @@
% 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{BABEL} \emph{A Babel language definition file for French}, extension \LaTeX\
+% \textsf{babel-french} de Daniel Flipo, CTAN, v3.5c 14/09/2018.
+% \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{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.
@@ -1017,16 +1006,12 @@
% 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.10 20/02/2024.
+% \bibitem{KPF} \emph{\textsf{Kp-Fonts} -- The Johannes Kepler project},
+% Christophe Caignaert, CTAN, v3.34 20/09/2022.
+% \bibitem{MIS} \emph{Miscellaneous mathematical macros -- The \textsf{mismath} package},
+% Antoine Missier, CTAN, v3.0 04/05/2024.
% \bibitem{VECT} \emph{\textsf{esvect} -- Typesetting vectors with beautiful
% arrow with \LaTeXe}, Eddie Saudrais, CTAN, v1.3 11/07/2013.
-% \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}.
% Walter Schmidt, CTAN, v2.0 10/03/2002.
% \bibitem{NCC} \emph{The \textsf{ncccomma} package}. Alexander I.~Rozhenko,
@@ -1043,12 +1028,12 @@
% \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.
-% \bibitem{KPF} \emph{\textsf{Kp-Fonts} -- The Johannes Kepler project},
-% Christophe Caignaert, CTAN, v3.34 20/09/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{MGREEK} \emph{The \textsf{mathgreeks} package}, Antoine Missier, CTAN,
+% v1.1 04/05/2024.
% \bibitem{ALPHA} \emph{The \textsf{textalpha} package}
% (partie de l'extension \textsf{greek-fontenc}), Günter Milde, CTAN, v2.1 14/06/2022.
% \bibitem{COMP} \emph{\LaTeX\ Companion}, Frank Mittelbach, Michel Goossens,
diff --git a/macros/latex/contrib/frenchmath/frenchmath.pdf b/macros/latex/contrib/frenchmath/frenchmath.pdf
index 566efe4362..390f22cede 100644
--- a/macros/latex/contrib/frenchmath/frenchmath.pdf
+++ b/macros/latex/contrib/frenchmath/frenchmath.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/bithesis/bithesis.dtx b/macros/unicodetex/latex/bithesis/bithesis.dtx
index 648500d0e5..17114c06dd 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.dtx
+++ b/macros/unicodetex/latex/bithesis/bithesis.dtx
@@ -21,10 +21,10 @@
%<thesis>\ProvidesExplClass{bithesis}
%<report>\ProvidesExplClass{bitreport}
%<beamer>\ProvidesExplClass{bitbeamer}
-%<cls>{2024-04-29}{3.7.6}{BIT Thesis Templates}
+%<cls>{2024-05-04}{3.7.7}{BIT Thesis Templates}
%
%<*driver>
-\ProvidesFile{bithesis.dtx}[2024/04/29 3.7.6 BIT Thesis Templates]
+\ProvidesFile{bithesis.dtx}[2024/05/04 3.7.7 BIT Thesis Templates]
\documentclass[letterpaper]{l3doc}
\usepackage{dtx-style}
@@ -733,9 +733,11 @@
autoref / table .initial:n = {\g_@@_const_autoref_tab_tl},
autoref / equ .tl_set:N = \equationautorefname,
autoref / equ .initial:n = {\g_@@_const_autoref_equ_tl},
- % 浮动体与正文之间的距离
+ % 浮动体相关的各种间距
floatSeparation .tl_set:N = \l_@@_misc_float_separation_tl,
floatSeparation .initial:n = {0},
+ tabularRowSeparation .tl_set:N = \l_@@_misc_tabular_row_separation_tl,
+ tabularRowSeparation .initial:n = {1},
}
% \end{macrocode}
%
@@ -1548,14 +1550,21 @@
\@@_if_thesis_english:TF {
\setlength{\belowcaptionskip}{9pt}
} {
- % 为了满足 “前后一行空白的问题”,需要删除 Caption 下方的间距。
+ % 为了满足 “前后一行空白的问题”,需要删除 caption 下方的间距。
% 详见 `caption` 宏包手册和
% https://github.com/CTeX-org/forum/issues/86
%
% 这里实际的 skip 在 15pt 左右,但是全部移除会导致当图片置于页面顶部时,
% 图片与上方的间距过小,因此这里只移除 5pt。
- % 当然,这样会导致文本间的图片的 Caption 下方的间距微微大于一行。
+ % 当然,这样会导致文本间的图片的 caption 下方的间距微微大于一行。
+ %
+ % 至于表格,虽然其caption位置在上方(而图片是在下方),
+ % 但 `caption` 宏包已考虑这种区别,统一设置 `belowskip` 即可。
\captionsetup{belowskip=-5pt}
+
+ % 此外在浮动体内部,调整表格 caption 和表格本体间的距离。
+ % 本来默认有一定空隙,现改为紧贴,这样更接近Word模板实作。
+ \captionsetup[table]{skip=5pt}
}
} {
% 而研究生模板不存在这个问题。
@@ -1623,6 +1632,8 @@
% 调整浮动体与文字之间的距离
\addtolength{\intextsep}{\l_@@_misc_float_separation_tl\baselineskip}
\addtolength{\textfloatsep}{\l_@@_misc_float_separation_tl\baselineskip}
+ % 调整表格各行之间的距离
+ \cs_set:Npn \arraystretch {\l_@@_misc_tabular_row_separation_tl}
}
% \end{macrocode}
% \end{macro}
@@ -1668,8 +1679,8 @@
%
% 调整插图目录与表格目录的标题。
% \begin{macrocode}
-\cs_set:Npn \listfigurename {\@@_get_const:N {figure}}
-\cs_set:Npn \listtablename {\@@_get_const:N {table}}
+\cs_set:Npn \listfigurename {\currentpdfbookmark{\c__bithesis_label_figure_tl}{ch:figures}\@@_get_const:N {figure}}
+\cs_set:Npn \listtablename {\currentpdfbookmark{\c__bithesis_label_table_tl}{ch:tables}\@@_get_const:N {table}}
% \end{macrocode}
%
% 预定义用户常用的证明环境。
@@ -1860,6 +1871,7 @@
% \begin{macrocode}
\cs_new:Npn \make_graduate_cover: {
\cleardoublepage
+ \currentpdfbookmark{封面}{frontmatter:cover1}
\begin{titlepage}
{
\heiti\zihao{5}
@@ -1888,6 +1900,7 @@
% \begin{macrocode}
\cs_new:Npn \make_paper_back: {
\cleardoublepage
+ \currentpdfbookmark{书脊}{frontmatter:paperback}
\begin{titlepage}
\vskip 5cm
\begin{center}
@@ -1917,6 +1930,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_make_chinese_title_page: {
\cleardoublepage
+ \currentpdfbookmark{中文题名页}{frontmatter:titlepage}
\begin{titlepage}
\begin{minipage}[t]{0.48\textwidth}
% 密级、分类号
@@ -2014,6 +2028,7 @@
% 制作英文封面页。
% \begin{macrocode}
\cs_new:Npn \@@_make_english_title_page: {
+ \currentpdfbookmark{英文题名页}{frontmatter:titlepageen}
\begin{titlepage}
\begin{center}
@@ -2097,8 +2112,13 @@
% 原创性声明部分
\begin{center}
\@@_same_page:
+ \ctexset{
+ chapter = {
+ titleformat = {\heiti\zihao{-2}},
+ }
+ }
+ \currentpdfbookmark{\c_@@_graduate_label_originality_tl}{frontmatter:originality}
\chapter*{
- \heiti\zihao{-2}
\c_@@_graduate_label_originality_tl
}
\end{center}
@@ -2117,8 +2137,13 @@
% 使用授权声明部分。
\begin{center}
\@@_same_page:
+ \ctexset{
+ chapter = {
+ titleformat = {\heiti\zihao{-2}},
+ }
+ }
+ \currentpdfbookmark{\c_@@_graduate_label_authorization_tl}{frontmatter:originality1}
\chapter*{
- \heiti\zihao{-2}
\c_@@_graduate_label_authorization_tl
}
\end{center}
@@ -2220,6 +2245,7 @@
{
{1}
{
+ \currentpdfbookmark{封面}{frontmatter:cover}
\begin{titlepage}
\vspace*{16mm}
@@ -2468,6 +2494,7 @@
{
{1}
{
+ \currentpdfbookmark{声明}{frontmatter:originality}
\pagestyle{BIThesis}
\pagenumbering{gobble}
@@ -2618,6 +2645,8 @@
\vspace{-8pt}
}
+ % 添加目录书签
+ \currentpdfbookmark{\c__bithesis_label_toc_tl}{ch:toc}
% 制作目录
\tableofcontents
@@ -2681,8 +2710,8 @@
\bool_if:NTF \l_@@_add_abstract_to_toc_bool {
\chapter{\c_@@_label_abstract_tl}
} {
- \chapter*{\c_@@_label_abstract_tl}
\currentpdfbookmark{\c_@@_label_abstract_tl}{ch:abstract}
+ \chapter*{\c_@@_label_abstract_tl}
}
}
\vspace*{1mm}
@@ -2758,8 +2787,8 @@
\bool_if:nTF {\l_@@_add_abstract_en_to_toc_bool} {
\chapter{\c_@@_label_abstract_en_tl}
} {
- \chapter*{\c_@@_label_abstract_en_tl}
\currentpdfbookmark{\c_@@_label_abstract_en_tl}{ch:abstract:en}
+ \chapter*{\c_@@_label_abstract_en_tl}
}
}
}
diff --git a/macros/unicodetex/latex/bithesis/bithesis.pdf b/macros/unicodetex/latex/bithesis/bithesis.pdf
index 85851c8403..42618f69db 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.pdf
+++ b/macros/unicodetex/latex/bithesis/bithesis.pdf
Binary files differ