summaryrefslogtreecommitdiff
path: root/fonts/firamath
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/firamath
Initial commit
Diffstat (limited to 'fonts/firamath')
-rw-r--r--fonts/firamath/FiraMath-Regular.otfbin0 -> 177732 bytes
-rw-r--r--fonts/firamath/README.md42
-rw-r--r--fonts/firamath/firamath-demo.pdfbin0 -> 36461 bytes
-rw-r--r--fonts/firamath/firamath-demo.tex109
-rw-r--r--fonts/firamath/firamath-glyph-list.tex19
-rw-r--r--fonts/firamath/firamath-specimen.pdfbin0 -> 544741 bytes
-rw-r--r--fonts/firamath/firamath-specimen.tex502
7 files changed, 672 insertions, 0 deletions
diff --git a/fonts/firamath/FiraMath-Regular.otf b/fonts/firamath/FiraMath-Regular.otf
new file mode 100644
index 0000000000..624bab4898
--- /dev/null
+++ b/fonts/firamath/FiraMath-Regular.otf
Binary files differ
diff --git a/fonts/firamath/README.md b/fonts/firamath/README.md
new file mode 100644
index 0000000000..aba39883f8
--- /dev/null
+++ b/fonts/firamath/README.md
@@ -0,0 +1,42 @@
+The Fira Math Font
+==================
+
+Fira Math is a sans-serif font with Unicode math support. This font is a fork of
+
+- [FiraSans](https://github.com/bBoxType/FiraSans)
+- [FiraGO](https://github.com/bBoxType/FiraGO)
+
+Usage
+-----
+
+Fira Math can be used via XeLaTeX or LuaLaTeX, with [`unicode-math`](https://ctan.org/pkg/unicode-math) package.
+
+ % Compiled with XeLaTeX or LuaLaTeX
+ \documentclass{article}
+ \usepackage{amsmath}
+ \usepackage[mathrm=sym]{unicode-math}
+ \setmathfont{Fira Math}
+
+ \begin{document}
+ \[
+ \int_0^{\mathrm{\pi}} \sin x \, \mathrm{d}x = 2
+ \]
+ \end{document}
+
+You may try the [`firamath-otf`](https://ctan.org/pkg/firamath-otf) package as well.
+
+Contributing
+------------
+
+[Issues](https://github.com/firamath/firamath/issues) and
+[pull requests](https://github.com/firamath/firamath/pulls)
+are always welcome.
+
+License
+-------
+
+This Font Software is licensed under the [SIL Open Font License](http://scripts.sil.org/OFL), Version 1.1.
+
+-----
+
+Copyright (C) 2018, 2019 by Xiangdong Zeng <xdzeng96@gmail.com>.
diff --git a/fonts/firamath/firamath-demo.pdf b/fonts/firamath/firamath-demo.pdf
new file mode 100644
index 0000000000..84038b87be
--- /dev/null
+++ b/fonts/firamath/firamath-demo.pdf
Binary files differ
diff --git a/fonts/firamath/firamath-demo.tex b/fonts/firamath/firamath-demo.tex
new file mode 100644
index 0000000000..c2515a65aa
--- /dev/null
+++ b/fonts/firamath/firamath-demo.tex
@@ -0,0 +1,109 @@
+\documentclass[aspectratio=169]{beamer}
+\usepackage{amsmath,unicode-math,physics,tensor,xeCJK,bookmark}
+\useoutertheme{metropolis}
+\useinnertheme{metropolis}
+\usecolortheme{metropolis}
+\usefonttheme{professionalfonts}
+
+\setbeamerfont{title}{size=\Large, series=\bfseries}
+\setbeamerfont{author}{size=\small}
+\setbeamerfont{date}{size=\small}
+\setbeamertemplate{footline}{\vspace*{0.3cm}}
+
+\makeatletter
+% https://tex.stackexchange.com/q/66519
+\apptocmd{\beamer@@frametitle}{\only<1>{\bookmark[page=\the\c@page,level=3]{#1}}}{}{}
+\makeatother
+
+\unimathsetup{math-style=ISO, bold-style=ISO, mathrm=sym}
+
+\setsansfont{FiraGO}[BoldFont=* SemiBold, Numbers=Monospaced]
+\setmathfont{Fira Math Regular}
+
+\newCJKfontfamily\fontzhhans{Source Han Sans SC}
+\newCJKfontfamily\fontzhhant{Source Han Sans TC}
+\newCJKfontfamily\fontja{Source Han Sans}
+
+\def\ii{\symrm{i}}
+\def\pp{\symrm{\pi}}
+
+\title{Fira Math}
+\subtitle{Sans-serif font with Unicode math support}
+\author{Xiangdong Zeng}
+\date{2019/06/03\quad v0.3.2}
+
+\begin{document}
+
+\maketitle
+
+\begin{frame}{Basic examples (I)}
+\begin{itemize}
+ \item Covariant derivative:
+ \[
+ \nabla \symbf{X} = \tensor{X}{^\alpha_{;\beta}} \pdv{x^\alpha} \otimes \dd{x^\beta}
+ = \qty(\tensor{X}{^\alpha_{,\beta}} + \Gamma^{\alpha}_{\beta\gamma} \, X^\gamma) \,
+ \pdv{x^\alpha} \otimes \dd{x^\beta}
+ \]
+ \item Einstein's field equations:
+ \[ G_{\mu\nu} \equiv R_{\mu\nu} - \frac{1}{2} R g_{\mu\nu} = \frac{8\pi G}{c^4} T_{\mu\nu} \]
+ \item Schwarzschild metric:
+ \[
+ c^2 \dd{\tau}^2 = \qty(1-\frac{r_{\mathrm{s}}}{r}) \, c^2 \dd{t}^2
+ - \qty(1-\frac{r_{\mathrm{s}}}{r})^{-1} \dd{r}^2
+ - r^2 \underbrace{\qty(\dd{\theta}^2 + \sin^2 \theta \dd{\varphi}^2)}_{\dd{\Omega}^2}
+ \]
+ \item Einstein--Hilbert action:
+ \[ S = \frac{1}{2\kappa} \int R \sqrt{-g} \dd[4]{x} \]
+\end{itemize}
+\end{frame}
+
+\begin{frame}{Basic examples (II)}
+\begin{itemize}
+ \item Case $n=1$
+ \small
+ \[
+ \int_0^{\frac{\pp}{2}}
+ \frac{\sqrt{\frac12 \sqrt{\frac{\ln^2\cos\theta}{\theta^2+\ln^2\cos\theta}} + \frac12}}%
+ {\fourthroot{\theta^2 + \ln^2\cos\theta}} \dd{\theta}
+ = \frac{\pp}{2\sqrt{\ln 2}}
+ \]
+ \item Generalization:
+ \small\vspace{1ex}
+ \[
+ \begin{cases}
+ \smash[t]{\displaystyle
+ R_n^- = \frac{2}{\pp} \int_0^{\pp/2} \qty(\theta^2+\ln^2\cos\theta)^{-2^{-n-1}}
+ \sqrt{\frac12+\frac12\sqrt{\frac12+\cdots+\frac12\sqrt{
+ \frac{\ln^2\cos\theta}{\theta^2+\ln^2\cos\theta}}}} \dd{\theta}
+ = (\ln 2)^{-2^{-n}}} \\[3ex]
+ \smash[b]{\displaystyle
+ R_n^+ = \frac{2}{\pp} \int_0^{\pp/2} \qty(\theta^2+\ln^2\cos\theta)^{2^{-n-1}}
+ \sqrt{\frac12+\frac12\sqrt{\frac12+\cdots+\frac12\sqrt{
+ \frac{\ln^2\cos\theta}{\theta^2+\ln^2\cos\theta}}}} \dd{\theta}
+ = (\ln 2)^{2^{-n}}}
+ \end{cases}
+ \]
+\end{itemize}
+\end{frame}
+
+\begin{frame}{Using with CJK fonts}
+\begin{itemize}
+ \item {\fontzhhans 【留数定理】全纯函数 $f$ 在若尔当曲线 $\gamma$ 上的积分为:}
+ \[
+ \oint_\gamma f(z) \dd{z}
+ = 2\pp\ii \sum_{k=1}^n \Res_{z=a_k} f(z).
+ \]
+ \item {\fontzhhant 【留數定理】全純函數 $f$ 在若爾當曲線 $\gamma$ 上的積分為:}
+ \[
+ \oint_\gamma f(z) \dd{z}
+ = 2\pp\ii \sum_{k=1}^n \Res_{z=a_k} f(z).
+ \]
+ \item {\fontja 【留数定理】ジョルダン曲線 $\gamma$ に沿う正則関数 $f$ の積分は、}
+ \[
+ \oint_\gamma f(z) \dd{z}
+ = 2\pp\ii \sum_{k=1}^n \Res_{z=a_k} f(z).
+ \]
+\end{itemize}
+\end{frame}
+
+\end{document}
diff --git a/fonts/firamath/firamath-glyph-list.tex b/fonts/firamath/firamath-glyph-list.tex
new file mode 100644
index 0000000000..0880601282
--- /dev/null
+++ b/fonts/firamath/firamath-glyph-list.tex
@@ -0,0 +1,19 @@
+% Generated by ./scripts/glyph_list.py
+\seq_const_from_clist:Nn \c_@@_glyph_unicode_seq
+ {"0020,"0021,"0022,"0023,"0024,"0025,"0026,"0027,"0028,"0029,"002A,"002B,"002C,"002D,"002E,"002F,"0030,"0031,"0032,"0033,"0034,"0035,"0036,"0037,"0038,"0039,"003A,"003B,"003C,"003D,"003E,"003F,"0040,"0041,"0042,"0043,"0044,"0045,"0046,"0047,"0048,"0049,"004A,"004B,"004C,"004D,"004E,"004F,"0050,"0051,"0052,"0053,"0054,"0055,"0056,"0057,"0058,"0059,"005A,"005B,"005C,"005D,"005E,"005F,"0060,"0061,"0062,"0063,"0064,"0065,"0066,"0067,"0068,"0069,"006A,"006B,"006C,"006D,"006E,"006F,"0070,"0071,"0072,"0073,"0074,"0075,"0076,"0077,"0078,"0079,"007A,"007B,"007C,"007D,"007E,"00A0,"00A1,"00A2,"00A3,"00A4,"00A5,"00A6,"00A7,"00A8,"00A9,"00AA,"00AB,"00AC,"00AD,"00AE,"00AF,"00B0,"00B1,"00B2,"00B3,"00B4,"00B5,"00B6,"00B7,"00B8,"00B9,"00BA,"00BB,"00BC,"00BD,"00BE,"00BF,"00C0,"00C1,"00C2,"00C3,"00C4,"00C5,"00C6,"00C7,"00C8,"00C9,"00CA,"00CB,"00CC,"00CD,"00CE,"00CF,"00D0,"00D1,"00D2,"00D3,"00D4,"00D5,"00D6,"00D7,"00D8,"00D9,"00DA,"00DB,"00DC,"00DD,"00DE,"00DF,"00E0,"00E1,"00E2,"00E3,"00E4,"00E5,"00E6,"00E7,"00E8,"00E9,"00EA,"00EB,"00EC,"00ED,"00EE,"00EF,"00F0,"00F1,"00F2,"00F3,"00F4,"00F5,"00F6,"00F7,"00F8,"00F9,"00FA,"00FB,"00FC,"00FD,"00FE,"00FF,"0100,"0101,"0102,"0103,"0104,"0105,"0106,"0107,"010C,"010D,"010E,"010F,"0110,"0111,"0112,"0113,"0116,"0117,"0118,"0119,"011A,"011B,"011E,"011F,"0122,"0123,"012A,"012B,"012E,"012F,"0130,"0131,"0136,"0137,"0139,"013A,"013B,"013C,"013D,"013E,"0141,"0142,"0143,"0144,"0145,"0146,"0147,"0148,"014C,"014D,"0150,"0151,"0152,"0153,"0154,"0155,"0156,"0157,"0158,"0159,"015A,"015B,"015E,"015F,"0160,"0161,"0162,"0163,"0164,"0165,"016A,"016B,"016E,"016F,"0170,"0171,"0172,"0173,"0178,"0179,"017A,"017B,"017C,"017D,"017E,"0192,"0218,"0219,"021A,"021B,"0237,"0300,"0301,"0302,"0303,"0304,"0305,"0306,"0307,"0308,"0309,"030A,"030B,"030C,"030D,"030F,"0311,"0312,"0313,"0316,"0317,"0318,"0319,"031A,"031B,"031C,"031D,"031E,"031F,"0320,"0321,"0323,"0324,"0325,"0326,"0327,"0328,"0329,"032A,"032B,"032C,"032D,"032F,"0330,"0331,"0332,"0334,"0335,"0336,"0337,"0338,"0339,"033A,"033B,"033C,"033D,"0342,"0345,"035C,"0361,"037E,"0384,"0385,"0386,"0387,"0388,"0389,"038A,"038C,"038E,"038F,"0390,"0391,"0392,"0393,"0394,"0395,"0396,"0397,"0398,"0399,"039A,"039B,"039C,"039D,"039E,"039F,"03A0,"03A1,"03A3,"03A4,"03A5,"03A6,"03A7,"03A8,"03A9,"03AA,"03AB,"03AC,"03AD,"03AE,"03AF,"03B0,"03B1,"03B2,"03B3,"03B4,"03B5,"03B6,"03B7,"03B8,"03B9,"03BA,"03BB,"03BC,"03BD,"03BE,"03BF,"03C0,"03C1,"03C2,"03C3,"03C4,"03C5,"03C6,"03C7,"03C8,"03C9,"03CA,"03CB,"03CC,"03CD,"03CE,"03D0,"03D1,"03D2,"03D5,"03D6,"03D7,"03F0,"03F1,"03F2,"03F4,"03F5,"03F6,"0400,"0401,"0402,"0403,"0404,"0405,"0406,"0407,"0408,"0409,"040A,"040B,"040C,"040D,"040E,"040F,"0410,"0411,"0412,"0413,"0414,"0415,"0416,"0417,"0418,"0419,"041A,"041B,"041C,"041D,"041E,"041F,"0420,"0421,"0422,"0423,"0424,"0425,"0426,"0427,"0428,"0429,"042A,"042B,"042C,"042D,"042E,"042F,"0430,"0431,"0432,"0433,"0434,"0435,"0436,"0437,"0438,"0439,"043A,"043B,"043C,"043D,"043E,"043F,"0440,"0441,"0442,"0443,"0444,"0445,"0446,"0447,"0448,"0449,"044A,"044B,"044C,"044D,"044E,"044F,"0450,"0451,"0452,"0453,"0454,"0455,"0456,"0457,"0458,"0459,"045A,"045B,"045C,"045D,"045E,"045F,"0462,"0463,"0472,"0473,"0474,"0475,"0490,"0491,"2007,"2008,"200B,"200C,"200D,"200E,"200F,"2010,"2011,"2012,"2013,"2014,"2015,"2016,"2018,"2019,"201A,"201C,"201D,"201E,"2020,"2021,"2022,"2026,"2030,"2032,"2033,"2034,"2035,"2036,"2037,"2039,"203A,"203F,"2044,"2057,"20AC,"20B4,"20BA,"20BD,"20D0,"20D1,"20D2,"20D3,"20D6,"20D7,"20DB,"20DC,"20E1,"20E7,"20E8,"20E9,"20EC,"20ED,"20EE,"20EF,"20F0,"2102,"210A,"210D,"210E,"210F,"2113,"2115,"2116,"2119,"211A,"211D,"2122,"2124,"2126,"2127,"212A,"212B,"212E,"2135,"2136,"2137,"2138,"2140,"2153,"2154,"2155,"2156,"2157,"2158,"2159,"215A,"215B,"215C,"215D,"215E,"215F,"2190,"2191,"2192,"2193,"2194,"2195,"2196,"2197,"2198,"2199,"219A,"219B,"219C,"219D,"219E,"219F,"21A0,"21A1,"21A2,"21A3,"21A4,"21A5,"21A6,"21A7,"21A8,"21A9,"21AA,"21AB,"21AC,"21AD,"21AE,"21AF,"21B0,"21B1,"21B2,"21B3,"21B4,"21B5,"21B6,"21B7,"21B8,"21B9,"21BA,"21BB,"21BC,"21BD,"21BE,"21BF,"21C0,"21C1,"21C2,"21C3,"21C4,"21C5,"21C6,"21C7,"21C8,"21C9,"21CA,"21CB,"21CC,"21CD,"21CE,"21CF,"21D0,"21D1,"21D2,"21D3,"21D4,"21D5,"21D6,"21D7,"21D8,"21D9,"21DA,"21DB,"21DC,"21DD,"21DE,"21DF,"21E0,"21E1,"21E2,"21E3,"21E4,"21E5,"21E6,"21E7,"21E8,"21E9,"21EA,"21EB,"21EC,"21ED,"21EE,"21EF,"21F0,"21F1,"21F2,"21F3,"21F4,"21F5,"21F6,"21F7,"21F8,"21F9,"21FA,"21FB,"21FC,"21FD,"21FE,"21FF,"2200,"2201,"2202,"2203,"2204,"2205,"2206,"2207,"2208,"2209,"220A,"220B,"220C,"220D,"220E,"220F,"2210,"2211,"2212,"2213,"2214,"2215,"2217,"2218,"2219,"221A,"221B,"221C,"221D,"221E,"221F,"2220,"2221,"2222,"2223,"2224,"2225,"2226,"2227,"2228,"2229,"222A,"222B,"222C,"222D,"222E,"222F,"2230,"2234,"2235,"2236,"2237,"2238,"2239,"223A,"223B,"223C,"223D,"2240,"2241,"2242,"2243,"2244,"2245,"2246,"2247,"2248,"2249,"224A,"224B,"224C,"2250,"2251,"2252,"2253,"2254,"2255,"2260,"2261,"2262,"2263,"2264,"2265,"2266,"2267,"2268,"2269,"226A,"226B,"226E,"226F,"2270,"2271,"2272,"2273,"2274,"2275,"2276,"2277,"2278,"2279,"227A,"227B,"227C,"227D,"227E,"227F,"2280,"2281,"2282,"2283,"2284,"2285,"2286,"2287,"2288,"2289,"228A,"228B,"228C,"228D,"228E,"228F,"2290,"2291,"2292,"2293,"2294,"2295,"2296,"2297,"2298,"2299,"22C5,"22CD,"22CE,"22CF,"22D6,"22D7,"22D8,"22D9,"22DA,"22DB,"22DC,"22DD,"22DE,"22DF,"22E0,"22E1,"22E2,"22E3,"22E4,"22E5,"22E6,"22E7,"22E8,"22E9,"22EF,"2302,"2308,"2309,"230A,"230B,"2310,"239B,"239C,"239D,"239E,"239F,"23A0,"23A1,"23A2,"23A3,"23A4,"23A5,"23A6,"23A7,"23A8,"23A9,"23AA,"23AB,"23AC,"23AD,"23B4,"23B5,"23DC,"23DD,"23DE,"23DF,"2580,"2581,"2582,"2583,"2584,"2585,"2586,"2587,"2588,"2589,"258A,"258B,"258C,"258D,"258E,"258F,"2590,"2594,"2595,"2596,"2597,"2598,"2599,"259A,"259B,"259C,"259D,"259E,"259F,"25A0,"25A1,"25A2,"25A3,"25AA,"25AB,"25AC,"25AD,"25AE,"25AF,"25B2,"25B6,"25BA,"25BC,"25C0,"25C4,"25C6,"25C7,"25C9,"25CA,"25CB,"25CE,"25CF,"25D0,"25D1,"25D2,"25D3,"25D5,"25D6,"25D7,"25D9,"25DA,"25DB,"25DC,"25DD,"25DE,"25DF,"25E0,"25E1,"25E2,"25E3,"25E4,"25E5,"25E6,"25E7,"25E8,"25E9,"25EA,"25EB,"25EF,"25F0,"25F1,"25F2,"25F3,"25F4,"25F5,"25F6,"25F7,"2620,"2639,"263A,"263B,"263C,"2640,"2642,"2660,"2663,"2665,"2666,"266A,"266B,"26AA,"26AB,"26AC,"27C2,"27E8,"27E9,"27EA,"27EB,"27EE,"27EF,"27F5,"27F6,"27F7,"27F8,"27F9,"27FA,"27FB,"27FC,"27FD,"27FE,"2900,"2901,"2902,"2903,"2904,"2905,"2906,"2907,"2908,"2909,"290A,"290B,"2912,"2913,"2914,"2915,"2916,"2917,"2918,"2919,"291A,"291B,"291C,"2921,"2922,"2927,"2928,"2929,"292A,"292B,"292C,"292D,"292E,"292F,"2930,"2931,"2932,"294A,"294B,"294C,"294D,"294E,"294F,"2950,"2951,"2952,"2953,"2954,"2955,"2956,"2957,"2958,"2959,"295A,"295B,"295C,"295D,"295E,"295F,"2960,"2961,"2962,"2963,"2964,"2965,"2966,"2967,"2968,"2969,"296A,"296B,"296C,"296D,"296E,"296F,"2980,"2981,"299F,"29A0,"29A1,"29A2,"29A3,"29A6,"29A7,"29B0,"2A0C,"2A7D,"2A7E,"2B24,"2B31,"2B34,"2B35,"2B36,"2B39,"2B3A,"2B3B,"2B3C,"2B3D,"2BFE,"FB00,"FB01,"FB02,"FB03,"FB04,"FEFF,"1D400,"1D401,"1D402,"1D403,"1D404,"1D405,"1D406,"1D407,"1D408,"1D409,"1D40A,"1D40B,"1D40C,"1D40D,"1D40E,"1D40F,"1D410,"1D411,"1D412,"1D413,"1D414,"1D415,"1D416,"1D417,"1D418,"1D419,"1D41A,"1D41B,"1D41C,"1D41D,"1D41E,"1D41F,"1D420,"1D421,"1D422,"1D423,"1D424,"1D425,"1D426,"1D427,"1D428,"1D429,"1D42A,"1D42B,"1D42C,"1D42D,"1D42E,"1D42F,"1D430,"1D431,"1D432,"1D433,"1D434,"1D435,"1D436,"1D437,"1D438,"1D439,"1D43A,"1D43B,"1D43C,"1D43D,"1D43E,"1D43F,"1D440,"1D441,"1D442,"1D443,"1D444,"1D445,"1D446,"1D447,"1D448,"1D449,"1D44A,"1D44B,"1D44C,"1D44D,"1D44E,"1D44F,"1D450,"1D451,"1D452,"1D453,"1D454,"1D456,"1D457,"1D458,"1D459,"1D45A,"1D45B,"1D45C,"1D45D,"1D45E,"1D45F,"1D460,"1D461,"1D462,"1D463,"1D464,"1D465,"1D466,"1D467,"1D468,"1D469,"1D46A,"1D46B,"1D46C,"1D46D,"1D46E,"1D46F,"1D470,"1D471,"1D472,"1D473,"1D474,"1D475,"1D476,"1D477,"1D478,"1D479,"1D47A,"1D47B,"1D47C,"1D47D,"1D47E,"1D47F,"1D480,"1D481,"1D482,"1D483,"1D484,"1D485,"1D486,"1D487,"1D488,"1D489,"1D48A,"1D48B,"1D48C,"1D48D,"1D48E,"1D48F,"1D490,"1D491,"1D492,"1D493,"1D494,"1D495,"1D496,"1D497,"1D498,"1D499,"1D49A,"1D49B,"1D538,"1D539,"1D53B,"1D53C,"1D53D,"1D53E,"1D540,"1D541,"1D542,"1D543,"1D544,"1D546,"1D54A,"1D54B,"1D54C,"1D54D,"1D54E,"1D54F,"1D550,"1D552,"1D553,"1D554,"1D555,"1D556,"1D557,"1D558,"1D559,"1D55A,"1D55B,"1D55C,"1D55D,"1D55E,"1D55F,"1D560,"1D561,"1D562,"1D563,"1D564,"1D565,"1D566,"1D567,"1D568,"1D569,"1D56A,"1D56B,"1D670,"1D671,"1D672,"1D673,"1D674,"1D675,"1D676,"1D677,"1D678,"1D679,"1D67A,"1D67B,"1D67C,"1D67D,"1D67E,"1D67F,"1D680,"1D681,"1D682,"1D683,"1D684,"1D685,"1D686,"1D687,"1D688,"1D689,"1D68A,"1D68B,"1D68C,"1D68D,"1D68E,"1D68F,"1D690,"1D691,"1D692,"1D693,"1D694,"1D695,"1D696,"1D697,"1D698,"1D699,"1D69A,"1D69B,"1D69C,"1D69D,"1D69E,"1D69F,"1D6A0,"1D6A1,"1D6A2,"1D6A3,"1D6A4,"1D6A5,"1D6A8,"1D6A9,"1D6AA,"1D6AB,"1D6AC,"1D6AD,"1D6AE,"1D6AF,"1D6B0,"1D6B1,"1D6B2,"1D6B3,"1D6B4,"1D6B5,"1D6B6,"1D6B7,"1D6B8,"1D6B9,"1D6BA,"1D6BB,"1D6BC,"1D6BD,"1D6BE,"1D6BF,"1D6C0,"1D6C1,"1D6C2,"1D6C3,"1D6C4,"1D6C5,"1D6C6,"1D6C7,"1D6C8,"1D6C9,"1D6CA,"1D6CB,"1D6CC,"1D6CD,"1D6CE,"1D6CF,"1D6D0,"1D6D1,"1D6D2,"1D6D3,"1D6D4,"1D6D5,"1D6D6,"1D6D7,"1D6D8,"1D6D9,"1D6DA,"1D6DB,"1D6DC,"1D6DD,"1D6DE,"1D6DF,"1D6E0,"1D6E1,"1D6E2,"1D6E3,"1D6E4,"1D6E5,"1D6E6,"1D6E7,"1D6E8,"1D6E9,"1D6EA,"1D6EB,"1D6EC,"1D6ED,"1D6EE,"1D6EF,"1D6F0,"1D6F1,"1D6F2,"1D6F3,"1D6F4,"1D6F5,"1D6F6,"1D6F7,"1D6F8,"1D6F9,"1D6FA,"1D6FB,"1D6FC,"1D6FD,"1D6FE,"1D6FF,"1D700,"1D701,"1D702,"1D703,"1D704,"1D705,"1D706,"1D707,"1D708,"1D709,"1D70A,"1D70B,"1D70C,"1D70D,"1D70E,"1D70F,"1D710,"1D711,"1D712,"1D713,"1D714,"1D715,"1D716,"1D717,"1D718,"1D719,"1D71A,"1D71B,"1D71C,"1D71D,"1D71E,"1D71F,"1D720,"1D721,"1D722,"1D723,"1D724,"1D725,"1D726,"1D727,"1D728,"1D729,"1D72A,"1D72B,"1D72C,"1D72D,"1D72E,"1D72F,"1D730,"1D731,"1D732,"1D733,"1D734,"1D735,"1D736,"1D737,"1D738,"1D739,"1D73A,"1D73B,"1D73C,"1D73D,"1D73E,"1D73F,"1D740,"1D741,"1D742,"1D743,"1D744,"1D745,"1D746,"1D747,"1D748,"1D749,"1D74A,"1D74B,"1D74C,"1D74D,"1D74E,"1D74F,"1D750,"1D751,"1D752,"1D753,"1D754,"1D755,"1D7CA,"1D7CB,"1D7CE,"1D7CF,"1D7D0,"1D7D1,"1D7D2,"1D7D3,"1D7D4,"1D7D5,"1D7D6,"1D7D7,"1F784}
+\seq_const_from_clist:Nn \c_@@_glyph_non_unicode_seq
+ {.notdef,uni2032.ssty1,uni2033.ssty1,uni2034.ssty1,uni2057.ssty1,uni2035.ssty1,uni2036.ssty1,uni2037.ssty1,uni2032.ssty2,uni2033.ssty2,uni2034.ssty2,uni2057.ssty2,uni2035.ssty2,uni2036.ssty2,uni2037.ssty2,uni2140.display,uni220F.display,uni2210.display,uni2211.display,uni222B.display,uni222C.display,uni222D.display,uni2A0C.display,uni222E.display,uni222F.display,uni2230.display,uni221A.size1,uni221A.size2,uni221A.size3,uni221A.size4,uni221A.size5,uni221A.size6,uni221A.size7,uni221A.size8,uni221A.size9,uni221A.size10,uni221A.size11,uni221A.size12,uni221A.size13,uni221A.size14,uni221A.size15,uni221B.size1,uni221B.size2,uni221B.size3,uni221B.size4,uni221B.size5,uni221B.size6,uni221B.size7,uni221B.size8,uni221B.size9,uni221B.size10,uni221B.size11,uni221B.size12,uni221B.size13,uni221B.size14,uni221B.size15,uni221C.size1,uni221C.size2,uni221C.size3,uni221C.size4,uni221C.size5,uni221C.size6,uni221C.size7,uni221C.size8,uni221C.size9,uni221C.size10,uni221C.size11,uni221C.size12,uni221C.size13,uni221C.size14,uni221C.size15,uni0028.size1,uni0028.size2,uni0028.size3,uni0028.size4,uni0028.size5,uni0028.size6,uni0028.size7,uni0028.size8,uni0028.size9,uni0028.size10,uni0028.size11,uni0028.size12,uni0028.size13,uni0028.size14,uni0028.size15,uni0029.size1,uni0029.size2,uni0029.size3,uni0029.size4,uni0029.size5,uni0029.size6,uni0029.size7,uni0029.size8,uni0029.size9,uni0029.size10,uni0029.size11,uni0029.size12,uni0029.size13,uni0029.size14,uni0029.size15,uni005B.size1,uni005B.size2,uni005B.size3,uni005B.size4,uni005B.size5,uni005B.size6,uni005B.size7,uni005B.size8,uni005B.size9,uni005B.size10,uni005B.size11,uni005B.size12,uni005B.size13,uni005B.size14,uni005B.size15,uni005D.size1,uni005D.size2,uni005D.size3,uni005D.size4,uni005D.size5,uni005D.size6,uni005D.size7,uni005D.size8,uni005D.size9,uni005D.size10,uni005D.size11,uni005D.size12,uni005D.size13,uni005D.size14,uni005D.size15,uni007B.size1,uni007B.size2,uni007B.size3,uni007B.size4,uni007B.size5,uni007B.size6,uni007B.size7,uni007B.size8,uni007B.size9,uni007B.size10,uni007B.size11,uni007B.size12,uni007B.size13,uni007B.size14,uni007B.size15,uni007D.size1,uni007D.size2,uni007D.size3,uni007D.size4,uni007D.size5,uni007D.size6,uni007D.size7,uni007D.size8,uni007D.size9,uni007D.size10,uni007D.size11,uni007D.size12,uni007D.size13,uni007D.size14,uni007D.size15,uni2308.size1,uni2308.size2,uni2308.size3,uni2308.size4,uni2308.size5,uni2308.size6,uni2308.size7,uni2308.size8,uni2308.size9,uni2308.size10,uni2308.size11,uni2308.size12,uni2308.size13,uni2308.size14,uni2308.size15,uni2309.size1,uni2309.size2,uni2309.size3,uni2309.size4,uni2309.size5,uni2309.size6,uni2309.size7,uni2309.size8,uni2309.size9,uni2309.size10,uni2309.size11,uni2309.size12,uni2309.size13,uni2309.size14,uni2309.size15,uni230A.size1,uni230A.size2,uni230A.size3,uni230A.size4,uni230A.size5,uni230A.size6,uni230A.size7,uni230A.size8,uni230A.size9,uni230A.size10,uni230A.size11,uni230A.size12,uni230A.size13,uni230A.size14,uni230A.size15,uni230B.size1,uni230B.size2,uni230B.size3,uni230B.size4,uni230B.size5,uni230B.size6,uni230B.size7,uni230B.size8,uni230B.size9,uni230B.size10,uni230B.size11,uni230B.size12,uni230B.size13,uni230B.size14,uni230B.size15,uni27E8.size1,uni27E8.size2,uni27E8.size3,uni27E8.size4,uni27E8.size5,uni27E8.size6,uni27E8.size7,uni27E8.size8,uni27E8.size9,uni27E8.size10,uni27E8.size11,uni27E8.size12,uni27E8.size13,uni27E8.size14,uni27E8.size15,uni27E9.size1,uni27E9.size2,uni27E9.size3,uni27E9.size4,uni27E9.size5,uni27E9.size6,uni27E9.size7,uni27E9.size8,uni27E9.size9,uni27E9.size10,uni27E9.size11,uni27E9.size12,uni27E9.size13,uni27E9.size14,uni27E9.size15,uni27EA.size1,uni27EA.size2,uni27EA.size3,uni27EA.size4,uni27EA.size5,uni27EA.size6,uni27EA.size7,uni27EA.size8,uni27EA.size9,uni27EA.size10,uni27EA.size11,uni27EA.size12,uni27EA.size13,uni27EA.size14,uni27EA.size15,uni27EB.size1,uni27EB.size2,uni27EB.size3,uni27EB.size4,uni27EB.size5,uni27EB.size6,uni27EB.size7,uni27EB.size8,uni27EB.size9,uni27EB.size10,uni27EB.size11,uni27EB.size12,uni27EB.size13,uni27EB.size14,uni27EB.size15,uni27EE.size1,uni27EE.size2,uni27EE.size3,uni27EE.size4,uni27EE.size5,uni27EE.size6,uni27EE.size7,uni27EE.size8,uni27EE.size9,uni27EE.size10,uni27EE.size11,uni27EE.size12,uni27EE.size13,uni27EE.size14,uni27EE.size15,uni27EF.size1,uni27EF.size2,uni27EF.size3,uni27EF.size4,uni27EF.size5,uni27EF.size6,uni27EF.size7,uni27EF.size8,uni27EF.size9,uni27EF.size10,uni27EF.size11,uni27EF.size12,uni27EF.size13,uni27EF.size14,uni27EF.size15,uni007C.size1,uni007C.size2,uni007C.size3,uni007C.size4,uni007C.size5,uni007C.size6,uni007C.size7,uni007C.size8,uni007C.size9,uni007C.size10,uni007C.size11,uni007C.size12,uni007C.size13,uni007C.size14,uni007C.size15,uni2016.size1,uni2016.size2,uni2016.size3,uni2016.size4,uni2016.size5,uni2016.size6,uni2016.size7,uni2016.size8,uni2016.size9,uni2016.size10,uni2016.size11,uni2016.size12,uni2016.size13,uni2016.size14,uni2016.size15,uni2980.size1,uni2980.size2,uni2980.size3,uni2980.size4,uni2980.size5,uni2980.size6,uni2980.size7,uni2980.size8,uni2980.size9,uni2980.size10,uni2980.size11,uni2980.size12,uni2980.size13,uni2980.size14,uni2980.size15,uni221A.top,uni221A.ext,uni221A.bot,uni221B.top,uni221B.ext,uni221B.bot,uni221C.top,uni221C.ext,uni221C.bot,uni2308.top,uni2308.ext,uni2309.top,uni2309.ext,uni230A.ext,uni230A.bot,uni230B.ext,uni230B.bot,uni27EE.top,uni27EE.ext,uni27EE.bot,uni27EF.top,uni27EF.ext,uni27EF.bot,uni007C.ext,uni2016.ext,uni2980.ext,uni23DC.size1,uni23DC.size2,uni23DC.size3,uni23DC.size4,uni23DC.size5,uni23DC.size6,uni23DC.size7,uni23DC.size8,uni23DC.size9,uni23DC.size10,uni23DC.size11,uni23DC.size12,uni23DC.size13,uni23DC.size14,uni23DC.size15,uni23DD.size1,uni23DD.size2,uni23DD.size3,uni23DD.size4,uni23DD.size5,uni23DD.size6,uni23DD.size7,uni23DD.size8,uni23DD.size9,uni23DD.size10,uni23DD.size11,uni23DD.size12,uni23DD.size13,uni23DD.size14,uni23DD.size15,uni23B4.size1,uni23B4.size2,uni23B4.size3,uni23B4.size4,uni23B4.size5,uni23B4.size6,uni23B4.size7,uni23B4.size8,uni23B4.size9,uni23B4.size10,uni23B4.size11,uni23B4.size12,uni23B4.size13,uni23B4.size14,uni23B4.size15,uni23B5.size1,uni23B5.size2,uni23B5.size3,uni23B5.size4,uni23B5.size5,uni23B5.size6,uni23B5.size7,uni23B5.size8,uni23B5.size9,uni23B5.size10,uni23B5.size11,uni23B5.size12,uni23B5.size13,uni23B5.size14,uni23B5.size15,uni23DE.size1,uni23DE.size2,uni23DE.size3,uni23DE.size4,uni23DE.size5,uni23DE.size6,uni23DE.size7,uni23DE.size8,uni23DE.size9,uni23DE.size10,uni23DE.size11,uni23DE.size12,uni23DE.size13,uni23DE.size14,uni23DE.size15,uni23DF.size1,uni23DF.size2,uni23DF.size3,uni23DF.size4,uni23DF.size5,uni23DF.size6,uni23DF.size7,uni23DF.size8,uni23DF.size9,uni23DF.size10,uni23DF.size11,uni23DF.size12,uni23DF.size13,uni23DF.size14,uni23DF.size15,uni23DC.left,uni23DC.ext,uni23DC.right,uni23DD.left,uni23DD.ext,uni23DD.right,uni23B4.left,uni23B4.ext,uni23B4.right,uni23B5.left,uni23B5.ext,uni23B5.right,uni23DE.left,uni23DE.ext,uni23DE.mid,uni23DE.right,uni23DF.left,uni23DF.ext,uni23DF.mid,uni23DF.right,uni0030.pnum,uni0031.pnum,uni0032.pnum,uni0033.pnum,uni0034.pnum,uni0035.pnum,uni0036.pnum,uni0037.pnum,uni0038.pnum,uni0039.pnum,u1D7CE.pnum,u1D7CF.pnum,u1D7D0.pnum,u1D7D1.pnum,u1D7D2.pnum,u1D7D3.pnum,u1D7D4.pnum,u1D7D5.pnum,u1D7D6.pnum,u1D7D7.pnum,uni222B.up,uni222C.up,uni222D.up,uni2A0C.up,uni222E.up,uni222F.up,uni2230.up,uni222B.display.up,uni222C.display.up,uni222D.display.up,uni2A0C.display.up,uni222E.display.up,uni222F.display.up,uni2230.display.up,uni210F.ss02,uni2201.ss03}
+\seq_const_from_clist:Nn \c_@@_glyph_non_unicode_with_type_seq
+ {
+ {Special} {.notdef},
+ {Math~Script~Style~Alternates} {uni2032.ssty1,uni2033.ssty1,uni2034.ssty1,uni2057.ssty1,uni2035.ssty1,uni2036.ssty1,uni2037.ssty1,uni2032.ssty2,uni2033.ssty2,uni2034.ssty2,uni2057.ssty2,uni2035.ssty2,uni2036.ssty2,uni2037.ssty2},
+ {Display~Math~Operators} {uni2140.display,uni220F.display,uni2210.display,uni2211.display,uni222B.display,uni222C.display,uni222D.display,uni2A0C.display,uni222E.display,uni222F.display,uni2230.display},
+ {Large~Delimiters} {uni221A.size1,uni221A.size2,uni221A.size3,uni221A.size4,uni221A.size5,uni221A.size6,uni221A.size7,uni221A.size8,uni221A.size9,uni221A.size10,uni221A.size11,uni221A.size12,uni221A.size13,uni221A.size14,uni221A.size15,uni221B.size1,uni221B.size2,uni221B.size3,uni221B.size4,uni221B.size5,uni221B.size6,uni221B.size7,uni221B.size8,uni221B.size9,uni221B.size10,uni221B.size11,uni221B.size12,uni221B.size13,uni221B.size14,uni221B.size15,uni221C.size1,uni221C.size2,uni221C.size3,uni221C.size4,uni221C.size5,uni221C.size6,uni221C.size7,uni221C.size8,uni221C.size9,uni221C.size10,uni221C.size11,uni221C.size12,uni221C.size13,uni221C.size14,uni221C.size15,uni0028.size1,uni0028.size2,uni0028.size3,uni0028.size4,uni0028.size5,uni0028.size6,uni0028.size7,uni0028.size8,uni0028.size9,uni0028.size10,uni0028.size11,uni0028.size12,uni0028.size13,uni0028.size14,uni0028.size15,uni0029.size1,uni0029.size2,uni0029.size3,uni0029.size4,uni0029.size5,uni0029.size6,uni0029.size7,uni0029.size8,uni0029.size9,uni0029.size10,uni0029.size11,uni0029.size12,uni0029.size13,uni0029.size14,uni0029.size15,uni005B.size1,uni005B.size2,uni005B.size3,uni005B.size4,uni005B.size5,uni005B.size6,uni005B.size7,uni005B.size8,uni005B.size9,uni005B.size10,uni005B.size11,uni005B.size12,uni005B.size13,uni005B.size14,uni005B.size15,uni005D.size1,uni005D.size2,uni005D.size3,uni005D.size4,uni005D.size5,uni005D.size6,uni005D.size7,uni005D.size8,uni005D.size9,uni005D.size10,uni005D.size11,uni005D.size12,uni005D.size13,uni005D.size14,uni005D.size15,uni007B.size1,uni007B.size2,uni007B.size3,uni007B.size4,uni007B.size5,uni007B.size6,uni007B.size7,uni007B.size8,uni007B.size9,uni007B.size10,uni007B.size11,uni007B.size12,uni007B.size13,uni007B.size14,uni007B.size15,uni007D.size1,uni007D.size2,uni007D.size3,uni007D.size4,uni007D.size5,uni007D.size6,uni007D.size7,uni007D.size8,uni007D.size9,uni007D.size10,uni007D.size11,uni007D.size12,uni007D.size13,uni007D.size14,uni007D.size15,uni2308.size1,uni2308.size2,uni2308.size3,uni2308.size4,uni2308.size5,uni2308.size6,uni2308.size7,uni2308.size8,uni2308.size9,uni2308.size10,uni2308.size11,uni2308.size12,uni2308.size13,uni2308.size14,uni2308.size15,uni2309.size1,uni2309.size2,uni2309.size3,uni2309.size4,uni2309.size5,uni2309.size6,uni2309.size7,uni2309.size8,uni2309.size9,uni2309.size10,uni2309.size11,uni2309.size12,uni2309.size13,uni2309.size14,uni2309.size15,uni230A.size1,uni230A.size2,uni230A.size3,uni230A.size4,uni230A.size5,uni230A.size6,uni230A.size7,uni230A.size8,uni230A.size9,uni230A.size10,uni230A.size11,uni230A.size12,uni230A.size13,uni230A.size14,uni230A.size15,uni230B.size1,uni230B.size2,uni230B.size3,uni230B.size4,uni230B.size5,uni230B.size6,uni230B.size7,uni230B.size8,uni230B.size9,uni230B.size10,uni230B.size11,uni230B.size12,uni230B.size13,uni230B.size14,uni230B.size15,uni27E8.size1,uni27E8.size2,uni27E8.size3,uni27E8.size4,uni27E8.size5,uni27E8.size6,uni27E8.size7,uni27E8.size8,uni27E8.size9,uni27E8.size10,uni27E8.size11,uni27E8.size12,uni27E8.size13,uni27E8.size14,uni27E8.size15,uni27E9.size1,uni27E9.size2,uni27E9.size3,uni27E9.size4,uni27E9.size5,uni27E9.size6,uni27E9.size7,uni27E9.size8,uni27E9.size9,uni27E9.size10,uni27E9.size11,uni27E9.size12,uni27E9.size13,uni27E9.size14,uni27E9.size15,uni27EA.size1,uni27EA.size2,uni27EA.size3,uni27EA.size4,uni27EA.size5,uni27EA.size6,uni27EA.size7,uni27EA.size8,uni27EA.size9,uni27EA.size10,uni27EA.size11,uni27EA.size12,uni27EA.size13,uni27EA.size14,uni27EA.size15,uni27EB.size1,uni27EB.size2,uni27EB.size3,uni27EB.size4,uni27EB.size5,uni27EB.size6,uni27EB.size7,uni27EB.size8,uni27EB.size9,uni27EB.size10,uni27EB.size11,uni27EB.size12,uni27EB.size13,uni27EB.size14,uni27EB.size15,uni27EE.size1,uni27EE.size2,uni27EE.size3,uni27EE.size4,uni27EE.size5,uni27EE.size6,uni27EE.size7,uni27EE.size8,uni27EE.size9,uni27EE.size10,uni27EE.size11,uni27EE.size12,uni27EE.size13,uni27EE.size14,uni27EE.size15,uni27EF.size1,uni27EF.size2,uni27EF.size3,uni27EF.size4,uni27EF.size5,uni27EF.size6,uni27EF.size7,uni27EF.size8,uni27EF.size9,uni27EF.size10,uni27EF.size11,uni27EF.size12,uni27EF.size13,uni27EF.size14,uni27EF.size15,uni007C.size1,uni007C.size2,uni007C.size3,uni007C.size4,uni007C.size5,uni007C.size6,uni007C.size7,uni007C.size8,uni007C.size9,uni007C.size10,uni007C.size11,uni007C.size12,uni007C.size13,uni007C.size14,uni007C.size15,uni2016.size1,uni2016.size2,uni2016.size3,uni2016.size4,uni2016.size5,uni2016.size6,uni2016.size7,uni2016.size8,uni2016.size9,uni2016.size10,uni2016.size11,uni2016.size12,uni2016.size13,uni2016.size14,uni2016.size15,uni2980.size1,uni2980.size2,uni2980.size3,uni2980.size4,uni2980.size5,uni2980.size6,uni2980.size7,uni2980.size8,uni2980.size9,uni2980.size10,uni2980.size11,uni2980.size12,uni2980.size13,uni2980.size14,uni2980.size15},
+ {Extensible~Delimiters} {uni221A.top,uni221A.ext,uni221A.bot,uni221B.top,uni221B.ext,uni221B.bot,uni221C.top,uni221C.ext,uni221C.bot,uni2308.top,uni2308.ext,uni2309.top,uni2309.ext,uni230A.ext,uni230A.bot,uni230B.ext,uni230B.bot,uni27EE.top,uni27EE.ext,uni27EE.bot,uni27EF.top,uni27EF.ext,uni27EF.bot,uni007C.ext,uni2016.ext,uni2980.ext},
+ {Large~Over/Under~Symbols} {uni23DC.size1,uni23DC.size2,uni23DC.size3,uni23DC.size4,uni23DC.size5,uni23DC.size6,uni23DC.size7,uni23DC.size8,uni23DC.size9,uni23DC.size10,uni23DC.size11,uni23DC.size12,uni23DC.size13,uni23DC.size14,uni23DC.size15,uni23DD.size1,uni23DD.size2,uni23DD.size3,uni23DD.size4,uni23DD.size5,uni23DD.size6,uni23DD.size7,uni23DD.size8,uni23DD.size9,uni23DD.size10,uni23DD.size11,uni23DD.size12,uni23DD.size13,uni23DD.size14,uni23DD.size15,uni23B4.size1,uni23B4.size2,uni23B4.size3,uni23B4.size4,uni23B4.size5,uni23B4.size6,uni23B4.size7,uni23B4.size8,uni23B4.size9,uni23B4.size10,uni23B4.size11,uni23B4.size12,uni23B4.size13,uni23B4.size14,uni23B4.size15,uni23B5.size1,uni23B5.size2,uni23B5.size3,uni23B5.size4,uni23B5.size5,uni23B5.size6,uni23B5.size7,uni23B5.size8,uni23B5.size9,uni23B5.size10,uni23B5.size11,uni23B5.size12,uni23B5.size13,uni23B5.size14,uni23B5.size15,uni23DE.size1,uni23DE.size2,uni23DE.size3,uni23DE.size4,uni23DE.size5,uni23DE.size6,uni23DE.size7,uni23DE.size8,uni23DE.size9,uni23DE.size10,uni23DE.size11,uni23DE.size12,uni23DE.size13,uni23DE.size14,uni23DE.size15,uni23DF.size1,uni23DF.size2,uni23DF.size3,uni23DF.size4,uni23DF.size5,uni23DF.size6,uni23DF.size7,uni23DF.size8,uni23DF.size9,uni23DF.size10,uni23DF.size11,uni23DF.size12,uni23DF.size13,uni23DF.size14,uni23DF.size15},
+ {Extensible~Over/Under~Symbols} {uni23DC.left,uni23DC.ext,uni23DC.right,uni23DD.left,uni23DD.ext,uni23DD.right,uni23B4.left,uni23B4.ext,uni23B4.right,uni23B5.left,uni23B5.ext,uni23B5.right,uni23DE.left,uni23DE.ext,uni23DE.mid,uni23DE.right,uni23DF.left,uni23DF.ext,uni23DF.mid,uni23DF.right},
+ {Proportional~Figures} {uni0030.pnum,uni0031.pnum,uni0032.pnum,uni0033.pnum,uni0034.pnum,uni0035.pnum,uni0036.pnum,uni0037.pnum,uni0038.pnum,uni0039.pnum,u1D7CE.pnum,u1D7CF.pnum,u1D7D0.pnum,u1D7D1.pnum,u1D7D2.pnum,u1D7D3.pnum,u1D7D4.pnum,u1D7D5.pnum,u1D7D6.pnum,u1D7D7.pnum},
+ {Stylistic~Set~1:~Upright~Integrals} {uni222B.up,uni222C.up,uni222D.up,uni2A0C.up,uni222E.up,uni222F.up,uni2230.up,uni222B.display.up,uni222C.display.up,uni222D.display.up,uni2A0C.display.up,uni222E.display.up,uni222F.display.up,uni2230.display.up},
+ {Stylistic~Set~2:~Planck~Constant~with~Bar} {uni210F.ss02},
+ {Stylistic~Set~3:~Complement~Alternates} {uni2201.ss03},
+ }
diff --git a/fonts/firamath/firamath-specimen.pdf b/fonts/firamath/firamath-specimen.pdf
new file mode 100644
index 0000000000..8fc17a113a
--- /dev/null
+++ b/fonts/firamath/firamath-specimen.pdf
Binary files differ
diff --git a/fonts/firamath/firamath-specimen.tex b/fonts/firamath/firamath-specimen.tex
new file mode 100644
index 0000000000..d9986b32bc
--- /dev/null
+++ b/fonts/firamath/firamath-specimen.tex
@@ -0,0 +1,502 @@
+\documentclass{article}
+
+\PassOptionsToPackage{log-declarations=false}{xparse}
+\PassOptionsToPackage{no-math}{fontspec}
+\PassOptionsToPackage{table}{xcolor}
+\PassOptionsToPackage{titles}{tocloft}
+%\PassOptionsToPackage{showframe}{geometry}
+\usepackage{%
+ expl3,xparse,
+ ctexheading,geometry,fancyhdr,tocloft,fontspec,xcolor,hologo,
+ array,longtable,multirow,hhline,
+ hyperref,zref-totpages}
+
+\makeatletter\ExplSyntaxOn
+
+\seq_const_from_clist:Nn \c_@@_unicode_reserved_seq
+ {
+ % Greek and Coptic
+ 378, 379, 380, 381, 382, 383, 38B, 38D, 3A2,
+ % General Punctuation
+ 2065,
+ % Superscripts and Subscripts
+ 2072, 2073, 208F, 209D, 209E, 209F,
+ % Currency Symbols
+ 20C0, 20C1, 20C2, 20C3, 20C4, 20C5, 20C6, 20C7, 20C8, 20C9,
+ 20CA, 20CB, 20CC, 20CD, 20CE, 20CF,
+ % Combining Diacritical Marks for Symbols
+ 20F1, 20F2, 20F3, 20F4, 20F5, 20F6, 20F7, 20F8, 20F9, 20FA,
+ 20FB, 20FC, 20FD, 20FE, 20FF,
+ % Number Forms
+ 218C, 218D, 218E, 218F,
+ % Control Pictures
+ 2427, 2428, 2429, 242A, 242B, 242C, 242D, 242E, 242F, 2430,
+ 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 243A,
+ 243B, 243C, 243D, 243E, 243F,
+ % Optical Character Recognition
+ 244B, 244C, 244D, 244E, 244F, 2450, 2451, 2452, 2453, 2454,
+ 2455, 2456, 2457, 2458, 2459, 245A, 245B, 245C, 245D, 245E,
+ 245F,
+ % Miscellaneous Symbols and Arrows
+ 2B74, 2B75, 2B96, 2B97, 2BC9, 2BFF,
+ % Alphabetic Presentation Forms
+ FB07, FB08, FB09, FB0A, FB0B, FB0C, FB0D, FB0E, FB0F, FB10,
+ FB11, FB12, FB18, FB19, FB1A, FB1B, FB1C, FB37, FB3D, FB3F,
+ FB42, FB45,
+ % Arabic Presentation Forms-B
+ FE75, FEFD, FEFE,
+ % Mathematical Alphanumeric Symbols
+ 1D455, 1D49D, 1D4A0, 1D4A1, 1D4A3, 1D4A4, 1D4A7, 1D4A8, 1D4AD, 1D4BA,
+ 1D4BC, 1D4C4, 1D506, 1D50B, 1D50C, 1D515, 1D51D, 1D53A, 1D53F, 1D545,
+ 1D547, 1D548, 1D549, 1D551, 1D6A6, 1D6A7, 1D7CC, 1D7CD
+ }
+\seq_const_from_clist:Nn \c_@@_unicode_control_seq
+ {
+ % C0 Controls and Basic Latin
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
+ 7F,
+ % C1 Controls and Latin-1 Supplement
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 8A, 8B, 8C, 8D, 8E, 8F,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F
+ }
+
+% Require `\c_@@_glyph_non_unicode_with_type_seq`
+\file_input:n { firamath-glyph-list.tex }
+
+% #1 = symbol index
+\cs_new_protected:Npn \@@_symbol:n #1
+ { \tex_char:D \int_eval:n {#1} \scan_stop: }
+\prg_new_protected_conditional:Npnn \@@_if_char_exist:n #1 { T, F, TF }
+ {
+ \etex_iffontchar:D \tex_font:D \int_eval:n {#1} \scan_stop:
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+% #1 = glyph name
+% See https://tex.stackexchange.com/q/420167
+\cs_new_protected:Npn \@@_glyph_from_name:n #1
+ { \tex_XeTeXglyph:D \tex_XeTeXglyphindex:D "#1" \scan_stop: }
+
+% Centering with fixed width
+\newcolumntype {C} [1] { > { \centering \arraybackslash } m {#1} }
+% Empty array rule
+\newcolumntype {E} { ! { \skip_horizontal:N \arrayrulewidth } }
+
+\definecolor { encoding @ bg } { HTML } { BDBDBD }
+\definecolor { reserved @ bg } { HTML } { EA4335 }
+\definecolor { control @ bg } { HTML } { 4285F4 }
+\definecolor { nochar @ text } { HTML } { E0E0E0 }
+
+\cs_set:Npn \NumberStyle { \ttfamily \footnotesize }
+\cs_set:Npn \GlyphStyle { \SymbolFont \Large }
+\cs_set:Npn \EncodingStyle
+ { \ttfamily \fontsize { 4 } { 5 } \selectfont \cellcolor { encoding@bg } }
+
+\cs_set:Npn \GlyphStrut { \@@_set_arstrut:nn { 20 pt } { 10 pt } }
+\cs_set:Npn \NonUnicodeGlyphStrut { \@@_set_arstrut:nn { 32 pt } { 20 pt } }
+\cs_set:Npn \NonUnicodeHighGlyphStrut { \@@_set_arstrut:nn { 64 pt } { 40 pt } }
+\cs_set:Npn \EncodingStrut { \@@_set_arstrut:nn { 4.5 pt } { 1 pt } }
+
+\dim_const:Nn \c_@@_cell_wd_dim { 30 pt }
+\dim_const:Nn \c_@@_column_sep_dim { 0 pt }
+\dim_const:Nn \c_@@_row_number_ht_dim { 20 pt }
+\dim_const:Nn \c_@@_row_number_sep_dim { 6 pt }
+\dim_const:Nn \c_@@_non_unicode_wd_dim { 87 pt }
+
+% The total number of glyphs.
+\newcounter { glyph }
+\setcounter { glyph } { -1 }
+
+% The main function.
+\NewDocumentCommand \fonttable { s m g }
+ {
+ \IfBooleanTF {#1}
+ { \@@_non_unicode:nn {#2} }
+ { \@@_unicode:nn {#2} {#3} }
+ \clearpage
+ }
+
+% #1 = section name
+% #2 = begin/end encoding
+\cs_new_protected:Npn \@@_unicode:nn #1#2
+ {
+ \tl_set:Nn \l_@@_glyph_count_tl
+ { \ref* { count: glyph @ #1 } / \ref* { count: codepoint @ #1 } }
+ \section { #1 ~ (\tl_use:N \l_@@_glyph_count_tl) }
+ \cs_set_eq:NN \@@_left_foot: \@@_left_foot_unicode:
+ \@@_parse_encoding:n {#2}
+ \int_gzero:N \g_@@_glyph_int
+ \int_gzero:N \g_@@_code_point_int
+ \@@_make_table:
+ \newcounter { glyph @ #1 }
+ \newcounter { codepoint @ #1 }
+ \int_set:cn { c @ glyph @ #1 } { \g_@@_glyph_int - 1 }
+ \int_set:cn { c @ codepoint @ #1 } { \g_@@_code_point_int - 1 }
+ \refstepcounter { glyph @ #1 } \label { count: glyph @ #1 }
+ \refstepcounter { codepoint @ #1 } \label { count: codepoint @ #1 }
+ }
+\tl_new:N \l_@@_glyph_count_tl
+\int_new:N \g_@@_glyph_int
+\int_new:N \g_@@_code_point_int
+
+\cs_new_protected:Npn \@@_left_foot_unicode:
+ {
+ \mode_leave_vertical:
+ \footnotesize
+ \@@_color_box:nn { reserved @ bg } Reserved~ Code~ Points, \quad
+ \@@_color_box:nn { control @ bg } Control~ Codes.
+ }
+\cs_new_protected:Npn \@@_color_box:nn #1#2
+ {
+ \group_begin:
+ \color {#1} \rule [ -2 pt ] { 10 pt } { 10 pt }
+ \group_end:
+ \ = \ #2
+ }
+
+% #1 = `begin` - `end`
+\cs_new_protected:Npn \@@_parse_encoding:n #1
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { - } {#1}
+ \int_set:Nn \l_@@_begin_int { \seq_item:Nn \l_tmpa_seq { 1 } }
+ \int_set:Nn \l_@@_end_int { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+\int_new:N \l_@@_begin_int
+\int_new:N \l_@@_end_int
+
+\cs_new_protected:Npn \@@_make_table:
+ {
+ \longtable { r | * { 16 } { C { \c_@@_cell_wd_dim } | } }
+ \@@_long_table_head:
+ \@@_multi_row:nn
+ { \int_use:N \l_@@_begin_int }
+ { \int_use:N \l_@@_end_int }
+ \endlongtable
+ }
+\dim_set_eq:NN \tabcolsep \c_@@_column_sep_dim
+
+% These functions must be expandable:
+% \@@_long_table_head:, \@@_first_row:,
+% \@@_multi_row:nn, \@@_row:n, \@@_div_sixteen:n,
+% \@@_hline:, \@@_set_arstrut:nn, \@@_restore_arstrut:, etc.,
+% so that `noalign` can work properly.
+% Hence we use `\cs_new:Npn` and `\int_step_function:nnnN` here.
+
+\cs_new:Npn \@@_long_table_head:
+ {
+ % It's very hackable here!
+ % The dimension is measured by hand. Not universal at all.
+ \@@_set_arstrut:nn { 0 pt } { 0 pt }
+ \multicolumn { 17 } { c } { \rule { 0 pt } { 1.29 cm } } \\
+ \@@_first_row:
+ \endhead
+ \@@_first_row:
+ \endfirsthead
+ }
+
+\cs_new:Npn \@@_first_row:
+ {
+ \multicolumn { 17 } { r }
+ {
+ \tabular
+ {
+ % Skip row number
+ r |
+ * { 15 } { C { \c_@@_cell_wd_dim } E }
+ C { \c_@@_cell_wd_dim } |
+ }
+ % I don't know why there are so many `#`.
+ \int_step_inline:nnn { 0 } { 15 }
+ { & \@@_first_row_cell:n {####1} }
+ \endtabular
+ }
+ \\*
+ \@@_hline:
+ }
+\cs_new_protected:Npn \@@_first_row_cell:n #1
+ { \NumberStyle \int_to_Hex:n {#1} }
+
+\cs_new:Npn \@@_multi_row:nn #1#2
+ {
+ \int_step_function:nnnN
+ { \@@_div_sixteen:n {#1} * 16 }
+ { 16 }
+ { (\@@_div_sixteen:n {#2} + 1) * 16 - 1 }
+ \@@_row:n
+ }
+\cs_new:Npn \@@_div_sixteen:n #1
+ { \int_div_truncate:nn {#1} { 16 } }
+
+\cs_new:Npn \@@_row:n #1
+ {
+ % Glyph row
+ \GlyphStrut
+ % Row number
+ \multirow { 2 } * { \@@_row_nummber:n {#1} }
+ \int_step_inline:nnn {#1} { #1 + 15 }
+ { & \@@_glyph:n {##1} }
+ \\*
+ \@@_restore_arstrut:
+ % Encoding row
+ \@@_hline:
+ \EncodingStrut
+ \int_step_inline:nnn {#1} { #1 + 15 }
+ { & \@@_encoding:n {##1} }
+ \\
+ \@@_hline:
+ }
+
+% To skip the first column (i.e. row index).
+% LaTeX3 syntax makes `~` to equal space, so we need to change its catcode temporarily.
+\group_begin:
+ \char_set_catcode_active:N \~
+ \cs_new:Npn \@@_hline:
+ { \hhline { ~ | * { 16 } { - } } }
+\group_end:
+
+\cs_new:Npn \@@_set_arstrut:nn #1#2
+ {
+ \tex_noalign:D
+ {
+ \group_begin:
+ % Store the old strutbox
+ \box_gset_eq:NN \l_@@_old_arstrut_box \@arstrutbox
+ % Change the dimensions of \@arstrutbox
+ \hbox_set_to_wd:Nnn \l_tmpa_box { \c_zero_dim } { }
+ \box_set_ht:Nn \l_tmpa_box {#1}
+ \box_set_dp:Nn \l_tmpa_box {#2}
+ \hbox_gset:Nn \@arstrutbox { \box_use:N \l_tmpa_box }
+ \group_end:
+ }
+ }
+\cs_new:Npn \@@_restore_arstrut:
+ {
+ \tex_noalign:D
+ { \box_gset_eq:NN \@arstrutbox \l_@@_old_arstrut_box }
+ }
+\box_new:N \l_@@_old_arstrut_box
+
+\cs_new_protected:Npn \@@_row_nummber:n #1
+ {
+ \raisebox { \dim_use:N \c_@@_row_number_ht_dim }
+ {
+ \NumberStyle
+ \int_set:Nn \l_tmpa_int { #1 / 16 }
+ \int_compare:nNnTF { \l_tmpa_int } < { "10 }
+ { 00 }
+ {
+ \int_compare:nNnT { \l_tmpa_int } < { "100 }
+ { 0 }
+ }
+ \int_to_Hex:n { \l_tmpa_int }
+ \skip_horizontal:N \c_@@_row_number_sep_dim
+ }
+ }
+
+\cs_new_protected:Npn \@@_glyph:n #1
+ {
+ \tl_set:Nx \l_tmpa_tl { \int_to_Hex:n {#1} }
+ \seq_if_in:NVTF \c_@@_unicode_reserved_seq \l_tmpa_tl
+ { \cellcolor { reserved@bg } }
+ {
+ \seq_if_in:NVTF \c_@@_unicode_control_seq \l_tmpa_tl
+ { \cellcolor { control@bg } }
+ {
+ % It must be outside `\@@_if_char_exist`
+ \GlyphStyle
+ \@@_if_char_exist:nTF {#1}
+ {
+ \@@_symbol:n {#1}
+ \refstepcounter { glyph }
+ \int_gincr:N \g_@@_glyph_int
+ }
+ {
+ \normalfont
+ \int_compare:nNnTF {#1} < { "10000 }
+ { \BMPFallbackFont } { \SMPFallbackFont }
+ \textcolor { nochar@text } { \@@_symbol:n {#1} }
+ }
+ \int_gincr:N \g_@@_code_point_int
+ }
+ }
+ }
+
+\cs_new_protected:Npn \@@_encoding:n #1
+ {
+ \group_begin:
+ \EncodingStyle
+ \int_compare:nNnTF {#1} < { "10 }
+ { 000 }
+ {
+ \int_compare:nNnTF {#1} < { "100 }
+ { 00 }
+ {
+ \int_compare:nNnT {#1} < { "1000 }
+ { 0 }
+ }
+ }
+ \int_to_Hex:n {#1}
+ \group_end:
+ }
+
+% #1 = section name
+% #2 = non-unicode data file
+\cs_new_protected:Npn \@@_non_unicode:nn #1#2
+ {
+ \tl_set:Nn \l_@@_glyph_count_tl { \ref* { count: glyph @ non-unicode } }
+ \section { #1 ~ (\tl_use:N \l_@@_glyph_count_tl) }
+ \cs_set_eq:NN \@@_left_foot: \prg_do_nothing:
+ \int_gzero:N \g_@@_non_unicode_glyph_int
+ \@@_non_unicode_print:
+ \newcounter { glyph @ non-unicode }
+ \int_set:cn { c @ glyph @ non-unicode } { \g_@@_non_unicode_glyph_int - 1 }
+ \refstepcounter { glyph @ non-unicode } \label { count: glyph @ non-unicode }
+ \refstepcounter { glyph } \label { count: glyph }
+ }
+\int_new:N \g_@@_non_unicode_glyph_int
+
+\cs_new_protected:Npn \@@_non_unicode_print:
+ {
+ \seq_map_inline:Nn \c_@@_glyph_non_unicode_with_type_seq
+ { \@@_non_unicode_print_class:nn ##1 }
+ }
+
+% #1 = class
+% #2 = clist of glyph names
+\cs_new_protected:Npn \@@_non_unicode_print_class:nn #1#2
+ {
+ \subsection { #1 ~ (\clist_count:n {#2}) }
+ \clist_map_inline:nn {#2}
+ {
+ \@@_non_unicode_cell:n {##1}
+ \refstepcounter { glyph }
+ \int_gincr:N \g_@@_non_unicode_glyph_int
+ }
+ }
+
+\cs_new_protected:Npn \@@_non_unicode_cell:n #1
+ {
+ \tabular { | C { \c_@@_non_unicode_wd_dim } | }
+ % Glyph
+ \hline
+ \NonUnicodeGlyphStrut \GlyphStyle
+ \@@_glyph_from_name:n {#1}
+ \\
+ \@@_restore_arstrut:
+ % Encoding (glyph name)
+ \hline
+ \EncodingStrut \EncodingStyle
+ #1
+ \\
+ \@@_restore_arstrut:
+ \hline
+ \endtabular
+ % A space allowing line break
+ \
+ }
+
+% Header and footer.
+\fancyhf { }
+\fancyhead [ R ] { \thepage }
+\fancyfoot [ L ]
+ {
+ \footnotesize
+ \int_compare:nNnTF { \int_use:c { c@page } } = { \ztotpages }
+ { \@@_left_foot_last_page: } { \@@_left_foot: }
+ }
+\fancyfoot [ R ]
+ {
+ \footnotesize \itshape
+ Copyright~ \copyright{}~ 2018,~ 2019~ by~ Xiangdong~ Zeng
+ }
+% `\headrulewidth` is not a dim variable.
+\cs_set:Npn \headrulewidth { 0 pt }
+\cs_new_protected:Npn \@@_left_foot_last_page:
+ {
+ \itshape
+ Other~ fonts~ used~ in~ this~ document:~
+ FiraGO,~ Fira~ Code,~ GNU~ Unifont. \\
+ Colors~ are~ inspired~ by~ Google~ Material~ Design.
+ }
+
+\ExplSyntaxOff\makeatother
+
+\geometry{a4paper, hmargin=1cm, vmargin=2.5cm}
+\ctexset{section/format=\Large\bfseries\centering}
+\hypersetup{bookmarksnumbered=true, colorlinks=true,
+ linkcolor=[HTML]34A853, urlcolor=[HTML]E91E63}
+
+\setmainfont{FiraGO}[BoldFont=* SemiBold, Numbers=Monospaced]
+\setmonofont{Fira Code}[UprightFont=* Light, BoldFont=* Regular]
+
+\newfontface\BMPFallbackFont{Unifont}
+\newfontface\SMPFallbackFont{Unifont Upper}
+\newfontface\SymbolFont{Fira Math Regular}
+
+\title{\bfseries\huge Fira Math\\
+ \itshape\Large Sans-serif font with Unicode math support}
+\author{Xiangdong Zeng}
+\date{2019/06/03\quad v0.3.2}
+
+\begin{document}
+
+\newgeometry{hmargin=1.5in, vmargin=1.0in}
+
+\maketitle
+
+\begin{abstract}
+ \href{https://github.com/firamath/firamath}{Fira Math} is a sans-serif font
+ with Unicode math support. The design of this font is based on
+ \href{https://github.com/mozilla/Fira}{Fira Sans} and
+ \href{https://bboxtype.com/typefaces/FiraGO}{FiraGO}. Fira Math is distributed
+ in OpenType format, and can be used with
+ \href{https://www.ctan.org/pkg/unicode-math}{unicode-math} package under
+ \hologo{XeTeX} or \hologo{LuaTeX}. There are \ref*{count:glyph} glyphs in
+ Fira Math at present.
+
+ Fira Math is licensed under the
+ \href{http://scripts.sil.org/OFL}{SIL Open Font License}, Version 1.1.
+\end{abstract}
+
+\setlength\cftbeforesubsecskip{1ex}
+\tableofcontents
+
+\clearpage
+
+\restoregeometry
+\pagestyle{fancy}
+
+\fonttable{C0 Controls and Basic Latin}{"0-"7F}
+\fonttable{C1 Controls and Latin-1 Supplement}{"80-"FF}
+\fonttable{Latin Extended-A}{"100-"17F}
+\fonttable{Latin Extended-B}{"180-"24F}
+\fonttable{Combining Diacritical Marks}{"300-"36F}
+\fonttable{Greek and Coptic}{"370-"3FF}
+\fonttable{Cyrillic}{"400-"4FF}
+\fonttable{General Punctuation}{"2000-"206F}
+\fonttable{Currency Symbols}{"20A0-"20CF}
+\fonttable{Combining Diacritical Marks for Symbols}{"20D0-"20FF}
+\fonttable{Letterlike Symbols}{"2100-"214F}
+\fonttable{Number Forms}{"2150-"218F}
+\fonttable{Arrows}{"2190-"21FF}
+\fonttable{Mathematical Operators}{"2200-"22FF}
+\fonttable{Miscellaneous Technical}{"2300-"23FF}
+\fonttable{Block Elements}{"2580-"259F}
+\fonttable{Geometric Shapes}{"25A0-"25FF}
+\fonttable{Miscellaneous Symbols}{"2600-"26FF}
+\fonttable{Miscellaneous Mathematical Symbols-A}{"27C0-"27EF}
+\fonttable{Supplemental Arrows-A}{"27F0-"27FF}
+\fonttable{Supplemental Arrows-B}{"2900-"297F}
+\fonttable{Miscellaneous Mathematical Symbols-B}{"2980-"29FF}
+\fonttable{Supplemental Mathematical Operators}{"2A00-"2AFF}
+\fonttable{Miscellaneous Symbols and Arrows}{"2B00-"2BFF}
+\fonttable{Alphabetic Presentation Forms}{"FB00-"FB4F}
+\fonttable{Arabic Presentation Forms-B}{"FE70-"FEFF}
+\fonttable{Mathematical Alphanumeric Symbols}{"1D400-"1D7FF}
+\fonttable{Geometric Shapes Extended}{"1F780-"1F7FF}
+\fonttable*{Non-Unicode Glyphs}
+
+\end{document}