+-------------------------------------------+
+ +
+ mathastext +
+ +
+ 'Use the text font in math mode' +
+ +
+-------------------------------------------+
This Work may be distributed and/or modified under the conditions
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`)
Source: mathastext.dtx 1.3w 2019/11/16
DESCRIPTION
===========
Optimal typographical results for documents containing
mathematical symbols can only be hoped for with math fonts
specifically designed to match a given text typeface.
Although the list of freely available math fonts (alongside
the Computer Modern and AMS extension fonts) is slowly
expanding (fourier, kpfonts, mathdesign, pxfonts, txfonts,
newpx, newtx, ...) it remains limited, and the situation is
even worse with Unicode fonts (XeTeX/LuaTeX). So if you can't
find a math font which fits well with your favorite text
font, and wish to still be able to typeset mathematical
documents, perhaps not of the highest typographical quality,
but at least not subjected to obvious visual incompatibilities
between your text font and the math fonts, try out mathastext:
it will simply use the text font also for the math!
- http://jf.burnol.free.fr/mathastext.html
- http://jf.burnol.free.fr/showcase.html
USAGE
=====
`mathastext` is a LaTeX package
\usepackage{mathastext}
The document will use in math mode the text font as configured at
package loading time, for these characters:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
!?,.:;+-=()[]/#$%&<>|{}\
Main options: `italic`, `subdued`, `LGRgreek`.
- Use the `italic` option to get the Latin letters in math mode
be in italics. Digits and log-like operator names (pre-defined
as well as user-defined) will be in the same shape as the text
font (usually this means upright).
- each `\Mathastext[]` in the preamble defines a math version
to be later activated in the document body via the command
`\MTversion{}`.
- With the `subdued` option, mathastext will be active
only inside such math versions.
- For documents needing Greek letters the following is
possible:
- no option: Greek letters defined by other packages,
- `eulergreek`: use the Euler font for the Greek letters,
- `symbolgreek`: use the Postscript Symbol font for the
Greek letters.
- `LGRgreek`: use the document text font in LGR encoding.
Further options specify the shape of the lowercase
and uppercase Greek glyphs; starting with v1.15c it is
possible to use multiple distinct LGR fonts in the
same document.
- Commands are provided to scale the Euler and Symbol fonts by an
arbitrary factor to let them fit better with the document text
font.
- `\MTsetmathskips` allows to set up extra spacings around letters.
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` 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.
* 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`...)
1.3v \[2019/09/19\]
----
* 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.
* 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).
* 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.
1.3u (2019/08/20)
---
* 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.
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.
Thanks to Falk Hanisch for feature request and code suggestions.
* 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.
* 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.
* 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).