summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-11-04 19:58:07 +0000
committerKarl Berry <karl@freefriends.org>2022-11-04 19:58:07 +0000
commitc688d8a9a01696b4f39e65fa8e834c59d49436a0 (patch)
tree08352cd19493d3bcbf99fff42fc2ca11d9e66ee1 /Master/texmf-dist/source
parentfbab3c6ad13300d0b1caae4559ed1e6af7369af8 (diff)
mathastext (4nov22)
git-svn-id: svn://tug.org/texlive/trunk@64930 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/mathastext/mathastext.dtx4044
1 files changed, 2525 insertions, 1519 deletions
diff --git a/Master/texmf-dist/source/latex/mathastext/mathastext.dtx b/Master/texmf-dist/source/latex/mathastext/mathastext.dtx
index 30f0d90af61..c95ca043e59 100644
--- a/Master/texmf-dist/source/latex/mathastext/mathastext.dtx
+++ b/Master/texmf-dist/source/latex/mathastext/mathastext.dtx
@@ -1,13 +1,18 @@
% -*- coding: iso-latin-1; time-stamp-format: "%02d-%02m-%:y at %02H:%02M:%02S %Z" -*-
% N.B.: this dtx file does NOT use \DocInput, it only uses docstrip.
-% The LaTeX source of the documentation is NOT prefixed with percent characters.
+% The LaTeX source of the documentation is NOT prefixed with %'s.
%<*dtx>
-\def\dtxtimestamp {Time-stamp: <16-11-2019 at 21:27:02 CET>}%
-\def\docdate{2019/11/16}
+\def\dtxtimestamp {Time-stamp: <04-11-2022 at 12:36:29 CET>}
+\def\docdate{2022/11/04}
+% To extract run etex on this file, then to build documentation run
+% latexmk on mathastext.tex then dvipdfmx on the dvi.
+% For more information see http://jf.burnol.free.fr/v13/INSTALL.txt
+% The encoding is deliberately an 8bit one, do not convert to utf-8
+% due to usage of § (<A7>) as an active character.
%</dtx>
%<*drv>
-\def\MSTpkgdate {2019/11/16}
-\def\MSTpkgversion {1.3w}
+\def\MSTpkgdate {2022/11/04}
+\def\MSTpkgversion {1.3y}
%</drv>
%<*dtx>
\iffalse % meta-comment
@@ -27,27 +32,21 @@ of the [LPPL1.3c](http://www.latex-project.org/lppl/lppl-1-3c.txt)
The Author of this Work is Jean-Francois Burnol
-Copyright (C) 2011-2019 Jean-Francois Burnol (`jfbu at free dot fr`)
+Copyright (C) 2011-2019, 2022 Jean-Francois Burnol (`jfbu at free dot fr`)
- Source: mathastext.dtx 1.3w 2019/11/16
+ Source: mathastext.dtx 1.3y 2022/11/04
%</readme>
%<*dtx>
-Generating the documentation from source:
-
-1a) tex (or etex) mathastext.dtx to extract generated files
-1b) then latex mathastext.tex (thrice) and dvipdfmx mathastext.dvi
-2) alternative to 1a)+1b): pdflatex mathastext.dtx. The documentation does
-not include the documented source code then, in contrast to 1a)+1b) method
\fi % end of meta-comment
%</dtx>
%<*!readme&!changelog>
%%----------------------------------------------------------------
%% Package: mathastext
%% Info: Use the text font in math mode (JFB)
-%% Version: 1.3w 2019/11/16
+%% Version: 1.3y 2022/11/04
%% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt)
-%% Copyright (C) 2011-2019 Jean-Francois Burnol <jfbu at free dot fr>
+%% Copyright (C) 2011-2019, 2022 Jean-Francois Burnol <jfbu at free dot fr>
%% Examples of use of mathastext:
%% http://jf.burnol.free.fr/mathastext.html
%% http://jf.burnol.free.fr/showcase.html
@@ -67,7 +66,7 @@ not include the documented source code then, in contrast to 1a)+1b) method
\chardef\Withdvipdfmx 0 % 0 = pdflatex or latex+dvips
\chardef\NoSourceCode 1 %
\NeedsTeXFormat{LaTeX2e}%
- \PassOptionsToClass{a4paper,fontsize=11pt}{scrdoc}%
+ \PassOptionsToClass{a4paper,fontsize=11pt}{scrartcl}%
\else % latex run is on mathastext.tex,
\chardef\extractfiles 2 % no extractions
\fi
@@ -193,129 +192,69 @@ Main options: `italic`, `subdued`, `LGRgreek`.
RECENT CHANGES
==============
-1.3w \[2019/11/16\]
-----
-
-* LaTeX 2019-10-01 release (up to patch level 3 inclusive)
- together with `amsmath` conspired `:-)` to break `mathastext`,
- in connexion with math accents. This has been fixed upstream,
- but I am releasing nevertheless a hot fix to this
- [issue](https://github.com/latex3/latex2e/issues/216)
- (this is compatible with future LaTeX releases).
-
-* Fix: the `\hbar` is originally a robust command but
- becomes a `\mathchardef` token if (e.g.) `amsfonts` is
- loaded and then with recent LaTeX `\hbar<space>` is
- made undefined and `mathastext` definition of it
- remained without effect. The `\mathastext` own `\hbar`
- is now defined `\protected`.
-
-* Fix: option `noendash` (or `symboldelimiters` which implies
- it) caused (since `1.3u`) a bug under Unicode engines when
- setting up the minus sign.
+%</readme>
+%<*changelog>
+MATHASTEXT CHANGE LOG
+=====================
-* Version names declared via the optional argument of
- `\Mathastext` or as first argument of `\MTDeclareVersion`
- must not be `normal` or `bold`. Enforce that! (this was
- marked as a bug to fix since `2012/10/24`...)
+%</changelog>
+%<*readme|changelog>
+1.3y \[2022/11/04\]
+----
+(the 1.3x had an annoying documentation bug, and had already
+been pushed to CTAN, hence the version increase to 1.3y)
-1.3v \[2019/09/19\]
-----
+* mathastext now requires the `\expanded` primitive (which is
+ available with all major engines since TeXLive 2019).
-* LaTeX 2019-10-01 release has made more math macros robust.
- This applies in particular to the math accents and to the
- `\hbar`. This required for mathastext to adapt. Also
- `\leftarrowfill` and `\rightarrowfill` are now defined
- robust by the kernel, hence mathastext does the same. These
- changes are dropped if mathastext detects an older LaTeX
- format.
+* Revisit parts of the documentation (mainly
+ the Examples, and the section on Greek letters) and shuffle
+ the other parts to surely improve things. Mention
+ the [mathfont](https://ctan.org/pkg/mathfont)
+ and [frenchmath](https://ctan.org/pkg/frenchmath) packages.
-* These LaTeX kernel changes motivated an examination of some
- redefinitions done (optionally) by mathastext:
- - The user math alphabet macros got redefined as expanding
- to some other (robust) math alphabet macros, but were not
- robust in the strict sense. This does cause some issues
- for moving arguments in the context of multiple math
- versions, hence it was a bug. The special behaviour of the
- math alphabet commands (they redefine themselves and other
- macros on first use) makes is somewhat problematic for
- mathastext to keep them updated across math versions and
- at the same time strictly LaTeX2e robust. Thus mathastext
- now requires the e-TeX primitive `\protected` and uses it
- for the definitions of the user level math alphabet
- macros.
- - There are a number of `\mathchardef` tokens which (under
- certain options and/or configuration via the package user
- interface), mathastext redefines as macros. These macros
- cause no issue in moving arguments (they are not
- "fragile"), still it is probably better if they expand
- only at the time of typesetting. To this effect they are
- now also `\protected`: `\exists`, `\forall`, `\colon`,
- `\setminus`, `\mid`, `\prod`, `\sum`, `\imath`, `\jmath`.
- - The macro `\vert` (which expands to a `\delimiter`) is now
- defined robust by LaTeX. Its mathastext redefinition is a
- `\protected` one rather.
- - The `\{` and `\}` (which get redefined only under
- `\MTexplicitbracesobeymathxx` regime) are now strictly
- robust in the LaTeX2e sense (formerly they were `\let` to
- some robust macros, and this did not make them strictly
- LaTeX2e-robust entities).
+* Add the `ncccomma` option which loads the
+ [ncccomma](https://ctan.org/pkg/ncccomma)
+ package to allow the comma as decimal separator.
-* The various changes in mathastext described in the previous item
- apply independently of the LaTeX release version. The
- LaTeX format itself requires the e-TeX extensions since 2015.
+* Add the `binarysemicolon` option to let the semi-colon
+ be of type `\mathbin`, not `\mathpunct`.
+* Add the `frenchmath*` option which does all three of
+ `frenchmath`, `ncccomma` and `binarysemicolon`.
-1.3u (2019/08/20)
----
+* Under the `LGRgreek` and `LGRgreeks` options only:
-* new feature: the initial release dealt with only one font, and
- although shortly thereafter the 1.11 version added support for
- extended math versions, it was documented that some font-dependent
- set-up (minus as endash, dotless i and j, hbar, math accents) was
- done only once. This release makes the relevant characters font
- encoding savvy in each mathastext-extended math version. Thus,
- they should render correctly even with multiple math versions
- using fonts with varying encodings.
+ - make available upright and italic Greek letters in math mode
+ via `\alphaup`, `\alphait`, ... control sequences, in
+ addition to those not using such postfixed-names.
- This reinforces importance of using `\MTversion` and not the
- LaTeX `\mathversion` when switching to a new math version (which
- got declared via the package interface). The implementation is
- compatible with Unicode engines and mixed usage of `TU` encoding
- (OpenType fonts) with traditional 8bits TeX font encodings. For
- all engines, all used (8bits) encodings must have been passed as
- options to the `fontenc` package.
+ - add `\mathgreekup` and `\mathgreekit` math alphabets.
- Thanks to Falk Hanisch for feature request and code suggestions.
+ - add `\MTgreekupdefault` and `\MTgreekitdefault`. The former
+ replaces `\updefault` which was used in some places and since
+ LaTeX 2020-02-02 caused systematic Font Warnings about the
+ substitution of `up` by `n`.
-* new option `unimathaccents`: this adds to option `mathaccents`
- the demand to use the text font accents for OpenType fonts in math
- mode via the `\Umathaccent` primitive. Indeed, as my testing
- showed that this gave non-satisfactory results both with XeTeX
- and LuaTeX regarding the horizontal placement of the accents,
- the main option `mathaccents` acts only on 8bits encoded fonts.
-
-* bugfix: the `\Mathastext` without optional argument forgot to
- repeat some font-encoding dependent initialization set-up done
- originally during package loading.
+ These new features required an extensive internal refactoring
+ which is expected to not induce changes to most existing
+ documents. But it may induce changes to those using some
+ unusual configuration in the preamble, as made possible via the
+ package macros; this can apply only to documents authored by
+ those few people who actually read the documentation. For full
+ details make sure to read the PDF documentation about this
+ change.
-* bugfix: under the `subdued` option macros `\MTmathactiveletters`
- or `\MTnonlettersobeymathxx` now act like no-ops if
- issued explicitly while in the `normal` or `bold` math version.
- Formerly, this was not the case and could cause bugs such as a
- disappearing minus sign in math mode.
+* Fix "`\Digamma` under `LGRgreek` option uses the shape for
+ lowercase not uppercase Greek".
-* bugfix: the letter `h` used in the `\hbar` obeyed the extra
- skips as set-up by `\MTsetmathskips`, badly interfering with the
- horizontal positioning of the bar accent. They are now ignored
- (as well as the added italic correction).
+* Fix some incongruities in log messages related to Greek
+ letters and emitted during math version creation in the
+ preamble.
-%</readme>
+%</readme|changelog>
%<*changelog>
-MATHASTEXT CHANGE LOG
-=====================
-
1.3w \[2019/11/16\]
----
@@ -676,7 +615,7 @@ MATHASTEXT CHANGE LOG
* the amsmath `\resetMathstrut@`, which is incompatible with a
mathematically active parenthesis ( is now modified only if
- necessary (i.e. only when `\MTnonlettersobeymathxx` is issued) and
+ necessary (i.e.\@ only when `\MTnonlettersobeymathxx` is issued) and
is restored to its original value if not needed anymore (i.e.
after `\MTnonlettersdonotobeymathxx`, as for example when
switching to the normal version under option subdued).
@@ -967,7 +906,7 @@ use of mathematically active characters in versions 1.2 and 1.2b.
\ProvidesFile{mathastext.tex}%
[\MSTpkgdate\space v\MSTpkgversion\space
driver file for mathastext documentation (JFB)]%
-\PassOptionsToClass{a4paper,fontsize=11pt}{scrdoc}
+\PassOptionsToClass{a4paper,fontsize=11pt}{scrartcl}
\chardef\Withdvipdfmx 1 % replace 1<space> by 0<space> for using latex/pdflatex
\chardef\NoSourceCode 0 % replace 0<space> by 1<space> for no source code
\input mathastext.dtx
@@ -1078,6 +1017,11 @@ seemingly without effect with \LuaLaTeX{} in the case of the Hoefler Text font
for text fonts under \LuaLaTeX, which may be related with this specific issue
here).
+Update (tested 2022/10/29, with 1.3x and up-to-date TL2022): it appears that
+most, perhaps even all, of the remarks in the preceding note are now obsolete
+as I do not see obvious differences between outputs from \XeLaTeX{} versus
+\LuaLaTeX{} but I did not seriously compare, only quickly done.
+
\newcommand\TEST[1]{\MTversion{#1}\def\tmpa{#1}%
\def\tmpb{normal}\def\tmpc{bold}%
\ifx\tmpa\tmpb\else\ifx\tmpa\tmpc\else \MTnonlettersobeymathxx
@@ -1469,7 +1413,93 @@ $\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
%<*dtx>
^^Afi^^Aendgroup % end of big \iffalse block including generated files
% customization should be done in mathastext.tex, not here.
-\documentclass[abstract]{scrdoc}
+\documentclass[abstract]{scrartcl}
+\makeatletter
+%%% START OF CUSTOM doc.sty LOADING (May 21, 2022 in xint.dtx)
+%%% (October 29, 2022 here, comments trimmed)
+% Let's load the doc=V2 version to avoid having to work around
+% hypdoc loading interfering with my use of hyperref.
+\ifdefined\IfFormatAtLeastTF
+ \IfFormatAtLeastTF{2022/06/01}%
+ {%
+ \IfFileExists{doc-2021-06-01.sty}%
+ {\usepackage{doc}[=v2]}%
+% Why on earth do I lose my time doing this?
+ {\GenericError
+ {(mathastext build doc)\@spaces}%
+ {mathastext build error: %
+ Your LaTeX installation seems to be broken, format is\MessageBreak
+ 2022-06-01 or later but `doc' package in its `v2' version\MessageBreak
+ seems to not be available. \space Will try with `doc' but if\MessageBreak
+ its `v3' is used there will be an option clash error\MessageBreak
+ regarding hyperref.}%
+ {}%
+ {Please make sure `doc' package matches your LaTeX format.}%
+ \usepackage{doc}%
+ }%
+ }%
+ {\usepackage{doc}}%
+\else
+\usepackage{doc}
+\fi
+% Let's emulate here the little I appear to need from ltxdoc.cls and
+% srcdoc.cls.
+%
+\AtBeginDocument{\MakeShortVerb{\|}}
+\DeclareFontShape{OT1}{cmtt}{bx}{n}{<-> ssub * cmtt/m/n}{}
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font 48} % '60
+\DeclareFontShape{OMS}{cmtt}{m}{n}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OT1}{cmss}{m}{it}{<->ssub*cmss/m/sl}{}
+\ifnum\NoSourceCode=1
+ \OnlyDescription
+\fi
+\CodelineNumbered
+\EnableCrossrefs
+% \setcounter{StandardModuleDepth}{1} % we don't use this mechanism currently
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+% Here I am loading doc=v2 but formerly I was using ltxdoc via scrdoc
+% which I dropped at release 1.4l (2022-05-29) and without much
+% thinking I had kept this.
+\DeclareRobustCommand\cs[1]{\texttt{\bslash#1}}
+% As I may have the * active, or macro names with _ or ^, I should
+% add \detokenize. But see below for a redefinition anyhow.
+%
+% More urgent is that I am also using hyperref and this definition gives wrong
+% bookmarks if \cs is used in section titles. As I had very very few usags of
+% \cs in the whole of xint.dtx, it took me a while to realize the problem
+% here. Turns out that doc=v3 by default loads hypdoc which includes this
+% configuation for hyperref compatibility:
+\AtBeginDocument{%
+\pdfstringdefDisableCommands{\def\cs#1{\textbackslash\detokenize{#1}}}%
+}%
+% As I have not loaded hyperref yet I must delay it to AtBeginDocument.
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+% \@addtoreset{CodelineNo}{part}% No need for this here
+% \def\partname{File}% \partname is "fixed" somewhere further down anyhow
+% No need for this, anyhow I don't build the indices
+%
+% There is very little we seem to need from the scrdoc extras: page geometry
+% is set by geometry package and a4paper option from xint.tex file. So it
+% seems I only need the hologo loading:
+\usepackage{hologo}
+\DeclareRobustCommand*{\eTeX}{\hologo{eTeX}}%
+\DeclareRobustCommand*{\pdfLaTeX}{\hologo{pdfLaTeX}}%
+\DeclareRobustCommand*{\LuaTeX}{\hologo{LuaTeX}}%
+\DeclareRobustCommand*{\LuaLaTeX}{\hologo{LuaLaTeX}}%
+\DeclareRobustCommand*{\XeTeX}{\hologo{XeTeX}}%
+\DeclareRobustCommand*{\XeLaTeX}{\hologo{XeLaTeX}}%
+%
+\makeatother
+%%% end of ltxdoc+srcdoc emulation from June 2022 xint.dtx,
+%%% copied over almost verbatim to mathastext.dtx on 2022/10/29.
+
\ifnum\NoSourceCode=1 \OnlyDescription\fi
\makeatletter
\ifnum\Withdvipdfmx=1
@@ -1480,7 +1510,7 @@ $\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
\PassOptionsToPackage{dvipdfm}{geometry}
\PassOptionsToPackage{bookmarks=true}{hyperref}
\PassOptionsToPackage{dvipdfmx-outline-open}{hyperref}
- \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark}
+% \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark}
%
\def\pgfsysdriver{pgfsys-dvipdfm.def}
\else
@@ -1491,7 +1521,12 @@ $\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}\allowdisplaybreaks
-\usepackage{lmodern}
+\usepackage{mlmodern}
+\DeclareEncodingSubset{TS1}{mlmtt}{0}
+% cf https://github.com/latex3/latex2e/issues/905
+% How to **quickly** know whether 0 is ok ?
+% Not willing to waste half an hour, more probably
+% an hour on this (already done, almost).
\usepackage{enumitem}
\DeclareSymbolFont{largesymbols}{OMX}{txex}{m}{n}
@@ -1506,7 +1541,7 @@ $\mathnormal{ff}$, $\mathrm{ff}$, $\mathit{ff}$, $\mathbf{ff}$, $\mathtt{ff}$
\definecolor{DarkMagenta}{RGB}{139,0,139}
\definecolor{joli}{RGB}{225,95,0}
\usepackage{xspace}
-\usepackage{metalogo}
+%\usepackage{metalogo}% on utilise dejà hologo
\usepackage{framed}
\usepackage[hscale=0.66]{geometry}
@@ -1529,31 +1564,7 @@ pdfpagemode=UseOutlines,%
\usepackage{bookmark}
-% ---- \centeredeline: OUR OWN LITTLE MACRO FOR CENTERING LINES (fait
-% initialement pour la documentation de mes autres paquetages etoc et xint)
-
-% 7 mars 2013
-% This macro allows to conveniently center a line inside a paragraph and still
-% use therein \verb or other commands changing catcodes.
-% A proposito, the \LaTeX \centerline uses \hsize and not \linewidth !
-% (which in my humble opinion is bad)
-
-% \ignorespaces ajouté le 9 juin. Cela m'aurait évité des dizaines de % lorsque
-% plusieurs \centeredline se suivent (car on reste en mode horizontal si on y
-% est au début).
-
-\makeatletter
-\newcommand*\centeredline {%
- \ifhmode \\\relax
- \def\centeredline@{\hss\egroup\hskip\z@skip\ignorespaces }%
- \else
- \def\centeredline@{\hss\egroup }%
- \fi
- \afterassignment\@centeredline
- \let\next=}
-\def\@centeredline
- {\hbox to \linewidth \bgroup \hss \bgroup \aftergroup\centeredline@ }
-\makeatother
+\usepackage{centeredline}
\DeclareRobustCommand\cs[1]% j'utilisais avant 189, j'ai essayé 23
{{\ttfamily\hyphenchar\font=127 \char`\\#1}}
@@ -1581,40 +1592,78 @@ pdfpagemode=UseOutlines,%
\let\oldexists\exists\let\oldforall\forall
-\usepackage[italic,subdued,asterisk,defaultmathsizes,symbolmisc,symbolre,
-LGRgreek]{mathastext}
+\usepackage[subdued,%
+ asterisk,%
+ defaultmathsizes,%
+ symbolmisc,symbolre,%
+ LGRgreek]{mathastext}
-\Mathastext[italic]
-\MTlettershape{\updefault}
+% This version will use the mlmodern font which is current
+% last loaded font package in preamble
\Mathastext[upright]
-\MTupgreek
-\MTgreekfont{cmtt}
-\MTDeclareVersion[n]{lmvtt}{T1}{lmvtt}{m}{n}
+% The mlmodern font with letters in it shape
+\MTlettershape{it}
+\Mathastext[italic]
-\MTlettershape{\itdefault}
+\MTlettershape{n}% \updefault would create needless substitution and Font Warning
+\MTupgreek % le lettershape suffirait mais plus clair
+\MTgreekfont{cmtt}
+\MTfamily{lmvtt}
+\Mathastext[lmvtt]
-\usepackage{newcent}
+\usepackage{newcent}% attention that it modifies all three of \rmdefault,
+ % \sfdefault and \ttdefault
+\MTfamily{\rmdefault}
+\MTlettershape{it}
+\MTitgreek\MTupGreek
\Mathastext[newcent]
+
\MTseries{b}
\Mathastext[boldnewcent][bold]
+\usepackage{times}% attention that it modifies all three of \rmdefault,
+ % \sfdefault and \ttdefault
+\MTfamily{\rmdefault}
+\MTlettershape{it}
\MTseries{m}
-\MTitgreek\MTupGreek
\MTgreekfont{txr}
-\usepackage{times}
+\MTitgreek\MTupGreek
\Mathastext[times]
-\MTlettershape{\updefault}
+
+\MTlettershape{n}
+\MTupgreek
\MTseries{bx}
\Mathastext[timesbold][bold]
-\MTlettershape{\itdefault}
-\MTseries{m}
\usepackage[scaled]{helvet}
-\renewcommand\familydefault\sfdefault
+\MTfamily{\sfdefault}
+\MTlettershape{it}
+\MTseries{m}
+\MTitgreek
\MTgreekfont{cmss}
\Mathastext[helvet]
+\MTfamily{LibertinusSerif-TLF}
+\MTlettershape{n}
+\MTseries{m}
+\MTgreekfont{LibertinusSerif-TLF}
+\MTupgreek
+\Mathastext[libertinus]
+\MTseries{sb}
+% attention je veux pas courier quand je ferai \texttt avec cette version
+% donc
+\renewcommand{\ttdefault}{mlmtt}
+\Mathastext[libertinussemibold]
+
+\renewcommand\familydefault\sfdefault% attention that it is phv at this stage
+
+% pas nécessaire car je fais \MTversion{normal} après \begin{document}
+% \renewcommand\rmdefault{mlmr}% counteract effect of various font packages
+% % earlier
+% \renewcommand\sfdefault{mlmss}%
+% \renewcommand\ttdefault{mlmtt}%
+
\usepackage{etoc}
% - à partir de 1.3j: _très très_ peu satisfaisant mais pas envie d'y passer
@@ -1661,16 +1710,27 @@ LGRgreek]{mathastext}
% mais bon, en fait je ne les utilise pas.
\begin{document}
+% \makeatletter\show\mv@normal\makeatother
+% contient
+% \getanddefine@fonts
+% \symmtgreekup \LGR/mlmr/m/n \getanddefine@fonts \symmtgreekit \LGR/mlmr/m/it
+%
+% donc au premier mode mathématique (par \footnote je suppose)
+%
+% LaTeX Font Info: Trying to load font information for LGR+mlmr on input line
+% 1712.
+% LaTeX Font Info: No file LGRmlmr.fd. on input line 1712.
+
\MTversion{normal}
\renewcommand\familydefault\sfdefault
\pdfbookmark[1]{Title page}{TOP}
-\frenchspacing
+\nonfrenchspacing
\begin{center}
{\normalfont\LARGE The \mst package}\\
\textsc{\small Jean-François Burnol}\par
- \footnotesize \ttfamily
+ \footnotesize \ttfamily \frenchspacing
jfbu (at) free (dot) fr\par
\let\thefootnote\empty
Package version: \MSTpkgversion\ (\MSTpkgdate)%
@@ -1744,22 +1804,319 @@ LGRgreek]{mathastext}
\section{What \mst does}
-For changes see \autoref{sec:changelog}.
+If you have used the package before please make sure to check first
+\autoref{sec:changelog} where all changes across releases are recorded.
-\subsection{Examples}
+\subsection{Aim of this package and basic usage}
+
+The initial ideology of \mst was to produce mathematical texts with
+a very uniform look, not separating math from text as strongly as
+is usually done.
-\mst's basic aim is to have the same font for text and mathematics. With
+\mst's basic aim is thus to have the same font for text and mathematics. With
hundreds of free text fonts packaged for \LaTeX{} and only a handful of
math ones, chances are your favorite text font does not mix so well with
the available math ones; \mst may then help. Note that \mst was initially
developed for the traditional \TeX{} fonts and engines, and that compatibility
with Unicode engines and OpenType fonts is partial.
-Here is an example with
-Latin Modern typewriter proportional:
+% As soon as one tries out other fonts for text than the Computer Modern
+% ones one realizes how extremely ``thin'' are the default \TeX{} fonts
+% for mathematics: they definitely do not fit well visually with the
+% majority of text fonts. With \mst one can get one's (simple\dots{} or
+% not) mathematics typeset in a manner more compatible with the text,
+% without having to look for an especially designed font.
-{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
- \MTversion{lmvtt}
+Here is a minimal example of what may go into
+the preamble:
+\begin{verbatim}
+\usepackage[T1]{fontenc}
+\usepackage{times}
+\usepackage[italic]{mathastext}
+\end{verbatim}
+The package records which font is set up for text, at the time it is
+loaded,
+%\footnote{alternatively it is possible to configure the text font after
+ % loading \mst, and then the command \cs{Mathastext} will accomplish the
+ % necessary changes to the font for letters, digits and a few extra ascii
+ % symbols in math mode.}
+and
+then arranges things in order for this text font to be used in math mode as
+well. So, with the preamble as above
+all letters, digits, and punctuation signs inside math mode will then be
+typeset in Times.\footnote{let's do as if we did not know the excellent
+ |txfonts| package which employs Times for text and has a very complete
+ math support, including many additional mathematical glyphs in
+ comparison to the CM fonts. \emph{This was written many years ago, nowadays,
+ \emph{\texttt{newtx}} is the successor of \emph{\texttt{txfonts}}.}}
+The exact list of characters concerned by
+\mst is a subset of the basic |ASCII| set:
+
+ \begin{framed}\centering\MTversion{timesbold}%
+ \begingroup\color{joli}%
+ $abcdefghijklmnopqrstuvwxyz$\par
+ $ABCDEFGHIJKLMNOPQRSTUVWXYZ$\par
+ $0123456789$\par
+ \DeleteShortVerb{\|}% global!
+ ${!}\,{?}\,{*}\,{,}\,{.}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,
+ {[}\,{]}\,{/}\,{\#}\,{\$}\,{\%}\,{\&}\,{<}\,{>}\,{|}\,{\{}\,{\}}
+ \textrm{ \color{black}\mdseries and }{\backslash}$%
+ \endgroup\par\MakeShortVerb{\|}%
+ \end{framed}
+
+As one can see, this is a very limited list! Some possibilities exist
+regarding Greek letters and will be described later.
+
+\subsection{Miscellanea}
+
+Please note that most of this section was written many years
+ago. But it should still be valid!
+%
+\begin{description}
+\item[the en-dash as minus sign:] very often the -
+ character from the text font does not give a good
+ minus sign. So by default, the package uses the
+ en-dash sign \textendash{}. Use §noendash§ to
+ deactivate it. Starting with version |1.12| of the
+ package this `en-dash as minus' should work in all
+ encodings, including Unicode (if |fontspec| has been
+ loaded); see also |unicodeminus| for OpenType fonts.
+
+\item[amsmath:] \strut the behaviour of the
+ \cs{DeclareMathOperator}\RightNote{1.3n} command
+ of |amsmath| is modified by \mst for it to use the correct font.
+ Additionally, release |1.3n| of \mst at long last also handles an extra
+ operation done by |amsmath| for |'.:/-*| to be used in operator names
+ without the extra math spacing.%
+%
+\footnote{To the experts: there is a long story here that \cs{newmcodes@}
+ hardcodes the font, that it was not compatible with Unicode engines, that
+ during some time (2013-2016) \texttt{lualatex-math} fixed that and very
+ recently |amsopn.sty 2016/03/08 v2.02| also, so now \texttt{lualatex-math
+ 1.6} does nothing as it is already fixed ``upstream'' in |amsopn.sty|, but
+ anyhow in both cases, this still hardcoded the font, so finally \mst does
+ the right thing from its point of view. See the code comments for more,
+ there is an issue here with \LuaLaTeX\ not applying the curly right quote
+ contrarily to \XeLaTeX.}
+%
+This customization is suppressed in §subdued§ mode for the |normal| and |bold|
+math versions.
+
+\item[hbar:] the default \LaTeX\ definition of §\hbar§ would in our context
+ make use of the |h| of the current math font (so for us, it is also the text
+ font, perhaps in italic shape), but with a bar accross the |h| from the
+ original default math font for letters (usually |cmmi|). We redefine
+ \cs{hbar} to use the text font macron accent (|\=|) as a mock math accent
+ (this takes into account the §italic§ option and is compatible with
+ subscripts and superscripts).
+
+ Since |1.12| \mst when dealing with a Unicode font sets the \cs{hbar}
+ to be the character from the font having hexadecimal codepoint |U+0127|.
+
+ Since |1.3u| the general 8bits font encoding is
+ supported\RightNote{1.3u} (see discussion of the |mathaccents| option
+ at end of this list for the shared limitations). Brief testing with
+ various usual \TeX\ fonts shows that the vertical positioning of
+ the bar isn't satisfying. It is planned to either add a parameter to
+ adjust it or to modify altogether the mode of construction of the |\hbar|.
+
+ Use §nohbar§ to tell \mst not do provide its own |\hbar|.
+
+
+\item[dotless i and j:] by default the package redefines \cs{imath} and
+ \cs{jmath} to give (in math mode) the dotless i and j (if it exists at
+ all) from the text font.%
+%
+\footnote{\RightNote{1.3t}Since \texttt{1.12} it also redefined \cs{i} and
+ \cs{j} for usability both in text and math modes, but this has been
+ dropped at \texttt{1.3t}. Breaking change!}
+
+\item[asterisk:] versions of \mst earlier than |1.2d [2013/01/02]|
+ did not do anything
+ with the \cs{ast} control sequence but did pick the asterisk
+ $*$ in the document text font, and this often was a rather
+ silly thing as the text asterisk is generally in a raised
+ position. Furthermore, the $*$ lost its status of a binary
+ operator and was treated as an `ordinary' symbol. An option
+ |noasterisk| turned this feature off. Starting with |1.2d|,
+ the |noasterisk| option is deprecated and the new default is
+ to do nothing. But when option §asterisk§ is received by the
+ package, then both \cs{ast} and $*$ are simultaneously
+ modified to use (as binary operators) the text asterisk,
+ slightly lowered. The amount of lowering\footnote{with the
+ option \texttt{symbolmisc}, the asterisk is picked from
+ the Symbol font, and the amount of lowering is
+ non-customizable; however if a math alphabet command is
+ used, the asterisk is then again from a text font and the
+ lowering will be as specified by \cs{MTlowerast}.} is
+ decided by the mandatory argument to the command
+ \csb{MTlowerast}\marg{dimen}. The package initially does
+ \cs{MTlowerast}|{.3\height}|. Doing \cs{MTlowerast}|{.5ex}| is
+ not a good idea as it does not scale properly in the script
+ and scriptscript styles. With an argument given as a
+ multiple of |\height|, the asterisk will behave as expected
+ in subscripts and subscripts of subscripts. But $*$ is now
+ `mathematically active'\thinspace\footnote{in a hopefully
+ safe way, for example {\ttfamily\$\string\label\{eq*1\}\$}
+ is ok.} and |$R^*$| or |$R^\ast$| \emph{must} be input as
+ |$R^{*}$| and |$R^{\ast}$|. Furthermore, they will obey the
+ math alphabet commands.
+
+\item[\XeTeX{} and \LuaLaTeX{}:] regarding the en-dash and the
+ dotless i and j, the package is now under the Unicode engines
+ compatible not only with the ``Unicode'' \LaTeX\ font encodings
+ EU1 (\XeTeX, old fontspec), EU2 (\LuaLaTeX, old fontspec), TU
+ (\XeTeX\ and \LuaLaTeX, modern fontspec), but also with
+ traditional 8bits-encodings declared as a |fontenc|
+ option.\RightNote{1.3u} Formerly, with a Unicode engine,
+ only OT1, T1 and LY1 were supported by \mst as the 8bit encoding
+ of the document text font, regarding the minus as en-dash and
+ the dotless i and j.
+
+ \item[fontspec:] one more note to users of
+\XeTeX{}/\LuaLaTeX{} with |fontspec|:\newline
+\fbox{it has to be
+loaded {with the option} |no-math|},
+and \emph{before} \mst.
+
+\item[vec accent:] The default \cs{vec} accent is not
+ appropriate for upright letters, so \mst
+ provides a \cs{fouriervec} which takes its glyph in a
+ Fourier font, and an Ersatz \cs{pmvec}
+ which is reasonably good looking on upright letters
+ and works with the \cs{rightarrow} glyph. Contrarily
+ to version |1.0|, the default \cs{vec} is not
+ overwritten with \cs{fouriervec}. And contrarily to
+ version |1.1|, one now needs to pass the option
+ §fouriervec§ to have the math accent \cs{fouriervec}
+ defined by the package.%
+%
+\footnote{this costs a math family, as I never came back to this to try to
+ do otherwise.}
+
+
+\item[math alphabets:]
+ \begin{itemize}
+ \item We define a new math alphabet command
+ \cs{mathnormalbold} which gives direct access to
+ the bold version of the \cs{mathnormal} alphabet
+ (rather than using either the \cs{bm} command from
+ the |bm| package or the \cs{boldsymbol} command
+ from the |amsbsy| package). As it does not
+ exist in the default \LaTeX{} math font set-up, this
+ alphabet is \emph{not} subjected to the {subdued option} action.
+ \item The other math alphabet changing commands
+ defined by the package are \cs{MathEulerBold},
+ \cs{MathEuler} and \cs{MathPSymbol}.
+ \item \cs{mathnormal}, \cs{mathrm}, \cs{mathbf},
+ \cs{mathit}, \cs{mathsf} and \cs{mathtt} are modified
+ to make reference to the document text fonts (this
+ can be disabled by suitable package options).
+\item \RLNote{new:}{1.3x}§\mathgreekup§ and §\mathgreekit§ are math alphabets
+ modifying the shape of Greek letters, only available under
+ §LGRgreek§ (or §LGRgreeks§) option.
+\item version |1.2| of \mst has extended the scope of the math
+ alphabets to apply to non-alphabetical characters and to
+ operator names. This respects the automatic white spaces
+ added by \TeX{} around math symbols.
+\item the\RightNote{1.3i}
+ extra skips around letters (see \autoref{sec:mathskips} and
+ \autoref{sec:ic}) are removed in the scope of the math alphabets.
+ \end{itemize}
+
+\item[math accents:] if option §mathaccents§ is used then \mst attempts to let
+ the math accents |\acute|, |\grave|, etc... use the suitable glyphs from the
+ text font. Prior to |1.3u| only |OT1|, |T1|, and |LY1| were supported (via
+ hardcoded slots). It should now work with any 8bits font
+ encoding\RightNote{1.3u} having been declared as an option to the
+ |fontenc| package (and of course providing the ten needed text accents which
+ will mock math accents).%
+ %
+ \footnote{The code will raise low-level \TeX\ errors if the user attempts to
+ use an 8bits font encoding whose \LaTeX\ definition file is lacking the
+ suitable uses of \cs{DeclareTextAccent} or if the low level \LaTeX\ macro
+ implementation of text accents changes significantly; in such cases please
+ report the problem to the author, so that it can be documented in future
+ releases!}
+
+ The |\vec| math accent is not handled here, as it is not available in the
+ usual 8bits font encodings. See the §fouriervec§ option or the §\pmvec§
+ command.
+
+ The math accents obey the §subdued§ option\RightNote{1.3u}
+ and will change in sync with the \mst-ified text font used in
+ each non subdued math version.
+
+ (Very) brief testing during |1.3u| development with \XeTeX\ and \LuaTeX\ let
+ the author conclude that usage with the \cs{Umathaccent} primitive of an
+ OpenType accent glyph slot (which in the text font is for usage as a
+ postpended combining character) gives definitely bad horizontal placements
+ for both engines (each in its own way). Thus, the redefinitions of accents
+ for a \mst declared math version with an OpenType font is by default
+ canceled.%
+%
+\footnote{I.e., the \cs{grave} etc... control sequences will, in math versions
+ with an OpenType \mst-ified font, expand to macros holding their initial
+ meanings, unmodified by \mst, which was in force at the
+ |\string\begin\string{document\string}|.}
+%
+ Use §unimathaccents§ to force usage of the OpenType font text
+ accents glyph slots with the \cs{Umathaccent} primitive. Expert users are
+ invited to check out the code and to contribute suggestions if some extras
+ can improve it.
+
+\item[varying font encodings:] the very first release of \mst dealt with only
+ one font; very soon thereafter it acquired the capacity to define multiple
+ math versions, each one using its own text font. But, as was documented at
+ this location formerly, various encoding dependent decisions were done once
+ and for all during package loading.
+
+ This meant in particular that the minus sign (using the text endash), the
+ dotless |i| and |j|, the |\hbar|, the math accents were all set up for only
+ one unique font encoding. It was thus recommended that all math versions
+ share the same font encoding.
+
+ The |1.3u| release has lifted this restriction.\RightNote{1.3u}
+\end{description}
+
+
+\subsection{Examples}
+\label{sec:examples}
+
+Here is another simple example:
+\begin{verbatim}
+\usepackage{libertinus-type1}
+\usepackage[italic,LGRgreek,defaultmathsizes]{mathastext}
+\end{verbatim}
+The §LGRgreek§ option is there to take advantage that the |libertinus-type1| package%
+%
+\footnote{Bob \textsc{Tennent}, \emph{Support for using Libertinus fonts with
+ \LaTeX/\pdfLaTeX}, \url{https://ctan.org/pkg/libertinus-type1}.}
+%
+also provides Greek letters in LGR encoding, which can thus be used by \mst in
+math mode. And we do here as if we did not know about the existence of the
+|libertinust1math| package!%
+%
+\footnote{Michael \textsc{Sharpe}, \emph{A Type 1 font and \LaTeX\ support for Libertinus
+ Math}, \url{https://ctan.org/pkg/libertinust1math}.}
+%
+This would have been the obvious choice, but then one wouldn't need \mst and I
+couldn't even start this documentation.
+
+
+More sophisticated preambles will use multiple times the §\Mathastext§ command
+in the preamble with its optional argument \oarg{math\_version} in order to
+define \emph{math versions} corresponding to a given font configuration.
+These \mst-enriched math versions are then activated in the document body via
+the §\MTversion§\marg{math\_version} command, which modifies \emph{both} the text
+font and the math font.
+
+
+We now give some examples with a verbatim copy of the preamble code
+corresponding to them, as can be found in the source of this documentation.
+The detailed option and command descriptions will be given later.
+
+\def\DeepestMathematicsText{%
Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential
system $(VI_{\nu,n})$:
\begin{align*}
@@ -1783,73 +2140,133 @@ with
parameters
$(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2,
\frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par
+Test of uppercase Greek in math: $\Alpha\Beta\Gamma\Delta\Xi\Omega$.\par
+}
+
+First of all, the package was loaded using this:
+\begin{verbatim}
+\usepackage[subdued,%
+ asterisk,%
+ defaultmathsizes,%
+ symbolmisc,symbolre,%
+ LGRgreek]{mathastext}
+\end{verbatim}
+In the definitions of the \mst-enriched \emph{math versions} we keep commands
+which may have been redundant in the original preamble, because they were
+issued earlier for a previous math version definition.
+
+Let's start with Latin Modern typewriter proportional. Its usage was
+configured in the preamble using this:
+\begin{verbatim}
+\MTlettershape{n}
+\MTupgreek
+\MTgreekfont{cmtt}
+\MTfamily{lmvtt}
+\Mathastext[lmvtt]
+\end{verbatim}
+Its usage is triggered using \centeredline{|\MTversion{lmvtt}|} in the
+document. Here is an example:
+
+{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
+ \MTversion{lmvtt}
+ \DeepestMathematicsText
}
-Notice that the Latin (and Greek letters) are in upright shape. But perhaps we
-insist on obeying the standardized habits:
+Both the Latin and Greek letters are upright, in conformity to the
+way the |lmvtt| version was defined.
+
+\bigskip
+
+Now with the fonts from the |libertinus-type1| distribution%
+%
+\footnote{Bob \textsc{Tennent}, \emph{Support for using Libertinus fonts with
+ \LaTeX/\pdfLaTeX}, \url{https://ctan.org/pkg/libertinus-type1}.}.
+%
+The preamble code is:
+\begin{verbatim}
+\MTfamily{LibertinusSerif-TLF}
+\MTlettershape{n}
+\MTseries{m}
+\MTgreekfont{LibertinusSerif-TLF}
+\MTupgreek
+\Mathastext[libertinus]
+\MTseries{sb}
+\Mathastext[libertinussemibold]
+\end{verbatim}
+Its usage in the document body for the example below is triggered via
+\centeredline{|\MTversion[libertinus]{libertinussemibold}|} This syntax
+modifies the text fonts to be those which were defined to hold for the
+\mst-math version passed as optional argument, and sets the math fonts
+according to the mandatory argument. Hence the math mode uses semibold font
+but the text font uses the normal weight.
{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
-\MTversion{times}
-Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential
-system $(VI_{\nu,n})$:
- \begin{align*}
- a\frac{d}{da} X &= \nu
- X - (1 - X^2)\frac{2n a}{1 - a^2}\frac{aX+Y}{1+a XY} \\
-a\frac{d}{da} Y &= -(\nu+1) Y
- + (1 - Y^2)\frac{2n a}{1 - a^2}\frac{X+aY}{1+a XY}
- \end{align*}
-then the quantity $q = a \frac{aX+Y}{X+aY}$
-satisfies as function of $b= a^2$ the $P_{VI}$ differential equation:
-\begin{equation*}
-\begin{split}
- \frac{d^2 q}{db^2} = \frac12\left\{\frac1q+\frac1{q-1}
- +\frac1{q-b}\right\}\left(\frac{dq}{db}\right)^2 - \left\{\frac1b+\frac1{b-1}
- +\frac1{q-b}\right\}\frac{dq}{db}\\+\frac{q(q-1)(q-b)}{b^2(b-1)^2}\left\{\alpha+\frac{\beta
- b}{q^2} + \frac{\gamma (b-1)}{(q-1)^2}+\frac{\delta
- b(b-1)}{(q-b)^2}\right\}
-\end{split}
-\end{equation*}
-with
-parameters
-$(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2,
-\frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par
+ \MTversion[libertinus]{libertinussemibold}
+ \DeepestMathematicsText
}
- This was typeset using the Times font (available in any \TeX{}
- distribution). Let us now be a bit more original and have our mathematics
- with italic letters from the sans serif font Helvetica, while the letters in
- text use New Century Schoolbook.
+\bigskip
+Now with a Times clone. We will configure Latin letters to be in italic
+shape, and Greek letters to be italic for lowercase and upright for uppercase:
+\begin{verbatim}
+\usepackage{times}% it modifies the \{rm,sf,tt}default's
+\MTfamily{\rmdefault}
+\MTlettershape{it}
+\MTseries{m}
+\MTgreekfont{txr}
+\MTitgreek\MTupGreek
+\Mathastext[times]
+% \MTversion{times} will change not only math but also text, so it
+% will re-enact the \rmdefault, \sfdefault, \ttdefault from loading times.sty
+\end{verbatim}
+We now use this in the document body via
+\centeredline{|\MTversion{times}|}
{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
-\MTversion[newcent]{helvet}
-Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential
-system $(VI_{\nu,n})$:
- \begin{align*}
- a\frac{d}{da} X &= \nu
- X - (1 - X^2)\frac{2n a}{1 - a^2}\frac{aX+Y}{1+a XY} \\
-a\frac{d}{da} Y &= -(\nu+1) Y
- + (1 - Y^2)\frac{2n a}{1 - a^2}\frac{X+aY}{1+a XY}
- \end{align*}
-then the quantity $q = a \frac{aX+Y}{X+aY}$
-satisfies as function of $b= a^2$ the $P_{VI}$ differential equation:
-\begin{equation*}
-\begin{split}
- \frac{d^2 q}{db^2} = \frac12\left\{\frac1q+\frac1{q-1}
- +\frac1{q-b}\right\}\left(\frac{dq}{db}\right)^2 - \left\{\frac1b+\frac1{b-1}
- +\frac1{q-b}\right\}\frac{dq}{db}\\+\frac{q(q-1)(q-b)}{b^2(b-1)^2}\left\{\alpha+\frac{\beta
- b}{q^2} + \frac{\gamma (b-1)}{(q-1)^2}+\frac{\delta
- b(b-1)}{(q-b)^2}\right\}
-\end{split}
-\end{equation*}
-with
-parameters
-$(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2,
-\frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par
+ \MTversion{times}
+ \DeepestMathematicsText
+}
+
+\bigskip
+Let us be a bit more original and have our mathematics with italic letters
+from the sans serif font Helvetica, while the letters in text use New Century
+Schoolbook. Also we want Greek letters (both lowercase and uppercase) to be
+in italic shape. The preamble code was:
+\begin{verbatim}
+\usepackage{newcent}% attention that it modifies all three of \rmdefault,
+ % \sfdefault and \ttdefault
+\MTfamily{\rmdefault}
+\MTlettershape{it}
+% \MTitgreek\MTupGreek % our demo does not use newcent for math anyway
+\Mathastext[newcent]
+
+\usepackage[scaled]{helvet}
+\MTfamily{\sfdefault}
+\MTlettershape{it} % redundant here
+\MTseries{m}
+\MTitgreek % make both lowercase and uppercase Greek italic
+\MTgreekfont{cmss}
+\Mathastext[helvet]
+\end{verbatim}
+And the next demo is configured in the document body via
+\centeredline{|\MTversion[newcent]{helvet}|}
+
+{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
+ \MTversion[newcent]{helvet}
+ \DeepestMathematicsText
}
+\bigskip
And after all that, we may wish to return to the default math typesetting (let's
-shorten the extract here in case the reader makes an indigestion \dots):
+shorten the extract here in case the reader makes an indigestion \dots). This
+is easy because all previous usages were enclosed in braces |{...}| so as to
+limit the scope. As \mst was loaded with option §subdued§ the default rendering
+(i.e.\@ in the \emph{normal} and \emph{bold} math versions) is (almost) as if
+the package was not loaded at all, and it simply matches the document font
+configuration. Here it thus matches the
+\centeredline{|\usepackage{mlmodern}|} which was included in the document
+preamble prior to loading \mst.
{\advance\leftskip.1\linewidth\advance\rightskip.1\linewidth
Let $(X,Y)$ be two functions of a variable $a$. If they obey the differential
@@ -1860,77 +2277,205 @@ system $(VI_{\nu,n})$:
a\frac{d}{da} Y &= -(\nu+1) Y
+ (1 - Y^2)\frac{2n a}{1 - a^2}\frac{X+aY}{1+a XY}
\end{align*}
-then the quantity $q = a \frac{aX+Y}{X+aY}$
-satisfies as function of $b= a^2$ the $P_{VI}$ differential equation with
-parameters
-$(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2,
-\frac{-(\nu+n+1)^2}2, \frac{n^2}2, \frac{1 - n^2}2)$.\par
+ then the quantity $q = a \frac{aX+Y}{X+aY}$ satisfies as function of $b=
+ a^2$ the $P_{VI}$ differential equation with parameters
+ $(\alpha,\beta,\gamma,\delta) = (\frac{(\nu+n)^2}2, \frac{-(\nu+n+1)^2}2,
+ \frac{n^2}2, \frac{1 - n^2}2)$.\par
+Test of uppercase Greek in math: $%\Alpha\Beta
+ \Gamma\Delta\Xi\Omega$ (no \string\Alpha, no
+ \string\Beta).\par
}
- \vskip\baselineskip Notice that the Greek letters also changed
- according to the \emph{math version}: \mst has indeed some (limited)
- capabilities to this effect, with its §LGRgreek§ option. This
- document uses the |LGR| encoded fonts |cmtt|, |cmss|, and |txr|,
- which are part of standard \TeX{}
- distributions.\footnote{The first two are available (with no need to
- load explicitly any package in the document) via the combination
- |cbfonts| (|cbgreek-complete|) \& |babel|, and the |LGR| encoded |txr| font
+\bigskip
+
+If the scope of our earlier examples using \mst-enriched math versions
+had not been limited we would have issued \centeredline{|\MTversion{normal}|}
+to return to the normal (almost not influenced by \mst{}) math version.
+
+
+The Greek letters varied across our examples thanks to the §LGRgreek§ option
+which made the §\MTgreekfont§ command active for configuration of the math
+versions.%
+%
+\footnote{The document used the \texttt{cmtt}, \texttt{cmss}, \texttt{txr}, as well
+ as \texttt{LibertinusSerif-TLF} font families in \texttt{LGR} encoding. The
+ first two are available (with no need to
+ load explicitly any package in the document) if the \LaTeX{} installation
+ provides the
+ |cbfonts| (or |cbgreek-complete|) \& |babel| packages, and the |LGR| encoded |txr| font
(again no package loading is necessary) is part of the files of the
- |txfontsb| package.}
+ |txfontsb| package. For \texttt{LibertinusSerif-TLF}, the files of the
+ \texttt{libertinus-type1} package must be present.}
% \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts},
% \href{http://mirrors.ctan.org/help/Catalogue/entries/txfontsb.html}{txfontsb}.
-\subsection{Overview}
+\emph{Since |1.3x| this documentation uses globally the |mlmodern|%
+%
+\footnote{Daniel Benjamin \textsc{Miller}, \emph{A blacker Type 1 version of Computer Modern, with multilingual
+ support}, \url{https://ctan.org/pkg/mlmodern}. I have added to the preamble
+ \centeredline{\texttt{\string\DeclareEncodingSubset\{TS1\}\{mlmtt\}\{0\}}}
+to circumvent some \LaTeX\ complaints about \texttt{\string\textasciigrave}
+(this is a widespread problem when not using default fonts)
+related to occurrences of the backtick character in verbatim displays.}
+ font
+ package
+and has added an example using the Libertinus font in type-1 format%
+%
+\footnote{Bob \textsc{Tennent}, \emph{Support for using Libertinus fonts with
+ \LaTeX/\pdfLaTeX}, \url{https://ctan.org/pkg/libertinus-type1}.}
+%
+although there is an existing accompanying math font%
+\footnote{Michael \textsc{Sharpe}, \emph{A Type 1 font and \LaTeX\ support for Libertinus
+ Math}, \url{https://ctan.org/pkg/libertinust1math}. Note that it is then highly
+advantageous to use \texttt{latex+dvipdfmx} and not \texttt{pdflatex} for
+reasons of PDF file size.}%
+.%
+}
-\subsubsection{Basic use}
+\subsection{Main options}
-The initial ideology of \mst was to produce mathematical texts with
-a very uniform look, not separating math from text as strongly as
-is usually done.
+ \subsubsection{The \blueit{italic} option}
-As soon as one tries out other fonts for text than the Computer Modern
-ones one realizes how extremely ``thin'' are the default \TeX{} fonts
-for mathematics: they definitely do not fit well visually with the
-majority of text fonts. With \mst one can get one's (simple\dots{} or
-not) mathematics typeset in a manner more compatible with the text,
-without having to look for an especially designed font.
+In the initial version |1.0|, the Latin letters in
+mathematical mode assumed the exact same shape as in
+text mode, and this meant, generally speaking, that
+they would turn up upright. Doing this gives a very
+uniform look to the document, so that one has to make
+an effort and read it with attention, and this was
+one of the design goals of \mst.
-Here is a minimal example of what may go into
-the preamble:
-\begin{verbatim}
-\usepackage[T1]{fontenc}
-\usepackage{times}
-\usepackage[italic]{mathastext}
-\end{verbatim}
-The package records which font is set up for text, at the time it is
-loaded,\footnote{alternatively it is possible to configure the text font after
- loading \mst, and then the command \cs{Mathastext} will accomplish the
- necessary changes to the font for letters, digits and a few extra ascii
- symbols in math mode.} and
-then arranges things in order for this text font to be used in math mode as
-well. So, with the preamble as above
-all letters, digits, and punctuation signs inside math mode will then be
-typeset in Times.\footnote{let's do as if we did not know the excellent
- |txfonts| package which employs Times for text and has a very complete
- math support, including many additional mathematical glyphs in
- comparison to the CM fonts.} The exact list of characters concerned by
-\mst is a subset of the basic |ASCII| set:
+Nevertheless, soon after I posted the initial version
+of the package to CTAN, I was overwhelmed by
+numerous\footnote{this means ``more then one.''}
+questions\footnote{I thank in particular
+Tariq~\textsc{Perwez} and Kevin~\textsc{Klement} for
+their kind remarks (chronological order).} on how to
+have the letters be in italic shape.
- \begin{framed}\centering\MTversion{timesbold}%
- \begingroup\color{joli}%
- $abcdefghijklmnopqrstuvwxyz$\par
- $ABCDEFGHIJKLMNOPQRSTUVWXYZ$\par
- $0123456789$\par
- \DeleteShortVerb{\|}% global!
- ${!}\,{?}\,{*}\,{,}\,{.}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,
- {[}\,{]}\,{/}\,{\#}\,{\$}\,{\%}\,{\&}\,{<}\,{>}\,{|}\,{\{}\,{\}}
- \textrm{ \color{black}\mdseries and }{\backslash}$%
- \endgroup\par\MakeShortVerb{\|}%
- \end{framed}
+The default is still, as in version |1.0|, for everything to be in
+upright shape, but it suffices to pass to the package the option
+§italic§\RightNote{1.1} to have the Latin letters in math mode in italic
+shape.\footnote{more precisely stated, the value of \cs{itdefault}
+is used.} There is also an option §frenchmath§ to make the
+uppercase letters nevertheless upright, because this is the way of
+traditional French mathematical typography.\footnote{more precisely
+stated, the value of \cs{shapedefault} is used.}
+
+
+\subsubsection{The \blueit{defaultmathsizes} option}
+
+The default sizes give for subscripts of subscripts barely legible glyphs
+(author's opinion!). So \mst makes more reasonable choices. It also
+redefines \cs{Huge} and defines a \cs{HUGE} size, copied from
+the |moresize| package. To cancel all of this use option
+§defaultmathsizes§.
+
+\subsubsection{The \blueit{subdued} option}\label{sec:subdued}
+
+This option was introduced in |v1.15|.\RightNote{1.15} It provides a manner to
+switch on the \mst-\emph{ification} only for limited portions of
+the document, with the help of the mechanism of math versions. Without the
+§subdued§ option, the \emph{mathastextification} applies by default
+to the whole of the document (and one may also define additional
+math versions in the preamble); with the §subdued§ option the
+\emph{mathastextification} is done only in \emph{math versions} distinct from
+the standard and bold ones.
+
+Despite some limitations I will now partially describe, the §subdued§ option
+has its utility, as I think is illustrated enough by the examples given at the
+start of this document and it works reasonably well.
+
+\begin{framed}
+ \mst was not written initially in order to allow its action to
+ be completely canceled. It does not store (all) mathcodes nor
+ does it set them (all) when changing math versions; only that would
+ allow a perfect subdued mode (and \LaTeX\ is rather obstinate in
+ making that tricky or at least uneasy if sticking to its
+ official interface to math mode, as it is almost entirely
+ preamble only).
+
+ Releases |1.3t| and |1.3u| do this kind of things to maintain
+ usability across multiple \mst-ified math versions of characters
+ which are obviously font encoding dependent such as the minus
+ sign as en-dash (or unicode minus), the dotless i, the |\hbar|,
+ the text accents.
+
+ But this should be extended to all \mst-ified characters which
+ basically would amount to an extensive rewrite of large legacy
+ portions of the code. Currently the support for the |subdued|
+ mode and to multiple math versions amounts to some kind of a
+ kludge, added to an initial design which handled a single unique
+ text font.
+\end{framed}
+
+To get the displayed math
+(almost) as if \mst had not been loaded, one must also
+use the option §defaultmathsizes§. But this does not quite suffice,
+as, for example, the colon, the dot, and the minus sign belong
+in the default \LaTeX{} math mode set-up to three distinct fonts
+whereas \mst will pick (even subdued) the three of them in the same
+font,%
+\footnote{\RightNote{1.3t}The minus sign is now perfectly subdued,
+because its original mathcode is stored and restored; this was only
+way to handle the case with Unicode engines
+where the math operator font is in a classic
+\TeX\ encoding, but the minus sign is configured by \mst to use a Unicode
+en-dash or minus character in non-subdued math versions.}
+%
+and although it will make a reasonable choice of this font,
+this is not an exact re-installement of the previously prevailing situation. And
+then other packages could have done arbitrary things regarding character
+mathcodes, so to
+be on the safe side one needs the §basic§ option which limits the
+mathastextification to letters and digits.%
+%
+\footnote{\RightNote{1.3d}The §subdued§ mode does extinguish
+in the normal and bold math versions the action of options §selfGreek§,
+§eulergreek§, and §symbolgreek§ (previously only §LGRgreek§ was
+subdue-able).}
+\footnote{\RightNote{1.3t}The \texttt{\string\imath} and
+\texttt{\string\jmath} now obey the subdued regime.}
+\footnote{\RightNote{1.3u}Also \texttt{\string\hbar}
+and the math accents (see §mathaccents§ option) obey the subdued regime.}
+%
+Even then, in some circumstances, this
+may not suffice: for example the \emph{euler} package puts
+the digits in the same font as the Latin letters in math mode, but
+the subdued \mst will pick them up in the same font as used for
+operator names, which for example in the case of the \emph{euler} package, is
+the main document font.
+
+\subsubsection{The \blueit{LGRgreek} option}
-As one can see, this is a very limited list! some possibilities are offered by
-\mst for Greek letters and will be described later.
+ There is the issue of Greek letters. Sometimes the text font has
+ Greek glyphs, in |LGR| encoding%
+\footnote{For example the default CM and its replacement Latin Modern for european
+ languages are (transparently to the user) extended with |LGR|
+ encoded fonts from the |cbfonts| (|cbgreek-complete|)
+ package.}
+ (this should be mentioned in the
+ documentation of the font package). Then option §LGRgreek§ tells
+ \mst to pick up these Greek letters.
+
+It is naturally possible to leave the
+ responsability to set up Greek letters to some other packages
+ loaded previously to \mst. And even if \mst has been loaded with one of its
+Greek related options the command §\MTstandardgreek§ will locally cancel its
+customization of Greek letters. The command §\MTcustomgreek§ reenables the
+customization done by \mst, if it was loaded with the §LGRgreek§ or one of the
+other Greek related options.
+
+\begin{framed}
+ Release |1.3x| has added important new aspects to the handling of Greek
+ letters via the §LGRgreek§ option. Make sure to read the \autoref{sec:newgreek}.
+\end{framed}
+
+\subsection{More miscellanea}
+
+This may repeat information already given.
+
+\subsubsection{Derivative, minus, asterisk}
The text characters {}'{} and {}-{} are not used, and the asterisk is
done optionally:
@@ -1964,7 +2509,7 @@ the text font only for the base size: any |\big|, |\bigl|, |\bigr|,
etc\dots reverts to the original math symbols.
-\subsubsection{always load \mst last}
+\subsubsection{load \mst always last}
The ``large'' math symbols are not modified in any way by \mst. Only loading
some math font packages such as |fourier|, |kpfonts|, |mathabx|, |mathdesign|,
@@ -1986,12 +2531,16 @@ text.
\begin{document}
\end{verbatim}
-\subsubsection{using \mst with \texttt{beamer}}\label{ssec:beamer}
+\subsubsection{using \mst with \href{https://ctan.org/pkg/beamer}{beamer}}\label{ssec:beamer}
%\noindent\llap{\textcolor{green}{\bfseries 2015/02/26}\hspace{1em}}
Starting
-with release |3.34| of |beamer|, \mst is recognized as a ``math font package''.
+with release |3.34| of \href{https://ctan.org/pkg/beamer}{beamer}%
+%
+\footnote{Till \textsc{Tantau}, Joseph \textsc{Wright}, Vedran \textsc{Mileti\'c}, \emph{A \LaTeX{} class for producing presentations and slides}, \url{https://ctan.org/pkg/beamer}.},
+%
+\mst is recognized as a ``math font package''.
\emph{Only with \emph{{\bfseries earlier} |beamer| versions} is it necessary to issue}
\centeredline{|\usefonttheme{professionalfonts}|}
@@ -2020,28 +2569,6 @@ with release |3.34| of |beamer|, \mst is recognized as a ``math font package''.
\end{document}
\end{verbatim}
-\subsubsection{option \blueit{LGRgreek}}
-
- There is the issue of Greek letters. Sometimes the text font has
- Greek glyphs, in |LGR| encoding (this will be mentioned in the
- documentation of the font package). Then option §LGRgreek§ tells
- \mst to pick up these Greek letters. And it is possible to specify
- whether the Greek letters should be upright, or
- ``italic''.%
-%
-\footnote{the default CM and its replacement Latin Modern for european
- languages are (transparently to the user) extended with |LGR|
- encoded fonts from the |cbfonts| (|cbgreek-complete|)
- package.}
-
-It is naturally possible to leave the
- responsability to set up Greek letters to some other packages
- loaded previously to \mst. And even if \mst has been loaded with one of its
-Greek related options the command §\MTstandardgreek§ will locally cancel its
-customization of Greek letters. See also §\MTcustomgreek§.
-
- % \href{http://mirrors.ctan.org/help/Catalogue/entries/cbgreek-complete.html}{cbfonts}
-
\subsubsection{avoid \texorpdfstring{\texttt{OT1}}{OT1} encoding}
We specified in our minimal working example a |T1| encoding (|LY1| would
@@ -2063,195 +2590,135 @@ customization of Greek letters. See also §\MTcustomgreek§.
|LY1|.
\end{framed}
-\subsection{Main options}
-
- \subsubsection{The \blueit{italic} option}
-
-In the initial version |1.0|, the Latin letters in
-mathematical mode assumed the exact same shape as in
-text mode, and this meant, generally speaking, that
-they would turn up upright. Doing this gives a very
-uniform look to the document, so that one has to make
-an effort and read it with attention, and this was
-one of the design goals of \mst.
-
-Nevertheless, soon after I posted the initial version
-of the package to CTAN, I was overwhelmed by
-numerous\footnote{this means ``more then one.''}
-questions\footnote{I thank in particular
-\textsc{Tariq~Perwez} and \textsc{Kevin~Klement} for
-their kind remarks (chronological order).} on how to
-have the letters be in italic shape.
-
-The default is still, as in version |1.0|, for everything to be in
-upright shape, but it suffices to pass to the package the option
-§italic§\RightNote{1.1} to have the Latin letters in math mode in italic
-shape.\footnote{more precisely stated, the value of \cs{itdefault}
-is used.} There is also an option §frenchmath§ to make the
-uppercase letters nevertheless upright, because this is the way of
-traditional French mathematical typography.\footnote{more precisely
-stated, the value of \cs{shapedefault} is used.}
-
-
-\subsubsection{The \blueit{defaultmathsizes} option}
-
-The default sizes give for subscripts of subscripts barely legible glyphs
-(author's opinion!). So \mst makes more reasonable choices. It also
-redefines \cs{Huge} and defines a \cs{HUGE} size, copied from
-the |moresize| package. To cancel all of this use option
-§defaultmathsizes§.
-
-\subsubsection{The \blueit{subdued} option}\label{sec:subdued}
-
-This option was introduced in |v1.15|.\RightNote{1.15} It provides a manner to
-switch on the \mst-\emph{ification} only for limited portions of
-the document, with the help of the mechanism of math versions. Without the
-§subdued§ option, the \emph{mathastextification} applies by default
-to the whole of the document (and one may also define additional
-math versions in the preamble); with the §subdued§ option the
-\emph{mathastextification} is done only in \emph{math versions} distinct from
-the standard and bold ones.
-
-Despite some limitations I will now partially describe, the §subdued§ option
-has its utility, as I think is illustrated enough by the examples given at the
-start of this document and it works reasonably well.
-
-\begin{framed}
- \mst was not written initially in order to allow its action to
- be completely canceled. It does not store (all) mathcodes nor
- does it set them (all) when changing math versions; only that would
- allow a perfect subdued mode (and \LaTeX\ is rather obstinate in
- making that tricky or at least uneasy if sticking to its
- official interface to math mode, as it is almost entirely
- preamble only).
-
- Releases |1.3t| and |1.3u| do this kind of things to maintain
- usability across multiple \mst-ified math versions of characters
- which are obviously font encoding dependent such as the minus
- sign as en-dash (or unicode minus), the dotless i, the |\hbar|,
- the text accents.
-
- But this should be extended to all \mst-ified characters which
- basically would amount to an extensive rewrite of large legacy
- portions of the code. Currently the support for the |subdued|
- mode and to multiple math versions amounts to some kind of a
- kludge, added to an initial design which handled a single unique
- text font.
-\end{framed}
+\subsubsection{using \mst with \href{https://ctan.org/pkg/frenchmath}{frenchmath}}\label{ssec:frenchmath}
-To get the displayed math
-(almost) as if \mst had not been loaded, one must also
-use the option §defaultmathsizes§. But this does not quite suffice,
-as, for example, the colon, the dot, and the minus sign belong
-in the default \LaTeX{} math mode set-up to three distinct fonts
-whereas \mst will pick (even subdued) the three of them in the same
-font,%
-\footnote{\CHANGED{1.3t}The minus sign is now perfectly subdued,
-because its original mathcode is stored and restored; this was only
-way to handle the case with Unicode engines
-where the math operator font is in a classic
-\TeX\ encoding, but the minus sign is configured by \mst to use a Unicode
-en-dash or minus character in non-subdued math versions.}
-%
-and although it will make a reasonable choice of this font,
-this is not an exact re-installement of the previously prevailing situation. And
-then other packages could have done arbitrary things regarding character
-mathcodes, so to
-be on the safe side one needs the §basic§ option which limits the
-mathastextification to letters and digits.%
+To use \mst concurrently with the
+\href{https://ctan.org/pkg/frenchmath}{frenchmath} package%
%
-\footnote{\CHANGED{1.3d}The §subdued§ mode does extinguish
-in the normal and bold math versions the action of options §selfGreek§,
-§eulergreek§, and §symbolgreek§ (previously only §LGRgreek§ was
-subdue-able).}
-\footnote{\CHANGED{1.3t}The \texttt{\string\imath} and
-\texttt{\string\jmath} now obey the subdued regime.}
-\footnote{\CHANGED{1.3u}Also \texttt{\string\hbar}
-and the math accents (see §mathaccents§ option) obey the subdued regime.}
+\footnote{Antoine~\textsc{Missier}, \emph{Typesetting mathematics according to French rules}, \url{https://ctan.org/pkg/frenchmath}.}
%
-Even then, in some circumstances, this
-may not suffice: for example the \emph{euler} package puts
-the digits in the same font as the Latin letters in math mode, but
-the subdued \mst will pick them up in the same font as used for
-operator names, which for example in the case of the \emph{euler} package, is
-the main document font.
-
+of
+Antoine~\textsc{Missier}:
+\begin{itemize}
+\item load
+\href{https://ctan.org/pkg/frenchmath}{frenchmath} with its option
+|capsit|,
+\item and load \mst second (after perhaps some relevant font packages)
+ and with the option §frenchmath*§.
+\end{itemize}
+Also, \href{https://ctan.org/pkg/frenchmath}{frenchmath} must be at least at
+version |1.6| of |2022/10/16|.%
+%
+% \footnote{The further package \href{https://ctan.org/pkg/frenchmath}{mismath}
+% by the Antoine~\textsc{Missier} may probably be used with \mst, but not in a fully
+% inter-operative way, as the packages conflict on some aspects. Reports
+% welcome, we have not tested this.}
+
+Limited testing indicated that the combination (using the options as indicated
+above) works as expected but that some adjustments may be needed for some of
+the macros defined by \href{https://ctan.org/pkg/frenchmath}{frenchmath}: we
+observed in particular that the |\paral| command (which produces
+$\mathrel{/\!\!/}$) may not work well if the $/$ is picked up from the text
+font due to \mst (alternative could be for most text fonts
+|\def\paral{\mathrel{//}}|), and that macros such as |\Oijk| may not work well
+due to the font lacking a dotless |j| (use then option §defaultimath§).
+
+
+You can either use the Greek related options of
+\href{https://ctan.org/pkg/frenchmath}{frenchmath} (since its version |2.0| of
+|2022/10/24|) or those of \mst.
+
+To handle properly intervals in French mathematical typesetting it is
+recommended to use the \href{https://ctan.org/pkg/mathtools}{mathtools}%
+%
+\footnote{Morten \textsc{Høgholm}, Lars \textsc{Madsen} and the
+\textsc{\LaTeX3} project, \emph{Mathematical tools to use with amsmath},
+\url{https://ctan.org/pkg/mathtools}. As explained elsewhere in this
+documentation always load \mst after \texttt{mathtools}.}
+%
+package facilities in order to define suitable macros for example like this
+for open intervals:
+\centeredline{|\DeclarePairedDelimiterX\Ioo[2]{]}{[}{#1;#2}|} Use then
+|$I = \Ioo{A}{B}$| type mark-up in your source, with variants |\Ioo*|
+and |\Ioo[\Big]| for example. We used the semi-colon, as is
+observed in some French mathematical texts, often educational, as they
+have to handle intervals with decimal numbers as extremities, and the comma is
+used as decimal separator. With the §frenchmath*§ option, \mst will let the
+semi-colon use |\mathbin| type spacing, matching observed practice in such
+mathematical texts.
+
+\smallskip
+{\footnotesize
+Very advanced expert note: if using §\MTnonlettersobeymathxx§, the above macro |\Ioo|
+will raise errors except if used as |\Ioo*|. Replace |]| by |{|{$\mskip2mu$}|]}| and |[|
+by |{[|{$\mskip2mu$}|}| in the above to get an |\Ioo| which does not raise errors and can be
+used also with the optional argument for example |\Ioo[\Bigg]|. Unfortunately then
+the starred form |\Ioo*| will fail. This is known limitation and explains why
+\mst does not execute §\MTnonlettersobeymathxx§ per default.\par}
\subsection{Math versions}\label{sec:mathversions}
-\LaTeX{} has the concept of \emph{math versions}, but most font packages
-do not define any such version beyond the default normal and bold (that
-they possibly customize to use such or such math font). The package
-|unicode-math| for unicode engines fruitfully uses this concept. \mst
-uses math versions in order to allow the math mode fonts (for letters,
-digits, punctuation and a few other ascii symbols) used in the different
-parts of the document to be kept in sync with the text fonts. However
-the other math symbols (sums, products, integrals, logical signs,
-etc\dots) will be the same throughout the document as it is not in \mst
-power to modify them. There are some possibilities to use different sets
-of fonts for the Greek letters, though.
-
-The present document illustrated the use of various fonts, here is its
-preamble (slightly stripped-down):
-\begin{center}
- \begin{minipage}{.8\linewidth}
-\begin{verbatim}
-\usepackage{lmodern}
-\usepackage[T1]{fontenc}
-\usepackage[subdued,italic,defaultmathsizes]{mathastext}
-\MTDeclareVersion[n]{lmvtt}{T1}{lmvtt}{m}{n}
-\usepackage{newcent}
-\Mathastext[newcent]
-\usepackage{times}
-\Mathastext[times]
-\usepackage[scaled]{helvet}
-\renewcommand\familydefault\sfdefault
-\Mathastext[helvet]
-\begin{document}\MTversion{normal}
-\end{verbatim}
- \end{minipage}
-\end{center}
-Let us examine this code: it uses once the command §\MTDeclareVersion§
-and three times the command §\Mathastext§, thus defining four
-|math versions|\footnote{|math versions| are discussed in the document
-|fntguide.pdf| from your \TeX{} distribution.}: |lmvtt|, |newcent|,
-|times|, and |helvet|. The names can be taken arbitrarily (they only
-need to be suitable arguments to the \LaTeX{} \cs{DeclareMathVersion}
-command which is invoked internally). Two
-additional math versions preexist: the |normal| and |bold|, which,
-because there was the §subdued§ option, were left untouched by \mst.
-
-Once these |math versions| are defined, §\MTversion§|{name_of_version}|, or
-equivalently §\Mathastextversion§|{name_of_version}|, enacts the font switches
-in the body of the document. As is usual with \LaTeX{} one can limit the scope
-to the inside of a group, or also switch back to the main set-up through issuing
-\cs{Mathastextversion\{normal\}}.
-
-When \cs{Mathastext} is used in the preamble, it records the current font
-defaults and (except for the |normal| and |bold| versions under the §subdued§
-regime) sets up the math font to be used in that version to be the text font
-as found in \cs{familydefault}. But it is still possible for a \mst-declared
-math version to have distinct fonts for text and math:
-\begin{enumerate}
-\item in the body of the \TeX{} source, an optional argument (the name
- of a \mst-declared math version) to \cs{MTversion} is allowed, and
- for example we used in the source of this document
- \cs{MTversion[newcent]\{helvet\}} meaning ``New Century Schoolbook
- for the text and Helvetica for the math.''
-\item there are preamble-only commands \cs{MTencoding}, \cs{MTfamily},
- \cs{MTseries}, \cs{MTshape}, \cs{MTlettershape} which tell \mst what
- to do (for math \emph{only}) in each math version declared
- \emph{afterwards}, independently of the text fonts.
-\end{enumerate}
-
-The native \LaTeX{} command
-\cs{mathversion}\marg{version\_name} would change only the fonts used in math
-mode. It is important to use rather the package command
-\csb{MTversion} (or one of its synonyms \cs{mathastextversion},
-\cs{Mathastextversion}, \cs{MTVersion}), with its mandatory argument
-\marg{version\_name}, as it does additional actions:
+\LaTeX{} has the concept of \emph{math versions}%
+%
+\footnote{|math versions| are discussed in the document
+|fntguide.pdf| from your \TeX{} distribution.}%
+%
+, but most font packages
+do not define any such version beyond the default normal and bold (the
+package |unicode-math| for unicode engines does use this concept).
+
+\mst extends the concept of math versions in order to allow the math mode
+fonts (for letters, digits, punctuation and a few other ascii symbols) used in
+the different parts of the document to be kept in sync with the text
+fonts.
+
+Most math symbols (sums, products, integrals, logical signs,
+etc\dots) are kept the same throughout the document though as it is not in
+\mst power to modify them.
+
+For examples see the earlier \autoref{sec:examples}. The interface to define
+a |math version| includes the commands §\Mathastext§ and
+§\MTDeclareVersion§.
+
+Once such a |math versions| has been defined in the preamble,
+§\MTversion§|{name_of_version}|, or equivalently
+§\Mathastextversion§|{name_of_version}|, enacts the font switches when
+encountered in the body of the document. As is usual with \LaTeX{} one can
+limit the scope to inside a group, or also switch back to the main
+set-up via \cs{Mathastextversion\{normal\}}.
+
+When §\Mathastext§ is used in the preamble, it records the current text font
+defaults (\cs{familydefault} et al.\@ or what has been configured by
+§\MTfamily§ and similar commands) and (except for the |normal| and |bold|
+versions if in §subdued§ regime) sets up \emph{both} the math font and the
+text font in the defined \mst-math version to be this text font.
+%
+It is still possible to switch on via §\MTversion§ in the document body
+ distinct fonts for text and math: an optional argument (the name of another
+ \mst-declared math version) to \cs{MTversion} is allowed (such as for
+ example \cs{MTversion[newcent]\{helvet\}} for one of the examples of the
+ \autoref{sec:examples}). It instructs to use as text font the font which was
+ configured to be used in this second \mst-math version.%
+%
+\footnote{When not using math versions at all (so not using \texttt{subdued}
+mode either) another way to achieve distinct fonts in text and math is
+naturally to modify the document text font \emph{after} having loaded \mst (or
+after last usage of \cs{Mathastext} without optional argument).
+Another way is to use \cs{MTfamily}, \cs{MTencoding}, \cs{MTseries},
+\cs{MTshape}, \cs{MTlettershape} in the preamble before a call to
+\cs{Mathastext} which will configure math fonts without having modified the
+document text fonts. However if one does \texttt{\string\MTversion\{normal\}}
+in the document then the text font will be reset to what was recorded as math
+font by the \cs{Mathastext} call in the preamble (as said above, when not
+using \texttt{subdued} option).}
+
+The native \LaTeX{} command \cs{mathversion}\marg{version\_name} would change
+only the fonts for the math mode, not the text mode fonts. It is important to
+use rather the package command \csb{MTversion} (or one of its synonyms
+\cs{mathastextversion}, \cs{Mathastextversion}, \cs{MTVersion}), with its
+mandatory argument \marg{version\_name}, as it does additional actions:
\begin{itemize}
\item it sets the font for math mode (letters, math operator names, digits,
punctuations, some other symbols) according to the version name given as
@@ -2259,14 +2726,14 @@ mode. It is important to use rather the package command
\item it resets the text font of the document and the
|\(family,rm,sf,...)default|s to their values as registered at the time of
definition of the version. \emph{Use the starred variant in case this is not
- desired.} It is possible to also specify within brackets an extra optional
+ desired.} As explained above tt is possible to specify within brackets an extra optional
version name, and the text font will be set according to it.
\end{itemize}
For all math versions if not using the §subdued§ option, or only
for the non-\emph{normal} and non-\emph{bold} math versions if
using the §subdued§ option, \cs{MTversion} does further additional tasks:
\begin{itemize}
-\item it resets\RLNote{NEW FEATURE!}{1.3u} the §\hbar§, \cs{imath}
+\item it resets\RightNote{1.3u} the §\hbar§, \cs{imath}
(see §\inodot§), \cs{jmath}, math accents (see option
§mathaccents§) and minus sign as en dash according to the used
font encoding for the \mst-ified text font,
@@ -2312,6 +2779,378 @@ package option §LGRgreek§ and the command
\cs{usepackage}|{epigrafica}| followed with
|\usepackage[LGRgreek]{mathastext}|.
+\subsection{Greek letters}
+
+\subsubsection{The Greek-related options}
+
+The Computer Modern fonts are very light and thin in comparison
+to many text fonts, and as a result rarely mix
+well with them (particularly if the Latin letters in
+math mode are upright). The following options are
+provided by \mst:
+\begin{description}
+\item[no option:] nothing is done by the
+ package, Greek letters are the default Computer
+ Modern ones or have been set-up by other packages;
+ for example by the |fourier| package with option
+ `upright', which gives upright Greek letters.
+\item[§LGRgreek§:] (this was substantially updated at |1.3x|, make sure to
+ read the new documentation at \autoref{sec:newgreek})
+ this option is for fonts which additionally to Latin
+ letters also provide Greek letters in |LGR| encoding. Here is
+ a list from a 2012 standard \TeX{} installation: the Computer
+ Modern, Latin Modern, and the CM-LGC fonts; the Greek Font
+ Society fonts (such as GFS Didot), the epigrafica and kerkis
+ packages, the txfontsb package which extends the txfonts
+ package with LGR-encoded Greek letters; the Droid fonts, the
+ DejaVu fonts, the Comfortaa font, and the Open Sans font. The
+ |LGR| encoded |CM/LM| fonts (in serif, sans-serif and typewriter
+ family) give the nice Greek letters in upright shape from the
+ |cbfonts| package. To get these letters in your \mst math
+ mode, you can do the following:
+\begin{verbatim}
+% instructions to load the document fonts:
+\usepackage{nice_font}
+% and then the following:
+\renewcommand{\familydefault}{cmr} % or cmss or cmtt for sans resp. mono
+\usepackage[LGRgreek]{mathastext}
+\renewcommand{\familydefault}{\rmdefault}
+\Mathastext % this re-initializes mathastext with the nice_font,
+% without changing the LGR font cmr/cmss/cmtt used for Greek letters
+% in math mode.
+\begin{document}
+\end{verbatim}
+ If you use the §italic§ option note that the italic Greek
+ letters from the |cbfonts| are not the same glyphs as
+ the default Greek letters from the |OML| encoded font |cmmi|.
+\item[§eulergreek§:] the Greek letters will be taken from the Euler font (the
+ document does not have to load the eulervm package, \mst directly uses
+ some file included in this package, as it provides a mechanism to scale
+ by an arbitrary factor the Euler font.) The letters are upright.
+\item[§symbolgreek§:] the Greek letters will be taken
+ from the (Adobe Postscript) Symbol font. A command is provided
+ so that the user can scale the Symbol font to let it
+ better fit with the text font. The letters are upright.
+\item[§selfGreek§:] this option concerns only the eleven Greek
+ capitals from the |OT1|-encoding. It does nothing for the
+ lowercase Greek letters. The encoding used in the document does
+ not have to be |OT1|.
+\end{description}
+
+There is also §LGRgreeks§ which tells \mst to pick up in each math
+version the letters from the |LGR| encoded font used in that version,
+and §selfGreeks§ to tell \mst to do as for §selfGreek§ but
+separately in all math versions.
+
+Under the §subdued§ option the Greek letters in the normal and bold math
+versions are kept to their defaults as found at the time of loading the
+package.
+
+The commands §\MTstandardgreek§ allow at any point
+in the document to turn inactive any Greek related option passed to \mst. And
+conversely §\MTcustomgreek§ reactivates it.
+
+
+\subsubsection{Shape of Greek letters}
+
+Classic \TeX{} uses in math mode italic lowercase and
+upright uppercase Greek letters. French typography uses
+upright shape for both lowercase and uppercase. And the
+ISO standard is to use italic shape for both lowercase
+and uppercase.
+
+The Euler and Symbol fonts not being available in other than their
+default upright shape, this question of shapes for Greek letters
+raises issues only in the case of the options §LGRgreek§ and
+§selfGreek§.
+
+The options §frenchmath§, §itgreek§, §upgreek§, §itGreek§ and §upGreek§
+modify the Greek letter shapes according to the following rules, listed
+from the lowest to the highest priority:
+\begin{description}
+\item[no option:] the lowercase Greek letters are in the same shape as
+ Latin letters, and the uppercase in the same shape as is applied to digits
+ and operator names,
+\item[§frenchmath§:] both lowercase and uppercase are in the same shape as
+ the digits and operator names (most of the time this means ``upright
+ shape'', but it can be otherwise),
+\item[§itgreek§]: says that Greek letters (both lowercase and uppercase) will
+ be in `|it|' shape. \RLNote{changed:}{1.3x}More precisely the expansion of
+ §\MTgreekitdefault§ is used.
+
+ This was changed at |1.3x|, formerly the value of \cs{itdefault} which was in
+ force at the time of using §\Mathastext§ (or at time of loading the package
+ if no use is made of §\Mathastext§) was used.
+\item[§upgreek§]: says that Greek letters (both lowercase and uppercase) will
+ be in `|n|' shape. \RLNote{changed:}{1.3x}More precisely the expansion of
+ §\MTgreekupdefault§ is used.
+
+ This was changed at |1.3x|, formerly the value of \cs{updefault} which was in
+ force at the time of using §\Mathastext§ (or at time of loading the package
+ if no use is made of §\Mathastext§) was used. But since \LaTeX{}
+ |2020-02-02| this caused many Font Warnings in the log because
+ \cs{updefault} is now `|up|', not `|n|' as formerly.
+\item[§itGreek§, §upGreek§:] same but they apply only to the uppercase Greek
+ letters. Their effect is computed after having taken into account either
+ §itgreek§ or §upgreek§ presence.
+\end{description}
+
+So, the default gives the classic \TeX{} behavior when option §italic§
+was passed. Each call to \cs{Mathastext} (or \cs{MathastextWillUse})
+macros (described in a later section) reinitializes the computation of
+the shapes.
+
+The commands §\MTitgreek§, §\MTupgreek§, §\MTitGreek§ and §\MTupGreek§ were
+added at |1.15c|, they act like the options with the analogous names, as if
+these options were activated only at time of use of these commands in the
+preamble, prior to some §\Mathastext§, or
+§\Mathastext§\oarg{math\_version}, or §\MTDeclareVersion§.
+
+\begin{framed}
+ These commands have some effect only if one of the §LGRgreek§, §LGRgreeks§,
+ §selfGreek§ or §selfGreeks§ options was passed to the package.
+
+ Once anyone of these commands has been made use of, changes in the shape
+ configuration of the Latin letters for new math versions (or prior to using
+ §\Mathastext§ to redefine the default configuration) via §\MTlettershape§,
+ or to the shape of letters of operator names via §\MTshape§ (or via the
+ arguments of §\MTDeclareVersion§), will stop being kept in sync with the
+ shape of the Greek letters. The shape of the Greek letters will respond
+ only to the way \mst-math versions (or default behaviour if using
+ §\Mathastext§ in the preamble) are subsequently re-configured via usage of
+ the §\MTitgreek§, §\MTupgreek§, §\MTitGreek§ and §\MTupGreek§ commands in
+ the preamble.
+\end{framed}
+
+As mentioned already the package allows to define various ``math
+versions''. In the case of §eulergreek§ or §symbolgreek§ they apply
+to all these versions. In the case of the options §LGRgreeks§ or
+§selfGreeks§ (notice the additional ``s''), each math version is
+assumed to have its text font available in |LGR| (or |OT1|
+encoding) and also the shapes will be local to the math version.
+
+Finally version |1.15c| of \mst introduces new preamble-only
+commands to change the shapes, and even the font, used for Greek
+letters, in case of package options §LGRgreek§/§selfGreek§. They
+are §\MTitgreek§, §\MTupgreek§, §\MTitGreek§, §\MTupGreek§: these
+are used like the options and change only the shapes for the math
+versions which will be declared \emph{next} in the preamble; and
+§\MTgreekfont§|{name_of_font}| will tell the \emph{next} math
+versions to use that font family. To use this command you need to
+know the (little) name of a suitable font family available in |LGR|
+encoding: for example |lmr|, |txr| (needs |txfontsb|
+package on your system), |DejaVuSerif-TLF| (needs |dejavu| package
+on your system), etc\dots
+
+\subsubsection{New with \texttt{1.3x}: alphabets \cs{mathgreekup} and
+ \cs{mathgreekit}, control sequences to access directly upright or italic
+ Greek letters}
+\label{sec:newgreek}
+
+Some changes were made at |1.3x| to enhance the §LGRgreek§ (and §LGRgreeks§)
+options with new features. Everything which will be explained here applies
+only to these two options.
+
+First of all the package now makes available control sequences to access
+either the upright or italic shape of the Greek letters. Which shape is meant
+by `upright' or `italic' is configured via defining §\MTgreekupdefault§ and
+§\MTgreekitdefault§ respectively. Their default definitions are to expand to
+`|n|' and `|it|' respectively.
+
+See\RLNote{new:}{1.3x} the \autoref{table:greekup} and \autoref{table:greekit}
+for illustrations (using here the Libertinus Serif font).
+\begin{table}[htbp]
+\MTversion{libertinus}
+\begin{framed}
+\begin{multicols}{4}
+\noindent
+\string\Alphaup\ $\Alphaup$\\
+\string\Betaup\ $\Betaup$\\
+\string\Gammaup\ $\Gammaup$\\
+\string\Deltaup\ $\Deltaup$\\
+\string\Epsilonup\ $\Epsilonup$\\
+\string\Zetaup\ $\Zetaup$\\
+\string\Etaup\ $\Etaup$\\
+\string\Thetaup\ $\Thetaup$\\
+\string\Iotaup\ $\Iotaup$\\
+\string\Kappaup\ $\Kappaup$\\
+\string\Lambdaup\ $\Lambdaup$\\
+\string\Muup\ $\Muup$\\
+\string\Nuup\ $\Nuup$\\
+\string\Xiup\ $\Xiup$\\
+\string\Omicronup\ $\Omicronup$\\
+\string\Piup\ $\Piup$\\
+\string\Rhoup\ $\Rhoup$\\
+\string\Sigmaup\ $\Sigmaup$\\
+\string\Tauup\ $\Tauup$\\
+\string\Upsilonup\ $\Upsilonup$\\
+\string\Phiup\ $\Phiup$\\
+\string\Chiup\ $\Chiup$\\
+\string\Psiup\ $\Psiup$\\
+\string\Omegaup\ $\Omegaup$\\
+\string\Digammaup\ $\Digammaup$\\
+% \columnbreak ne fonctionne pas comme espéré
+\mbox{}\\
+\string\alphaup\ $\alphaup$\\
+\string\betaup\ $\betaup$\\
+\string\gammaup\ $\gammaup$\\
+\string\deltaup\ $\deltaup$\\
+\string\epsilonup\ $\epsilonup$\\
+\string\zetaup\ $\zetaup$\\
+\string\etaup\ $\etaup$\\
+\string\thetaup\ $\thetaup$\\
+\string\iotaup\ $\iotaup$\\
+\string\kappaup\ $\kappaup$\\
+\string\lambdaup\ $\lambdaup$\\
+\string\muup\ $\muup$\\
+\string\nuup\ $\nuup$\\
+\string\xiup\ $\xiup$\\
+\string\omicronup\ $\omicronup$\\
+\string\piup\ $\piup$\\
+\string\rhoup\ $\rhoup$\\
+\string\sigmaup\ $\sigmaup$\\
+\string\tauup\ $\tauup$\\
+\string\upsilonup\ $\upsilonup$\\
+\string\phiup\ $\phiup$\\
+\string\chiup\ $\chiup$\\
+\string\psiup\ $\psiup$\\
+\string\omegaup\ $\omegaup$\\
+\string\digammaup\ $\digammaup$\\
+\string\varsigmaup\ $\varsigmaup$
+\end{multicols}
+\end{framed}
+% il y a bien sûr d'horribles espacement verticaux typiques de LaTeX
+\vspace*{-\baselineskip}
+\caption{Greek letters via `up' control sequences (math mode only)}
+\label{table:greekup}
+\end{table}
+\begin{table}[htbp]
+\MTversion{libertinus}
+\begin{framed}
+\begin{multicols}{4}
+\noindent
+\string\Alphait\ $\Alphait$\\
+\string\Betait\ $\Betait$\\
+\string\Gammait\ $\Gammait$\\
+\string\Deltait\ $\Deltait$\\
+\string\Epsilonit\ $\Epsilonit$\\
+\string\Zetait\ $\Zetait$\\
+\string\Etait\ $\Etait$\\
+\string\Thetait\ $\Thetait$\\
+\string\Iotait\ $\Iotait$\\
+\string\Kappait\ $\Kappait$\\
+\string\Lambdait\ $\Lambdait$\\
+\string\Muit\ $\Muit$\\
+\string\Nuit\ $\Nuit$\\
+\string\Xiit\ $\Xiit$\\
+\string\Omicronit\ $\Omicronit$\\
+\string\Piit\ $\Piit$\\
+\string\Rhoit\ $\Rhoit$\\
+\string\Sigmait\ $\Sigmait$\\
+\string\Tauit\ $\Tauit$\\
+\string\Upsilonit\ $\Upsilonit$\\
+\string\Phiit\ $\Phiit$\\
+\string\Chiit\ $\Chiit$\\
+\string\Psiit\ $\Psiit$\\
+\string\Omegait\ $\Omegait$\\
+\string\Digammait\ $\Digammait$\\
+% \columnbreak ne fonctionne pas comme espéré
+\mbox{}\\
+\string\alphait\ $\alphait$\\
+\string\betait\ $\betait$\\
+\string\gammait\ $\gammait$\\
+\string\deltait\ $\deltait$\\
+\string\epsilonit\ $\epsilonit$\\
+\string\zetait\ $\zetait$\\
+\string\etait\ $\etait$\\
+\string\thetait\ $\thetait$\\
+\string\iotait\ $\iotait$\\
+\string\kappait\ $\kappait$\\
+\string\lambdait\ $\lambdait$\\
+\string\muit\ $\muit$\\
+\string\nuit\ $\nuit$\\
+\string\xiit\ $\xiit$\\
+\string\omicronit\ $\omicronit$\\
+\string\piit\ $\piit$\\
+\string\rhoit\ $\rhoit$\\
+\string\sigmait\ $\sigmait$\\
+\string\tauit\ $\tauit$\\
+\string\upsilonit\ $\upsilonit$\\
+\string\phiit\ $\phiit$\\
+\string\chiit\ $\chiit$\\
+\string\psiit\ $\psiit$\\
+\string\omegait\ $\omegait$\\
+\string\digammait\ $\digammait$\\
+\string\varsigmait\ $\varsigmait$
+\end{multicols}
+\end{framed}
+% il y a bien sûr d'horribles espacement verticaux typiques de LaTeX
+\vspace*{-\baselineskip}
+\caption{Greek letters via `it' control sequences (math mode only)}
+\label{table:greekit}
+\end{table}
+
+% % à déplacer
+% These commands can be defined prior to loading the package,
+% which spares one to have to issue them after then issue §\Mathastext§
+% (assuming here we are using a single \mst configuration for the whole document).
+
+The regular control sequences without `|up|' or `|it|' postfix will map to
+either one of the two versions according to how the shapes were configured,
+i.e.\@ in almost all cases via usage of either the §itgreek§, §upgreek§,
+etc\dots\ options or §\MTitgreek§ et al.\@ commands. This is on a per \mst-enriched
+math version basis, depending only on how the options or commands were used
+in the preamble.
+
+Furthermore\RLNote{new:}{1.3x} two math alphabets are provided
+\centeredline{§\mathgreekup§}
+\centeredline{§\mathgreekit§}
+which can be used to map a letter to the corresponding Greek fonts.
+For example (using here the semi-bold LGR encoded |LibertinusSerif-TLF|, which
+was stored as a \mst-enriched math version with name |libertinussemibold|):
+{\MTversion{libertinussemibold}
+\centeredline{|$\mathgreekup{a}=\mathgreekup{\alpha}=\mathgreekup{\alphait}=\alphaup$|}
+\centeredline{$\mathgreekup{a}=\mathgreekup{\alpha}=\mathgreekup{\alphait}=\alphaup$}
+\centeredline{|$\mathgreekup{G}=\mathgreekup{\Gamma}=\mathgreekup{\Gammait}=\Gammaup$|}
+\centeredline{$\mathgreekup{G}=\mathgreekup{\Gamma}=\mathgreekup{\Gammait}=\Gammaup$}
+\centeredline{|$\mathgreekit{z}=\mathgreekit{\zeta}=\mathgreekit{\zetaup}=\zetait$|}
+\centeredline{$\mathgreekit{z}=\mathgreekit{\zeta}=\mathgreekit{\zetaup}=\zetait$}
+\centeredline{|$\mathgreekit{W}=\mathgreekit{\Omega}=\mathgreekit{\Omegaup}=\Omegait$|}
+\centeredline{$\mathgreekit{W}=\mathgreekit{\Omega}=\mathgreekit{\Omegaup}=\Omegait$}
+}
+
+Some\RLNote{changed!}{1.3x} refactoring%
+%
+\footnote{Technically, formerly two symbol fonts were declared, one for the
+ lowercase Greek letters and one for the uppercase Greek letters; now those
+ are dropped and replaced by two symbol fonts, one for `italic' Greek letters,
+ the other for `upright' Greek letters.}
+%
+was required to achieve this at |1.3x|
+and it is not 100\% backwards compatible: if none of the §itgreek§ etc\dots\
+things was used, the Greek letters formerly would follow the shape of Latin
+letters (for lowercase Greek) and of operator names (for uppercase Greek).
+Now, some check is made for each of these two shapes whether it is `|it|' or
+`|sl|' and then the `italic' shape, i.e.\@ §\MTgreekitdefault§
+which by default is `|it|' (without the quotes) is used, else the `upright'
+shape, i.e.\@ §\MTgreekupdefault§ which by default expands to `|n|'
+(without the quotes) is used. Naturally these checks are
+done on a per \mst-math version basis, if multiple math versions are used.
+
+So for example those who used some adventurous `|sc|' for the main shape (the
+one used per default for operator names) and used the option §LGRgreek§ but
+none of the §itgreek§ et al.\@ options, and none of the §\MTitgreek§ et
+al.\@ commands, now will need to adjust §\MTgreekupdefault§ to expand to
+`|sc|' prior to some §\Mathastext§ or §\Mathastext§\oarg{version\_name} or
+§\MTDeclareVersion§ in the preamble depending on context.
+
+It is hoped most documents, even those using multiple math versions, which
+made use of the §LGRgreek§ (or §LGRgreeks§) option will simply produce
+unmodified output. Please report to the author unexpected results not fitting
+the above attempted description of the only partial backwards
+compatibility.
+
+
\subsection{Extra spaces around letters}
\label{sec:mathskips}
@@ -2547,7 +3386,7 @@ to preserve this behavior).
\addtocounter{footnote}{1}%
\let\Hy@footnote@currentHref\saved@Href@B
%
-\footnotetext{\CHANGED{1.3i}Formerly, italic corrections were added to the
+\footnotetext{\RightNote{1.3i}Formerly, italic corrections were added to the
\cs{mathnormal} arguments.}
\makeatother
@@ -2578,10 +3417,13 @@ $\mathit{f_i^i}$\par $\mathrm{f_i^i}$
three outputs are different on my \TeX{} installation. \XeTeX{} does not have
the italic corrections. \LuaLaTeX{} does, but only for the italic font.
pdf\LaTeX{} has them for both the italic and the upright font.%
-\footnotemark }
+\footnotemark}
+%\tracingmacros1 % pour extraire le -0.5em du code de scrartcl...
+\footnotetext {2016/11/04: the situation hasn't changed,
+at least on current TL2016.
-\footnotetext {2016/11/04: the situation hasn't changed a iota since,
-at least on current TL2016.}
+\noindent\kern-0.5em\relax2022/10/29: no change with current TL2022.}
+%\tracingmacros0
% For more see
% \url{http://tex.stackexchange.com/a/337076} which explores also the differences
@@ -2639,7 +3481,7 @@ version (either at the start of the document body after \cs{boldmath}, or after
|\MTversion{bold}|) do not have any extra skip inserted (even one of zero
width) after $\oldforall$, $ \oldexists$, or before the ${}'$.%
%
-\footnote{\CHANGED{1.3j}Formerly, skips of zero widths were inserted.}
+\footnote{\RightNote{1.3j}Formerly, skips of zero widths were inserted.}
\endgroup
@@ -2679,16 +3521,20 @@ A revolutionary\RightNote{1.2} ;-) novelty is introduced with version |1.2| of t
\mst, \emph{i.e.}, if not disabled by options,
${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}\,{\{}\,{\}}$,
the asterisk $*$, and
- $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$\footnote{%
- ${\#}\,{\$}\,{\%}\,{\&}$
- obey the math alphabets since the initial version of \mst; the dot
- $.$, the slash $/$, the vertical bar $\vert$ and the backslash
- $\backslash$ do not have specific spacings inserted by \TeX{} around
- them, and the procedure is then not a devilish one, this is why it
- is made the default for these characters which are listed apart. The
- math symbols \cs{mid} (which is $\vert$ with type \cs{mathrel}) and
- \cs{setminus} ($\backslash$ with type \cs{mathbin}) are counted
- among the `difficult' cases, not the `easy non-letters'.} will also obey
+ $.\,/\,\vert\,\backslash\,{\#}\,{\$}\,{\%}\,{\&}$%
+%
+\footnote{%
+ ${\#}\,{\$}\,{\%}\,{\&}$ obey the math alphabets since the initial version
+ of \mst; the dot $.$, the slash $/$, the vertical bar $\vert$ and the
+ backslash $\backslash$ do not have specific spacings inserted by \TeX{}
+ around them, and the procedure is then activated by default since
+ \texttt{1.2} for these characters as they are `easy non-letters'. But for
+ \cs{mid} and \cs{setminus} which are $\vert$ and $\backslash$ with special
+ spacing (of type \cs{mathrel} and \cs{mathbin} resp.) the procedure has
+ some constraints explained in the framed box on next page and the
+ activation requires \cs{MTnonlettersobeymathxx}.}
+%
+will also obey
the math alphabet commands (when not used as delimiters). The
important thing is that the spaces added by \TeX{} before and after
are not modified.
@@ -2712,19 +3558,23 @@ other packages), and also for $*$ but only if this was required explicitly by
the option §asterisk§, as the user then is supposed to know that |$R^*$| is no
valid input anymore and should be replaced by |$R^{*}$|. The remaining `difficult'
cases create similar
-constraints, which will be commented more upon next. The relevant commands are\\
-\mbox{}\hspace{2cm}\csb{MTmathoperatorsdonotobeymathxx}\\
-\mbox{}\hspace{2cm}\csb{MTnonlettersdonotobeymathxx}\\
-\mbox{}\hspace{2cm}\csb{MTeasynonlettersdonotobeymathxx}\\
-for deactivation and \\
-\mbox{}\hspace{2cm}\csb{MTmathoperatorsobeymathxx}\\
-\mbox{}\hspace{2cm}\csb{MTnonlettersobeymathxx}\\
-\mbox{}\hspace{2cm}\csb{MTeasynonlettersobeymathxx}\\
-for activation.\footnote{these commands are to be used outside of math mode.
+constraints, which will be commented more upon next. The commands%
+\footnote{these commands are to be used outside of math mode.
Their scope is limited to the current \LaTeX{} environment or group. They use
the \cs{everymath} and \cs{everydisplay} mechanism so if the document needs to
modify these token lists it has to do so in a responsible manner, extending
not annihilating their previous contents.}
+%
+for deactivation are:\\
+\mbox{}\hspace{1cm}\csb{MTmathoperatorsdonotobeymathxx},\\
+\mbox{}\hspace{1cm}\csb{MTeasynonlettersdonotobeymathxx},\\
+\mbox{}\hspace{1cm}\csb{MTnonlettersdonotobeymathxx},\\
+and those for activation:\\
+\mbox{}\hspace{1cm}\csb{MTmathoperatorsobeymathxx} regards operator names and is executed by default,\\
+\mbox{}\hspace{1cm}\csb{MTeasynonlettersobeymathxx} is done by default and applies to \centeredline{${\#}\,{\$}\,{\%}\,{\&}\,.\,/\,\vert\,\backslash$} and also to $*$ under package option §asterisk§,\\
+\mbox{}\hspace{1cm}\csb{MTnonlettersobeymathxx} is \emph{not} done by default (see explanations why in the framed box next) and regards \centeredline{${!}\,{?}\,{,}\,{:}\,{;}\,{+}\,{-}\,{=}\,{(}\,{)}\,{[}\,{]}\,{<}\,{>}$} and also \cs{mid} and \cs{setminus} but applies to
+the braces ${\{}\,{\}}$ only if \csb{MTexplicitbracesobeymathxx} is also used.\par
+%
%% suppression de cette note de bas de page à 1.3u car elle est obsolète
%% (pas sûr si à 100%, mais en tout cas l'exemple avec \mathbf{-} n'a plus
%% de problème.
@@ -2775,7 +3625,7 @@ $\mathsf{\{a, a>b\}}$, or even $\mathnormalbold{\{a, a>b\}}$.\footnote{this
Even with \csb{MTnonlettersobeymathxx}, the parenthese-like symbols $($, $)$,
$[$, $]$, $<$ and $>$ and the slashes $/$, $\backslash$, \emph{if used as
- left/right delimiters} (i.e. with |\left/\right|) do not react to math
+ left/right delimiters} (i.e.\@ with |\left/\right|) do not react to math
alphabet commands. This is mainly explained by the fact that the text font
will not contain suitable glyphs, hence no attempt was made to make the
delimiters pick up their glyphs there.
@@ -2811,162 +3661,56 @@ For comparison, the \LaTeX{} standard behavior for
is $\mathbf{\mathopen{<} a,b
\mathclose{>}}$ (neither brackets nor the comma do respond).
-\subsection{Greek letters}
-
-The Computer Modern fonts are very light and thin in comparison
-to many text fonts, and as a result rarely mix
-well with them (particularly if the Latin letters in
-math mode are upright). The following options are
-provided by \mst:
-\begin{description}
-\item[no option:] nothing is done by the
- package, Greek letters are the default Computer
- Modern ones or have been set-up by other packages;
- for example by the |fourier| package with option
- `upright', which gives upright Greek letters.
-\item[§LGRgreek§:] this is for fonts which additionally to Latin
- letters also provide Greek letters in |LGR| encoding. Here is
- a list from a 2012 standard \TeX{} installation: the Computer
- Modern, Latin Modern, and the CM-LGC fonts; the Greek Font
- Society fonts (such as GFS Didot), the epigrafica and kerkis
- packages, the txfontsb package which extends the txfonts
- package with LGR-encoded Greek letters; the Droid fonts, the
- DejaVu fonts, the Comfortaa font, and the Open Sans font. The
- |LGR| encoded |CM/LM| fonts (in serif, sans-serif and typewriter
- family) give the nice Greek letters in upright shape from the
- |cbfonts| package. To get these letters in your \mst math
- mode, you can do the following:
-\begin{verbatim}
-% instructions to load the document fonts:
-\usepackage{nice_font}
-% and then the following:
-\renewcommand{\familydefault}{cmr} % or cmss or cmtt for sans resp. mono
-\usepackage[LGRgreek]{mathastext}
-\renewcommand{\familydefault}{\rmdefault}
-\Mathastext % this re-initializes mathastext with the nice_font,
-% without changing the LGR font cmr/cmss/cmtt used for Greek letters
-% in math mode.
-\begin{document}
-\end{verbatim}
- If you use the §italic§ option note that the italic Greek
- letters from the |cbfonts| are not the same glyphs as
- the default Greek letters from the |OML| encoded font |cmmi|.
-\item[§eulergreek§:] the Greek letters will be taken from the Euler font (the
- document does not have to load the eulervm package, \mst directly uses
- some file included in this package, as it provides a mechanism to scale
- by an arbitrary factor the Euler font.) The letters are upright.
-\item[§symbolgreek§:] the Greek letters will be taken
- from the (Adobe Postscript) Symbol font. A command is provided
- so that the user can scale the Symbol font to let it
- better fit with the text font. The letters are upright.
-\item[§selfGreek§:] this option concerns only the eleven Greek
- capitals from the |OT1|-encoding. It does nothing for the
- lowercase Greek letters. The encoding used in the document does
- not have to be |OT1|.
-\end{description}
-
-There is also §LGRgreeks§ which tells \mst to pick up in each math
-version the letters from the |LGR| encoded font used in that version,
-and §selfGreeks§ to tell \mst to do as for §selfGreek§ but
-separately in all math versions.
-
-Under the §subdued§ option the Greek letters in the normal and bold math
-versions are kept to their defaults as found at the time of loading the
-package.
-
-The commands §\MTstandardgreek§ allow at any point
-in the document to turn inactive any Greek related option passed to \mst. And
-conversely §\MTcustomgreek§ reactivates it.
-
-
-\subsubsection{Shape of Greek letters}
-
-Classic \TeX{} uses in math mode italic lowercase and
-upright uppercase Greek letters. French typography uses
-upright shape for both lowercase and uppercase. And the
-ISO standard is to use italic shape for both lowercase
-and uppercase.
-
-The Euler and Symbol fonts not being available in other than their
-default upright shape, this question of shapes for Greek letters
-raises issues only in the case of the options §LGRgreek§ and
-§selfGreek§.
-
-The options §frenchmath§, §itgreek§, §upgreek§, §itGreek§ and §upGreek§
-modify the Greek letter shapes according to the following rules, listed
-from the lowest to the highest priority:
-\begin{description}
-\item[no option:] the lowercase Greek letters are in the same shape as
- Latin letters, and the uppercase in the same shape as applied to digits
- and operator names,
-\item[§frenchmath§:] both lowercase and uppercase are in the same shape as
- the digits and operator names (most of the time this means ``upright
- shape'', but it can be otherwise),
-\item[§itgreek§, §upgreek§:] both lowercase and uppercase are in the
- \cs{itdefault}, respectively the \cs{updefault} shape (at the time of
- loading the package or at the time of a subsequent call to
- \cs{Mathastext} or \cs{MathastextWillUse}),
-\item[§itGreek§, §upGreek§:] same as above, but only for the uppercase
- letters.
-\end{description}
-
-So, the default gives the classic \TeX{} behavior when option §italic§
-was passed. Each call to \cs{Mathastext} (or \cs{MathastextWillUse})
-macros (described in a later section) reinitializes the computation of
-the shapes.
-
-As mentioned already the package allows to define various ``math
-versions''. In the case of §eulergreek§ or §symbolgreek§ they apply
-to all these versions. In the case of the options §LGRgreeks§ or
-§selfGreeks§ (notice the additional ``s''), each math version is
-assumed to have its text font available in |LGR| (or |OT1|
-encoding) and also the shapes will be local to the math version.
-
-Finally version |1.15c| of \mst introduces new preamble-only
-commands to change the shapes, and even the font, used for Greek
-letters, in case of package options §LGRgreek§/§selfGreek§. They
-are §\MTitgreek§, §\MTupgreek§, §\MTitGreek§, §\MTupGreek§: these
-are used like the options and change only the shapes for the math
-versions which will be declared \emph{next} in the preamble; and
-§\MTgreekfont§|{name_of_font}| will tell the \emph{next} math
-versions to use that font family. To use this command you need to
-know the (little) name of a suitable font family available in |LGR|
-encoding: for example |lmr|, |txr| (needs |txfontsb|
-package on your system), |DejaVuSerif-TLF| (needs |dejavu| package
-on your system), etc\dots
-
-\enlargethispage{\baselineskip}
\subsection{Unicode engines}
\mst is minimally Unicode aware since |1.12| and can be used with \XeTeX{} or
-\LuaLaTeX{}. Starting with release |1.3|, it needs |luatex| to be at least
+\LuaTeX{}. Starting with release |1.3|, it needs |luatex| to be at least
as recent as the one which was provided with the TL2013 distribution.
-\subsubsection{Caveat emptor}
+However \mst applies only to (a subset of) the |32-127| ascii range, and
+optionally to Greek letters, but for the latter only if provided via ``\TeX\
+fonts'' such as Euler, Symbol or LGR-encoded fonts.
+It does not know how to use a given Unicode font simultaneously for Latin and
+Greek letters.
-With \XeTeX{} the user is strongly advised to first consider using the
-|mathspec| package, which is designed for Unicode, with a key-value interface.
-With both \XeTeX{} and \LuaLaTeX{}, |unicode-math| is recommended for OpenType
-math fonts.
+Thus, first consider much better alternatives:
+\begin{itemize}
+\item Since 2018, the package |mathfont|%
+%
+\footnote{Conrad \textsc{Kosowsky}, \emph{Use TrueType and OpenType fonts in math mode}
+\url{https://ctan.org/pkg/mathfont}.}
+%
+adapts Unicode text fonts to usage in math mode. It works with both \XeTeX\
+and \LuaTeX.
+\item For \XeTeX\ only, |mathspec|%
+%
+\footnote{Andrew Gilbert \textsc{Moschou}, \emph{Specify arbitrary fonts for mathematics in \XeTeX}
+\url{https://ctan.org/pkg/mathspec}.}
+%
+also allows usage of arbitrary text fonts in mathematics.
+\item and of course
+|unicode-math|%
+%
+\footnote{Will \textsc{Robertson}, et al., \emph{Unicode mathematics with
+ support for XeTeX and LuaTeX} \url{https://ctan.org/pkg/unicode-math}.}
+%
+is the standard package for using OpenType fonts which are equipped with the needed extra
+support being used in \TeX\ math mode.
+\end{itemize}
-Particularly in the latter case (\emph{i.e.} using |unicode-math|) you probably don't need, don't want, and should
-not use \mst: it is extremely far from being able to define a math font, as it
-applies basically only to a subset of the |32-127| ascii range, and in particular
-it does not know how to use a given Unicode font simultaneously for Latin and
-Greek letters. Again the user is strongly advised to look at |mathspec| and
-|unicode-math|.
+If using any one of the above you probably don't need, don't want, and should
+not use \mst.
-Let me point out explicitly that \mst has not been tested in any systematic
+Let me insist that \mst has not been tested in any systematic
manner under the Unicode engines; and that it is expected to be most definitely
incompatible with |unicode-math|, although your mileage may vary and some
features may appear to work.
-When using \mst with either \XeTeX{} or \LuaLaTeX{} it is recommended to use
-the |fontspec| package (see remark below on \cs{encodingdefault}).
-Furthermore, it is \emph{necessary} to load |fontspec| with its |no-math|
-option, and this \emph{must} happen before loading \mst.
-
+When using \mst with either \XeTeX{} or \LuaTeX{} it is recommended to use the
+|fontspec| package (see remark below on \cs{encodingdefault}). Furthermore,
+if using |fontspec| it is \emph{necessary} to load it with its
+|no-math| option, and this \emph{must} happen before loading \mst.
\begin{framed}
\begin{itemize}[label=$\bullet$, leftmargin=1em]
\item
@@ -2980,9 +3724,9 @@ option, and this \emph{must} happen before loading \mst.
The |amsmath| package, if used, \emph{must} be loaded \emph{prior} to \mst.
\item
- Under |lualatex| engine, it has long been recommended to also load the package
- |lualatex-math|. Please check its documentation as possibly it has now
- been incorporated upstream (I am not following up on the situation).
+ Under |lualatex| engine, it is recommended to also load the package
+ |lualatex-math|.% Please check its documentation as possibly it has now
+ % been incorporated upstream (I am not following up on the situation).
\end{itemize}
\end{framed}
@@ -2997,7 +3741,7 @@ option, and this \emph{must} happen before loading \mst.
I already mentioned in the section \ref{sec:ic} the fact that
the italic corrections were not available for OpenType fonts
under the \XeTeX{} engine and only partially available for the
-\LuaLaTeX{} engine, with the result that the spacings in math
+\LuaTeX{} engine, with the result that the spacings in math
mode when using for the letters an upright text font will be
less satisfying than with the standard PDF\TeX{} engine (the
OpenType fonts not being usable with the latter engine, this is
@@ -3020,7 +3764,7 @@ There is now the §unicodeminus§\RightNote{1.3q} to use rather
% BORDEL DE BORDEL DE FAIT CHIER \verb ET Text for \verb command ended by end
% of line. je l'ai patché dans etoc et xint mais pas ici encore.
|MINUS SIGN U+2212|.%
-\footnote{Thanks to \textsc{Tobias~Brink} who asked for this feature.}
+\footnote{Thanks to Tobias~\textsc{Brink} who asked for this feature.}
%
Check \hyperref[nicodeminus]{\ttfamily\hyphenchar\font=189 its documentation}
on page \pageref{nicodeminus}.
@@ -3214,248 +3958,6 @@ the character was mathematically active remained true).
is better to turn \mst off for their dealings.
\end{framed}
-\section{Package options and commands}
-
-\subsection{Summary of main options}
- \begin{description}
-\item[{§italic§, §frenchmath§}:] italic letters in
-math, upright uppercase if §frenchmath§.
- \item[{§subdued§}:] acts in a subdued way. The \LaTeX{} normal and bold
- math versions are left (quasi) unchanged. With version |1.15e| of
- the package this statement applies also to the math alphabets
- \cs{mathbf}, \cs{mathit}, \cs{mathsf}, and \cs{mathtt} (and not
- only to \cs{mathnormal} and \cs{mathrm} as in previous versions.)
-\item[{§LGRgreek§, §eulergreek§, §symbolgreek§}:] the
- Greek letters will be taken, respectively from the
- text font itself (in |LGR| encoding), or from the Euler
- font, or from the Postscript Symbol font.
-\item[{§symbolmax§}:] all characters
- other than letters and digits, are taken from the
- Symbol font. This option also makes a number of
- further glyphs available, such as some basic
- mathematical arrows, and the sum and product
- signs. For documents with very simple needs in
- mathematical symbols, \mst with option
- §symbolmax§ may give in the end a PDF file quite
- smaller than the one one would get without the
- package.
-\item[{§defaultmathsizes§}:] \mst sets up bigger sizes
-for subscripts (it also copies code from the |moresize| package to redefine
- \cs{Huge} and define \cs{HUGE}). Use this option to prevent it from
- doing so.
-\item[{§defaultalphabets§}:] by default, \mst redeclares the math
- alphabets \cs{mathrm}, \cs{mathit}, \cs{mathtt} etc\dots{} (but not
- \cs{mathcal} of course) to refer to the current document text fonts (at the
- time of loading the package and in each \mst math version). Use
- this option to prevent it from doing so (each alphabet also has
- its own disabling option).
-\end{description}
-
-\subsection{Miscellaneous}
-
-\begin{description}
-\item[the en-dash as minus sign:] very often the -
- character from the text font does not give a good
- minus sign. So by default, the package uses the
- en-dash sign \textendash{}. Use §noendash§ to
- deactivate it. Starting with version |1.12| of the
- package this `en-dash as minus' should work in all
- encodings, including Unicode (if |fontspec| has been
- loaded); see also |unicodeminus| for OpenType fonts.
-
-\item[amsmath:] \strut the behaviour of the
- \cs{DeclareMathOperator}\RLNote{changed:}{1.3n} command
- of |amsmath| is modified by \mst for it to use the correct font.
- Additionally, release |1.3n| of \mst at long last also handles an extra
- operation done by |amsmath| for |'.:/-*| to be used in operator names
- without the extra math spacing.%
-%
-\footnote{To the experts: there is a long story here that \cs{newmcodes@}
- hardcodes the font, that it was not compatible with Unicode engines, that
- during some time (2013-2016) \texttt{lualatex-math} fixed that and very
- recently |amsopn.sty 2016/03/08 v2.02| also, so now \texttt{lualatex-math
- 1.6} does nothing as it is already fixed ``upstream'' in |amsopn.sty|, but
- anyhow in both cases, this still hardcoded the font, so finally \mst does
- the right thing from its point of view. See the code comments for more,
- there is an issue here with \LuaLaTeX\ not applying the curly right quote
- contrarily to \XeLaTeX.}
-%
-This customization is suppressed in §subdued§ mode for the |normal| and |bold|
-math versions.
-
-\item[hbar:] the default \LaTeX\ definition of §\hbar§ would in our context
- make use of the |h| of the current math font (so for us, it is also the text
- font, perhaps in italic shape), but with a bar accross the |h| from the
- original default math font for letters (usually |cmmi|). We redefine
- \cs{hbar} to use the text font macron accent (|\=|) as a mock math accent
- (this takes into account the §italic§ option and is compatible with
- subscripts and superscripts).
-
- Since |1.12| \mst when dealing with a Unicode font sets the \cs{hbar}
- to be the character from the font having hexadecimal codepoint |U+0127|.
-
- Since |1.3u| the general 8bits font encoding is
- supported\RLNote{changed:}{1.3u} (see discussion of the |mathaccents| option
- at end of this list for the shared limitations). Brief testing with
- various usual \TeX\ fonts shows that the vertical positioning of
- the bar isn't satisfying. It is planned to either add a parameter to
- adjust it or to modify altogether the mode of construction of the |\hbar|.
-
- Use §nohbar§ to tell \mst not do provide its own |\hbar|.
-
-
-\item[dotless i and j:] by default the package redefines \cs{imath} and
- \cs{jmath} to give (in math mode) the dotless i and j (if it exists at
- all) from the text font.%
-%
-\footnote{\CHANGED{1.3t}Since \texttt{1.12} it also redefined \cs{i} and
- \cs{j} for usability both in text and math modes, but this has been
- dropped at \texttt{1.3t}. Breaking change!}
-
-\item[asterisk:] versions of \mst earlier than |1.2d [2013/01/02]|
- did not do anything
- with the \cs{ast} control sequence but did pick the asterisk
- $*$ in the document text font, and this often was a rather
- silly thing as the text asterisk is generally in a raised
- position. Furthermore, the $*$ lost its status of a binary
- operator and was treated as an `ordinary' symbol. An option
- |noasterisk| turned this feature off. Starting with |1.2d|,
- the |noasterisk| option is deprecated and the new default is
- to do nothing. But when option §asterisk§ is received by the
- package, then both \cs{ast} and $*$ are simultaneously
- modified to use (as binary operators) the text asterisk,
- slightly lowered. The amount of lowering\footnote{with the
- option \texttt{symbolmisc}, the asterisk is picked from
- the Symbol font, and the amount of lowering is
- non-customizable; however if a math alphabet command is
- used, the asterisk is then again from a text font and the
- lowering will be as specified by \cs{MTlowerast}.} is
- decided by the mandatory argument to the command
- \csb{MTlowerast}\marg{dimen}. The package initially does
- \cs{MTlowerast}|{.3\height}|. Doing \cs{MTlowerast}|{.5ex}| is
- not a good idea as it does not scale properly in the script
- and scriptscript styles. With an argument given as a
- multiple of |\height|, the asterisk will behave as expected
- in subscripts and subscripts of subscripts. But $*$ is now
- `mathematically active'\thinspace\footnote{in a hopefully
- safe way, for example {\ttfamily\$\string\label\{eq*1\}\$}
- is ok.} and |$R^*$| or |$R^\ast$| \emph{must} be input as
- |$R^{*}$| and |$R^{\ast}$|. Furthermore, they will obey the
- math alphabet commands.
-
-\item[\XeTeX{} and \LuaLaTeX{}:] regarding the en-dash and the
- dotless i and j, the package is now under the Unicode engines
- compatible not only with the ``Unicode'' \LaTeX\ font encodings
- EU1 (\XeTeX, old fontspec), EU2 (\LuaLaTeX, old fontspec), TU
- (\XeTeX\ and \LuaLaTeX, modern fontspec), but also with
- traditional 8bits-encodings declared as a |fontenc|
- option.\RLNote{NEW FEATURE!}{1.3u} Formerly, with a Unicode engine,
- only OT1, T1 and LY1 were supported by \mst as the 8bit encoding
- of the document text font, regarding the minus as en-dash and
- the dotless i and j.
-
- \item[fontspec:] one more note to users of
-\XeTeX{}/\LuaLaTeX{} with |fontspec|:\newline
-\fbox{it has to be
-loaded {with the option} |no-math|},
-and \emph{before} \mst.
-
-\item[vec accent:] The default \cs{vec} accent is not
- appropriate for upright letters, so \mst
- provides a \cs{fouriervec} which takes its glyph in a
- Fourier font, and an Ersatz \cs{pmvec}
- which is reasonably good looking on upright letters
- and works with the \cs{rightarrow} glyph. Contrarily
- to version |1.0|, the default \cs{vec} is not
- overwritten with \cs{fouriervec}. And contrarily to
- version |1.1|, one now needs to pass the option
- §fouriervec§ to have the math accent \cs{fouriervec}
- defined by the package.%
-%
-\footnote{this costs a math family, as I never came back to this to try to
- do otherwise.}
-
-
-\item[math alphabets:]
- \begin{itemize}
- \item We define a new math alphabet command
- \cs{mathnormalbold} which gives direct access to
- the bold version of the \cs{mathnormal} alphabet
- (rather than using either the \cs{bm} command from
- the |bm| package or the \cs{boldsymbol} command
- from the |amsbsy| package). As it does not
- exist in the default \LaTeX{} math font set-up, this
- alphabet is \emph{not} subjected to the {subdued option} action.
- \item The other math alphabet changing commands
- defined by the package are \cs{MathEulerBold},
- \cs{MathEuler} and \cs{MathPSymbol}.
- \item \cs{mathnormal}, \cs{mathrm}, \cs{mathbf},
- \cs{mathit}, \cs{mathsf} and \cs{mathtt} are modified
- to make reference to the document text fonts (this
- can be disabled by suitable package options).
-\item version |1.2| of \mst has extended the scope of the math
- alphabets to apply to non-alphabetical characters and to
- operator names. This respects the automatic white spaces
- added by \TeX{} around math symbols.
-\item the\RightNote{1.3i}
- extra skips around letters (see \autoref{sec:mathskips} and
- \autoref{sec:ic}) are removed in the scope of the math alphabets.
- \end{itemize}
-
-\item[math accents:] if option §mathaccents§ is used then \mst attempts to let
- the math accents |\acute|, |\grave|, etc... use the suitable glyphs from the
- text font. Prior to |1.3u| only |OT1|, |T1|, and |LY1| were supported (via
- hardcoded slots). It should now work with any 8bits font
- encoding\RLNote{NEW FEATURE!}{1.3u} having been declared as an option to the
- |fontenc| package (and of course providing the ten needed text accents which
- will mock math accents).%
- %
- \footnote{The code will raise low-level \TeX\ errors if the user attempts to
- use an 8bits font encoding whose \LaTeX\ definition file is lacking the
- suitable uses of \cs{DeclareTextAccent} or if the low level \LaTeX\ macro
- implementation of text accents changes significantly; in such cases please
- report the problem to the author, so that it can be documented in future
- releases!}
-
- The |\vec| math accent is not handled here, as it is not available in the
- usual 8bits font encodings. See the §fouriervec§ option or the §\pmvec§
- command.
-
- The math accents obey the §subdued§ option\RLNote{NEW FEATURE!}{1.3u}
- and will change in sync with the \mst-ified text font used in
- each non subdued math version.
-
- (Very) brief testing during |1.3u| development with \XeTeX\ and \LuaTeX\ let
- the author conclude that usage with the \cs{Umathaccent} primitive of an
- OpenType accent glyph slot (which in the text font is for usage as a
- postpended combining character) gives definitely bad horizontal placements
- for both engines (each in its own way). Thus, the redefinitions of accents
- for a \mst declared math version with an OpenType font is by default
- canceled.%
-%
-\footnote{I.e., the \cs{grave} etc... control sequences will, in math versions
- with an OpenType \mst-ified font, expand to macros holding their initial
- meanings, unmodified by \mst, which was in force at the
- |\string\begin\string{document\string}|.}
-%
- Use §unimathaccents§ to force usage of the OpenType font text
- accents glyph slots with the \cs{Umathaccent} primitive. Expert users are
- invited to check out the code and to contribute suggestions if some extras
- can improve it.
-
-\item[varying font encodings:] the very first release of \mst dealt with only
- one font; very soon thereafter it acquired the capacity to define multiple
- math versions, each one using its own text font. But, as was documented at
- this location formerly, various encoding dependent decisions were done once
- and for all during package loading.
-
- This meant in particular that the minus sign (using the text endash), the
- dotless |i| and |j|, the |\hbar|, the math accents were all set up for only
- one unique font encoding. It was thus recommended that all math versions
- share the same font encoding.
-
- The |1.3u| release has lifted this restriction.\RLNote{NEW FEATURE!}{1.3u}
-\end{description}
% 2 septembre 2013; finalisé 22:58
\makeatletter
@@ -3465,54 +3967,11 @@ and \emph{before} \mst.
{\hyperref[#2]{\ttfamily #1#2}\endgroup}}
\makeatother
-\subsection{Commands}
-
-A few preliminary comments, mainly destined to advanced users aware of some
-\TeX\ innards (more extensive explanations are to be found in the code
-comments).
-
-The timing for actions of \mst falls into three cases:
-
-\begin{enumerate}
-\item things done during the loading of the package, or delayed to
- |\AtBeginDocument|,
-\item things done as the result of user commands, either in the preamble or in
- the body of the document,
-\item things done everytime math mode is entered.
-\end{enumerate}
-
-The second category overlaps with the others, as the (preamble) use of some
-commands can have either immediate effect or only trigger some actions in
-|\AtBeginDocument| or perhaps only influence the things done later by \mst
-each time math mode is entered.
-
-The third category deserves some brief additional comments: it mainly (but not
-exclusively) regards the ``math activation'' of characters, and conversely all
-``math activations'' fall into this category. The package re-checks each time
-math mode is entered if some characters have been made in-between catcode
-active, or math active, and takes appropriate decisions: one important aspect
-of this issue is that |babel|'s mechanism for activating character was not, last
-time I checked, very robust against math active characters. I now checked
-again (on January 15, 2016) that
-\begin{verbatim}
- \documentclass{article}
- \usepackage[french]{babel}
- \usepackage{mathtools}\mathtoolsset{centercolon}
- \begin{document}
- $:$
- \end{document}
-\end{verbatim}
-creates an infinite loop (see section \ref{sec:compat} where this was
-mentioned already, some years ago). Thus \mst has (since |1.2e 2013/01/10|) a
-somewhat elaborate mechanism related to these issues (see the code comments),
-installed into the list of things done by \TeX\ systematically each time
-it enters math mode. For some legacy reason the package also puts into
-this list a few other things which could arguably be done elsewhere once and
-for all. The command \csb{MTeverymathoff} cancels all actions done by
-\mst.
+\newsavebox\boite
+\section{Package commands}
-\newsavebox\boite
+\subsection{Commands for regular usage}
\subsubsection{Preamble-only commands}
These commands mainly facilitate the definition of math versions, in a \mst
@@ -3559,7 +4018,7 @@ option).
$abcde\displaystyle\ointop\bigvee\biguplus\bigotimes\bigoplus$}
Naturally, for this one needs an initial math font setup with some nice
bold fonts also for large symbols. This is the case with the excellent
- |txfonts| package of \textsc{Young~Ryu}. As the present document must
+ |txfonts| package of Young~\textsc{Ryu}. As the present document must
use many fonts and declares many math alphabets, we did not load the full
package and fonts but only the |largesymbols|:\hfill\break
|\DeclareSymbolFont{largesymbols}{OMX}{txex}{m}{n}|\hfill\break
@@ -3629,16 +4088,416 @@ option).
\meta{factor}.
\item §\MTSymbolScale§\marg{factor}: scales the Symbol font by
\meta{factor}.
-\item §\MTitgreek§, §\MTupgreek§, §\MTitGreek§, §\MTupGreek§:
-optional commands, active only in
-the case of the \blueit{LGRgreek} option, to decide the shape of the
-Greek letters in the versions which will be declared next.
- \item §\MTgreekfont§\marg{fontfamily}: optional command with a mandatory
- argument which specifies the font for Greek letters in all \mst math
- versions declared afterwards via \cs{Mathastext} or \cs{MTDeclareVersion}. Only effective with \blueit{LGRgreek} option.
+\item §\MTitgreek§, §\MTupgreek§, §\MTitGreek§, §\MTupGreek§: these commands
+ are active in case the \blueit{LGRgreek} option was used; they act
+ as the options of the similar names §itgreek§, §upgreek§, §itGreek§,
+ §upGreek§, but only for the Greek letters in the versions yet to be
+ defined.
+\item §\MTgreekfont§\marg{fontfamily}: a command with a mandatory argument
+ which specifies the font family for Greek letters in all \mst math versions
+ declared afterwards via §\Mathastext§ or §\MTDeclareVersion§. Only
+ effective if \blueit{LGRgreek} option was passed to the package.
+
+\end{enumerate}
+
+\subsubsection{Commands for body or math}
+
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+\item §\MTversion§\oarg{nametext}\marg{namemath},
+ §\MTversion§$\ast$\marg{namemath}, also known as
+ §\Mathastextversion§ (and as \cs{MTVersion}, and
+ \cs{mathastextversion}):
+ \begin{enumerate}[label=$\bullet$]
+ \item the non-starred version changes
+ \emph{both} the document text fonts and the math fonts (for those characters
+ treated by \mst): the mandatory argument is the math version to be used
+ for math; the optional argument is the name of (another) \mst-declared math
+ version, the font which was chosen during its declaration will be set as
+ document text font (and |\familydefault| etc\dots also are
+ redefined). In the absence of the optional argument, the mandatory one is
+ used. The versions \emph{must} be either |normal|, or |bold|, or previously
+ declared ones via §\Mathastext§ or §\MTDeclareVersion§.
+ \item the starred variant\RightNote{1.3c} does the math set-up, but changes \emph{nothing} to
+ the text fonts (see \autoref{sec:mathversions} for a description of the math
+ set-up, which summarizes
+ what is done additionally to only using \LaTeX{}'s |\mathversion|).
+ \end{enumerate}
+ \cs{MTversion}\oarg{nametext}\marg{namemath} does §\MTeverymathdefault§
+ (except for |\MTversion{normal}| and |\MTversion{bold}| under package option
+ |subdued|), which in particular activates the insertion of skips around
+ letters specified by §\MTsetmathskips§ and also, if the font used is not
+ oblique the insertion of italic corrections (for better positioning of
+ subscripts; see the discussion in \autoref{sec:ic}). Under the |frenchmath|
+ option the package checks separately the letter shape for lowercase and
+ uppercase.
+
+ \RightNote{1.3j}\cs{MTversion} also does §\MTexistsdoesskip§,
+ §\MTforalldoesskip§, and also §\MTprimedoesskip§,
+ \csb{MTmathoperatorsobeymathxx}, except under the |subdued| option for
+ \emph{normal} and \emph{bold}, in which case it does the opposite actions.
+
+\item §\hbar§: this macro is by default redefined (in a way compatible with
+ the |italic| option) combining the |h| letter and the \={ } accent from the
+ \mst font. Note that \cs{mathrm}|{\hbar}| and \cs{mathbf}|{\hbar}| will
+ work and that \cs{hbar} does scale in subscripts and exponents. Since
+ |1.3u|, this is a priori compatible with all 8bits text font
+ encodings\RightNote{1.3u} supporting the |\=| text accent in
+ the LaTeX way.%
+%
+\footnote{\RightNote{1.3u}The horizontal skips for letter |h| from
+ \cs{MTsetmathskips} are ignored for \cs{hbar}. Formerly, a positive
+ ``before'' skip was not properly taken into account for the horizontal
+ positioning of the accent and thus gave a bad result. The user can extend
+ the package \cs{hbar} definition to add skips.}
+\footnote{\RightNote{1.3u}The \cs{hbar} redefinition is canceled in normal and
+ bold math versions under the |subdued| option.}
+
+\item §\fouriervec§: this is a |\vec| accent taken from the Fourier font;
+the |fourier| package need not be loaded. Active only
+if option §fouriervec§.
+\item §\pmvec§: this provides a poor man \cs{vec} accent command, for
+upright letters. It uses the right arrow. Does not change
+size in subscripts and exponents.
+ \item §\mathnormal§, §\mathrm§, §\mathbf§, §\mathit§, §\mathsf§,
+§\mathtt§: modifications of the original \cs{mathnormal},
+\cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, \cs{mathtt} to
+use the mathastextified font. The
+underlying internal \LaTeX{} structures related to the original
+commands are not overwritten, so the original commands can be saved under
+other names before |\usepackage{mathastext}|, to be used in case of
+necessity (this is what option |subdued| does.)
+ \item §\mathnormalbold§: a bold version of \cs{mathnormal}. Differs
+from §\mathbf§ when the |italic| option has been used, or when use
+has been made of §\MTlettershape§ to specify a shape for letters
+distinct from the one for digits and operator names, or similarly
+when the math version has been declared via §\MTDeclareVersion§ with
+its optional parameter for shape of letters.
+\item \RLNote{new:}{1.3x}§\mathgreekup§: math alphabet, only available under
+ §LGRgreek§ (or §LGRgreeks§) option (and if with §subdued§ only in the
+ non-|normal| and non-|bold| \mst-enriched math versions) which gives access
+ to `upright' Greek letters (picked up from a font available in
+ |LGR|-encoding). The actual shape is configurable via re-defining §\MTgreekupdefault§.
+\item \RLNote{new:}{1.3x}§\mathgreekit§: math alphabet, only available under
+ §LGRgreek§ (or §LGRgreeks§) option (and if with §subdued§ only in the
+ non-|normal| and non-|bold| \mst-enriched math versions) which gives access
+ to `italic' Greek letters (picked up from a font available in
+ |LGR|-encoding). The actual shape is configurable via re-defining §\MTgreekitdefault§.
+\item §\inodot§, §\jnodot§: the corresponding glyphs in the \mst-ified
+ font for use in math mode. By default, |\imath| and |\jmath| are redefined to use
+ them. Since \texttt{1.3t}, these macros obey the \texttt{subdued}
+ regime.
+%
+\footnote{\RightNote{1.3t}Formerly (i.e.\@ since \texttt{1.12}) \mst
+ redefined the \texttt{\string\i} and \texttt{\string\j} as robust
+ commands usable both in text and math mode and using the above macros
+ in the latter. I have decided it wasn't such a good idea and there is
+ from now on \texttt{1.3t} no such redefinition of \texttt{\string\i}
+ and \texttt{\string\j}!}
+\item §\MathEuler§, §\MathEulerBold§: math alphabets to access
+all the glyphs of the Euler font, if option |eulergreek| (or
+|eulerdigits| was passed to the package.
+\item §\MathPSymbol§: math alphabet to access the Symbol font.
+\item when one of the options \blueit{symbolgreek},
+ \blueit{eulergreek}, or \blueit{selfGreek} is passed to the package
+ the capital Greek letters which look like their Latin
+ counterparts acquire names: \cs{Digamma},
+ \cs{Alpha}, \cs{Beta}, \cs{Epsilon}, \cs{Zeta},
+ \cs{Eta}, \cs{Iota}, \cs{Kappa}, \cs{Mu}, \cs{Nu},
+ \cs{Omicron}, \cs{Rho}, \cs{Tau}, \cs{Chi} (no
+ \cs{Digamma} for Symbol). Also an \cs{omicron}
+ control sequence is provided.
+\item |LGR| Greek and `var'-letters: only the
+ \cs{varsigma} is available in this encoding, so using
+ for example \cs{varphi} will load the previous default math
+ font. It might thus be suitable when recompiling
+ already written \LaTeX{} sources to add to the preamble
+ \cs{let}\cs{varphi}$=$\cs{phi},
+ \cs{let}\cs{varepsilon}$=$\cs{epsilon}, etc\dots,
+ in case only the `variant' form of the letter was used
+ in the documents.
+\item \hypertarget{symbolmisc}{Miscelleneous mathematical symbols} from the
+ postscript Symbol font are made available (or replaced) by option
+ §symbolmisc§.\footnote{option \blueit{asterisk} is also required to treat the
+ $*$.
+ Recall from \autoref{sec:mathxx} that the asterisk in math mode (also
+ when using the control sequence \cs{ast}) appears then to \TeX{} to be
+ a composite object.}
+ \makeatletter\let\mst@doasterisk\mst@@doasterisk\makeatother They are
+ \cs{prod}~$\prod$ \cs{sum}~$\sum$ \cs{implies}~$\implies$
+ \cs{impliedby}~$\impliedby$ \cs{iff}~$\iff$ \cs{shortiff}~$\shortiff$
+ \cs{to}~$\to$ \cs{longto}~$\longto$ \cs{mapsto}~$\mapsto$
+ \cs{longmapsto}~$\longmapsto$ \cs{aleph}~$\aleph$ \cs{inftypsy}~$\inftypsy$
+ \cs{emptyset}~$\emptyset$ \cs{surd}~$\surd$ \cs{nabla}~$\nabla$
+ \cs{angle}~$\angle$ \cs{forall}~$\forall$ \cs{exists}~$\exists$
+ \cs{neg}~$\neg$ \cs{clubsuit}~$\clubsuit$ \cs{diamondsuit}~$\diamondsuit$
+ \cs{heartsuit}~$\heartsuit$ \cs{spadesuit}~$\spadesuit$
+ \cs{smallint}~$\smallint$ \cs{wedge}~$\wedge$ \cs{vee}~$\vee$ \cs{cap}~$\cap$
+ \cs{cup}~$\cup$ \cs{bullet}~$\bullet$ \cs{div}~$\div$ \cs{otimes}~$\otimes$
+ \cs{oplus}~$\oplus$ \cs{pm}~$\pm$ \cs{ast}~$\ast$ \cs{times}~$\times$
+ \cs{proptopsy}~$\proptopsy$ \cs{mid}~$\mid$ \cs{leq}~$\leq$ \cs{geq}~$\geq$
+ \cs{approx}~$\approx$ \cs{supset}~$\supset$ \cs{subset}~$\subset$
+ \cs{supseteq}~$\supseteq$ \cs{subseteq}~$\subseteq$ \cs{in}~$\in$
+ \cs{sim}~$\sim$ \cs{cong}~$\cong$ \cs{perp}~$\perp$ \cs{equiv}~$\equiv$
+ \cs{notin}~$\notin$ \cs{langle}~$\langle$ \cs{rangle}~$\rangle$. And a
+ \cs{DotTriangle}~$\DotTriangle$ is made available by option §symbolre§ (which
+ overwrites \cs{Re} and \cs{Im}: $\Re,\Im$). The \cs{inftypsy} and
+ \cs{proptopsy} have these names to leave up to the user the choice to replace
+ (or no) the original (larger) \cs{infty} $\infty$ and \cs{propto} $\propto$.
+
+ Regarding the \cs{prod} and \cs{sum} commands: they will use the Symbol
+ glyphs $\prod\sum$ in inline math, and in display math the Computer Modern
+ ones (or whatever is set up by other packages; here we have the symbols from
+ |txfonts|): \[\prod\sum\] The package
+ provides \cs{prodpsy} and \cs{sumpsy}: if one really wants in all
+ situations the Symbol glyphs, one can do \cs{let}\cs{prod}\cs{prodpsy} and
+ \cs{let}\cs{sum}\cs{sumpsy}. Also \cs{MToriginalprod} and \cs{MToriginalsum}
+ will refer to the \cs{prod} and \cs{sum} before redefinition by the
+ package: this is to allow constructs such as |$\displaystyle\MToriginalprod$|
+ or |\[\textstyle\MToriginalprod\]|, because they would not work with the
+ \cs{prod} and \cs{sum} as re-defined by the package.
+
+\end{enumerate}
+
+
+\subsection{Commands for expert usage}
+
+A few preliminary comments, mainly destined to advanced users aware of some
+\TeX\ innards (more extensive explanations are to be found in the code
+comments).
+
+The timing for actions of \mst falls into three cases:
+
+\begin{enumerate}
+\item things done during the loading of the package, or delayed to
+ |\AtBeginDocument|,
+\item things done as the result of user commands, either in the preamble or in
+ the body of the document,
+\item things done everytime math mode is entered.
+\end{enumerate}
+
+The second category overlaps with the others, as the (preamble) use of some
+commands can have either immediate effect or only trigger some actions in
+|\AtBeginDocument| or perhaps only influence the things done later by \mst
+each time math mode is entered.
+
+The third category deserves some brief additional comments: it mainly (but not
+exclusively) regards the ``math activation'' of characters, and conversely all
+``math activations'' fall into this category. The package re-checks each time
+math mode is entered if some characters have been made in-between catcode
+active, or math active, and takes appropriate decisions: one important aspect
+of this issue is that |babel|'s mechanism for activating character was not, last
+time I checked, very robust against math active characters. I now checked
+again (on January 15, 2016) that
+\begin{verbatim}
+ \documentclass{article}
+ \usepackage[french]{babel}
+ \usepackage{mathtools}\mathtoolsset{centercolon}
+ \begin{document}
+ $:$
+ \end{document}
+\end{verbatim}
+creates an infinite loop (see section \ref{sec:compat} where this was
+mentioned already, some years ago). Thus \mst has (since |1.2e 2013/01/10|) a
+somewhat elaborate mechanism related to these issues (see the code comments),
+installed into the list of things done by \TeX\ systematically each time
+it enters math mode. For some legacy reason the package also puts into
+this list a few other things which could arguably be done elsewhere once and
+for all. The command \csb{MTeverymathoff} cancels all actions done by
+\mst.
+
+\subsubsection{Expert commands usable everywhere}\label{sec:cmds}
+
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+
+\DeleteShortVerb{\|}%
+
+\item §\MTsetmathskips§\marg{a-z|A-Z}\marg{muglue\_before}\marg{muglue\_after}:
+%
+\MakeShortVerb{\|}%
+%
+ is\RightNote{1.3a} used to specify extra skips (or rather mu glue) to be
+ inserted in math mode, before and after a letter. The rationale is that
+ standard text fonts used in math mode may sometimes cause glyph (near-)
+ collisions with math symbols, as \TeX{} has some implicit expectations on the
+ design of fonts for math letters.
+
+ \begin{framed}
+ These extra skips around letters are set at their natural width and do not
+ add any stretchability or shrinkability to the math formula as a whole,
+ nor do they result in extra potential break points.
+ \end{framed}
+
+ Random (silly) examples:
+ \centeredline{|\MTsetmathskips{x}{\medmuskip}{\thickmuskip}|} \centeredline
+ {|\MTsetmathskips{A}{.5mu}{2.3mu}|} and the effect:
+ \begingroup\MTversion{italic}\MTsetmathskips{x}{\medmuskip}{\thickmuskip}%
+ \MTsetmathskips{A}{.5mu}{2.3mu}%
+ $vwxyzABC^{vwxyzABC}$\endgroup. The effect obeys the usual \LaTeX{} scoping
+ rules.
+
+ The first argument of §\MTsetmathskips§ may be any expandable code giving a
+ letter; this facilitates use of |\MTsetmathskip| in |\@for| loops such as
+ this one:
+\begin{verbatim}
+\makeatletter
+\@for\@tempa:=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\do{%
+ \MTsetmathskips{\@tempa}{2mu}{2mu}}%
+\makeatother
+\end{verbatim}
+
+ \begin{framed}
+ \emph{\color{magenta}\bfseries Starting with |v1.3i|:} the extra skips are
+ \emph{not} applied to the letters within the scope of math alphabet
+ commands, or the letters from operator names (pre-defined or user
+ declared).
+ \end{framed}
+
+{\footnotesize
+ Note that contrarily to the \csb{MTexistsskip}, \csb{MTforallskip}, and
+ \csb{MTprimeskip} commands described next, these extra skips (which may be
+ specified in the preamble) are not recorded in the definition of the math
+ version (as defined via §\Mathastext§ with its optional argument or via
+ §\MTDeclareVersion§). The declared skips hold thoughout the document
+ until modified or canceled, independently of math versions (of
+ course, \mst cancels the skips in the normal and bold math versions if
+ package option \blueit{subdued} was used).\par}
+
+\DeleteShortVerb{\|}
+
+\item §\MTunsetmathskips§\marg{a-z|A-Z}:
+%
+\MakeShortVerb{\|}
+%
+ cancels the skips
+ for that letter (they are not set to |0mu| but completely removed).
+
+
+ % setting the skips to |0mu| which prevents formation of ligatures
+ % when the letter is used inside a \cs{mathbf} for example). Example (using a
+ % version with upright Latin Modern): \centeredline
+ % {|\MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$|}
+ % gives: \begingroup\MTversion{upright}%
+ % \MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$\endgroup.
+ % The ligature was correctly formed.
+
+ The argument may be a macro (or any expandable code) expanding to a letter.
+
+
+\item §\MTexistsskip§\marg{math glue}: specifies the amount of skip or more
+ generally glue to put after each $\oldexists$ math symbol. Indeed, upright
+ letters (or digits for that matter) often appear to be positioned a bit too
+ close to the quantifier: $\oldexists\mathrm{B}$. The package default is to
+ add a |1mu| skip (this default is set to zero in the case of |italic|):
+ $\oldexists\mskip 1mu\mathrm{B}$. One can change the default with the
+ following syntax: |\MTexistsskip{2mu plus 1mu minus 1mu}|, which if used in
+ the preamble and followed with a \csb{Mathastext} command (or
+ \csb{MTDeclareVersion}), will be recorded in the definition of this math
+ version (and subsequent ones). One may also use the command at any time in
+ the document. In the case of the option |subdued|, the skip is canceled in
+ the \emph{normal} and \emph{bold} math versions.\footnote{\RightNote{1.3j}%
+Formerly, it was set to |0mu|.} In the case of the option |italic|, the
+ default skip is set to zero.
+
+\item \RightNote{1.3j}§\MTnormalexists§, §\MTexistsdoesskip§: the
+ latter (done by default if not |subdued|, and also on each use of
+ |\MTversion| in the body of the document) makes it so that $\oldexists$
+ takes into account the math glue as specified by \csb{MTexistsskip}. The
+ former is its opposite.
+
+\item §\MTforallskip§\marg{math glue}: the default is to add a |.6667mu| math
+ skip after each $\oldforall$ (except with the option |italic| for which the
+ default skip is set to zero). Compare $\oldforall\mskip.6667mu\mathrm{F}$
+ (has the skip) with $\oldforall\mathrm{F}$ (has no skip). Use this command
+ in the preamble to set up the skip or glue to be used in the \emph{next to
+ be declared} math versions. In the case of the option |subdued|, the skip
+ is canceled in the \emph{normal} and \emph{bold} math
+ versions.\footnote{\RightNote{1.3j}Formerly, it was set to |0mu|.} In the
+ case of the option |italic|, the default skip is zero for all math versions.
+ One may use the command at any location in the document.
+
+\item \RightNote{1.3j}§\MTnormalforall§, §\MTforalldoesskip§: the
+ latter (done by default if not |subdued|, and also on each use of
+ |\MTversion| in the body of the document) makes it so that $\oldforall$
+ takes into account the math glue as specified by \csb{MTforallskip}. The
+ former is its opposite.
+
+\item §\MTprimeskip§\marg{math glue}: the default is to add a |0.5mu| skip
+ before the derivative glyph, except for the |italic| option. In the case of
+ the option |subdued|, the skip is canceled in the \emph{normal} and
+ \emph{bold} math versions.\footnote{\RightNote{1.3j}Formerly, it was set to
+ |0mu|.}
+
+% obsolete et même faux avec 1.3j
+% \footnote{if \cs{begin\{document\}} is not followed
+% with \cs{MTversion\{normal\}}, the latest values set in the preamble by
+% these commands are used at the beginning of the document,
+% even under option \texttt{subdued}.}
+
+\item §\MTlowerast§\marg{dimen}: a \cs{raisebox} command is
+ used to lower the text asterisk to produce a reasonable math
+ asterisk. The package uses this command initially with
+ argument |0.3\height|, this will have to be fine-tuned for
+ each given text font but worked out ok with the fonts we
+ tried. Note that the dimension argument will be used also in
+ sub-scripts and sub-sub-scripts, so it is best not to use an
+ absolute dimension.
+
+\item §\MTmathoperatorsobeymathxx§, §\MTmathoperatorsdonotobeymathxx§: the
+ former is done by default, it makes operator names obey math alphabets. See
+ also section \ref{sec:mathxx}. This functionality \emph{does
+ {\normalfont\bfseries not} rely}
+ on ``math active characters''. Automatically issued by each \cs{MTversion},
+ except under option |subdued| when switching to \emph{normal} or \emph{bold}.
+
+ \item §\MTcustomgreek§:\RightNote{1.3d} in case \mst has been loaded with one of its
+ Greek related options, this activates the corresponding
+ customization of Greek letters in math mode. It is issued
+ automatically by the package in the preamble (except if loaded with
+ |subdued| option) and at each switch of math version via
+ |\MTversion| or |\MTversion*| (except for the normal and bold math
+ versions in subdued mode). Also available as
+ |\Mathastextcustomgreek|. May be used even inside of math mode.
+
+ \item §\MTstandardgreek§:\RightNote{1.3d} in case \mst was loaded with one of the Greek
+ related options this command reverts the customization, it resets the Greek
+ letters to their definitions in force at package loading time. Can be used
+ in the preamble, but is mainly for the document body (may even be used
+ inside math mode ...). Done automatically
+ under the |subdued| option when switching to the normal or bold math
+ version. Also available as |\Mathastextstandardgreek|.
+\end{enumerate}
+
+\subsubsection{Expert commands which are preamble-only}
+
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+\item §\MTgreekupdefault§:\RLNote{new:}{1.3x} a command with
+ no argument whose expansion specifies, under §LGRgreek§ regime, the
+ shape for the `|up|' Greek control sequences (and for the no-postfix
+ Greek control sequences under §upgreek§ option) in all \mst math
+ versions declared \emph{afterwards} via \cs{Mathastext} or
+ \cs{MTDeclareVersion}. The a priori default for this shape is `|n|'
+ (without the quotes). See
+ \autoref{sec:newgreek}.
+
+ This command can also be defined \emph{prior} to loading the package.
+ Indeed it is defined this way:
+ \centeredline{|\providecommand*\MTgreekupdefault{n}|}
+
+\item §\MTgreekitdefault§:\RLNote{new:}{1.3x} a command with
+ no argument whose expansion specifies, under §LGRgreek§ regime, the
+ shape for the `|it|' Greek control sequences (and for the no-postfix
+ Greek control sequences under §itgreek§ option) in all \mst math
+ versions declared \emph{afterwards} via \cs{Mathastext} or
+ \cs{MTDeclareVersion}. The a priori default for this shape is `|it|'
+ (without the quotes).
+ See \autoref{sec:newgreek}.
+
+ This command can also be used \emph{prior} to loading the package.
+ Indeed it is defined this way:
+ \centeredline{|\providecommand*\MTgreekitdefault{it}|}
\end{enumerate}
-\subsubsection{Commands usable only outside of math mode}\label{sec:cmdsoutmath}
+\subsubsection{Expert commands usable only outside of math mode}\label{sec:cmdsoutmath}
They are usable only from outside math mode because they act via turning on
or off the execution, each time math mode is entered, of certain macros added
@@ -3648,7 +4507,7 @@ by \mst to the \cs{everymath} and \cs{everydisplay} token list variables.
\item §\MTmathactiveletters§: activates the `math activation' of Latin
letters. This is done by the package during loading, except under the
- |subdued| option.\footnote{\CHANGED{1.3j}Formerly, it was also executed
+ |subdued| option.\footnote{\RightNote{1.3j}Formerly, it was also executed
from each \cs{Mathastext} in the preamble.} It is again executed in the
body at each \cs{MTversion}, except under the |subdued| option when
switching to the \emph{normal} or \emph{bold} math versions.
@@ -3666,7 +4525,7 @@ by \mst to the \cs{everymath} and \cs{everydisplay} token list variables.
\item §\MTicinmath§: this command is executed by default by \mst except in
case of option |subdued| or if the user chosen letter shape is oblique (|it|
or |sl|). It tells \mst to add italic corrections after all letters in math
- mode, except within the scope of math alphabets.\footnote{\CHANGED{1.3i}%
+ mode, except within the scope of math alphabets.\footnote{\RightNote{1.3i}%
Formerly, italic corrections were added to the (non-oblique) letters of
\cs{mathnormal} arguments.}
@@ -3754,16 +4613,15 @@ Formerly, italic corrections were added to the (non-oblique) letters of
In particular, executing \cs{MTnonlettersobeymathxx} in the preamble or at
the start of the document body serves nothing, because the document is in
the subdued \emph{normal} math version regime then. It must thus be
- executed after the first usage of \cs{Mtversion} switching to a
+ executed after the first usage of \cs{MTversion} switching to a
non-subdued math version, and again on each successive exit from the
\emph{normal} or \emph{bold} math versions.
\end{framed}
- {\footnotesize
-§\MTexplicitbracesobeymathxx§ extends an earlier §\MTnonlettersobeymathxx§
+\item §\MTexplicitbracesobeymathxx§: extends an earlier §\MTnonlettersobeymathxx§
to also treat \verb|\{| and \verb|\}|. But then |\left\{|, |\right\}| must
be coded |\left\lbrace|, |\right\rbrace| rather. There is also
- §\MTexplicitbracesdonotobeymathxx§.\par}
+ §\MTexplicitbracesdonotobeymathxx§.
\item \RightNote{1.3j}§\MTnormalprime§, §\MTprimedoesskip§: the latter (done by default if not
|subdued|, and also on each use of \csb{MTversion} in the body of the document
@@ -3850,330 +4708,65 @@ actions as they are not related to \cs{everymath} and \cs{everydisplay}.\par}
\end{enumerate}
-\footnotesize
-
-\subsubsection{Commands usable only in math mode}\label{sec:mathonlycmds}
+\subsubsection{Expert commands usable only in math mode}
-%\begin{enumerate}
-%\item
-\RightNote{1.3p}§\MTfixmathfonts§: this used to be an inner macro
- but it is given a public name by |1.3p| because I discovered that
+\begin{enumerate}[label=$\bullet$, leftmargin=1em]
+{\small
+\item\RightNote{1.3p}%
+§\MTfixmathfonts§: this used to be an internal package macro
+ but it is given a public name at |1.3p| because I discovered that
|$..\hbox{\mathversion{foo}$..$}..$| causes an
issue and one needs to invoke again \cs{MTfixmathfonts} \emph{after} the
\verb|\hbox|, for some reason. To be used \emph{only} under \LuaLaTeX{} and only for
- such rare cases where it may be needed.
-%\end{enumerate}
-
-\normalsize
-
-\subsubsection{Commands usable everywhere}\label{sec:cmds}
-
-\begin{enumerate}[label=$\bullet$, leftmargin=1em]
-
-\DeleteShortVerb{\|}%
-
-\item §\MTsetmathskips§\marg{a-z|A-Z}\marg{muglue\_before}\marg{muglue\_after}:
- \MakeShortVerb{\|}is\RightNote{1.3a} used to specify extra skips (or rather mu glue) to be
- inserted in math mode, before and after a letter. The rationale is that
- standard text fonts used in math mode may sometimes cause glyph (near-)
- collisions with math symbols, as \TeX{} has some implicit expectations on the
- design of fonts for math letters.
-
- \begin{framed}
- These extra skips around letters are set at their natural width and do not
- add any stretchability or shrinkability to the math formula as a whole,
- nor do they result in extra potential break points.
- \end{framed}
-
- Random (silly) examples:
- \centeredline{|\MTsetmathskips{x}{\medmuskip}{\thickmuskip}|} \centeredline
- {|\MTsetmathskips{A}{.5mu}{2.3mu}|} and the effect:
- \begingroup\MTversion{italic}\MTsetmathskips{x}{\medmuskip}{\thickmuskip}%
- \MTsetmathskips{A}{.5mu}{2.3mu}%
- $vwxyzABC^{vwxyzABC}$\endgroup. The effect obeys the usual \LaTeX{} scoping
- rules.
-
- The first argument of §\MTsetmathskips§ may be any expandable code giving a
- letter; this facilitates use of |\MTsetmathskip| in |\@for| loops such as
- this one:
-\begin{verbatim}
-\makeatletter
-\@for\@tempa:=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\do{%
- \MTsetmathskips{\@tempa}{2mu}{2mu}}%
-\makeatother
-\end{verbatim}
-
- \begin{framed}
- \emph{\color{magenta}\bfseries Starting with |v1.3i|:} the extra skips are
- \emph{not} applied to the letters within the scope of math alphabet
- commands, or the letters from operator names (pre-defined or user
- declared).
- \end{framed}
-
-{\footnotesize
- Note that contrarily to the \csb{MTexistsskip}, \csb{MTforallskip}, and
- \csb{MTprimeskip} commands described next, these extra skips (which may be
- specified in the preamble) are not recorded in the definition of the math
- version (as defined via §\Mathastext§ with its optional argument or via
- §\MTDeclareVersion§). The declared skips hold thoughout the document
- until modified or canceled, independently of math versions (of
- course, \mst cancels the skips in the normal and bold math versions if
- package option \blueit{subdued} was used).\par}
-
-\DeleteShortVerb{\|}
-
-\item §\MTunsetmathskips§\marg{a-z|A-Z}: \MakeShortVerb{\|} cancels the skips
- for that letter (they are not set to |0mu| but completely removed).
-
-
- % setting the skips to |0mu| which prevents formation of ligatures
- % when the letter is used inside a \cs{mathbf} for example). Example (using a
- % version with upright Latin Modern): \centeredline
- % {|\MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$|}
- % gives: \begingroup\MTversion{upright}%
- % \MTsetmathskips{f}{8mu}{0mu}$gffg\MTunsetmathskips{f}ff\mathbf{ff}$\endgroup.
- % The ligature was correctly formed.
-
- The argument may be a macro (or any expandable code) expanding to a letter.
-
-
-\item §\MTexistsskip§\marg{math glue}: specifies the amount of skip or more
- generally glue to put after each $\oldexists$ math symbol. Indeed, upright
- letters (or digits for that matter) often appear to be positioned a bit too
- close to the quantifier: $\oldexists\mathrm{B}$. The package default is to
- add a |1mu| skip (this default is set to zero in the case of |italic|):
- $\oldexists\mskip 1mu\mathrm{B}$. One can change the default with the
- following syntax: |\MTexistsskip{2mu plus 1mu minus 1mu}|, which if used in
- the preamble and followed with a \csb{Mathastext} command (or
- \csb{MTDeclareVersion}), will be recorded in the definition of this math
- version (and subsequent ones). One may also use the command at any time in
- the document. In the case of the option |subdued|, the skip is canceled in
- the \emph{normal} and \emph{bold} math versions.\footnote{\CHANGED{1.3j}%
-Formerly, it was set to |0mu|.} In the case of the option |italic|, the
- default skip is set to zero.
-
-\item \RightNote{1.3j}§\MTnormalexists§, §\MTexistsdoesskip§: the
- latter (done by default if not |subdued|, and also on each use of
- |\MTversion| in the body of the document) makes it so that $\oldexists$
- takes into account the math glue as specified by \csb{MTexistsskip}. The
- former is its opposite.
-
-\item §\MTforallskip§\marg{math glue}: the default is to add a |.6667mu| math
- skip after each $\oldforall$ (except with the option |italic| for which the
- default skip is set to zero). Compare $\oldforall\mskip.6667mu\mathrm{F}$
- (has the skip) with $\oldforall\mathrm{F}$ (has no skip). Use this command
- in the preamble to set up the skip or glue to be used in the \emph{next to
- be declared} math versions. In the case of the option |subdued|, the skip
- is canceled in the \emph{normal} and \emph{bold} math
- versions.\footnote{\CHANGED{1.3j}Formerly, it was set to |0mu|.} In the
- case of the option |italic|, the default skip is zero for all math versions.
- One may use the command at any location in the document.
-
-\item \RightNote{1.3j}§\MTnormalforall§, §\MTforalldoesskip§: the
- latter (done by default if not |subdued|, and also on each use of
- |\MTversion| in the body of the document) makes it so that $\oldforall$
- takes into account the math glue as specified by \csb{MTforallskip}. The
- former is its opposite.
-
-\item §\MTprimeskip§\marg{math glue}: the default is to add a |0.5mu| skip
- before the derivative glyph, except for the |italic| option. In the case of
- the option |subdued|, the skip is canceled in the \emph{normal} and
- \emph{bold} math versions.\footnote{\CHANGED{1.3j}Formerly, it was set to
- |0mu|.}
-
-% obsolete et même faux avec 1.3j
-% \footnote{if \cs{begin\{document\}} is not followed
-% with \cs{MTversion\{normal\}}, the latest values set in the preamble by
-% these commands are used at the beginning of the document,
-% even under option \texttt{subdued}.}
-
-\item §\MTlowerast§\marg{dimen}: a \cs{raisebox} command is
- used to lower the text asterisk to produce a reasonable math
- asterisk. The package uses this command initially with
- argument |0.3\height|, this will have to be fine-tuned for
- each given text font but worked out ok with the fonts we
- tried. Note that the dimension argument will be used also in
- sub-scripts and sub-sub-scripts, so it is best not to use an
- absolute dimension.
-
-\item §\MTmathoperatorsobeymathxx§, §\MTmathoperatorsdonotobeymathxx§: the
- former is done by default, it makes operator names obey math alphabets. See
- also section \ref{sec:mathxx}. This functionality \emph{does
- {\normalfont\bfseries not} rely}
- on ``math active characters''. Automatically issued by each \cs{MTversion},
- except under option |subdued| when switching to \emph{normal} or \emph{bold}.
-
- \item §\MTcustomgreek§:\RightNote{1.3d} in case \mst has been loaded with one of its
- Greek related options, this activates the corresponding
- customization of Greek letters in math mode. It is issued
- automatically by the package in the preamble (except if loaded with
- |subdued| option) and at each switch of math version via
- |\MTversion| or |\MTversion*| (except for the normal and bold math
- versions in subdued mode). Also available as
- |\Mathastextcustomgreek|. May be used even inside of math mode.
-
- \item §\MTstandardgreek§:\RightNote{1.3d} in case \mst was loaded with one of the Greek
- related options this command reverts the customization, it resets the Greek
- letters to their definitions in force at package loading time. Can be used
- in the preamble, but is mainly for the document body (may even be used
- inside math mode ...). Done automatically
- under the |subdued| option when switching to the normal or bold math
- version. Also available as |\Mathastextstandardgreek|.
-
+ such rare cases where it may be needed.\par
+}
\end{enumerate}
-\subsubsection{Body-only commands}
-
-\begin{enumerate}[label=$\bullet$, leftmargin=1em]
-\item §\MTversion§\oarg{nametext}\marg{namemath},
- §\MTversion§$\ast$\marg{namemath}, also known as
- §\Mathastextversion§ (and as \cs{MTVersion}, and
- \cs{mathastextversion}):
- \begin{enumerate}[label=$\bullet$]
- \item the non-starred version changes
- \emph{both} the document text fonts and the math fonts (for those characters
- treated by \mst): the mandatory argument is the math version to be used
- for math; the optional argument is the name of (another) \mst-declared math
- version, the font which was chosen during its declaration will be set as
- document text font (and |\familydefault| etc\dots also are
- redefined). In the absence of the optional argument, the mandatory one is
- used. The versions \emph{must} be either |normal|, or |bold|, or previously
- declared ones via §\Mathastext§ or §\MTDeclareVersion§.
- \item the starred variant\RightNote{1.3c} does the math set-up, but changes \emph{nothing} to
- the text fonts (see \autoref{sec:mathversions} for a description of the math
- set-up, which summarizes
- what is done additionally to only using \LaTeX{}'s |\mathversion|).
- \end{enumerate}
- \cs{MTversion}\oarg{nametext}\marg{namemath} does §\MTeverymathdefault§
- (except for |\MTversion{normal}| and |\MTversion{bold}| under package option
- |subdued|), which in particular activates the insertion of skips around
- letters specified by §\MTsetmathskips§ and also, if the font used is not
- oblique the insertion of italic corrections (for better positioning of
- subscripts; see the discussion in \autoref{sec:ic}). Under the |frenchmath|
- option the package checks separately the letter shape for lowercase and
- uppercase.
-
- \RightNote{1.3j}\cs{MTversion} also does §\MTexistsdoesskip§,
- §\MTforalldoesskip§, and also §\MTprimedoesskip§,
- \csb{MTmathoperatorsobeymathxx}, except under the |subdued| option for
- \emph{normal} and \emph{bold}, in which case it does the opposite actions.
-\end{enumerate}
+\section{Package options}
-All further commands are usable only inside math mode.
-\begin{enumerate}[label=$\bullet$]
-\item §\hbar§: this macro is by default redefined (in a way compatible with
- the |italic| option) combining the |h| letter and the \={ } accent from the
- \mst font. Note that \cs{mathrm}|{\hbar}| and \cs{mathbf}|{\hbar}| will
- work and that \cs{hbar} does scale in subscripts and exponents. Since
- |1.3u|, this is a priori compatible with all 8bits text font
- encodings\RLNote{changed:}{1.3u} supporting the |\=| text accent in
- the LaTeX way.%
-%
-\footnote{\CHANGED{1.3u}The horizontal skips for letter |h| from
- \cs{MTsetmathskips} are ignored for \cs{hbar}. Formerly, a positive
- ``before'' skip was not properly taken into account for the horizontal
- positioning of the accent and thus gave a bad result. The user can extend
- the package \cs{hbar} definition to add skips.}
-\footnote{\CHANGED{1.3u}The \cs{hbar} redefinition is canceled in normal and
- bold math versions under the |subdued| option.}
-
-\item §\fouriervec§: this is a |\vec| accent taken from the Fourier font;
-the |fourier| package need not be loaded. Active only
-if option §fouriervec§.
-\item §\pmvec§: this provides a poor man \cs{vec} accent command, for
-upright letters. It uses the right arrow. Does not change
-size in subscripts and exponents.
- \item §\mathnormal§, §\mathrm§, §\mathbf§, §\mathit§, §\mathsf§,
-§\mathtt§: modifications of the original \cs{mathnormal},
-\cs{mathrm}, \cs{mathbf}, \cs{mathit}, \cs{mathsf}, \cs{mathtt} to
-use the mathastextified font. The
-underlying internal \LaTeX{} structures related to the original
-commands are not overwritten, so the original commands can be saved under
-other names before |\usepackage{mathastext}|, to be used in case of
-necessity (this is what option |subdued| does.)
- \item §\mathnormalbold§: a bold version of \cs{mathnormal}. Differs
-from §\mathbf§ when the |italic| option has been used, or when use
-has been made of §\MTlettershape§ to specify a shape for letters
-distinct from the one for digits and operator names, or similarly
-when the math version has been declared via §\MTDeclareVersion§ with
-its optional parameter for shape of letters.
-\item §\inodot§, §\jnodot§: the corresponding glyphs in the \mst-ified
- font for use in math mode. By default, |\imath| and |\jmath| are redefined to use
- them. Since \texttt{1.3t}, these macros obey the \texttt{subdued}
- regime.
-%
-\footnote{\CHANGED{1.3t}Formerly (i.e. since \texttt{1.12}) \mst
- redefined the \texttt{\string\i} and \texttt{\string\j} as robust
- commands usable both in text and math mode and using the above macros
- in the latter. I have decided it wasn't such a good idea and there is
- from now on \texttt{1.3t} no such redefinition of \texttt{\string\i}
- and \texttt{\string\j}!}
-\item §\MathEuler§, §\MathEulerBold§: math alphabets to access
-all the glyphs of the Euler font, if option |eulergreek| (or
-|eulerdigits| was passed to the package.
-\item §\MathPSymbol§: math alphabet to access the Symbol font.
-\item when one of the options \blueit{symbolgreek},
- \blueit{eulergreek}, or \blueit{selfGreek} is passed to the package
- the capital Greek letters which look like their Latin
- counterparts acquire names: \cs{Digamma},
- \cs{Alpha}, \cs{Beta}, \cs{Epsilon}, \cs{Zeta},
- \cs{Eta}, \cs{Iota}, \cs{Kappa}, \cs{Mu}, \cs{Nu},
- \cs{Omicron}, \cs{Rho}, \cs{Tau}, \cs{Chi} (no
- \cs{Digamma} for Symbol). Also an \cs{omicron}
- control sequence is provided.
-\item |LGR| Greek and `var'-letters: only the
- \cs{varsigma} is available in this encoding, so using
- for example \cs{varphi} will load the previous default math
- font. It might thus be suitable when recompiling
- already written \LaTeX{} sources to add to the preamble
- \cs{let}\cs{varphi}$=$\cs{phi},
- \cs{let}\cs{varepsilon}$=$\cs{epsilon}, etc\dots,
- in case only the `variant' form of the letter was used
- in the documents.
-\item \hypertarget{symbolmisc}{Miscelleneous mathematical symbols} from the
- postscript Symbol font are made available (or replaced) by option
- §symbolmisc§.\footnote{option \blueit{asterisk} is also required to treat the
- $*$.
- Recall from \autoref{sec:mathxx} that the asterisk in math mode (also
- when using the control sequence \cs{ast}) appears then to \TeX{} to be
- a composite object.}
- \makeatletter\let\mst@doasterisk\mst@@doasterisk\makeatother They are
- \cs{prod}~$\prod$ \cs{sum}~$\sum$ \cs{implies}~$\implies$
- \cs{impliedby}~$\impliedby$ \cs{iff}~$\iff$ \cs{shortiff}~$\shortiff$
- \cs{to}~$\to$ \cs{longto}~$\longto$ \cs{mapsto}~$\mapsto$
- \cs{longmapsto}~$\longmapsto$ \cs{aleph}~$\aleph$ \cs{inftypsy}~$\inftypsy$
- \cs{emptyset}~$\emptyset$ \cs{surd}~$\surd$ \cs{nabla}~$\nabla$
- \cs{angle}~$\angle$ \cs{forall}~$\forall$ \cs{exists}~$\exists$
- \cs{neg}~$\neg$ \cs{clubsuit}~$\clubsuit$ \cs{diamondsuit}~$\diamondsuit$
- \cs{heartsuit}~$\heartsuit$ \cs{spadesuit}~$\spadesuit$
- \cs{smallint}~$\smallint$ \cs{wedge}~$\wedge$ \cs{vee}~$\vee$ \cs{cap}~$\cap$
- \cs{cup}~$\cup$ \cs{bullet}~$\bullet$ \cs{div}~$\div$ \cs{otimes}~$\otimes$
- \cs{oplus}~$\oplus$ \cs{pm}~$\pm$ \cs{ast}~$\ast$ \cs{times}~$\times$
- \cs{proptopsy}~$\proptopsy$ \cs{mid}~$\mid$ \cs{leq}~$\leq$ \cs{geq}~$\geq$
- \cs{approx}~$\approx$ \cs{supset}~$\supset$ \cs{subset}~$\subset$
- \cs{supseteq}~$\supseteq$ \cs{subseteq}~$\subseteq$ \cs{in}~$\in$
- \cs{sim}~$\sim$ \cs{cong}~$\cong$ \cs{perp}~$\perp$ \cs{equiv}~$\equiv$
- \cs{notin}~$\notin$ \cs{langle}~$\langle$ \cs{rangle}~$\rangle$. And a
- \cs{DotTriangle}~$\DotTriangle$ is made available by option §symbolre§ (which
- overwrites \cs{Re} and \cs{Im}: $\Re,\Im$). The \cs{inftypsy} and
- \cs{proptopsy} have these names to leave up to the user the choice to replace
- (or no) the original (larger) \cs{infty} $\infty$ and \cs{propto} $\propto$.
+\subsection{Summary of main options}
- Regarding the \cs{prod} and \cs{sum} commands: they will use the Symbol
- glyphs $\prod\sum$ in inline math, and in display math the Computer Modern
- ones (or whatever is set up by other packages; here we have the symbols from
- |txfonts|): \[\prod\sum\] The package
- provides \cs{prodpsy} and \cs{sumpsy}: if one really wants in all
- situations the Symbol glyphs, one can do \cs{let}\cs{prod}\cs{prodpsy} and
- \cs{let}\cs{sum}\cs{sumpsy}. Also \cs{MToriginalprod} and \cs{MToriginalsum}
- will refer to the \cs{prod} and \cs{sum} before redefinition by the
- package: this is to allow constructs such as |$\displaystyle\MToriginalprod$|
- or |\[\textstyle\MToriginalprod\]|, because they would not work with the
- \cs{prod} and \cs{sum} as re-defined by the package.
-\end{enumerate}
+\begin{description}
+\item[{§italic§, §frenchmath§}:] italic letters in
+math, upright uppercase if §frenchmath§.
+ \item[{§subdued§}:] acts in a subdued way. The \LaTeX{} normal and bold
+ math versions are left (quasi) unchanged. With version |1.15e| of
+ the package this statement applies also to the math alphabets
+ \cs{mathbf}, \cs{mathit}, \cs{mathsf}, and \cs{mathtt} (and not
+ only to \cs{mathnormal} and \cs{mathrm} as in previous versions.)
+\item[{§LGRgreek§, §eulergreek§, §symbolgreek§}:] the
+ Greek letters will be taken, respectively from the
+ text font itself (in |LGR| encoding), or from the Euler
+ font, or from the Postscript Symbol font.
+\item[{§symbolmax§}:] all characters
+ other than letters and digits, are taken from the
+ Symbol font. This option also makes a number of
+ further glyphs available, such as some basic
+ mathematical arrows, and the sum and product
+ signs. For documents with very simple needs in
+ mathematical symbols, \mst with option
+ §symbolmax§ may give in the end a PDF file quite
+ smaller than the one one would get without the
+ package.
+\item[{§defaultmathsizes§}:] \mst sets up bigger sizes
+for subscripts (it also copies code from the |moresize| package to redefine
+ \cs{Huge} and define \cs{HUGE}). Use this option to prevent it from
+ doing so.
+\item[{§defaultalphabets§}:] by default, \mst redeclares the math
+ alphabets \cs{mathrm}, \cs{mathit}, \cs{mathtt} etc\dots{} (but not
+ \cs{mathcal} of course) to refer to the current document text fonts (at the
+ time of loading the package and in each \mst math version). Use
+ this option to prevent it from doing so (each alphabet also has
+ its own disabling option).
+\end{description}
- \subsection{Complete list of options}
+\subsection{Complete list of options}
+ Some items are described succinctly as more developed descriptions were
+ given earlier. They may sometimes simplify by omission
+ and not consider all possible configurations, particularly those
+ resulting from usage of the package commands in the preamble to
+ configure math versions.
\begin{enumerate}[label=$\bullet$, leftmargin=1em]
\item §basic§: only mathastextify letters and digits.
\item §subdued§: do not change the default fonts or the math alphabets in math
@@ -4183,13 +4776,63 @@ all the glyphs of the Euler font, if option |eulergreek| (or
option |subdued| \cs{MTversion\{normal\}} and \cs{MTversion\{bold\}} do
\csb{MTmathoperatorsdonotobeymathxx}, \csb{MTeasynonlettersdonotobeymathxx},
\csb{MTnonlettersdonotobeymathxx}, \csb{MTmathstandardletters}.
- \item §italic§: the letters default to italic shape in
- math mode.
- \item §frenchmath§: italic lowercase Latin letters, but
- uppercase Latin letters in the same font as for digits and
- operator names. In general this means that they will be
- upright. In case of the \blueit{LGRgreek} option, §frenchmath§
- influences also the shape of the Greek letters.
+ \item §italic§: the Latin letters (both lowercase and uppercase) use
+ the italic shape (\cs{itdefault}) in math mode; if the package
+ handles Greek letters, also lowercase (but not uppercase) Greek
+ letters will use this a priori italic shape except if some other
+ option such as \blueit{upgreek} was used.%
+ \footnote{Since \texttt{1.3x}, in presence of the \blueit{LGRgreek}
+ option in addition to \blueit{italic}, the \cs{MTgreekitdefault}
+ shape is then used for lowercase Greek letters and
+ \cs{MTgreekupdefault} for uppercase.}
+ \item §frenchmath§: it configures for lowercase Latin letters to use
+ italic shape (\cs{itdefault}), and uppercase Latin letters to be in
+ same shape as for digits and operator names (i.e.\@ a priori
+ \cs{shapedefault}). If the package handles Greek letters both
+ lowercase%
+%
+\footnote{If under control of the package.}
+ and uppercase Greek letters will use the same shape as
+ operator names, except if some other option such as \blueit{itgreek}
+ was used.%
+ \footnote{Under \blueit{LGRgreek} and since |1.3x|, the
+ \cs{MTgreekupdefault} is used for Greek letters if no other option
+ such as \blueit{itgreek} was employed.}
+\item §ncccomma§:\RLNote{new:}{1.3x} it triggers the loading of the
+ \href{https://ctan.org/pkg/ncccomma}{ncccomma} package%
+%
+\footnote{Alexander I. \textsc{Rozhenko}, \emph{Use comma as decimal
+ separator in mathematics}, \url{https://ctan.org/pkg/ncccomma}.}
+%
+and configures \mst for compatibility (this is canceled if
+\blueit{nopunctuation} option is used, or \blueit{basic} as it implies
+it).
+
+The effect of the \href{https://ctan.org/pkg/ncccomma}{ncccomma} package will
+apply to the entire document body, even to portions using the
+\emph{normal} or \emph{bold} math versions with \mst having been loaded with
+the \blueit{subdued}
+option. Also, in case of usage of package |babel| with |french| option, the
+effect of \href{https://ctan.org/pkg/ncccomma}{ncccomma} will also apply to
+those parts of the document using another language than French.%
+%
+\footnote{There is a `feature' of \texttt{babel-french} that the effect of
+ package \href{https://ctan.org/pkg/ncccomma}{ncccomma} is canceled if one
+ switches from French to English; and switching back to French does not
+ reenact it. For background on this issue see
+ \url{https://github.com/latex3/babel/issues/190}.}
+\item §binarysemicolon§:\RLNote{new:}{1.3x} sets (except if
+ \blueit{nopunctuation} is used) the semi-colon to let \TeX\ use
+ spacing of binary type, not punctuation type, around the semi-colon
+ (it is often used in French mathematical typesetting as separator in
+ interval denotations, when the extremities are decimal numbers, as the
+ comma is used as decimal separator).
+
+ The effect applies to all math versions, even the \emph{normal} and
+ \emph{bold} math versions with \mst having been loaded with the
+ \blueit{subdued} option.
+\item §frenchmath*§:\RLNote{new:}{1.3x} does all three of \blueit{frenchmath},
+ \blueit{ncccomma} and \blueit{binarysemicolon}.
\item §endash§, §emdash§: use the text font en-dash (\textendash) or even
the em-dash (\textemdash, but this seems crazy) for the minus sign
rather than {}-{}. §endash§ option is default for the package.
@@ -4247,11 +4890,17 @@ Symbol font.
\item §symbolmax§: combines §symbol§ and §symboldelimiters§.
\item §eulergreek§, §eulerdigits§: to let Greek letters (digits) use the
Euler font.
- \item §LGRgreek§: this is for a font which is also available in
- LGR-encoding. It is possible to change the font per math version, via
- the use of the §\MTgreekfont§ command in the preamble.
+ \item §LGRgreek§: this configures the Greek letters in math mode to use the
+ text font in
+ LGR-encoding (it is up to user to ascertain that the font familty is indeed
+ available in the LGR encoding). It also
+ activates the command §\MTgreekfont§ which can be used to set a specific
+ (LGR-encoded) font family for Greek, possibly not related to the font family
+ for Latin letters. But each use §\MTgreekfont§ must be followed by a §\Mathastext§
+ or §\Mathastext§\oarg{version\_name} to be effective.
\item §LGRgreeks§: each declared math version will be supposed to be with a
- font which is also available in LGR-encoding.
+ font which is also available in LGR-encoding. Attention that macro
+ §\MTgreekfont§ becomes then inoperant.
\item §selfGreek§: this is for a font which is also available in
|OT1|-encoding and contains the glyphs for the default eleven capital Greek
letters.
@@ -4262,11 +4911,14 @@ letters.
options to tell to use \cs{itdefault} or \cs{updefault} for the lowercase
and uppercase (or only the uppercase) Greek letters. Only operant
in the case of the |LGRgreek(s)| and |selfGreek(s)| options.
+
+ \RLNote{changed:}{1.3x}These options now use \cs{MTgreekitdefault} and
+ \cs{MTgreekupdefault} rather.
\item §mathaccents§: use the text font also for the math
accents. As in vanilla \LaTeX{}, they are taken from the font
for the digits and \cs{log}-like names. Obey the alphabet
changing commands.
- \item §unimathaccents§:\RLNote{new:}{1.3u} extends |mathaccents| to
+ \item §unimathaccents§:\RightNote{1.3u} extends |mathaccents| to
OpenType fonts. Gave bad results in my brief testing.
\item §defaultbf§, §defaultit§, §defaultsf§, §defaulttt§: do not
set up, respectively, the \cs{mathbf}, \cs{mathit}, \cs{mathsf},
@@ -4315,7 +4967,7 @@ Numerous examples will be found there:\\
\begingroup
\def\MacroFont{\footnotesize\normalfont}
-% utilisé par verbatim en classe scrdoc
+% utilisé par verbatim en classe scrdoc (ou plutôt shortvrb)
% (rappel: macrocode utilise \macro@font qui est MacroFont at begin document)
\makeatletter
@@ -4374,6 +5026,7 @@ Numerous examples will be found there:\\
\lowercase{\endgroup\long\def-}##1\par{\catcode`\M=12 \catcode`\-=12 }%
\catcode`1=\active
\catcode`\` 9 % légèrement ennuyeux mais bon, c'est le plus simple.
+ \nonfrenchspacing
\input ChangeLog.md
}
@@ -4404,9 +5057,7 @@ Numerous examples will be found there:\\
\fi
-\makeatletter
\StopEventually{\end{document}\endinput}
-\makeatother
\cleardoublepage
\newgeometry{hmarginratio=3:2}
@@ -4442,7 +5093,7 @@ Numerous examples will be found there:\\
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage {mathastext}
- [2019/11/16 v1.3w Use the text font in math mode (JFB)]
+ [2022/11/04 v1.3y Use the text font in math mode (JFB)]
% \end{macrocode}
% \LaTeX{} |2019-10-01| release has made robust math macros such as the math
% accents and \cs{hbar}.
@@ -4557,14 +5208,22 @@ Numerous examples will be found there:\\
% \begin{macro}{Package options}
% |2011/03/09|: |1.13| introduces the option LGRgreek and systematic use
% of \cs{if...} conditionals, for better readability (by myself) of
-% the code.
+% the code.
+%
+% |1.3x| of |2022/11/03| adds |ncccomma|, |binarysemicolon| and |frenchmath*| options.
% \begin{macrocode}
\newif\ifmst@italic
\newif\ifmst@frenchmath
+\newif\ifmst@ncccomma
+\newif\ifmst@binarysemicolon
\DeclareOption{italic}{\mst@italictrue
\def\mst@ltsh{\itdefault}}
\DeclareOption{frenchmath}{\mst@frenchmathtrue\mst@italictrue
\def\mst@ltsh{\itdefault}}
+ \DeclareOption{ncccomma}{\mst@ncccommatrue}
+ \DeclareOption{binarysemicolon}{\mst@binarysemicolontrue}
+ \DeclareOption{frenchmath*}{\mst@frenchmathtrue\mst@italictrue
+ \def\mst@ltsh{\itdefault}\mst@ncccommatrue\mst@binarysemicolontrue}
\newif\ifmst@endash\mst@endashtrue
\DeclareOption{endash}{\mst@endashtrue}
\DeclareOption{noendash}{\mst@endashfalse}
@@ -4686,7 +5345,7 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\newif\ifmst@subdued
\DeclareOption{subdued}{\mst@subduedtrue}
% \end{macrocode}
-% |1.3q|: the unicode option. Thanks to \textsc{Tobias~Brink} for suggesting its
+% |1.3q|: the unicode option. Thanks to Tobias~\textsc{Brink} for suggesting its
% incorporation. The parsing of |\CurrentOption| does not seek any robustness,
% it just does its job if the option is used correctly.
% \begin{macrocode}
@@ -5765,10 +6424,9 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% \end{macro}
% \end{macro}
% \begin{macro}{LGRgreek}
+% \begin{macro}{\MTgreekupdefault}
+% \begin{macro}{\MTgreekitdefault}
% \begin{macro}{selfGreek}
-% \begin{macro}{mtlgrfontupper}
-% \begin{macro}{mtlgrfontlower}
-% \begin{macro}{mtselfGreekfont}
% |1.14b|: We can not move the \cs{DeclareSymbolFont} to the
% \cs{Mathastext} macro because it resets the font family in *all*
% math versions, and some could have been defined by the user with
@@ -5794,31 +6452,118 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% commands \cs{MTitgreek} etc... will be used in-between calls to
% \cs{Mathastext} and re-adjust the shapes. And the command \cs{MTgreekfont}
% changes the Greek font family.
+%
+% Note that \cs{mst@ltsh} expands to \cs{shapedefault} or \cs{itdefault}
+% at this location.
+%
+% Note added |2022/11/02|: using \cs{MTitgreek} etc... once implies that
+% from then on, for subsequent \mst-math versions, the shape of Greek
+% letters will not be kept in sync with the shape and lettershape version
+% parameters, but only react to the configuration decided by these commands
+% (and |italic/frenchmath| options).
+%
+% Note |2022/10/29|: for some time \cs{updefault} was made into |up| by
+% \LaTeX\ (since 2020-02-02 now that I check this out). As a result this
+% triggered Font Warnings in the log about the replacement of |up| by |n|.
+%
+% |1.3x| refactors completely the handling of Greek letter shapes under the
+% |LGRgreek(s)| options (and only under them). Under these options we don't
+% use one font for lowercase Greek and anotherone for uppercase Greek (some
+% above code comments have not been updated) but one math font |mtgreekit| for italic Greek
+% and one math font |mtgreekup| for upright Greek. What `italic' and
+% `upright' mean is decided by the expansion of \cs{MTgreekitdefault} and
+% \cs{MTgreekupdefault}, which give respectively |it| and |n| per default.
+%
+% If no |itgreek| et al.\@ options or \cs{MTitgreek} et al.\@ commands
+% have been used, we need to map \cs{mst@ltsh} (which was used for
+% lowercase Greek, except under |frenchmath| option) and \cs{mst@opsh} to
+% either `italic' or `upright'. This is done by testing if they hold `it'
+% or `sl'. If yes we map to `italic' by setting to false an `up' Boolean,
+% if not we leave the `up' Boolean to true.
+%
+% In order to maintain perfect identical code for non-|LGRgreek|, the
+% |LGRgreek| related code is simply added to previously shared
+% constructions. The |LGRgreek| behaviour will remain identical in most
+% documents, but for example those who used some adventurous `|sc|' for the
+% main shape (the one used per default for operator names) need to adjust
+% \cs{MTgreekupdefault} to be `|sc|', for the math version being defined, or
+% the default one if this is followed by usage of \cs{Mathastext}.
+%
+% The new |LGRgreek|-specific commands \cs{MTgreekupdefault} and
+% \cs{MTgreekitdefault} are the only ones in the package which can possibly
+% be defined previously to loading it. (Perhaps some other macros could be
+% also converted to being modifiable prior to loading \mst, thus avoiding
+% potential need to use \cs{Mathastext} at least once after loading the
+% package; to be examined next time --- which may be a long time in
+% future!).
+%
% \begin{macrocode}
+\providecommand*\MTgreekupdefault{n}
+\providecommand*\MTgreekitdefault{it}
+\newif\ifmst@lgr@lower@up
+\newif\ifmst@lgr@upper@up
\def\mst@update@greeksh{
- \def\mst@greek@lsh{\mst@ltsh} %% default behavior
- \def\mst@greek@ush{\mst@opsh}
- \ifmst@itgreek\def\mst@greek@lsh{\itdefault}
- \def\mst@greek@ush{\itdefault}\fi
- \ifmst@upgreek\def\mst@greek@lsh{\updefault}
- \def\mst@greek@ush{\updefault}\fi
+ \def\mst@lgr@lsh{\mst@ltsh}
+ \def\mst@lgr@ush{\mst@opsh}
+ \mst@lgr@lower@uptrue
+ \expandafter\in@\expanded{{\mst@ltsh.}}{it.,sl.}%
+ \ifin@\mst@lgr@lower@upfalse\fi
+ \mst@lgr@upper@uptrue
+ \expandafter\in@\expanded{{\mst@opsh.}}{it.,sl.}%
+ \ifin@\mst@lgr@upper@upfalse\fi
+ \ifmst@itgreek
+ \def\mst@lgr@lsh{\MTgreekitdefault}
+ \def\mst@lgr@ush{\MTgreekitdefault}
+ \mst@lgr@lower@upfalse
+ \mst@lgr@upper@upfalse
+ \fi
+ \ifmst@upgreek
+ \def\mst@lgr@lsh{\MTgreekupdefault}
+ \def\mst@lgr@ush{\MTgreekupdefault}
+ \mst@lgr@lower@uptrue
+ \mst@lgr@upper@uptrue
+ \fi
\ifmst@frenchmath
\ifmst@itgreek\else
\ifmst@upgreek\else
- \def\mst@greek@lsh{\mst@opsh}
- \def\mst@greek@ush{\mst@opsh}
+ \def\mst@lgr@lsh{\mst@opsh}
+ \def\mst@lgr@ush{\mst@opsh}
+ \mst@lgr@lower@uptrue
+ \mst@lgr@upper@uptrue
\fi\fi
\fi
\ifcase\mst@greek@select
- \or\def\mst@greek@ush{\itdefault}
- \or\def\mst@greek@ush{\updefault}
- \fi}
+ \or
+ \def\mst@lgr@ush{\MTgreekitdefault}
+ \mst@lgr@upper@upfalse
+ \or
+ \def\mst@lgr@ush{\MTgreekupdefault}
+ \mst@lgr@upper@uptrue
+ \fi
+}
\mst@update@greeksh
+% \end{macrocode}
+% \begin{macro}{mtgreekup}
+% \begin{macro}{mtgreekit}
+% \begin{macro}{\mathgreekup}
+% \begin{macro}{\mathgreekit}
+% The |1.3x| refactoring was done in order to be able to define \cs{alphaup},
+% etc \dots\ control sequences (\cs{mathchar}'s), as well as the italic ones.
+% Formerly two math fonts were created but to be used respectively with
+% lowercase or uppercase Greek. Now we have two fonts indexed by their shape,
+% and we take advantage to create two math alphabets mapping to the two
+% defined symbol fonts |mtgreekup| and |mtgreekit|.
+% \begin{macrocode}
\ifmst@LGRgreek
\DeclareFontEncoding{LGR}{}{}
- \DeclareSymbolFont{mtlgrfontlower}{LGR}{\mst@fam}{\mst@ser}{\mst@greek@lsh}
- \DeclareSymbolFont{mtlgrfontupper}{LGR}{\mst@fam}{\mst@ser}{\mst@greek@ush}
+ \DeclareSymbolFont{mtgreekup}{LGR}{\mst@fam}{\mst@ser}{\MTgreekupdefault}
+ \DeclareSymbolFont{mtgreekit}{LGR}{\mst@fam}{\mst@ser}{\MTgreekitdefault}
+ \DeclareSymbolFontAlphabet{\mathgreekup}{mtgreekup}
+ \DeclareSymbolFontAlphabet{\mathgreekit}{mtgreekit}
\else
+% \end{macrocode}
+% \begin{macro}{mtselfGreekfont}
+% \begin{macrocode}
\ifmst@selfGreek
\DeclareSymbolFont{mtselfGreekfont}{OT1}{\mst@fam}{\mst@ser}{\mst@greek@ush}
\fi\fi
@@ -5828,6 +6573,10 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}{mteulervm}
% \begin{macro}{\MathEuler}
% \begin{macro}{\MathEulerBold}
@@ -5946,8 +6695,7 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\newcommand*\MTencoding[1]{\def\mst@enc{#1}}
\newcommand*\MTfamily[1]{\def\mst@fam{#1}}
\newcommand*\MTseries[1]{\def\mst@ser{#1}}
-\newcommand*\MTshape[1]{\def\mst@opsh{#1}
- \ifmst@italic\else\def\mst@ltsh{#1}\fi}
+\newcommand*\MTshape[1]{\def\mst@opsh{#1}\ifmst@italic\else\def\mst@ltsh{#1}\fi}
\newcommand*\MTboldvariant[1]{\def\mst@bold{#1}}
\newcommand*\MTlettershape[1]{\def\mst@ltsh{#1}}
\let\Mathastextencoding\MTencoding
@@ -5971,15 +6719,14 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% |1.15c|: These new macros can be used in-between calls to \cs{Mathastext}.
% They reset the shapes for Greek letters (applies to LGRgreek(s) and
% selfGreek(s) options). The \cs{MTgreekfont} presupposes either LGRgreek or
-% selfGreek. |\MTgreekfont{\familydefault}| acts like turning on LGRgreeks or
+% selfGreek (it is inoperant under LGRgreeks or selfGreeks).
+% |\MTgreekfont{\familydefault}| is somewhat like using LGRgreeks or
% selfGreeks.
% \begin{macrocode}
- \newcommand*\MTitgreek{%
-\mst@itgreektrue\mst@upgreekfalse\def\mst@greek@select{0}}
- \newcommand*\MTupgreek{%
-\mst@upgreektrue\mst@itgreekfalse\def\mst@greek@select{0}}
- \newcommand*\MTitGreek{\def\mst@greek@select{1}}
- \newcommand*\MTupGreek{\def\mst@greek@select{2}}
+\newcommand*\MTitgreek{\mst@itgreektrue\mst@upgreekfalse\def\mst@greek@select{0}}
+\newcommand*\MTupgreek{\mst@upgreektrue\mst@itgreekfalse\def\mst@greek@select{0}}
+\newcommand*\MTitGreek{\def\mst@greek@select{1}}
+\newcommand*\MTupGreek{\def\mst@greek@select{2}}
\let\Mathastextitgreek\MTitgreek
\let\Mathastextupgreek\MTupgreek
\let\MathastextitGreek\MTitGreek
@@ -6150,35 +6897,82 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% 1 the number of fonts embedded at the end in the PDF).
%
% [(Dec. 2012) should I reexamine these definitive sounding remarks?]
+%
+% |1.3x| of |2022/11/03| adds support for |ncccomma| option.
+%
+% Some non-obvious hack is needed for compatibility with our home-made
+% mechanism of non-letters obeying math alphabet commands. Alternative
+% would have been to not load at all this package and provide the
+% functionality purely by our own means (rewriting entirely its two
+% macros after loading the package would not have made much sense).
% \begin{macrocode}
-\ifmst@nopunct\else\typeout{** punctuation\string: \string, \string. \string: \string; and \string\colon}
-\DeclareMathSymbol{,}{\mathpunct}{\mst@font@tbu}{"2C}
-\DeclareMathSymbol{\mst@varfam@comma}{\mathalpha}{\mst@font@tbu}{"2C}
-\expandafter\mst@addtodo@nonletters\string,\mathpunct\mst@varfam@comma
-\DeclareMathSymbol{.}{\mathord}{\mst@font@tbu}{"2E}
-\DeclareMathSymbol{\mst@varfam@dot}{\mathalpha}{\mst@font@tbu}{"2E}
-\mst@addtodo@easynonletters\.\mst@varfam@dot
-\DeclareMathSymbol{:}{\mathrel}{\mst@font@tbu}{"3A} % relation spacing
-\DeclareMathSymbol{\mst@varfam@colon}{\mathalpha}{\mst@font@tbu}{"3A}
-\expandafter\mst@addtodo@nonletters\string:\mathrel\mst@varfam@colon
-\@ifpackageloaded{amsmath}
-{} % \colon defined in amsmath.sty in terms of : with some enlarged explicit
- % spacing. No need to intervene.
-{% no amsmath, use standard punctuation spacing
-\let\colon\undefined
- % the reason is if some package has redefined \colon which then
- % can not be used in \cs{DeclareMathSymbol} anymore (we
- % shamelessly overwrite...)
+\ifmst@nopunct\else\typeout{** punctuation\string: \string, \string. \string:
+ \string; and \string\colon}
+ \DeclareMathSymbol{,}{\mathpunct}{\mst@font@tbu}{"2C}
+ \DeclareMathSymbol{\mst@varfam@comma}{\mathalpha}{\mst@font@tbu}{"2C}
+ \ifmst@ncccomma
+ \typeout{** loading package ncccomma for `smart comma\string'}
+ \RequirePackage{ncccomma}%
+% \end{macrocode}
+% Work around some bad interaction of |ncccomma|, |numprint| with
+% |autolanguage| and |babel-frenchb|. Some hesitation whether I should
+% use the \cs{noextrasfrench} to work around |babel-frenchb| code
+% influencing non-French sections in the document.
+% \begin{macrocode}
+ \AtBeginDocument{\mathcode`\,="8000\relax
+ \@ifpackageloaded{babel}{%
+ \addto\noextrasfrench{\mathcode`\,="8000\relax}%
+ \addto\extrasfrench{\mathcode`\,="8000\relax}%
+ }{}}
+ \let\mathcomma\relax
+ \DeclareMathSymbol{\mathcomma}{\mathpunct}{\mst@font@tbu}{"2C}
+% \end{macrocode}
+% Complications for compatibility with the \cs{MTnonlettersobeymathxx} mechanism.
+% \begin{macrocode}
+ \edef\mst@NCC@comma{\let\noexpand\@empty\mathpunct
+ \unexpanded\expandafter{\NCC@comma}%
+ \let\noexpand\@empty\noexpand\empty}
+ \mst@do@nonletters\expandafter{\the\mst@do@nonletters
+ \let\mathcomma\mst@varfam@comma
+ \let\NCC@comma\mst@NCC@comma
+ }
+ \else
+ \expandafter\mst@addtodo@nonletters\string,\mathpunct\mst@varfam@comma
+ \fi % ncccomma true
+ \DeclareMathSymbol{.}{\mathord}{\mst@font@tbu}{"2E}
+ \DeclareMathSymbol{\mst@varfam@dot}{\mathalpha}{\mst@font@tbu}{"2E}
+ \mst@addtodo@easynonletters\.\mst@varfam@dot
+ \DeclareMathSymbol{:}{\mathrel}{\mst@font@tbu}{"3A} % relation spacing
+ \DeclareMathSymbol{\mst@varfam@colon}{\mathalpha}{\mst@font@tbu}{"3A}
+ \expandafter\mst@addtodo@nonletters\string:\mathrel\mst@varfam@colon
+ \@ifpackageloaded{amsmath}
+ {} % \colon defined in amsmath.sty in terms of : with some enlarged explicit
+ % spacing. No need to intervene.
+ {% no amsmath, use standard punctuation spacing
+ \let\colon\undefined
+ % the reason is if some package has redefined \colon which then
+ % can not be used in \cs{DeclareMathSymbol} anymore (we
+ % shamelessly overwrite...)
\DeclareMathSymbol{\colon}{\mathpunct}{\mst@font@tbu}{"3A}
\mst@do@nonletters\expandafter{\the\mst@do@nonletters
% \end{macrocode}
% |1.3v| uses \cs{protected} for the (optional) \cs{colon} redefinition.
% \begin{macrocode}
- \protected\def\colon{\mathpunct{\mst@varfam@colon}}}}
-\DeclareMathSymbol{;}{\mathpunct}{\mst@font@tbu}{"3B}
-\DeclareMathSymbol{\mst@varfam@pointvirgule}{\mathalpha}{\mst@font@tbu}{"3B}
-\expandafter\mst@addtodo@nonletters\string;\mathpunct\mst@varfam@pointvirgule
-\fi
+ \protected\def\colon{\mathpunct{\mst@varfam@colon}}}%
+ }
+ \DeclareMathSymbol{\mst@varfam@pointvirgule}{\mathalpha}{\mst@font@tbu}{"3B}
+% \end{macrocode}
+% |1.3x| adds |binarysemicolon| option.
+% \begin{macrocode}
+ \ifmst@binarysemicolon
+ \typeout{** semi-colon set to be of type \string\mathbin}
+ \DeclareMathSymbol{;}{\mathbin}{\mst@font@tbu}{"3B}
+ \expandafter\mst@addtodo@nonletters\string;\mathbin\mst@varfam@pointvirgule
+ \else
+ \DeclareMathSymbol{;}{\mathpunct}{\mst@font@tbu}{"3B}
+ \expandafter\mst@addtodo@nonletters\string;\mathpunct\mst@varfam@pointvirgule
+ \fi % binarysemicolno
+\fi % end \ifmst@nopunct else branch
% \end{macrocode}
% \begin{macro}{\relbar}
% Due to the way = and - are used by \LaTeX{} in arrows, we will
@@ -7007,10 +7801,10 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\DeclareMathSymbol{\mst@chi}{\mathord}{mtpsymbol}{"63}
\DeclareMathSymbol{\mst@psi}{\mathord}{mtpsymbol}{"79}
\DeclareMathSymbol{\mst@omega}{\mathord}{mtpsymbol}{"77}
- \let\mst@varepsilon=\mst@epsilon
+ \let\mst@varepsilon=\mst@epsilon
\DeclareMathSymbol{\mst@vartheta}{\mathord}{mtpsymbol}{"4A}
\DeclareMathSymbol{\mst@varpi}{\mathord}{mtpsymbol}{"76}
- \let\mst@varrho=\mst@rho
+ \let\mst@varrho=\mst@rho
\DeclareMathSymbol{\mst@varsigma}{\mathord}{mtpsymbol}{"56}
\DeclareMathSymbol{\mst@varphi}{\mathord}{mtpsymbol}{"6A}
\DeclareMathSymbol{\mst@partial}{\mathord}{mtpsymbol}{"B6}
@@ -7018,68 +7812,190 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\fi
\fi
\fi
+% \end{macrocode}
+% \begin{macro}{\alphaup etc...}
+% Completely refactored at |1.3x| to define |\Alphaup|, |\Alphait|,
+% |\alphaup|, |\alphait|, etc\dots{} and prepare templates |\Alpha|, \dots{},
+% |\alpha|, \dots{}, which when activating a math version will be submitted to
+% an |\expanded|, whose behaviour will depend on version-specific conditionals.
+% \begin{macrocode}
\ifmst@LGRgreek
% cf http://milde.users.sourceforge.net/LGR/lgrxenc.def.html
% et greek.ldf du package babel
-\DeclareMathSymbol{\mst@Alpha}{\mathalpha}{mtlgrfontupper}{65}
-\DeclareMathSymbol{\mst@Beta}{\mathalpha}{mtlgrfontupper}{66}
-\DeclareMathSymbol{\mst@Epsilon}{\mathalpha}{mtlgrfontupper}{69}
-\DeclareMathSymbol{\mst@Zeta}{\mathalpha}{mtlgrfontupper}{90}
-\DeclareMathSymbol{\mst@Eta}{\mathalpha}{mtlgrfontupper}{72}
-\DeclareMathSymbol{\mst@Iota}{\mathalpha}{mtlgrfontupper}{73}
-\DeclareMathSymbol{\mst@Kappa}{\mathalpha}{mtlgrfontupper}{75}
-\DeclareMathSymbol{\mst@Mu}{\mathalpha}{mtlgrfontupper}{77}
-\DeclareMathSymbol{\mst@Nu}{\mathalpha}{mtlgrfontupper}{78}
-\DeclareMathSymbol{\mst@Omicron}{\mathalpha}{mtlgrfontupper}{79}
-\DeclareMathSymbol{\mst@Rho}{\mathalpha}{mtlgrfontupper}{82}
-\DeclareMathSymbol{\mst@Tau}{\mathalpha}{mtlgrfontupper}{84}
-\DeclareMathSymbol{\mst@Chi}{\mathalpha}{mtlgrfontupper}{81}
-%
-\DeclareMathSymbol{\mst@Digamma}{\mathalpha}{mtlgrfontlower}{195}
-%
-\DeclareMathSymbol{\mst@Gamma}{\mathalpha}{mtlgrfontupper}{71}
-\DeclareMathSymbol{\mst@Delta}{\mathalpha}{mtlgrfontupper}{68}
-\DeclareMathSymbol{\mst@Theta}{\mathalpha}{mtlgrfontupper}{74}
-\DeclareMathSymbol{\mst@Lambda}{\mathalpha}{mtlgrfontupper}{76}
-\DeclareMathSymbol{\mst@Xi}{\mathalpha}{mtlgrfontupper}{88}
-\DeclareMathSymbol{\mst@Pi}{\mathalpha}{mtlgrfontupper}{80}
-\DeclareMathSymbol{\mst@Sigma}{\mathalpha}{mtlgrfontupper}{83}
-\DeclareMathSymbol{\mst@Upsilon}{\mathalpha}{mtlgrfontupper}{85}
-\DeclareMathSymbol{\mst@Phi}{\mathalpha}{mtlgrfontupper}{70}
-\DeclareMathSymbol{\mst@Psi}{\mathalpha}{mtlgrfontupper}{89}
-\DeclareMathSymbol{\mst@Omega}{\mathalpha}{mtlgrfontupper}{87}
-%
-\DeclareMathSymbol{\mst@alpha}{\mathalpha}{mtlgrfontlower}{97}
-\DeclareMathSymbol{\mst@beta}{\mathalpha}{mtlgrfontlower}{98}
-\DeclareMathSymbol{\mst@gamma}{\mathalpha}{mtlgrfontlower}{103}
-\DeclareMathSymbol{\mst@delta}{\mathalpha}{mtlgrfontlower}{100}
-\DeclareMathSymbol{\mst@epsilon}{\mathalpha}{mtlgrfontlower}{101}
-\DeclareMathSymbol{\mst@zeta}{\mathalpha}{mtlgrfontlower}{122}
-\DeclareMathSymbol{\mst@eta}{\mathalpha}{mtlgrfontlower}{104}
-\DeclareMathSymbol{\mst@theta}{\mathalpha}{mtlgrfontlower}{106}
-\DeclareMathSymbol{\mst@iota}{\mathalpha}{mtlgrfontlower}{105}
-\DeclareMathSymbol{\mst@kappa}{\mathalpha}{mtlgrfontlower}{107}
-\DeclareMathSymbol{\mst@lambda}{\mathalpha}{mtlgrfontlower}{108}
-\DeclareMathSymbol{\mst@mu}{\mathalpha}{mtlgrfontlower}{109}
-\DeclareMathSymbol{\mst@nu}{\mathalpha}{mtlgrfontlower}{110}
-\DeclareMathSymbol{\mst@xi}{\mathalpha}{mtlgrfontlower}{120}
-\DeclareMathSymbol{\mst@omicron}{\mathalpha}{mtlgrfontlower}{111}
-\DeclareMathSymbol{\mst@pi}{\mathalpha}{mtlgrfontlower}{112}
-\DeclareMathSymbol{\mst@rho}{\mathalpha}{mtlgrfontlower}{114}
-\DeclareMathSymbol{\mst@sigma}{\mathalpha}{mtlgrfontlower}{115}
-\DeclareMathSymbol{\mst@tau}{\mathalpha}{mtlgrfontlower}{116}
-\DeclareMathSymbol{\mst@upsilon}{\mathalpha}{mtlgrfontlower}{117}
-\DeclareMathSymbol{\mst@phi}{\mathalpha}{mtlgrfontlower}{102}
-\DeclareMathSymbol{\mst@chi}{\mathalpha}{mtlgrfontlower}{113}
-\DeclareMathSymbol{\mst@psi}{\mathalpha}{mtlgrfontlower}{121}
-\DeclareMathSymbol{\mst@omega}{\mathalpha}{mtlgrfontlower}{119}
-%
-\DeclareMathSymbol{\mst@digamma}{\mathalpha}{mtlgrfontlower}{147}
+ \DeclareMathSymbol{\Alphaup}{\mathalpha}{mtgreekup}{65}
+ \DeclareMathSymbol{\Betaup}{\mathalpha}{mtgreekup}{66}
+ \DeclareMathSymbol{\Epsilonup}{\mathalpha}{mtgreekup}{69}
+ \DeclareMathSymbol{\Zetaup}{\mathalpha}{mtgreekup}{90}
+ \DeclareMathSymbol{\Etaup}{\mathalpha}{mtgreekup}{72}
+ \DeclareMathSymbol{\Iotaup}{\mathalpha}{mtgreekup}{73}
+ \DeclareMathSymbol{\Kappaup}{\mathalpha}{mtgreekup}{75}
+ \DeclareMathSymbol{\Muup}{\mathalpha}{mtgreekup}{77}
+ \DeclareMathSymbol{\Nuup}{\mathalpha}{mtgreekup}{78}
+ \DeclareMathSymbol{\Omicronup}{\mathalpha}{mtgreekup}{79}
+ \DeclareMathSymbol{\Rhoup}{\mathalpha}{mtgreekup}{82}
+ \DeclareMathSymbol{\Tauup}{\mathalpha}{mtgreekup}{84}
+ \DeclareMathSymbol{\Chiup}{\mathalpha}{mtgreekup}{81}
+ %
+ \DeclareMathSymbol{\Alphait}{\mathalpha}{mtgreekit}{65}
+ \DeclareMathSymbol{\Betait}{\mathalpha}{mtgreekit}{66}
+ \DeclareMathSymbol{\Epsilonit}{\mathalpha}{mtgreekit}{69}
+ \DeclareMathSymbol{\Zetait}{\mathalpha}{mtgreekit}{90}
+ \DeclareMathSymbol{\Etait}{\mathalpha}{mtgreekit}{72}
+ \DeclareMathSymbol{\Iotait}{\mathalpha}{mtgreekit}{73}
+ \DeclareMathSymbol{\Kappait}{\mathalpha}{mtgreekit}{75}
+ \DeclareMathSymbol{\Muit}{\mathalpha}{mtgreekit}{77}
+ \DeclareMathSymbol{\Nuit}{\mathalpha}{mtgreekit}{78}
+ \DeclareMathSymbol{\Omicronit}{\mathalpha}{mtgreekit}{79}
+ \DeclareMathSymbol{\Rhoit}{\mathalpha}{mtgreekit}{82}
+ \DeclareMathSymbol{\Tauit}{\mathalpha}{mtgreekit}{84}
+ \DeclareMathSymbol{\Chiit}{\mathalpha}{mtgreekit}{81}
+% \end{macrocode}
+% |1.3w| and earlier had a bug regarding Digamma which was set up
+% to use same font shape as for lowercase digamma.
+% \begin{macrocode}
+ \DeclareMathSymbol{\Digammaup}{\mathalpha}{mtgreekup}{195}
+ \DeclareMathSymbol{\Digammait}{\mathalpha}{mtgreekit}{195}
+ %
+ \DeclareMathSymbol{\Gammaup}{\mathalpha}{mtgreekup}{71}
+ \DeclareMathSymbol{\Deltaup}{\mathalpha}{mtgreekup}{68}
+ \DeclareMathSymbol{\Thetaup}{\mathalpha}{mtgreekup}{74}
+ \DeclareMathSymbol{\Lambdaup}{\mathalpha}{mtgreekup}{76}
+ \DeclareMathSymbol{\Xiup}{\mathalpha}{mtgreekup}{88}
+ \DeclareMathSymbol{\Piup}{\mathalpha}{mtgreekup}{80}
+ \DeclareMathSymbol{\Sigmaup}{\mathalpha}{mtgreekup}{83}
+ \DeclareMathSymbol{\Upsilonup}{\mathalpha}{mtgreekup}{85}
+ \DeclareMathSymbol{\Phiup}{\mathalpha}{mtgreekup}{70}
+ \DeclareMathSymbol{\Psiup}{\mathalpha}{mtgreekup}{89}
+ \DeclareMathSymbol{\Omegaup}{\mathalpha}{mtgreekup}{87}
+ %
+ \DeclareMathSymbol{\Gammait}{\mathalpha}{mtgreekit}{71}
+ \DeclareMathSymbol{\Deltait}{\mathalpha}{mtgreekit}{68}
+ \DeclareMathSymbol{\Thetait}{\mathalpha}{mtgreekit}{74}
+ \DeclareMathSymbol{\Lambdait}{\mathalpha}{mtgreekit}{76}
+ \DeclareMathSymbol{\Xiit}{\mathalpha}{mtgreekit}{88}
+ \DeclareMathSymbol{\Piit}{\mathalpha}{mtgreekit}{80}
+ \DeclareMathSymbol{\Sigmait}{\mathalpha}{mtgreekit}{83}
+ \DeclareMathSymbol{\Upsilonit}{\mathalpha}{mtgreekit}{85}
+ \DeclareMathSymbol{\Phiit}{\mathalpha}{mtgreekit}{70}
+ \DeclareMathSymbol{\Psiit}{\mathalpha}{mtgreekit}{89}
+ \DeclareMathSymbol{\Omegait}{\mathalpha}{mtgreekit}{87}
+ %
+ \def\mst@Alpha{\ifmst@lgr@upper@up\Alphaup\else\Alphait\fi}%
+ \def\mst@Beta{\ifmst@lgr@upper@up\Betaup\else\Betait\fi}%
+ \def\mst@Epsilon{\ifmst@lgr@upper@up\Epsilonup\else\Epsilonit\fi}%
+ \def\mst@Zeta{\ifmst@lgr@upper@up\Zetaup\else\Zetait\fi}%
+ \def\mst@Eta{\ifmst@lgr@upper@up\Etaup\else\Etait\fi}%
+ \def\mst@Iota{\ifmst@lgr@upper@up\Iotaup\else\Iotait\fi}%
+ \def\mst@Kappa{\ifmst@lgr@upper@up\Kappaup\else\Kappait\fi}%
+ \def\mst@Mu{\ifmst@lgr@upper@up\Muup\else\Muit\fi}%
+ \def\mst@Nu{\ifmst@lgr@upper@up\Nuup\else\Nuit\fi}%
+ \def\mst@Omicron{\ifmst@lgr@upper@up\Omicronup\else\Omicronit\fi}%
+ \def\mst@Rho{\ifmst@lgr@upper@up\Rhoup\else\Rhoit\fi}%
+ \def\mst@Tau{\ifmst@lgr@upper@up\Tauup\else\Tauit\fi}%
+ \def\mst@Chi{\ifmst@lgr@upper@up\Chiup\else\Chiit\fi}%
+ %
+ \def\mst@Digamma{\ifmst@lgr@upper@up\Digammaup\else\Digammait\fi}%
+ %
+ \def\mst@Gamma{\ifmst@lgr@upper@up\Gammaup\else\Gammait\fi}%
+ \def\mst@Delta{\ifmst@lgr@upper@up\Deltaup\else\Deltait\fi}%
+ \def\mst@Theta{\ifmst@lgr@upper@up\Thetaup\else\Thetait\fi}%
+ \def\mst@Lambda{\ifmst@lgr@upper@up\Lambdaup\else\Lambdait\fi}%
+ \def\mst@Xi{\ifmst@lgr@upper@up\Xiup\else\Xiit\fi}%
+ \def\mst@Pi{\ifmst@lgr@upper@up\Piup\else\Piit\fi}%
+ \def\mst@Sigma{\ifmst@lgr@upper@up\Sigmaup\else\Sigmait\fi}%
+ \def\mst@Upsilon{\ifmst@lgr@upper@up\Upsilonup\else\Upsilonit\fi}%
+ \def\mst@Phi{\ifmst@lgr@upper@up\Phiup\else\Phiit\fi}%
+ \def\mst@Psi{\ifmst@lgr@upper@up\Psiup\else\Psiit\fi}%
+ \def\mst@Omega{\ifmst@lgr@upper@up\Omegaup\else\Omegait\fi}%
+ %
+ \DeclareMathSymbol{\alphaup}{\mathalpha}{mtgreekup}{97}
+ \DeclareMathSymbol{\betaup}{\mathalpha}{mtgreekup}{98}
+ \DeclareMathSymbol{\gammaup}{\mathalpha}{mtgreekup}{103}
+ \DeclareMathSymbol{\deltaup}{\mathalpha}{mtgreekup}{100}
+ \DeclareMathSymbol{\epsilonup}{\mathalpha}{mtgreekup}{101}
+ \DeclareMathSymbol{\zetaup}{\mathalpha}{mtgreekup}{122}
+ \DeclareMathSymbol{\etaup}{\mathalpha}{mtgreekup}{104}
+ \DeclareMathSymbol{\thetaup}{\mathalpha}{mtgreekup}{106}
+ \DeclareMathSymbol{\iotaup}{\mathalpha}{mtgreekup}{105}
+ \DeclareMathSymbol{\kappaup}{\mathalpha}{mtgreekup}{107}
+ \DeclareMathSymbol{\lambdaup}{\mathalpha}{mtgreekup}{108}
+ \DeclareMathSymbol{\muup}{\mathalpha}{mtgreekup}{109}
+ \DeclareMathSymbol{\nuup}{\mathalpha}{mtgreekup}{110}
+ \DeclareMathSymbol{\xiup}{\mathalpha}{mtgreekup}{120}
+ \DeclareMathSymbol{\omicronup}{\mathalpha}{mtgreekup}{111}
+ \DeclareMathSymbol{\piup}{\mathalpha}{mtgreekup}{112}
+ \DeclareMathSymbol{\rhoup}{\mathalpha}{mtgreekup}{114}
+ \DeclareMathSymbol{\sigmaup}{\mathalpha}{mtgreekup}{115}
+ \DeclareMathSymbol{\tauup}{\mathalpha}{mtgreekup}{116}
+ \DeclareMathSymbol{\upsilonup}{\mathalpha}{mtgreekup}{117}
+ \DeclareMathSymbol{\phiup}{\mathalpha}{mtgreekup}{102}
+ \DeclareMathSymbol{\chiup}{\mathalpha}{mtgreekup}{113}
+ \DeclareMathSymbol{\psiup}{\mathalpha}{mtgreekup}{121}
+ \DeclareMathSymbol{\omegaup}{\mathalpha}{mtgreekup}{119}
+ %
+ \DeclareMathSymbol{\digammaup}{\mathalpha}{mtgreekup}{147}
% only varsigma defined (I should check this again)
-\DeclareMathSymbol{\mst@varsigma}{\mathalpha}{mtlgrfontlower}{99}
+ \DeclareMathSymbol{\varsigmaup}{\mathalpha}{mtgreekup}{99}
+ %
+ \DeclareMathSymbol{\alphait}{\mathalpha}{mtgreekit}{97}
+ \DeclareMathSymbol{\betait}{\mathalpha}{mtgreekit}{98}
+ \DeclareMathSymbol{\gammait}{\mathalpha}{mtgreekit}{103}
+ \DeclareMathSymbol{\deltait}{\mathalpha}{mtgreekit}{100}
+ \DeclareMathSymbol{\epsilonit}{\mathalpha}{mtgreekit}{101}
+ \DeclareMathSymbol{\zetait}{\mathalpha}{mtgreekit}{122}
+ \DeclareMathSymbol{\etait}{\mathalpha}{mtgreekit}{104}
+ \DeclareMathSymbol{\thetait}{\mathalpha}{mtgreekit}{106}
+ \DeclareMathSymbol{\iotait}{\mathalpha}{mtgreekit}{105}
+ \DeclareMathSymbol{\kappait}{\mathalpha}{mtgreekit}{107}
+ \DeclareMathSymbol{\lambdait}{\mathalpha}{mtgreekit}{108}
+ \DeclareMathSymbol{\muit}{\mathalpha}{mtgreekit}{109}
+ \DeclareMathSymbol{\nuit}{\mathalpha}{mtgreekit}{110}
+ \DeclareMathSymbol{\xiit}{\mathalpha}{mtgreekit}{120}
+ \DeclareMathSymbol{\omicronit}{\mathalpha}{mtgreekit}{111}
+ \DeclareMathSymbol{\piit}{\mathalpha}{mtgreekit}{112}
+ \DeclareMathSymbol{\rhoit}{\mathalpha}{mtgreekit}{114}
+ \DeclareMathSymbol{\sigmait}{\mathalpha}{mtgreekit}{115}
+ \DeclareMathSymbol{\tauit}{\mathalpha}{mtgreekit}{116}
+ \DeclareMathSymbol{\upsilonit}{\mathalpha}{mtgreekit}{117}
+ \DeclareMathSymbol{\phiit}{\mathalpha}{mtgreekit}{102}
+ \DeclareMathSymbol{\chiit}{\mathalpha}{mtgreekit}{113}
+ \DeclareMathSymbol{\psiit}{\mathalpha}{mtgreekit}{121}
+ \DeclareMathSymbol{\omegait}{\mathalpha}{mtgreekit}{119}
+ %
+ \DeclareMathSymbol{\digammait}{\mathalpha}{mtgreekit}{147}
+ \DeclareMathSymbol{\varsigmait}{\mathalpha}{mtgreekit}{99}
+ %
+ \def\mst@alpha{\ifmst@lgr@lower@up\alphaup\else\alphait\fi}%
+ \def\mst@beta{\ifmst@lgr@lower@up\betaup\else\betait\fi}%
+ \def\mst@gamma{\ifmst@lgr@lower@up\gammaup\else\gammait\fi}%
+ \def\mst@delta{\ifmst@lgr@lower@up\deltaup\else\deltait\fi}%
+ \def\mst@epsilon{\ifmst@lgr@lower@up\epsilonup\else\epsilonit\fi}%
+ \def\mst@zeta{\ifmst@lgr@lower@up\zetaup\else\zetait\fi}%
+ \def\mst@eta{\ifmst@lgr@lower@up\etaup\else\etait\fi}%
+ \def\mst@theta{\ifmst@lgr@lower@up\thetaup\else\thetait\fi}%
+ \def\mst@iota{\ifmst@lgr@lower@up\iotaup\else\iotait\fi}%
+ \def\mst@kappa{\ifmst@lgr@lower@up\kappaup\else\kappait\fi}%
+ \def\mst@lambda{\ifmst@lgr@lower@up\lambdaup\else\lambdait\fi}%
+ \def\mst@mu{\ifmst@lgr@lower@up\muup\else\muit\fi}%
+ \def\mst@nu{\ifmst@lgr@lower@up\nuup\else\nuit\fi}%
+ \def\mst@xi{\ifmst@lgr@lower@up\xiup\else\xiit\fi}%
+ \def\mst@omicron{\ifmst@lgr@lower@up\omicronup\else\omicronit\fi}%
+ \def\mst@pi{\ifmst@lgr@lower@up\piup\else\piit\fi}%
+ \def\mst@rho{\ifmst@lgr@lower@up\rhoup\else\rhoit\fi}%
+ \def\mst@sigma{\ifmst@lgr@lower@up\sigmaup\else\sigmait\fi}%
+ \def\mst@tau{\ifmst@lgr@lower@up\tauup\else\tauit\fi}%
+ \def\mst@upsilon{\ifmst@lgr@lower@up\upsilonup\else\upsilonit\fi}%
+ \def\mst@phi{\ifmst@lgr@lower@up\phiup\else\phiit\fi}%
+ \def\mst@chi{\ifmst@lgr@lower@up\chiup\else\chiit\fi}%
+ \def\mst@psi{\ifmst@lgr@lower@up\psiup\else\psiit\fi}%
+ \def\mst@omega{\ifmst@lgr@lower@up\omegaup\else\omegait\fi}%
+ %
+ \def\mst@digamma{\ifmst@lgr@lower@up\digammaup\else\digammait\fi}%
+ \def\mst@varsigma{\ifmst@lgr@lower@up\varsigmaup\else\varsigmait\fi}%
\fi
% \end{macrocode}
% \end{macro}
+% \end{macro}
% \begin{macro}{\MTstandardgreek}
% \begin{macro}{\MTcustomgreek}
% \begin{macro}{\MTrecordstandardgreek}
@@ -7222,68 +8138,92 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\let\wp\mst@origwp
\let\ell\mst@origell
}% \MTstandardgreek
+% \end{macrocode}
+% Under |selfGreek| or other Greek option but not |LGRgreek|, these Greek
+% letter control sequences are already |\mathchar|'s, but under |LGRgreek|
+% they need (well not really, but I feel it is cleaner) expansion which will
+% react to the Boolean saying if using `upright' or `italic'. This Boolean
+% setting is recorded when declaring a math version and reenacted when
+% \cs{MTversion} is encountered in the document body. We must be careful not
+% to contaminate things in the principal mode from math version declarations
+% but I think my (now quite old) code is globally designed to achieve this
+% protection see how \cs{MTDeclareVersion} is done. The \cs{MTcustomgreek}
+% will always be executed in preamble at least once, except under |subdued|
+% option.
+%
+% The \cs{expanded}'s act on unexpanding tokens if not used under |LGRgreek|
+% regimen.
+% \begin{macrocode}
\renewcommand*{\MTcustomgreek}{%
- \let\Alpha\mst@Alpha
- \let\Beta\mst@Beta
- \let\Epsilon\mst@Epsilon
- \let\Zeta\mst@Zeta
- \let\Eta\mst@Eta
- \let\Iota\mst@Iota
- \let\Kappa\mst@Kappa
- \let\Mu\mst@Mu
- \let\Nu\mst@Nu
- \let\Omicron\mst@Omicron
- \let\Rho\mst@Rho
- \let\Tau\mst@Tau
- \let\Chi\mst@Chi
+ \expanded{%
+ \let\noexpand\Alpha\mst@Alpha
+ \let\noexpand\Beta\mst@Beta
+ \let\noexpand\Epsilon\mst@Epsilon
+ \let\noexpand\Zeta\mst@Zeta
+ \let\noexpand\Eta\mst@Eta
+ \let\noexpand\Iota\mst@Iota
+ \let\noexpand\Kappa\mst@Kappa
+ \let\noexpand\Mu\mst@Mu
+ \let\noexpand\Nu\mst@Nu
+ \let\noexpand\Omicron\mst@Omicron
+ \let\noexpand\Rho\mst@Rho
+ \let\noexpand\Tau\mst@Tau
+ \let\noexpand\Chi\mst@Chi
+ }% end of first big \expanded
% 1.3h: \mst@Digamma not defined if symbolgreek option
- \ifmst@symbolgreek\else\let\Digamma\mst@Digamma\fi
-%
- \let\Gamma\mst@Gamma
- \let\Delta\mst@Delta
- \let\Theta\mst@Theta
- \let\Lambda\mst@Lambda
- \let\Xi\mst@Xi
- \let\Pi\mst@Pi
- \let\Sigma\mst@Sigma
- \let\Upsilon\mst@Upsilon
- \let\Phi\mst@Phi
- \let\Psi\mst@Psi
- \let\Omega\mst@Omega
+ \ifmst@symbolgreek\else
+ \expanded{\let\noexpand\Digamma\mst@Digamma}%
+ \fi
+ \expanded{%
+ \let\noexpand\Gamma\mst@Gamma
+ \let\noexpand\Delta\mst@Delta
+ \let\noexpand\Theta\mst@Theta
+ \let\noexpand\Lambda\mst@Lambda
+ \let\noexpand\Xi\mst@Xi
+ \let\noexpand\Pi\mst@Pi
+ \let\noexpand\Sigma\mst@Sigma
+ \let\noexpand\Upsilon\mst@Upsilon
+ \let\noexpand\Phi\mst@Phi
+ \let\noexpand\Psi\mst@Psi
+ \let\noexpand\Omega\mst@Omega
+ }% end of second big \expanded
% \end{macrocode}
% |1.3h 2015/10/31| adds this conditional to correct the bad bug in
% |1.3d 2014/05/23| which caused |\alpha| etc... to become undefined
% under option |selfGreek|.
% \begin{macrocode}
\ifmst@selfGreek\else
- \let\alpha\mst@alpha
- \let\beta\mst@beta
- \let\gamma\mst@gamma
- \let\delta\mst@delta
- \let\epsilon\mst@epsilon
- \let\zeta\mst@zeta
- \let\eta\mst@eta
- \let\theta\mst@theta
- \let\iota\mst@iota
- \let\kappa\mst@kappa
- \let\lambda\mst@lambda
- \let\mu\mst@mu
- \let\nu\mst@nu
- \let\xi\mst@xi
- \let\omicron\mst@omicron
- \let\pi\mst@pi
- \let\rho\mst@rho
- \let\sigma\mst@sigma
- \let\tau\mst@tau
- \let\upsilon\mst@upsilon
- \let\phi\mst@phi
- \let\chi\mst@chi
- \let\psi\mst@psi
- \let\omega\mst@omega
+ \expanded{%
+ \let\noexpand\alpha\mst@alpha
+ \let\noexpand\beta\mst@beta
+ \let\noexpand\gamma\mst@gamma
+ \let\noexpand\delta\mst@delta
+ \let\noexpand\epsilon\mst@epsilon
+ \let\noexpand\zeta\mst@zeta
+ \let\noexpand\eta\mst@eta
+ \let\noexpand\theta\mst@theta
+ \let\noexpand\iota\mst@iota
+ \let\noexpand\kappa\mst@kappa
+ \let\noexpand\lambda\mst@lambda
+ \let\noexpand\mu\mst@mu
+ \let\noexpand\nu\mst@nu
+ \let\noexpand\xi\mst@xi
+ \let\noexpand\omicron\mst@omicron
+ \let\noexpand\pi\mst@pi
+ \let\noexpand\rho\mst@rho
+ \let\noexpand\sigma\mst@sigma
+ \let\noexpand\tau\mst@tau
+ \let\noexpand\upsilon\mst@upsilon
+ \let\noexpand\phi\mst@phi
+ \let\noexpand\chi\mst@chi
+ \let\noexpand\psi\mst@psi
+ \let\noexpand\omega\mst@omega
+ \let\noexpand\varsigma\mst@varsigma
+ }% end of third big \expanded
% 1.3h: digamma only defined with option LGRgreek:
- \ifmst@LGRgreek\let\digamma\mst@digamma\fi
-%
- \let\varsigma\mst@varsigma
+ \ifmst@LGRgreek
+ \expanded{\let\noexpand\digamma\mst@digamma}%
+ \fi
% conditional added 1.3h 2015/10/31
\ifmst@LGRgreek\else
\let\varepsilon\mst@varepsilon
@@ -7299,7 +8239,7 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\fi
\fi
}% \MTcustomgreek
-\fi
+\fi% end of \ifcustomgreek
\let\Mathastextstandardgreek\MTstandardgreek
\let\Mathastextcustomgreek\MTcustomgreek
\ifmst@subdued\else\MTcustomgreek\fi
@@ -7691,7 +8631,7 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\typeout{** Latin letters in math version `#2\string' will use the font
#3/#4/#5/\mst@ltsh^^J%
** Other characters (digits, ...) and \protect\log-like names
- will be in #6 shape.}%
+ will be in `#6\string' shape.}%
\expandafter\edef\csname mst@ltshape@\mst@version\endcsname{\mst@ltsh}%
\else
\SetSymbolFont{mtletterfont}{#2}{#3}{#4}{#5}{#6}%
@@ -7704,7 +8644,7 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\typeout{** Latin letters in math version `#2\string' will use the font
#3/#4/#5/#1^^J%
** Other characters (digits, ...) and \protect\log-like
- names will be in #6 shape.}%
+ names will be in `#6\string' shape.}%
\expandafter\edef\csname mst@ltshape@\mst@version\endcsname{#1}%
\fi
\ifmst@nonormalbold\else
@@ -7728,47 +8668,105 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% Greek letters depending on the frenchmath and [it/up][g/G]reek
% options as well as on the (local to this version) shapes for letters
% and digits.
+%
+% |1.3x| replaces \cs{updefault} by \cs{MTgreekupdefault} and
+% \cs{itdefault} by \cs{MTgreekitdefault}. It also prepares to store
+% two Boolean settings saying whether lowercase respectively uppercase
+% Greek letters will use `upright' or `italic' (|LGRgreek(s)| only).
+%
+% The |1.3x| refactoring of |LGRgreek| is done via a decoupling,
+% thus things are done here under |selfGreek| or other Greek options
+% which ultimately serve nothing and conversely things are done here
+% for |LGRgreek| which are superfluous.
% \begin{macrocode}
\def\mst@greek@lsh@loc{\csname mst@ltshape@\mst@version\endcsname}%
\def\mst@greek@ush@loc{\csname mst@shape@\mst@version\endcsname}%
- \ifmst@itgreek\def\mst@greek@lsh@loc{\itdefault}%
- \def\mst@greek@ush@loc{\itdefault}%
+ \mst@lgr@lower@uptrue
+ \expandafter\in@\expanded{{\mst@greek@lsh@loc.}}{it.,sl.}%
+ \ifin@\mst@lgr@lower@upfalse\fi
+ \mst@lgr@upper@uptrue
+ \expandafter\in@\expanded{{\mst@greek@ush@loc.}}{it.,sl.}%
+ \ifin@\mst@lgr@upper@upfalse\fi
+ \ifmst@itgreek
+ \def\mst@greek@lsh@loc{\MTgreekitdefault}%
+ \def\mst@greek@ush@loc{\MTgreekitdefault}%
+ \mst@lgr@lower@upfalse
+ \mst@lgr@upper@upfalse
\fi
- \ifmst@upgreek\def\mst@greek@lsh@loc{\updefault}%
- \def\mst@greek@ush@loc{\updefault}%
+ \ifmst@upgreek
+ \def\mst@greek@lsh@loc{\MTgreekupdefault}%
+ \def\mst@greek@ush@loc{\MTgreekupdefault}%
+ \mst@lgr@lower@uptrue
+ \mst@lgr@upper@uptrue
\fi
\ifmst@frenchmath
\ifmst@itgreek\else
\ifmst@upgreek\else
\def\mst@greek@lsh@loc{\csname mst@shape@\mst@version\endcsname}%
\def\mst@greek@ush@loc{\csname mst@shape@\mst@version\endcsname}%
+ \mst@lgr@lower@uptrue
+ \mst@lgr@upper@uptrue
\fi\fi
\fi
\ifcase\mst@greek@select
- \or\def\mst@greek@ush@loc{\itdefault}%
- \or\def\mst@greek@ush@loc{\updefault}%
+ \or
+ \def\mst@greek@ush@loc{\MTgreekitdefault}%
+ \mst@lgr@upper@upfalse
+ \or
+ \def\mst@greek@ush@loc{\MTgreekupdefault}%
+ \mst@lgr@upper@uptrue
\fi
\ifmst@LGRgreeks
- \SetSymbolFont{mtlgrfontlower}{#2}{LGR}{#4}{#5}{\mst@greek@lsh@loc}%
- \SetSymbolFont{mtlgrfontupper}{#2}{LGR}{#4}{#5}{\mst@greek@ush@loc}%
- \typeout{** Greek letters (\mst@greek@lsh@loc/\mst@greek@ush@loc) will use
- LGR font #4\ifmst@subdued ^^J** (in non subdued versions)\fi}%
+ \SetSymbolFont{mtgreekup}{#2}{LGR}{#4}{#5}{\MTgreekupdefault}%
+ \SetSymbolFont{mtgreekit}{#2}{LGR}{#4}{#5}{\MTgreekitdefault}%
+% \end{macrocode}
+% This is where the shape of uppercase/lowercase Greek letters is recorded,
+% for \cs{MTversion}'s triggered \cs{MTcustomgreek} to do the right thing.
+% Also |1.3x| fixes some strange log messages which did not recall
+% the math version name and referred to `non subdued versions' (strange).
+% \begin{macrocode}
+ \expandafter\let\csname ifmst@lgr@\mst@version @upper@up\expandafter\endcsname
+ \csname ifmst@lgr@upper@up\endcsname
+ \expandafter\let\csname ifmst@lgr@\mst@version @lower@up\expandafter\endcsname
+ \csname ifmst@lgr@lower@up\endcsname
+ \typeout{** Greek letters (upper:
+ `\ifmst@lgr@upper@up\MTgreekupdefault\else\MTgreekitdefault\fi\string',
+ lower:
+ `\ifmst@lgr@lower@up\MTgreekupdefault\else\MTgreekitdefault\fi\string')
+ will use
+ font family `#4\string' (LGR)^^J**
+ in mathastext math version `\mst@version\string'.}%
\else
\ifmst@selfGreeks
\SetSymbolFont{mtselfGreekfont}{#2}{OT1}{#4}{#5}{\mst@greek@ush@loc}%
- \typeout{** Capital Greek letters (\mst@greek@lsh@loc/\mst@greek@ush@loc)
- will use OT1 font #4\ifmst@subdued ^^J** (in non subdued versions)\fi}%
+ \typeout{** Capital Greek letters (shape `\mst@greek@ush@loc\string')
+ will use font family `#4\string' (OT1)^^J**
+ in mathastext math version `\mst@version\string'.}%
\else
\ifmst@LGRgreek
- \SetSymbolFont{mtlgrfontlower}{#2}{LGR}{\mst@greekfont}{#5}{\mst@greek@lsh@loc}%
- \SetSymbolFont{mtlgrfontupper}{#2}{LGR}{\mst@greekfont}{#5}{\mst@greek@ush@loc}%
- \typeout{** Greek letters (\mst@greek@lsh@loc/\mst@greek@ush@loc) will use
- LGR font \mst@greekfont\ifmst@subdued ^^J** (in non subdued versions)\fi}%
+ \SetSymbolFont{mtgreekup}{#2}{LGR}{\mst@greekfont}{#5}{\MTgreekupdefault}%
+ \SetSymbolFont{mtgreekit}{#2}{LGR}{\mst@greekfont}{#5}{\MTgreekitdefault}%
+% \end{macrocode}
+% This is where the shape of uppercase/lowercase Greek letters is recorded,
+% for \cs{MTversion}'s triggered \cs{MTcustomgreek} to do the right thing.
+% \begin{macrocode}
+ \expandafter\let\csname ifmst@lgr@\mst@version @upper@up\expandafter\endcsname
+ \csname ifmst@lgr@upper@up\endcsname
+ \expandafter\let\csname ifmst@lgr@\mst@version @lower@up\expandafter\endcsname
+ \csname ifmst@lgr@lower@up\endcsname
+ \typeout{** Greek letters (upper:
+ `\ifmst@lgr@upper@up\MTgreekupdefault\else\MTgreekitdefault\fi\string',
+ lower:
+ `\ifmst@lgr@lower@up\MTgreekupdefault\else\MTgreekitdefault\fi\string')
+ will use font family `\mst@greekfont\string' (LGR)^^J**
+ in mathastext math version `\mst@version\string'.}%
\else
\ifmst@selfGreek
\SetSymbolFont{mtselfGreekfont}{#2}{OT1}{\mst@greekfont}{#5}{\mst@greek@ush@loc}%
- \typeout{** Capital Greek letters (\mst@greek@lsh@loc/\mst@greek@ush@loc)
- will use OT1 font \mst@greekfont\ifmst@subdued ^^J** (in non subdued versions)\fi}%
+ \typeout{** Capital Greek letters
+ (shape `\mst@greek@ush@loc\string')
+ will use font family `\mst@greekfont\string' (OT1)^^J**
+ in mathastext math version `\mst@version\string'.}%
\fi
\fi
\fi
@@ -7837,8 +8835,11 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% versions has been to all cases, and not only for the
% |LGRgreek| option.
%
-% |1.3u|: version savvy (i.e. font-encoding savvy) minus sign,
+% |1.3u|: version savvy (i.e.\@ font-encoding savvy) minus sign,
% \cs{hbar}, \cs{imath}, math accents.
+%
+% |1.3x|: Booleans recovered from stored data in the math version will
+% configure the things \cs{MTcustomgreek} do, under |LGRgreek| option.
% \begin{macrocode}
\newcommand*\MTversion {\@ifstar\MTversion@s\MTversion@ }
\newcommand*\MTversion@s [1]{\mathversion{#1}\MTversion@@ }
@@ -7964,6 +8965,13 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\mst@subduedminus
\else
\mst@setalphabets
+% \end{macrocode}
+% |1.3x| addition for \cs{MTcustomgreek} under |LGRgreeks| option.
+% \begin{macrocode}
+ \expandafter\let\csname ifmst@lgr@upper@up\expandafter\endcsname
+ \csname ifmst@lgr@\math@version @upper@up\endcsname
+ \expandafter\let\csname ifmst@lgr@lower@up\expandafter\endcsname
+ \csname ifmst@lgr@\math@version @lower@up\endcsname
\MTcustomgreek
\mst@nonsubduedhbar
\mst@nonsubduedinodot
@@ -7972,6 +8980,13 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\fi
\fi
\else
+% \end{macrocode}
+% |1.3x| addition for \cs{MTcustomgreek} under |LGRgreek| option.
+% \begin{macrocode}
+ \expandafter\let\csname ifmst@lgr@upper@up\expandafter\endcsname
+ \csname ifmst@lgr@\math@version @upper@up\endcsname
+ \expandafter\let\csname ifmst@lgr@lower@up\expandafter\endcsname
+ \csname ifmst@lgr@\math@version @lower@up\endcsname
\MTcustomgreek % new with 1.3d
\mst@nonsubduedhbar
\mst@nonsubduedinodot
@@ -8039,6 +9054,8 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% loading (things regarding the \cs{hbar}, \cs{imath}, the math accents and
% the minus sign). They are now part of the contents of \cs{Mathastext} macro
% itself (which is executed during package loading).
+%
+% |1.3x| has refactored the |LGRgreek| associated math fonts.
% \begin{macrocode}
\def\Mathastext {\@ifnextchar [\Mathastext@declare\Mathastext@ }
\def\Mathastext@declare [#1]{%
@@ -8206,17 +9223,19 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% \begin{macro}{LGRgreek*}
% \begin{macro}{selfGreek*}
% LGRgreek, LGRgreeks, selfGreek, and selfGreeks options.
+%
+% |1.3x| has refactored the |LGRgreek| associated math fonts.
% \begin{macrocode}
\ifmst@subdued\else
\ifmst@LGRgreek
- \SetSymbolFont{mtlgrfontlower}{normal}{LGR}%
- {\mst@greekfont}{\mst@series@normal}{\mst@greek@lsh}%
- \SetSymbolFont{mtlgrfontlower}{bold}{LGR}%
- {\mst@greekfont}{\mst@boldvariant@normal}{\mst@greek@lsh}%
- \SetSymbolFont{mtlgrfontupper}{normal}{LGR}%
- {\mst@greekfont}{\mst@series@normal}{\mst@greek@ush}%
- \SetSymbolFont{mtlgrfontupper}{bold}{LGR}%
- {\mst@greekfont}{\mst@boldvariant@bold}{\mst@greek@ush}%
+ \SetSymbolFont{mtgreekup}{normal}{LGR}%
+ {\mst@greekfont}{\mst@series@normal}{\MTgreekupdefault}%
+ \SetSymbolFont{mtgreekup}{bold}{LGR}%
+ {\mst@greekfont}{\mst@boldvariant@normal}{\MTgreekupdefault}%
+ \SetSymbolFont{mtgreekit}{normal}{LGR}%
+ {\mst@greekfont}{\mst@series@normal}{\MTgreekitdefault}%
+ \SetSymbolFont{mtgreekit}{bold}{LGR}%
+ {\mst@greekfont}{\mst@boldvariant@bold}{\MTgreekitdefault}%
\else
\ifmst@selfGreek
\SetSymbolFont{mtselfGreekfont}{normal}{OT1}%
@@ -8231,14 +9250,17 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% \end{macro}
% \begin{macrocode}
\ifmst@subdued
- \typeout{** subdued mode will be activated for the normal and bold math versions}%
+ \typeout{** subdued mode will be activated for the `normal\string' and `bold\string' math versions}%
\else
- \typeout{** Latin letters in the normal (resp. bold) math versions are now^^J%
+ \typeout{** Latin letters in the `normal\string' (resp. `bold\string') math versions are now^^J%
** set up to use the fonts
\mst@encoding@normal/\mst@family@normal/\mst@series@normal%
(\mst@boldvariant@normal)/\mst@ltshape@normal}%
- \ifmst@LGRgreek\typeout{** Greek letters (\mst@greek@lsh/\mst@greek@ush)
- will use LGR/\mst@greekfont}%
+ \ifmst@LGRgreek\typeout{** Greek letters (upper:
+ `\ifmst@lgr@upper@up\MTgreekupdefault\else\MTgreekitdefault\fi\string',
+ lower:
+ `\ifmst@lgr@lower@up\MTgreekupdefault\else\MTgreekitdefault\fi\string')
+ will use font family `\mst@greekfont\string' (LGR)}%
\fi
\ifmst@nodigits\else
\typeout{** Other characters (digits, ...) and \protect\log-like names will be^^J%
@@ -8290,13 +9312,13 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\ifmst@eulergreek
\typeout{** Greek letters will use the Euler font. Use \protect\MathastextEulerScale{<factor>} to scale the
font.}%
- \ifmst@subdued{\typeout{** (subdued mode: normal and bold math
+ \ifmst@subdued{\typeout{** (subdued mode: `normal\string' and `bold\string' math
version with default Greek letters.)}}\fi
\else
\ifmst@symbolgreek
\typeout{** Greek letters will use the PostScript Symbol font. Use^^J%
** \protect\MathastextSymbolScale{<factor>} to scale the font.}%
- \ifmst@subdued{\typeout{** (subdued mode: normal and bold math
+ \ifmst@subdued{\typeout{** (subdued mode: `normal\string' and `bold\string' math
version with default Greek letters.)}}\fi
\fi\fi
% \end{macrocode}
@@ -8654,6 +9676,8 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
\do\MathastextitGreek
\do\MTgreekfont
\do\Mathastextgreekfont
+\do\MTgreekupdefault
+\do\MTgreekitdefault
\do\MTDeclareVersion
\do\MathastextDeclareVersion
\do\MTWillUse
@@ -8669,24 +9693,6 @@ defaultbf,defaultit,defaultsf,defaulttt}\mst@nonormalboldtrue}
% \MakePercentComment
%</package>
%<*dtx>
-\CharacterTable
- {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
- Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
- Digits \0\1\2\3\4\5\6\7\8\9
- Exclamation \! Double quote \" Hash (number) \#
- Dollar \$ Percent \% Ampersand \&
- Acute accent \' Left paren \( Right paren \)
- Asterisk \* Plus \+ Comma \,
- Minus \- Point \. Solidus \/
- Colon \: Semicolon \; Less than \<
- Equals \= Greater than \> Question mark \?
- Commercial at \@ Left bracket \[ Backslash \\
- Right bracket \] Circumflex \^ Underscore \_
- Grave accent \` Left brace \{ Vertical bar \|
- Right brace \} Tilde \~}
-
-\CheckSum{6187}
-\makeatletter\check@checksum\makeatother
\Finale
%%
%% End of file `mathastext.dtx'.