diff options
Diffstat (limited to 'macros')
-rw-r--r-- | macros/latex/contrib/arraycols/arraycols.dtx | 148 | ||||
-rw-r--r-- | macros/latex/contrib/arraycols/arraycols.ins | 4 | ||||
-rw-r--r-- | macros/latex/contrib/arraycols/arraycols.pdf | bin | 464654 -> 129129 bytes | |||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.dtx | 6 | ||||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.pdf | bin | 640971 -> 627343 bytes | |||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.tex | 8 | ||||
-rw-r--r-- | macros/latex/contrib/frenchmath/frenchmath.dtx | 719 | ||||
-rw-r--r-- | macros/latex/contrib/frenchmath/frenchmath.pdf | bin | 580908 -> 871342 bytes | |||
-rw-r--r-- | macros/unicodetex/latex/bithesis/bithesis.dtx | 51 | ||||
-rw-r--r-- | macros/unicodetex/latex/bithesis/bithesis.pdf | bin | 751202 -> 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 Binary files differindex b42c461d36..d280a956f3 100644 --- a/macros/latex/contrib/arraycols/arraycols.pdf +++ b/macros/latex/contrib/arraycols/arraycols.pdf 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 Binary files differindex 19d165d5aa..71fb6cb89b 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf 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 Binary files differindex 566efe4362..390f22cede 100644 --- a/macros/latex/contrib/frenchmath/frenchmath.pdf +++ b/macros/latex/contrib/frenchmath/frenchmath.pdf 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 Binary files differindex 85851c8403..42618f69db 100644 --- a/macros/unicodetex/latex/bithesis/bithesis.pdf +++ b/macros/unicodetex/latex/bithesis/bithesis.pdf |