firamath / firamath Goto Github PK
View Code? Open in Web Editor NEWSans-serif font with Unicode math support
Home Page: https://firamath.github.io/
License: SIL Open Font License 1.1
Sans-serif font with Unicode math support
Home Page: https://firamath.github.io/
License: SIL Open Font License 1.1
The script/calligraphic alphabets are under development (#14), but two script-like lowercase letters are already available in FiraMath v0.3.1.
If I understand correctly, in LaTeX with unicode-math
, Script Small L U+2113
(which is in FiraMath v0.3.1) can be accessed via \ell
, while Mathematical Script Small L U+1D4C1
(which is NOT in FiraMath v0.3.1) can be accessed via \mscrl
. But, Script Small G U+210A
(which is in FiraMath v0.3.1) has no math counterpart in Unicode, and it can be accessed via \mscrg
.
The issue here is that the one existing math/text calligraphic lowercase ℊ
is not calligraphic at all.
% !TeX program = XeLaTeX
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Fira Math}[version=FM]
\setmathfont{TeX Gyre Termes Math}
\begin{document}
{$\ell$ \mathversion{FM} $\ell \enskip ☺$}\par
{$\mscrg$ \mathversion{FM} $\mscrg \enskip ☹$}
\end{document}
Currently Fira Math uses lining but proportional figures, as illustrated in the following example.
% Compile with XeLaTeX or LuaLaTeX
\documentclass{article}
% Fira Sans and Fira Math
\usepackage[sfdefault,lining,tabular]{FiraSans}
\usepackage[mathrm=sym]{unicode-math}
\setmathfont{Fira Math}
% newtx
%\usepackage{newtxtext}
%\usepackage{newtxmath}
\newcommand*{\measurewidth}[1]{{%
$#1$: \setbox0=\hbox{$#1$}\the\wd0\relax}}
\begin{document}
Math: $2018$.\par
Text: 2018.\par
\measurewidth{0}\par
\measurewidth{1}\par
\measurewidth{2}\par
\measurewidth{3}\par
\measurewidth{4}\par
\measurewidth{5}\par
\measurewidth{6}\par
\measurewidth{7}\par
\measurewidth{8}\par
\measurewidth{9}
\end{document}
Although proportional figures are appropriate in text, tabular figures are more suitable for price lists, stock listings and sums in mathematics textbooks, etc. Try the newtxtext
and newtxmath
packages for a comparison. In general, proportional figures lead to misalignment within tables.
Note that the lining
and tabular
options of FiraSans
causes text figures to be taken from Fira Mono, which is not desired.
I was wondering if, by default, math figures can be made “mono-spaced” by adjusting their bounding boxes; that is, using Fira Sans figures but with fixed glyph width.
I am not a type designer. My suggestions are based on my experience and my untrained eyes.
It can be observed that many well-designed math fonts come with 3 optical sizes, which are separately used in text-size, script-size and script-script-size, respectively. (The commercial Minion Math has 5 optical sizes)
From left to right: MathTime Professional 2 (lite, Type 1 Font), Cambria Math (commercial, Microsoft, OTF), TeX Gyre Pagella Math (OTF), and TeX Gyre Termes Math (OTF). The latter three OpenType fonts utilize the ssty
feature to access the un-coded script-level glyphs. (MathTime Professional 2 and Minion Math use separate font files so they are irrelevant here)
There are two noticeable characteristics:
Take the upright capital letter E
in TeX Gyre Termes Math for example (I find the choice of not thickening the horizontal strokes questionable):
U+0045 |
Text-size | Script-size | Script-script-size |
---|---|---|---|
Slot | 37 | 2278 | 2279 |
Horizontal advance | 611 | 692 | 779 |
Vertical stroke thickness | 102 | 112 | 123 |
Bottom horizontal stroke thickness | 37 | 37 | 37 |
Please compare the following two examples:
The FiraMath v0.3.1 output is shown on the left, while certain “wizardry” is used to produce the output on the right (using graphic tools).
More specifically, I used Fira GO Medium Italic for the second-level script, and interpolated between Fira GO Italic and Fira GO Medium Italic for the first-level script. To me, the 3 weights looked just right (or perhaps too much?). However, it would be even better to have wider (not just thicker) script-level characters.
newtx
. In particular, Section 2: Making 7pt and 5pt versions. However, I have my doubts about thickening only vertical strokes if we are dealing with a sans-serif math font like Fira Math, which is why I have suggested using the Medium weight as reference.\documentclass{article}
\usepackage[math-style=ISO, bold-style=ISO]{unicode-math}
\setmathfont{Fira Math}
\newcommand{\angstrom}{\,\symbol{8491}}
\newcommand{\kelvin}{\,\symbol{8490}}
\begin{document}
$1\angstrom 3\kelvin$
\end{document}
The Kelvin symbol does not appear, nor does the "tofu" (the Kelvin symbol should have been added on Nov 18, 2018).
[XeTeX (MacTeX)]
firamath light missing \sum glyph
How about coping the missing glyphs from regular version when generating fonts.
Use automated script to generate more sizes:
and large accents:
\hat
/ \widehat
(◌̂)\tilde
/ \widetilde
(◌̃)\overbar
/ \wideoverbar
(◌̅)\breve
/ \widebreve
(◌̆)\check
/ \widecheck
(◌̌)\cev
/ \overleftarrow
(◌⃖)\vec
/ \overrightarrow
(◌⃗)\leftharpoonaccent
/ \overleftharpoon
(◌⃐)\rightharpoonaccent
/ \overrightharpoon
(◌⃑)\overleftrightarrow
(◌⃡)\wideutilde
(◌̰)\mathunderbar
(◌̲)\underleftrightarrow
(◌͍)\underrightharpoondown
(◌⃬)\underleftharpoondown
(◌⃭)\underleftarrow
(◌⃮)\underrightarrow
(◌⃯)Wouldn't it be nice to have this font (and possibly a support style file) submitted to CTAN for inclusion in TeXlive ? I think it's too late for 2018, but it would be nice to have it in TeXlive 2019...
First of all, congratulations on Fira Math appearing in the newest unimath-symbols.pdf
since v0.8n
of unicode-math
!!!
I glanced through that comprehensive list provided by unimath-symbols.pdf
and found 4 incorrectly mapped characters so far:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{[FiraMath-Regular.otf]}[version=F]% either v0.3.1 or v0.4-beta-2
\setmathfont{latinmodern-math.otf}[version=L]
\setmathfont{texgyrepagella-math.otf}[version=P]
\setmathfont{STIX2Math.otf}[version=S]
\newcommand*\compare[1]{%
\texttt{\string#1} &
\mathversion{F}$#1$ &
\mathversion{L}$#1$ &
\mathversion{P}$#1$ &
\mathversion{S}$#1$%
}
\renewcommand*\arraystretch{1.2}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\ttfamily}llllll}
USV & Command name & F & L & P & S \\
\hline
U+025DE & \compare\lrarc \\
U+025DF & \compare\llarc \\
U+021CB & \compare\leftrightharpoons \\
U+021CC & \compare\rightleftharpoons \\
\end{tabular}
\end{document}
An update to the CTAN version (without multiple weights if they are not ready) would be great.
As FiraGO has already supported Arabic script, adding such mathematical symbols is not an impossible thing (for me).
Reference: Arabic Mathematical Alphabetic Symbols
\overline
object.LuaTeX correctly implements \Umathoverbarkern
, \Umathoverbarrule
and \Umathoverbarvgap
to construct an \overline
object. However, XeTeX fails to use \fontdimen55
, \fontdimen54
and \fontdimen53
.
In my experiment, it seems that XeTeX uses \fontdimen54
, \fontdimen54
and 3\fontdimen54
for kern
, rule
and vgap
, respectively, according to most other OpenType math fonts. But this conjecture fails for Fira Math:
% !TeX program = LuaLaTeX % <- Everything lines up perfectly
% !TeX program = XeLaTeX % <- Not good for Fira Math
\documentclass{article}
\usepackage{unicode-math}
\setmathfont[version=L]{Latin Modern Math}
\setmathfont[version=P]{TeX Gyre Pagella Math}
\setmathfont[version=T]{TeX Gyre Termes Math}
\setmathfont[version=F]{[FiraMath-Regular.otf]}% in the v0.4-beta-1 collection
\makeatletter
\def\test@overbarkern@fontdimen{55}% Not used. XeTeX mistake?
\def\test@overbarrule@fontdimen{54}
\def\test@overbarvgap@fontdimen{53}% Not used. XeTeX mistake?
\def\test@@family{2}
\def\test@overbarkern#1{\fontdimen\test@overbarrule@fontdimen
\ifx#1\displaystyle\textfont
\else\ifx#1\textstyle\textfont
\else\ifx#1\scriptstyle\scriptfont
\else\scriptscriptfont\fi\fi\fi \test@@family}
\def\test@overbarrule#1{\fontdimen\test@overbarrule@fontdimen
\ifx#1\displaystyle\textfont
\else\ifx#1\textstyle\textfont
\else\ifx#1\scriptstyle\scriptfont
\else\scriptscriptfont\fi\fi\fi \test@@family}
% The following is very likely an XeTeX engine-wise mistake,
% but it works for most other OTF math fonts.
\def\test@overbarvgap#1{\thr@@\fontdimen\test@overbarrule@fontdimen
\ifx#1\displaystyle\textfont
\else\ifx#1\textstyle\textfont
\else\ifx#1\scriptstyle\scriptfont
\else\scriptscriptfont\fi\fi\fi \test@@family}
\ifx\XeTeXcharclass\@undefined
% LuaTeX primitives
\global\let\test@overbarkern\Umathoverbarkern
\global\let\test@overbarrule\Umathoverbarrule
\global\let\test@overbarvgap\Umathoverbarvgap
\fi
\newcommand*\test{\mathpalette\test@stuff{xyz}}
\def\test@stuff#1#2{%
\vbox{\hrule\@height0.1\p@\hbox{$\m@th#1\overline{#2}$}}\,%
\vbox{%
\hrule\@height0.1\p@
\kern\test@overbarkern#1%
\hrule\@height\test@overbarrule#1%
\hbox{\vbox{%
\kern\test@overbarvgap#1%
\hbox{$\m@th#1#2$}%
}}%
},%
}
\newcommand*\dotest[1]{%
\begingroup
\mathversion{#1}%
$\displaystyle\test$ $\textstyle\test$ $\scriptstyle\test$ $\scriptscriptstyle\test$%
\endgroup
}
\makeatother
\begin{document}
\dotest{L}\par
\dotest{P}\par
\dotest{T}\par
\dotest{F}
\end{document}
With LuaLaTeX, everything lines up perfectly no matter which math font is used.
I think it is rather clear that the XeTeX engine still implements the wrong math font dimensions. However, even with the “wrong” dimensions used, all TeX Gyre Math fonts as well as Latin Modern Math pass the above test (did not test STIX2 or XITS yet).
This suggests maybe there is something wrong with Fira Math, but I honestly do not know.
Look for the a in the root:
\listfiles
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{FIRA Math}
\begin{document}
$xy \sqrt[a]{b}$
\end{document}
up-to-date TL2018 and FIRA Math
*File List*
standalone.cls 2018/03/26 v1.3a Class to compile TeX sub-files standalone
shellesc.sty 2016/06/07 v0.02a unified shell escape interface for LaTeX
ifluatex.sty 2016/05/16 v1.4 Provides the ifluatex switch (HO)
ifpdf.sty 2017/03/15 v3.2 Provides the ifpdf switch
ifxetex.sty 2010/09/12 v0.6 Provides ifxetex conditional
xkeyval.sty 2014/12/03 v2.7a package option processing (HA)
xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
standalone.cfg 2018/03/26 v1.3a Default configuration file for 'standalone' c
lass
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
luatex85.sty 2016/06/15 v1.4 pdftex aliases for luatex
pdftexcmds.sty 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO)
infwarerr.sty 2016/05/16 v1.4 Providing info/warning/error messages (HO)
ltxcmds.sty 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
unicode-math.sty 2018/02/02 vv0.8l Unicode maths in XeLaTeX and LuaLaTeX
expl3.sty 2018-06-14 L3 programming layer (loader)
expl3-code.tex 2018-06-14 L3 programming layer
l3pdfmode.def 2018-06-14 v L3 Experimental driver: PDF mode
unicode-math-luatex.sty 2018/02/02 vv0.8l Unicode maths in XeLaTeX and LuaLaT
eX
xparse.sty 2018-05-12 L3 Experimental document command parser
l3keys2e.sty 2018-05-12 LaTeX2e option processing using LaTeX3 keys
fontspec.sty 2017/11/09 v2.6g Font selection for XeLaTeX and LuaLaTeX
fontspec-luatex.sty 2017/11/09 v2.6g Font selection for XeLaTeX and LuaLaTeX
fontenc.sty
tuenc.def 2017/04/05 v2.0i Standard LaTeX file
fontspec.cfg
filehook.sty 2011/10/12 v0.5d Hooks for input files
fix-cm.sty 2015/01/14 v1.1t fixes to LaTeX
ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
lualatex-math.sty 2017/06/15 v1.7 Patches for mathematics typesetting with Lu
aLaTeX
etoolbox.sty
Firamath does not provide a character for \circ
. See the following example:
\listfiles
\documentclass{article}
\usepackage{amsmath}
\usepackage[mathrm=sym]{unicode-math}
\setmathfont{Fira Math}
\begin{document}
\Huge
20\,${}^{\circ}$C
\end{document}
...Rolf
Some math operators should be monospaced because of the requirement for alignment in formulae. Note that not all the binary/relation characters should be monospaced, e.g. ≪
need to be longer than <
(at least in Fira Math).
See #39.
The Unified Font Object (UFO) is a cross-platform, cross-application, human readable, future proof format for storing font data.
As the Font Development Best Practices suggested, new font project may adopt the open and platform-neutral ufo standard.
However, ufo uses single files for each glyph, which is more difficult and slow to manage with Git (that's why I changed from sfdir to sfd). Furthermore, the XML format contains much more redundant strings (e.g. the tag name) and will take more space. On the other hand, FontForge does not support using ufo as the native format (at present), so we need extra procedures if using it.
In a word, I don't plan to migrate to .ufo in the near future. But I'm still considering other possibilities (e.g. using Glyphs or Trufont instead of FontForge, maybe?).
Someone hopes to use it with pdfTeX: Using fira-math with pdflatex. So maybe we should make a Type1 version.
PS: how about TTF version?
I think it's time to add more weights.
Weight | Units | CSS | Bold weight | Units | CSS |
---|---|---|---|---|---|
Light | 58 | 300 | Regular | 92 | 400 |
Regular | 92 | 400 | Bold | 158 | 700 |
Medium | 128 | 500 | Heavy | 198 | 900 |
Bold | 158 | 700 | Ultra | 222 | 950 |
Something need to consider:
mathbf
, e.g. for vectors and matrices)?At present U+FEFF ZERO WIDTH NO-BREAK SPACE is leave as an empty glyph (only in regular weight). Should I keep this, or simply remove it? Do I need to consider such special things when design a font?
There is inconsistency within the four hyphens:
Unicode | Horizontal advance |
---|---|
U+002D |
403 |
U+00AD |
403 |
U+2010 |
327 |
U+2011 |
327 |
Please consider fixing U+2010
and U+2011
so that their horizontal advances are also 403
.
There appears to be no symbol for the lim operator, which I would expect to render basically just as the non-italic letters lim
. Is there an easy workaround for this?
This is a very similar issue from alerque/libertinus#63
The math operators are rather small compared to other math fonts. This might have been OK for the text font, but not so much for the math font.
IMHO Fira Math experiences the same flaws (in particular, the +
, -
, =
, etc. signs are too small to be legible in math).
Below is the PDF file consisting of the changes made in alerque/libertinus#272
The priority of Fira Math at this stage is to include more glyphs. So it will be better to start drawing new glyphs in a larger design space.
First, let me thank you for all the work you put in here, especially also on the inclusion of more weights.
I just downloaded the 4.0-beta3 to try it out and found some symbols missing in the non-regular versions when using with unicode-math:
\nabla
\cdot
\hbar
Thank you for elegant font, I love this font.
I found lacking font even if the glyph is used in the test case.
You can reproduce this issue by this code.
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Fira Math}
\begin{document}
\(\vdots\cdots\ldots\)
\end{document}
When I used XITS Math instead of Fira Math, latex rendered it expectedly.
Could you add the glyph for \vdots
?
For readers,
Your can keep using this font temporary by the following code.
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{Fira Math}
\setmathfont[range={"22EE}]{XITS Math}
\begin{document}
\(\vdots\cdots\ldots\)
\end{document}
According to Issue 2, \parallel
is not yet available (as of today), and neither is \mid
. However, according to fontdef.dtx
:
\DeclareMathSymbol{\parallel}{\mathrel}{symbols}{"6B}
\DeclareMathSymbol{\mid}{\mathrel}{symbols}{"6A}
\DeclareMathDelimiter{\Vert}
{\mathord}{symbols}{"6B}{largesymbols}{"0D}
\DeclareMathDelimiter{\vert}
{\mathord}{symbols}{"6A}{largesymbols}{"0C}
suggesting that the \parallel
and \mid
commands point to the same corresponding glyph of \Vert
and \vert
, respectively. Nevertheless, using unicode-math
yields missing glyph. Is it possible to simply “steal” the existing glyph of \Vert
and \vert
, and be done with \parallel
and \mid
?
Furthermore, it seems that :
and \colon
won’t show up unless one specifies option colon=literal
to the package unicode-math
. But colon=literal
changes the spacing of :
.
% Compiled with XeLaTeX or LuaLaTeX
\documentclass{article}
\usepackage{amsmath}
\let\amsmathcolon\colon
\usepackage[sfdefault]{FiraSans}
\usepackage[mathrm=sym]{unicode-math}% colon=literal
\setmathfont{Fira Math}% FiraMath v0.2.2
\renewcommand*\colon{\mathpunct{:}}
\begin{document}
$a : b$, $a \amsmathcolon b$, $a \mid b$, $a \parallel b$
$a : b$, $a \colon b$, $a \mathrel{\vert} b$, $a \mathrel{\Vert} b$
\end{document}
Output for default colon behavior or colon=TeX
:
Output for colon=literal
:
It seems that upright integrals are not scaled up as ordinary integrals.
\setmathfont[Color=000066,Scale=MatchLowercase]{Fira Math}
\setmathfont[range={"222B-"2233,"2A0B-"2A1C},StylisticSet=1]{Fira Math}
\begin{equation}
\label{2:06}
n(r)
=
2 \int_{0}^{\infty } \dif{v} v
\int_{-\arcsin(r/a)}^{+\arcsin(r/a)}
\overline{f}(v,\alpha; r)\dif\alpha
.
\end{equation}
I am trying the v0.3 otf release in MS Word these days and found the superscripts/subscripts are not behaving as expected:
Basically, regardless of extension of the delimiters themselves, the superscripts/subscripts will stay at the same height from the baseline. Are thay designed to behave in this way, or influenced by other factors?
Math symbols \bot and \perp are printed as ?
.
This is a follow-up discussion from latex3/unicode-math#277
The \left<del>...\right<del>
algorithm from TeX has two default parameters: \delimiterfactor=901
and \delimitershortfall=5pt
. The former \delimiterfactor
implies that the delimiter will be as at least 90.1% tall as the content inside.
Here are 3 main suggestions regarding the extensible delimiters in Fira Math:
1.319em
. This is perfect for the Fira family, since the preferred line spacing for Fira is 1.4 times the font size. See mozilla/Fira#67 (comment) and mozilla/Fira#189 (comment) Moreover, this size should be between 1.4×0.901=1.2614 em and 1.4 em, confirming that 1.319 em is perfect ;-)\Big
, \bigg
and \Bigg
are exactly 1.5, 2 and 2.5 times of \big
. It would be nice to have size 2 and up to be exactly 1.25, 1.5, 1.75, 2 and so on. In particular, users are likely to define \newcommand\vast{\bBigg@{3}}
and \newcommand\Vast{\bBigg@{3.5}}
. See https://tex.stackexchange.com/a/6796 and https://liam.page/2018/11/09/the-bigger-than-bigger-delimiter-in-LaTeX/ (in Chinese, @Liam0205)\delimiterfactor=945
.\delimiterfactor=901
, the many intermediate even-numbered sizes would cause problem: If the content is size-8 tall, then size-7 delimiter will be used. In fact, this happens for all size 8 and up. The threshold is given by the last pair of size-14 and 15: \delimiterfactor
needs to be bigger than 1000×4.25/4.5. The other consideration is the following: In TeX, it is advised not to (ab)use \left\right
. The use of manual sizing is recommended. Note that the intermediate sizes are not accessible by manual sizing \big
and friends anyway.\documentclass{article}
\usepackage{xcolor,amsmath,unicode-math}
\setmathfont{FiraMath-Regular.otf}
\makeatletter
\ExplSyntaxOn
\tl_new:N \g_@@_big_to_normal_size_ratio_tl
\tl_gset:Nn \g_@@_big_to_normal_size_ratio_tl
{
\fp_eval:n { 1.319 / 0.990 } % FiraMath-Regular.otf
}
\addto@hook\every@math@size{%
\global\big@size \g_@@_big_to_normal_size_ratio_tl\ht\Mathstrutbox@
\global\advance\big@size \g_@@_big_to_normal_size_ratio_tl\dp\Mathstrutbox@ }
\ExplSyntaxOff
\def\big{\bBigg@{1}}
\def\Big{\bBigg@{1.497}}
\def\bigg{\bBigg@{1.995}}
\def\Bigg{\bBigg@{2.492}}
\def\vast{\bBigg@{2.989}}
\def\vastl{\mathopen\vast}\def\vastm{\mathrel\vast}\def\vastr{\mathclose\vast}
\def\Vast{\bBigg@{3.487}}
\def\Vastl{\mathopen\Vast}\def\Vastm{\mathrel\Vast}\def\Vastr{\mathclose\Vast}
\def\VAST{\bBigg@{3.984}}
\def\VASTl{\mathopen\VAST}\def\VASTm{\mathrel\VAST}\def\VASTr{\mathclose\VAST}
\def\VASTT{\bBigg@{4.482}}
\def\VASTTl{\mathopen\VASTT}\def\VASTTm{\mathrel\VASTT}\def\VASTTr{\mathclose\VASTT}
\makeatother
\newcommand*\testbig[1]{%
\vcenter{\hrule height0.990em width0.4pt}%
#1%
\vcenter{\color{red}\hrule height1.319em width0.4pt}%
\bigr#1%
\vcenter{\color{blue}\hrule height1.647em width0.4pt}\,%
\vcenter{\color{red}\hrule height1.975em width0.4pt}%
\Bigr#1%
\vcenter{\color{blue}\hrule height2.303em width0.4pt}\,%
\vcenter{\color{red}\hrule height2.631em width0.4pt}%
\biggr#1%
\vcenter{\color{blue}\hrule height2.959em width0.4pt}\,%
\vcenter{\color{red}\hrule height3.287em width0.4pt}%
\Biggr#1%
\vcenter{\color{blue}\hrule height3.615em width0.4pt}\,%
\vcenter{\color{red}\hrule height3.943em width0.4pt}%
\vastr#1%
\vcenter{\color{blue}\hrule height4.271em width0.4pt}\,%
\vcenter{\color{red}\hrule height4.599em width0.4pt}%
\Vastr#1%
\vcenter{\color{blue}\hrule height4.927em width0.4pt}\,%
\vcenter{\color{red}\hrule height5.255em width0.4pt}%
\VASTr#1%
\vcenter{\color{blue}\hrule height5.583em width0.4pt}\,%
\vcenter{\color{red}\hrule height5.912em width0.4pt}%
\VASTTr#1%
}
\delimiterfactor=945\relax % need to be > 1000*5.583/5.912
\parindent=0pt\relax
\begin{document}
$\testbig)$
$\testbig\rangle$
$\testbig\}$\par
Note:\par
1.\ Normal size is shown (black).\par
2.\ Only ext.\ sizes~1, 3, 5, \dots, 15 (red) are shown.\par
3.\ Too many intermediate sizes (blue), causing\\
\verb|\delimiterfactor=945| must be issued.
\end{document}
Something need to do:
MATH
contants and vertical/horizontal variants and constructions via FontForge's interfacebraces_interpolate
utils.py
_common.py
This is probably asking too much from an open-source project, but I think it is worth mentioning nonetheless.
Professional math fonts seem to set their math italic slightly different from the corresponding text italic. To quote from the designer of the (expensive) Minion Math:
… with a real Math Italic alphabet (wider than Text Italic, and with special kerning).
For an extended read, please refer to Fonts for Mathematics (PDF), Minion Math — The Design of a New Math Font Family (YouTube) and Is there a perfect maths font?.
I have collected 3 examples reflecting the above claim. Unfortunately, the TeX Gyre collection does not follow this design guide AFAICT. In the following pictures, text italics are in red, math italics are in blue.
I haven't looked into any source file yet, just had a test in MS Word. It seems that for italic characters the following three glyphs are mapped to wrong places:
"\varepsilon" 1D716
"\phi" 1D719
"\varrho" 1D71A
Hope they could be corrected.
\int
\iint
\iiint
\iiiint
\oint
\oiint
\oiiint
With in-line or skewed fraction bars in the Word equation editor, the bar doesn't lengthen, leading to poor display
⎰
, ⎱
❲
, ❳
⦅
, ⦆
⟦
, ⟧
⦃
, ⦄
⟬
, ⟭
⦇
, ⦈
⦉
, ⦊
When using the mhchem package to write chemical equations the arrows don't line up properly. The problem exists in both the Light and standard weights. I didn't check the other weights. Here is an MWE:
%! TEX program = lualatex
\documentclass[varwidth=true, border=10pt, convert={size=640x}]{standalone}
\usepackage[version=4]{mhchem}
\usepackage{unicode-math}
\setmainfont{Fira Sans Light}
\setmathfont{Fira Math Light}
\begin{document}
\ce{A <=> B + C}
\vspace{5mm}
\ce{A <-->[long forward]B + C}
\vspace{5mm}
\ce{X <-->Y + Z}
\end{document}
A light version would be useful, particularly for use with Metropolis theme, which uses Fira Sans Light.
Symbols for \star
, \Im
, \ddots
, \vdots
are rendered as question marks in boxes.
I used xelatex and the following preamble commands:
\usepackage[sfdefault,scaled=.85]{FiraSans}
\usepackage[mathrm=sym]{unicode-math}
\setmathfont[Scale=.85]{Fira Math}
\hbar
\propto
\parallel
, perp
\in
, \ni
\mathbb
\mathcal
1
and 4
\bigcup
Wrong positioning of \dot over \symbf{V} in lualatex.
Since I have been working on the multiple weight family of Fira Math, is there any possibility to create a variable font based on this family?
The main difficulties are:
MATH
table is compatible with variable fonts or not.However, I still think it important and valuable to create an (experimental) variable math font first. At least, the TeX implementation will need a real typeface to test.
Some references:
Related issues:
Cross out means it's not in UNICODE.
Sometimes it's necessary to make +
/-
, =
/<
/>
etc to have the same width, for example in align
environment. See How can I redefine the minus sign to be of the same width as plus?.
Still need to check whether these symbols are really monospaced when typed.
Maybe I need another stylistic set for proportional/monospaced things.
It seems that MS Word does not support multi-weight math font. Only 4/5 weights can be found in the "Equation Options" (Bold version is missing). And at the same time, FiraMath-Regular
can't be used normally.
Note that the family name of FiraMath-Regular
and FiraMath-Bold
are both Fira Math
, so I guess it's related to this point.
I have merged weights
branch into master
, but there are still numerous problems. If you have found any problems (except for the known issues listed below), please comment here.
Known issues:
ssty2
is identical to ssty1
. See latex3/unicode-math#503.Using the FiraMath-Bold
I'll get with
\documentclass[border=5mm,preview,varwidth]{standalone}
\usepackage{amsmath}
\usepackage[no-math]{fontspec}
\usepackage[math-style=ISO,bold-style=ISO,mathrm=sym]{unicode-math}
\setsansfont{Fira Sans}
\setmathfont{FiraMath-Regular.otf}%
\setmathfont[version=bold]{FiraMath-Bold.otf}%
%\setmathfont[version=bold]{FiraMath-Bold2.otf}
\begin{document}
\[ \hat{f}(\omega) = \frac1{\sqrt{2\symup{\pi}}} \int\limits_{-\infty}^{+\infty} f(x)
\symup{e}^{-\symup{i}\omega x} \sin(x)\, \symup dx \]
\boldmath
\[ \hat{f}(\omega) = \frac1{\sqrt{2\symup{\pi}}} \int\limits_{-\infty}^{+\infty} f(x)
\symup{e}^{-\symup{i}\omega x} \sin(x) \,\symup dx \]
\end{document}
Creating a bold version from the FiraMath-Regular
by changing the weight and saving it as [FiraMath-Bold2.otf
](http://archiv.dante.de/~herbert/FiraMath-Bold2.otf) I'll get
IS this the intended behaviour of your bold version?
After some trial on Glyphs, I plan to migrate to it from FontForge.
Fira Sans has provided the source files with unmerged paths, so I can use them for better interpolation. On the other hand, it has 8 masters with 2 axes (weight and width), which means there are much more work to do unfortunately.
The source file .glyphs is somehow much better than .ufo, and there are libraries to work with it (e.g. fontmake), although as a single file it may be very large.
Any suggestions or comments are welcomed here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.