mfl supports a significant subset of the features that a mature TeX implementation might support. mfl is only concerned with the layout of mathematical formulas and does not support other non-mathematical TeX features. This section describes the supported features and provides examples of the results that mfl produces.
Note that the formulas, as seen in the examples here, are rendered using the layout generated by mfl. In fact all the images showing examples here are part of the suite of approval tests used to help test the library for regressions.
- Subscripts and Superscripts
- Fractions
- Radicals
- Matrices
- Big Operators
- Accents
- Overlining and Underlining
- Functions and User Defined Operators
- Delimiters
- Fonts
- Symbols
- Spaces
Subscripts and superscripts including all levels of nesting are supported:
There is full support for the standard \frac command - again, including all levels of nesting:
The \binom command is also supported and anything that is not covered by either \frac or
\binom can be achieved using the generalized fraction command \genfrac:
Note that in generalized fractions the third argument - the line thickness - is always in points and that currently
the fourth argument - the style - is ignored and treated as if \displaystyle was set.
mfl has full support for radicals, including the optional degree and unlimited nesting:
TeX-style matrices are supported via the \matrix command:
For example, J in the second row above is defined as follows:
J = \left(\matrix{
\frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \cdots & \frac{\partial f_1}{\partial x_n} \cr
\frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_2}{\partial x_n} \cr
\vdots & \vdots & \ddots & \vdots \cr
\frac{\partial f_m}{\partial x_1} & \frac{\partial f_m}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_n}
}\right)
The standard big operators are supported in different size variants depending on the style:
The limits on big operators are placed automatically, but you can override the defaults
using the \nolimits and \limits commands:
The extended integral symbols are also considered big operators:
There is support for the common mathematical accents:
where the wide variants of \hat and \tilde automatically adjust their size:
There is also support for some additional mathematical accents:
The automatic positioning and sizing of overlines and underlines is fully supported:
Unlike variables, known functions are typeset in roman instead of italics. mfl also supports adding optional subscripted limits to some of these built-in functions:
Using the \operatorname command, it is possible to define custom names that then
behave like built-in functions:
The following symbols are recognized as opening and closing delimiters:
The \left and \right commands provide access to automatically sized delimiters where
available, and the dot variants \left. and \right. can be used to omit one of the delimiters if necessary:
If supported by the font, mfl will also assemble delimiters from "parts" allowing the use of oversized - and effectively arbitrarily sized - delimiters:
mfl only supports the scoped font switches (like \mathrm, \mathit etc.) and not the
deprecated state switches (like \rm, \it etc.). mfl recognises the font
commands in the examples below. Availability and appearance of glyphs will of course
depend on the actual fonts that are being used. This is what the Stix2 fonts look like:
mfl recognises most mathematical symbols. Here is an overview of the most important ones for reference.
As per mathematical convention, Greek capitals are automatically set in roman font and not in italics.
mfl supports the basic TeX binary operators:
as well as various binary operators from additional packages like the AMS package:
Similarly to the binary operators, mfl supports the fundamental relational operators:
but also recognises many others:
Many relations can be negated by prepending \not:
and some further negated relational operators are also supported:
The TeX arrow symbols are supported:
and mfl will also recognise the following extended set of arrow symbols:
mfl recognises the following symbols as punctuation:
For completeness, the following tables show the remaining supported symbols:
The following mathematical spacing commands are recognized by mfl: