![]() Summary: - Some of the symbols were of the wrong type (I wrote some scripts to search the TeX source for the correct types for the symbols; I should put these somewhere for future reference) - Some of the symbols had the incorrect unicode replacement value. I copied what MathJax used for the ones that were wrong. In one case, something had the wrong font, so I used the one MathJax used. - Some symbols were duplicates of existing symbols, those were removed. - Some symbols are text symbols that aren't usable in math mode (maybe they should be text symbols?) (`\aa`, `\AA`, etc.) - Some symbols didn't seem to work/I couldn't figure out how to make them work. For example, `\imath` and `\jmath` require an italic font in KaTeX_Main, but we don't have the ability to do that yet. `\dots` was removed because it's not an ordinary symbol. `\*vert` were removed because I don't understand what they're for, nor what they should look like. - Some symbols weren't actually in the KaTeX fonts; to make sure they don't fall back to something weird, I removed them. (`\S`, `\pounds`, etc.) Test plan: - `make test` - See that all of the symbols in: `\equiv \prec \succ \sim \perp \preceq \succeq \simeq \mid \ll \gg \asymp \parallel \bowtie \smile \sqsubseteq \sqsupseteq \doteq \frown \ni \propto \vdash \dashv \owns \ldotp \cdotp \aleph \forall \hbar \exists \nabla \flat \ell \natural \clubsuit \wp \sharp \diamondsuit \Re \heartsuit \Im \spadesuit \rmoustache \lmoustache \rgroup \lgroup \mp \ominus \uplus \sqcap \ast \sqcup \bigcirc \bullet \ddagger \wr \amalg \longleftarrow \Leftarrow \Longleftarrow \longrightarrow \Rightarrow \Longrightarrow \leftrightarrow \longleftrightarrow \Leftrightarrow \Longleftrightarrow \mapsto \longmapsto \nearrow \hookleftarrow \hookrightarrow \searrow \leftharpoonup \rightharpoonup \swarrow \leftharpoondown \rightharpoondown \nwarrow \rightleftharpoons \nless \nleqslant \nleqq \lneq \lneqq \lvertneqq \lnsim \lnapprox \nprec \npreceq \precnsim \precnapprox \nsim \nshortmid \nmid \nvdash \nvDash \ntriangleleft \ntrianglelefteq \subsetneq \varsubsetneq \subsetneqq \varsubsetneqq \ngtr \ngeqslant \ngeqq \gneq \gneqq \gvertneqq \gnsim \gnapprox \nsucc \nsucceq \succnsim \succnapprox \ncong \nshortparallel \nparallel \nVDash \ntriangleright \ntrianglerighteq \nsupseteqq \supsetneq \varsupsetneq \supsetneqq \varsupsetneqq \nVdash \precneqq \succneqq \nsubseteqq \unlhd \unrhd \nleftarrow \nrightarrow \nLeftarrow \nRightarrow \nleftrightarrow \nLeftrightarrow \vartriangle \hslash \triangledown \lozenge \circledS \measuredangle \nexists \mho \Finv \Game \Bbbk \backprime \blacktriangle \blacktriangledown \blacksquare \blacklozenge \bigstar \sphericalangle \complement \eth \diagup \diagdown \square \Box \Diamond \beth \daleth \gimel \digamma \varkappa \ulcorner \urcorner \llcorner \lrcorner \leqq \leqslant \eqslantless \lesssim \lessapprox \approxeq \lessdot \lll \lessgtr \lesseqgtr \lesseqqgtr \doteqdot \risingdotseq \fallingdotseq \backsim \backsimeq \subseteqq \Subset \sqsubset \preccurlyeq \curlyeqprec \precsim \precapprox \vartriangleleft \trianglelefteq \vDash \Vvdash \smallsmile \smallfrown \bumpeq \Bumpeq \geqq \geqslant \eqslantgtr \gtrsim \gtrapprox \gtrdot \ggg \gtrless \gtreqless \gtreqqless \eqcirc \circeq \triangleq \thicksim \thickapprox \supseteqq \Supset \sqsupset \succcurlyeq \curlyeqsucc \succsim \succapprox \vartriangleright \trianglerighteq \Vdash \shortmid \shortparallel \between \pitchfork \varpropto \blacktriangleleft \therefore \backepsilon \blacktriangleright \because \llless \gggtr \lhd \rhd \eqsim \Join \Doteq \dotplus \smallsetminus \Cap \Cup \doublebarwedge \boxminus \boxplus \divideontimes \ltimes \rtimes \leftthreetimes \rightthreetimes \curlywedge \curlyvee \circleddash \circledast \centerdot \intercal \doublecap \doublecup \boxtimes \dashrightarrow \dashleftarrow \leftleftarrows \leftrightarrows \Lleftarrow \twoheadleftarrow \leftarrowtail \looparrowleft \leftrightharpoons \curvearrowleft \circlearrowleft \Lsh \upuparrows \upharpoonleft \downharpoonleft \multimap \leftrightsquigarrow \rightrightarrows \rightleftarrows \twoheadrightarrow \rightarrowtail \looparrowright \curvearrowright \circlearrowright \Rsh \downdownarrows \upharpoonright \downharpoonright \rightsquigarrow \leadsto \Rrightarrow \restriction \yen \dag \ddag` look the same as they do in LaTeX and don't print any warnings about unknown font metrics. Auditors: alpert |
||
---|---|---|
.. | ||
extract_tfms.py | ||
extract_ttfs.py | ||
mapping.pl | ||
parse_tfm.py | ||
README.md | ||
replace_line.py |
How to generate new metrics
There are several requirements for generating the metrics used by KaTeX.
-
You need to have an installation of TeX which supports kpathsea. You can check this by running
tex --version
, and seeing if it has a line that looks likekpathsea version 6.2.0
-
You need the JSON module for perl. You can install this either from CPAN or with your package manager.
-
You need the python fontforge module. This is probably either installed with fontforge or can be installed from your package manager.
Once you have these things, run
make metrics
which should generate new metrics and place them into fontMetrics.js
. You're
done!