katex 0.12.0 → 0.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/LICENSE +1 -1
- package/README.md +8 -7
- package/contrib/auto-render/auto-render.js +12 -19
- package/contrib/auto-render/index.html +9 -3
- package/contrib/auto-render/splitAtDelimiters.js +44 -61
- package/contrib/auto-render/test/auto-render-spec.js +88 -52
- package/contrib/copy-tex/README.md +5 -9
- package/contrib/copy-tex/copy-tex.css +0 -3
- package/contrib/mathtex-script-type/README.md +5 -5
- package/contrib/mhchem/README.md +4 -2
- package/contrib/render-a11y-string/render-a11y-string.js +31 -2
- package/contrib/render-a11y-string/test/render-a11y-string-spec.js +23 -0
- package/dist/README.md +8 -7
- package/dist/contrib/auto-render.js +148 -171
- package/dist/contrib/auto-render.min.js +1 -1
- package/dist/contrib/auto-render.mjs +91 -95
- package/dist/contrib/copy-tex.css +3 -3
- package/dist/contrib/copy-tex.js +11 -108
- package/dist/contrib/copy-tex.min.css +1 -1
- package/dist/contrib/copy-tex.min.js +1 -1
- package/dist/contrib/copy-tex.mjs +21 -20
- package/dist/contrib/mathtex-script-type.js +66 -91
- package/dist/contrib/mathtex-script-type.min.js +1 -1
- package/dist/contrib/mathtex-script-type.mjs +3 -3
- package/dist/contrib/mhchem.js +70 -95
- package/dist/contrib/mhchem.min.js +1 -1
- package/dist/contrib/mhchem.mjs +2 -2
- package/dist/contrib/render-a11y-string.js +97 -92
- package/dist/contrib/render-a11y-string.min.js +1 -1
- package/dist/contrib/render-a11y-string.mjs +86 -45
- package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/katex.css +66 -10
- package/dist/katex.js +2714 -1950
- package/dist/katex.min.css +1 -1
- package/dist/katex.min.js +1 -1
- package/dist/katex.mjs +3162 -2372
- package/katex.js +4 -3
- package/package.json +69 -59
- package/src/Lexer.js +4 -2
- package/src/MacroExpander.js +117 -37
- package/src/Options.js +2 -2
- package/src/ParseError.js +1 -1
- package/src/Parser.js +100 -159
- package/src/Settings.js +2 -2
- package/src/Style.js +4 -4
- package/src/Token.js +1 -1
- package/src/buildCommon.js +12 -5
- package/src/buildHTML.js +11 -0
- package/src/buildMathML.js +6 -0
- package/src/defineEnvironment.js +0 -3
- package/src/defineFunction.js +15 -22
- package/src/delimiter.js +61 -57
- package/src/domTree.js +1 -1
- package/src/environments/array.js +223 -35
- package/src/environments/cd.js +312 -0
- package/src/fontMetrics.js +1 -1
- package/src/fontMetricsData.js +2076 -0
- package/src/fonts/.gitignore +9 -0
- package/src/fonts/Makefile +139 -0
- package/src/fonts/default.cfg +20 -0
- package/src/fonts/generate_fonts.py +61 -0
- package/src/fonts/lib/Extra.otf +0 -0
- package/src/fonts/lib/Space.ttx +234 -0
- package/src/fonts/makeBlacker +49 -0
- package/src/fonts/makeFF +2003 -0
- package/src/fonts/xbbold.mf +182 -0
- package/src/fonts.less +64 -0
- package/src/functions/accent.js +3 -2
- package/src/functions/arrow.js +8 -2
- package/src/functions/color.js +4 -4
- package/src/functions/cr.js +7 -25
- package/src/functions/def.js +50 -24
- package/src/functions/delimsizing.js +8 -0
- package/src/functions/enclose.js +80 -12
- package/src/functions/environment.js +1 -1
- package/src/functions/font.js +3 -4
- package/src/functions/genfrac.js +36 -11
- package/src/functions/hbox.js +39 -0
- package/src/functions/kern.js +1 -0
- package/src/functions/mathchoice.js +1 -0
- package/src/functions/mclass.js +2 -1
- package/src/functions/op.js +3 -7
- package/src/functions/operatorname.js +1 -1
- package/src/functions/raisebox.js +0 -1
- package/src/functions/styling.js +1 -0
- package/src/functions/supsub.js +1 -3
- package/src/functions/symbolsOrd.js +0 -2
- package/src/functions/text.js +2 -3
- package/src/functions/vcenter.js +44 -0
- package/src/functions.js +3 -0
- package/src/katex.less +69 -16
- package/src/macros.js +42 -6
- package/src/mathMLTree.js +16 -1
- package/src/metrics/.gitignore +1 -0
- package/src/metrics/README.md +23 -0
- package/src/metrics/extract_tfms.py +114 -0
- package/src/metrics/extract_ttfs.py +119 -0
- package/src/metrics/format_json.py +28 -0
- package/src/metrics/mapping.pl +1224 -0
- package/src/metrics/parse_tfm.py +211 -0
- package/src/parseNode.js +29 -1
- package/src/parseTree.js +6 -0
- package/src/stretchy.js +12 -5
- package/src/svgGeometry.js +33 -4
- package/src/symbols.js +5 -3
- package/src/types.js +3 -2
- package/src/unicodeScripts.js +5 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!gmake
|
|
2
|
+
#
|
|
3
|
+
# Version: Apache License 2.0
|
|
4
|
+
#
|
|
5
|
+
# Copyright (c) 2013 MathJax Project
|
|
6
|
+
# Copyright (c) 2013 The MathJax Consortium
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
CUSTOM=custom.cfg
|
|
22
|
+
|
|
23
|
+
-include $(CUSTOM)
|
|
24
|
+
|
|
25
|
+
MFTRACE_MODIFIED=lib/mftrace-modified
|
|
26
|
+
|
|
27
|
+
all: config fonts
|
|
28
|
+
|
|
29
|
+
$(CUSTOM):
|
|
30
|
+
@cp default.cfg $(CUSTOM);
|
|
31
|
+
|
|
32
|
+
$(CUSTOM).pl: $(CUSTOM)
|
|
33
|
+
@echo "Creating Perl config file..."
|
|
34
|
+
@cp $(CUSTOM) $(CUSTOM).pl
|
|
35
|
+
@echo >> $(CUSTOM).pl # ensure that the config file ends by a new line
|
|
36
|
+
@echo "MFTRACE_PATH=`$(WHICH) $(MFTRACE)`" >> $(CUSTOM).pl
|
|
37
|
+
@$(SED) -i "s|^\([A-Z_0-9]*\)=\(.*\)|$$\1='\2';|" $(CUSTOM).pl
|
|
38
|
+
@echo "1;" >> $(CUSTOM).pl
|
|
39
|
+
|
|
40
|
+
.PHONY: config
|
|
41
|
+
config: $(CUSTOM).pl
|
|
42
|
+
|
|
43
|
+
blacker: $(MFTRACE_MODIFIED)
|
|
44
|
+
$(MFTRACE_MODIFIED):
|
|
45
|
+
$(PERL) makeBlacker 15 # values between 10 and 30 seem best
|
|
46
|
+
|
|
47
|
+
pfa: $(MFTRACE_MODIFIED)
|
|
48
|
+
@echo "cmr10"
|
|
49
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmr10
|
|
50
|
+
|
|
51
|
+
@echo "cmmi10"
|
|
52
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --encoding $(TETEXENCODING)/aae443f0.enc --simplify cmmi10
|
|
53
|
+
|
|
54
|
+
@echo "cmsy10"
|
|
55
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --encoding $(TETEXENCODING)/10037936.enc --simplify cmsy10
|
|
56
|
+
|
|
57
|
+
@echo "cmex10"
|
|
58
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmex10
|
|
59
|
+
|
|
60
|
+
@echo "cmbx10"
|
|
61
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmbx10
|
|
62
|
+
|
|
63
|
+
@echo "cmbxti10"
|
|
64
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmbxti10
|
|
65
|
+
|
|
66
|
+
@echo "cmti10"
|
|
67
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmti10
|
|
68
|
+
|
|
69
|
+
@echo "msam10"
|
|
70
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify --encoding $(TETEXENCODING)/10037936.enc msam10
|
|
71
|
+
|
|
72
|
+
@echo "msbm10"
|
|
73
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify --encoding $(TETEXENCODING)/10037936.enc msbm10
|
|
74
|
+
|
|
75
|
+
@echo "cmmib10"
|
|
76
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --encoding $(TETEXENCODING)/aae443f0.enc --simplify cmmib10
|
|
77
|
+
|
|
78
|
+
@echo "cmbsy10"
|
|
79
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --encoding $(TETEXENCODING)/10037936.enc --simplify cmbsy10
|
|
80
|
+
|
|
81
|
+
@echo "cmtt10"
|
|
82
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmtt10
|
|
83
|
+
|
|
84
|
+
@echo "cmss10"
|
|
85
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmss10
|
|
86
|
+
@echo "cmssi10"
|
|
87
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmssi10
|
|
88
|
+
@echo "cmssbx10"
|
|
89
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify cmssbx10
|
|
90
|
+
|
|
91
|
+
@echo "eufm10"
|
|
92
|
+
cp "`$(KPSEWHICH) eufm10.pfb`" eufm10.pfb
|
|
93
|
+
@echo "eufb10"
|
|
94
|
+
cp "`$(KPSEWHICH) eufb10.pfb`" eufb10.pfb
|
|
95
|
+
|
|
96
|
+
# echo "eusm10"
|
|
97
|
+
# $(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify eusm10
|
|
98
|
+
# echo "eusb10"
|
|
99
|
+
# $(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify eusb10
|
|
100
|
+
|
|
101
|
+
@echo "rsfs10"
|
|
102
|
+
$(PYTHON) $(MFTRACE_MODIFIED) --magnification 1000 --simplify --encoding $(BASEENCODING)/tex256.enc rsfs10
|
|
103
|
+
|
|
104
|
+
mkdir -p pfa
|
|
105
|
+
rm -f pfa/*
|
|
106
|
+
mv *.pfa pfa
|
|
107
|
+
mv *.pfb pfa
|
|
108
|
+
|
|
109
|
+
ff: pfa
|
|
110
|
+
mkdir -p ff otf
|
|
111
|
+
rm -f ff/* otf/*
|
|
112
|
+
$(PERL) makeFF
|
|
113
|
+
|
|
114
|
+
.PHONY: fonts
|
|
115
|
+
fonts: ff
|
|
116
|
+
mkdir -p ttf woff woff2
|
|
117
|
+
rm -f ttf/* woff/* woff2/*
|
|
118
|
+
|
|
119
|
+
@for file in `ls ff/*.ff | $(SED) 's|ff/\(.*\)\.ff|\1|'`; do \
|
|
120
|
+
echo ""; \
|
|
121
|
+
echo $$file; \
|
|
122
|
+
$(FONTFORGE) -lang=ff -script ff/$$file.ff; \
|
|
123
|
+
\
|
|
124
|
+
echo "Hinting $$file"; \
|
|
125
|
+
if echo "$$file" | $(GREP) -q -e "Size[1-4]" -e "Typewriter"; then \
|
|
126
|
+
$(TTFAUTOHINT) --windows-compatibility --symbol ttf/$$file.ttf ttf/$$file.ttf.hinted; \
|
|
127
|
+
else \
|
|
128
|
+
$(TTFAUTOHINT) --windows-compatibility ttf/$$file.ttf ttf/$$file.ttf.hinted; \
|
|
129
|
+
fi; \
|
|
130
|
+
mv ttf/$$file.ttf.hinted ttf/$$file.ttf; \
|
|
131
|
+
\
|
|
132
|
+
echo "Generating $$file..."; \
|
|
133
|
+
$(PYTHON) generate_fonts.py ttf/$$file.ttf; \
|
|
134
|
+
done
|
|
135
|
+
|
|
136
|
+
clean:
|
|
137
|
+
rm -f $(CUSTOM).pl
|
|
138
|
+
rm -f $(MFTRACE_MODIFIED) lib/blacker.mf
|
|
139
|
+
rm -rf pfa ff otf ttf woff woff2
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Note: paths should be absolute, unless they point to programs in your $PATH.
|
|
2
|
+
|
|
3
|
+
##### Standard programs #####
|
|
4
|
+
GREP=grep
|
|
5
|
+
PERL=perl
|
|
6
|
+
PYTHON=python
|
|
7
|
+
SED=sed
|
|
8
|
+
WHICH=which
|
|
9
|
+
KPSEWHICH=kpsewhich
|
|
10
|
+
|
|
11
|
+
##### Font tools #####
|
|
12
|
+
# Most of the tools below are standard and should be available from your package manager.
|
|
13
|
+
FONTFORGE=fontforge
|
|
14
|
+
MFTRACE=mftrace
|
|
15
|
+
TTX=ttx
|
|
16
|
+
TTFAUTOHINT=ttfautohint
|
|
17
|
+
|
|
18
|
+
##### TeXLive Encoding
|
|
19
|
+
TETEXENCODING=/usr/share/texlive/texmf-texlive/fonts/enc/dvips/tetex/
|
|
20
|
+
BASEENCODING=/usr/share/texlive/texmf-texlive/fonts/enc/dvips/base/
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env python2
|
|
2
|
+
|
|
3
|
+
import sys
|
|
4
|
+
import os
|
|
5
|
+
import json
|
|
6
|
+
|
|
7
|
+
from fontTools.ttLib import TTFont, sfnt
|
|
8
|
+
from fontTools.misc.timeTools import timestampNow
|
|
9
|
+
sfnt.USE_ZOPFLI = True
|
|
10
|
+
|
|
11
|
+
if len(sys.argv) < 2:
|
|
12
|
+
print "Usage: %s <font file>" % sys.argv[0]
|
|
13
|
+
sys.exit(1)
|
|
14
|
+
|
|
15
|
+
font_file = sys.argv[1]
|
|
16
|
+
font_name = os.path.splitext(os.path.basename(font_file))[0]
|
|
17
|
+
|
|
18
|
+
# now or SOURCE_DATE_EPOCH, if present
|
|
19
|
+
timestamp = timestampNow()
|
|
20
|
+
|
|
21
|
+
font = TTFont(font_file, recalcBBoxes=False, recalcTimestamp=False)
|
|
22
|
+
|
|
23
|
+
font['head'].created = timestamp
|
|
24
|
+
font['head'].modified = timestamp
|
|
25
|
+
|
|
26
|
+
# remove fontforge timestamps
|
|
27
|
+
if 'FFTM' in font:
|
|
28
|
+
del font['FFTM']
|
|
29
|
+
|
|
30
|
+
# remove redundant GDEF table
|
|
31
|
+
if 'GDEF' in font:
|
|
32
|
+
del font['GDEF']
|
|
33
|
+
|
|
34
|
+
# remove Macintosh table
|
|
35
|
+
# https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html
|
|
36
|
+
font['name'].names = [record for record in font['name'].names if record.platformID != 1]
|
|
37
|
+
font['cmap'].tables = [table for table in font['cmap'].tables if table.platformID != 1]
|
|
38
|
+
|
|
39
|
+
font['name'].setName(unicode('Version ' + str(timestamp)), 5, 3, 1, 1033)
|
|
40
|
+
|
|
41
|
+
# fix OS/2 and hhea metrics
|
|
42
|
+
glyf = font['glyf']
|
|
43
|
+
ascent = int(max(glyf[c].yMax for c in font.getGlyphOrder() if hasattr(glyf[c], "yMax")))
|
|
44
|
+
descent = -int(min(glyf[c].yMin for c in font.getGlyphOrder() if hasattr(glyf[c], "yMin")))
|
|
45
|
+
|
|
46
|
+
font['OS/2'].usWinAscent = ascent
|
|
47
|
+
font['OS/2'].usWinDescent = descent
|
|
48
|
+
|
|
49
|
+
font['hhea'].ascent = ascent
|
|
50
|
+
font['hhea'].descent = -descent
|
|
51
|
+
|
|
52
|
+
# save TTF
|
|
53
|
+
font.save(font_file, reorderTables=None)
|
|
54
|
+
|
|
55
|
+
# save WOFF
|
|
56
|
+
font.flavor = 'woff'
|
|
57
|
+
font.save(os.path.join('woff', font_name + '.woff'), reorderTables=None)
|
|
58
|
+
|
|
59
|
+
# save WOFF2
|
|
60
|
+
font.flavor = 'woff2'
|
|
61
|
+
font.save(os.path.join('woff2', font_name + '.woff2'), reorderTables=None)
|
|
Binary file
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<ttFont sfntVersion="OTTO" ttLibVersion="3.28">
|
|
3
|
+
|
|
4
|
+
<GlyphOrder>
|
|
5
|
+
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
|
6
|
+
<GlyphID id="0" name=".notdef"/>
|
|
7
|
+
<GlyphID id="1" name="space"/>
|
|
8
|
+
<GlyphID id="2" name="uni00A0"/>
|
|
9
|
+
</GlyphOrder>
|
|
10
|
+
|
|
11
|
+
<head>
|
|
12
|
+
<!-- Most of this table will be recalculated by the compiler -->
|
|
13
|
+
<tableVersion value="1.0"/>
|
|
14
|
+
<fontRevision value="1.0"/>
|
|
15
|
+
<checkSumAdjustment value="0xa98c8795"/>
|
|
16
|
+
<magicNumber value="0x5f0f3cf5"/>
|
|
17
|
+
<flags value="00000000 00000011"/>
|
|
18
|
+
<unitsPerEm value="1000"/>
|
|
19
|
+
<created value="Sun Jan 24 23:04:46 2010"/>
|
|
20
|
+
<modified value="Sat May 14 12:26:22 2011"/>
|
|
21
|
+
<xMin value="50"/>
|
|
22
|
+
<yMin value="0"/>
|
|
23
|
+
<xMax value="200"/>
|
|
24
|
+
<yMax value="533"/>
|
|
25
|
+
<macStyle value="00000000 00000000"/>
|
|
26
|
+
<lowestRecPPEM value="8"/>
|
|
27
|
+
<fontDirectionHint value="2"/>
|
|
28
|
+
<indexToLocFormat value="0"/>
|
|
29
|
+
<glyphDataFormat value="0"/>
|
|
30
|
+
</head>
|
|
31
|
+
|
|
32
|
+
<hhea>
|
|
33
|
+
<tableVersion value="0x00010000"/>
|
|
34
|
+
<ascent value="800"/>
|
|
35
|
+
<descent value="-200"/>
|
|
36
|
+
<lineGap value="90"/>
|
|
37
|
+
<advanceWidthMax value="250"/>
|
|
38
|
+
<minLeftSideBearing value="50"/>
|
|
39
|
+
<minRightSideBearing value="50"/>
|
|
40
|
+
<xMaxExtent value="200"/>
|
|
41
|
+
<caretSlopeRise value="1"/>
|
|
42
|
+
<caretSlopeRun value="0"/>
|
|
43
|
+
<caretOffset value="0"/>
|
|
44
|
+
<reserved0 value="0"/>
|
|
45
|
+
<reserved1 value="0"/>
|
|
46
|
+
<reserved2 value="0"/>
|
|
47
|
+
<reserved3 value="0"/>
|
|
48
|
+
<metricDataFormat value="0"/>
|
|
49
|
+
<numberOfHMetrics value="1"/>
|
|
50
|
+
</hhea>
|
|
51
|
+
|
|
52
|
+
<maxp>
|
|
53
|
+
<tableVersion value="0x5000"/>
|
|
54
|
+
<numGlyphs value="3"/>
|
|
55
|
+
</maxp>
|
|
56
|
+
|
|
57
|
+
<OS_2>
|
|
58
|
+
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
|
|
59
|
+
will be recalculated by the compiler -->
|
|
60
|
+
<version value="2"/>
|
|
61
|
+
<xAvgCharWidth value="225"/>
|
|
62
|
+
<usWeightClass value="400"/>
|
|
63
|
+
<usWidthClass value="5"/>
|
|
64
|
+
<fsType value="00000000 00000000"/>
|
|
65
|
+
<ySubscriptXSize value="650"/>
|
|
66
|
+
<ySubscriptYSize value="700"/>
|
|
67
|
+
<ySubscriptXOffset value="0"/>
|
|
68
|
+
<ySubscriptYOffset value="140"/>
|
|
69
|
+
<ySuperscriptXSize value="650"/>
|
|
70
|
+
<ySuperscriptYSize value="700"/>
|
|
71
|
+
<ySuperscriptXOffset value="0"/>
|
|
72
|
+
<ySuperscriptYOffset value="480"/>
|
|
73
|
+
<yStrikeoutSize value="49"/>
|
|
74
|
+
<yStrikeoutPosition value="258"/>
|
|
75
|
+
<sFamilyClass value="0"/>
|
|
76
|
+
<panose>
|
|
77
|
+
<bFamilyType value="0"/>
|
|
78
|
+
<bSerifStyle value="0"/>
|
|
79
|
+
<bWeight value="0"/>
|
|
80
|
+
<bProportion value="0"/>
|
|
81
|
+
<bContrast value="0"/>
|
|
82
|
+
<bStrokeVariation value="0"/>
|
|
83
|
+
<bArmStyle value="0"/>
|
|
84
|
+
<bLetterForm value="0"/>
|
|
85
|
+
<bMidline value="0"/>
|
|
86
|
+
<bXHeight value="0"/>
|
|
87
|
+
</panose>
|
|
88
|
+
<ulUnicodeRange1 value="10000000 00000000 00000000 11101111"/>
|
|
89
|
+
<ulUnicodeRange2 value="00010000 00000000 11101100 11101101"/>
|
|
90
|
+
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
|
|
91
|
+
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
|
|
92
|
+
<achVendID value="PfEd"/>
|
|
93
|
+
<fsSelection value="00000000 01000000"/>
|
|
94
|
+
<usFirstCharIndex value="32"/>
|
|
95
|
+
<usLastCharIndex value="160"/>
|
|
96
|
+
<sTypoAscender value="800"/>
|
|
97
|
+
<sTypoDescender value="-200"/>
|
|
98
|
+
<sTypoLineGap value="90"/>
|
|
99
|
+
<usWinAscent value="533"/>
|
|
100
|
+
<usWinDescent value="0"/>
|
|
101
|
+
<ulCodePageRange1 value="00100000 00000000 00000000 10001111"/>
|
|
102
|
+
<ulCodePageRange2 value="01011110 00000011 00000000 00000000"/>
|
|
103
|
+
<sxHeight value="0"/>
|
|
104
|
+
<sCapHeight value="0"/>
|
|
105
|
+
<usDefaultChar value="32"/>
|
|
106
|
+
<usBreakChar value="32"/>
|
|
107
|
+
<usMaxContext value="1"/>
|
|
108
|
+
</OS_2>
|
|
109
|
+
|
|
110
|
+
<name>
|
|
111
|
+
<namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
|
|
112
|
+
Copyright (c) 2009-2010 Design Science, Inc.
|
|
113
|
+
Copyright (c) 2014-2018 Khan Academy
|
|
114
|
+
</namerecord>
|
|
115
|
+
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
|
|
116
|
+
*NAME*
|
|
117
|
+
</namerecord>
|
|
118
|
+
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
|
|
119
|
+
*WEIGHT_S*
|
|
120
|
+
</namerecord>
|
|
121
|
+
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
|
|
122
|
+
FontForge 2.0 : *NAME*-*WEIGHT*
|
|
123
|
+
</namerecord>
|
|
124
|
+
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
|
|
125
|
+
*NAME*-*WEIGHT*
|
|
126
|
+
</namerecord>
|
|
127
|
+
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
|
|
128
|
+
Version 1.1
|
|
129
|
+
</namerecord>
|
|
130
|
+
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
|
|
131
|
+
*NAME*-*WEIGHT*
|
|
132
|
+
</namerecord>
|
|
133
|
+
<namerecord nameID="13" platformID="3" platEncID="1" langID="0x409">
|
|
134
|
+
Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)
|
|
135
|
+
Copyright (c) 2014-2018 Khan Academy (<www.khanacademy.org>),
|
|
136
|
+
with Reserved Font Name *NAME*.
|
|
137
|
+
|
|
138
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
139
|
+
This license available with a FAQ at:
|
|
140
|
+
http://scripts.sil.org/OFL
|
|
141
|
+
</namerecord>
|
|
142
|
+
<namerecord nameID="14" platformID="3" platEncID="1" langID="0x409">
|
|
143
|
+
http://scripts.sil.org/OFL
|
|
144
|
+
</namerecord>
|
|
145
|
+
</name>
|
|
146
|
+
|
|
147
|
+
<cmap>
|
|
148
|
+
<tableVersion version="0"/>
|
|
149
|
+
<cmap_format_4 platformID="0" platEncID="3" language="0">
|
|
150
|
+
<map code="0x20" name="space"/><!-- SPACE -->
|
|
151
|
+
<map code="0xa0" name="uni00A0"/><!-- NO-BREAK SPACE -->
|
|
152
|
+
</cmap_format_4>
|
|
153
|
+
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
|
154
|
+
<map code="0x20" name="space"/><!-- SPACE -->
|
|
155
|
+
<map code="0xa0" name="uni00A0"/><!-- NO-BREAK SPACE -->
|
|
156
|
+
</cmap_format_4>
|
|
157
|
+
</cmap>
|
|
158
|
+
|
|
159
|
+
<post>
|
|
160
|
+
<formatType value="3.0"/>
|
|
161
|
+
<italicAngle value="0.0"/>
|
|
162
|
+
<underlinePosition value="-125"/>
|
|
163
|
+
<underlineThickness value="50"/>
|
|
164
|
+
<isFixedPitch value="0"/>
|
|
165
|
+
<minMemType42 value="0"/>
|
|
166
|
+
<maxMemType42 value="0"/>
|
|
167
|
+
<minMemType1 value="0"/>
|
|
168
|
+
<maxMemType1 value="0"/>
|
|
169
|
+
</post>
|
|
170
|
+
|
|
171
|
+
<CFF>
|
|
172
|
+
<major value="1"/>
|
|
173
|
+
<minor value="0"/>
|
|
174
|
+
<CFFFont name="*NAME*-*WEIGHT*">
|
|
175
|
+
<version value="001.001"/>
|
|
176
|
+
<Notice value="Copyright (c) 2009-2010 Design Science, Inc., Copyright (c) 2014-2018 Khan Academy"/>
|
|
177
|
+
<FullName value="*NAME*-*WEIGHT*"/>
|
|
178
|
+
<FamilyName value="*NAME*"/>
|
|
179
|
+
<Weight value="*NORMAL*"/>
|
|
180
|
+
<isFixedPitch value="0"/>
|
|
181
|
+
<ItalicAngle value="0"/>
|
|
182
|
+
<UnderlinePosition value="-150"/>
|
|
183
|
+
<UnderlineThickness value="50"/>
|
|
184
|
+
<PaintType value="0"/>
|
|
185
|
+
<CharstringType value="2"/>
|
|
186
|
+
<FontMatrix value="0.001 0 0 0.001 0 0"/>
|
|
187
|
+
<FontBBox value="50 0 200 533"/>
|
|
188
|
+
<StrokeWidth value="0"/>
|
|
189
|
+
<!-- charset is dumped separately as the 'GlyphOrder' element -->
|
|
190
|
+
<Encoding name="StandardEncoding"/>
|
|
191
|
+
<Private>
|
|
192
|
+
<BlueScale value="0.03963"/>
|
|
193
|
+
<BlueShift value="0"/>
|
|
194
|
+
<BlueFuzz value="1"/>
|
|
195
|
+
<StdHW value="50"/>
|
|
196
|
+
<StdVW value="50"/>
|
|
197
|
+
<ForceBold value="0"/>
|
|
198
|
+
<LanguageGroup value="0"/>
|
|
199
|
+
<ExpansionFactor value="0.06"/>
|
|
200
|
+
<initialRandomSeed value="0"/>
|
|
201
|
+
<defaultWidthX value="250"/>
|
|
202
|
+
<nominalWidthX value="193"/>
|
|
203
|
+
</Private>
|
|
204
|
+
<CharStrings>
|
|
205
|
+
<CharString name=".notdef">
|
|
206
|
+
0 50 433 50 hstem
|
|
207
|
+
50 50 50 50 vstem
|
|
208
|
+
50 hmoveto
|
|
209
|
+
150 533 -150 hlineto
|
|
210
|
+
50 -483 rmoveto
|
|
211
|
+
433 50 -433 vlineto
|
|
212
|
+
endchar
|
|
213
|
+
</CharString>
|
|
214
|
+
<CharString name="space">
|
|
215
|
+
endchar
|
|
216
|
+
</CharString>
|
|
217
|
+
<CharString name="uni00A0">
|
|
218
|
+
endchar
|
|
219
|
+
</CharString>
|
|
220
|
+
</CharStrings>
|
|
221
|
+
</CFFFont>
|
|
222
|
+
|
|
223
|
+
<GlobalSubrs>
|
|
224
|
+
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
|
|
225
|
+
</GlobalSubrs>
|
|
226
|
+
</CFF>
|
|
227
|
+
|
|
228
|
+
<hmtx>
|
|
229
|
+
<mtx name=".notdef" width="250" lsb="50"/>
|
|
230
|
+
<mtx name="space" width="250" lsb="0"/>
|
|
231
|
+
<mtx name="uni00A0" width="250" lsb="0"/>
|
|
232
|
+
</hmtx>
|
|
233
|
+
|
|
234
|
+
</ttFont>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#! /usr/bin/perl
|
|
2
|
+
|
|
3
|
+
# Creates the metafont file needed for darker copies of the TeX fonts,
|
|
4
|
+
# and modifies mftrace to use it.
|
|
5
|
+
#
|
|
6
|
+
# Usage: ./makeBlacker blackness
|
|
7
|
+
|
|
8
|
+
require "custom.cfg.pl";
|
|
9
|
+
|
|
10
|
+
$blacker = shift;
|
|
11
|
+
unless ($blacker) {
|
|
12
|
+
print stderr "Usage: ./makeBlacker blackness\n";
|
|
13
|
+
exit;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
sub editMftrace {
|
|
17
|
+
my $oldMFTRACE = $MFTRACE_PATH;
|
|
18
|
+
$MFTRACE = "./lib/mftrace-modified";
|
|
19
|
+
print "Editing mftrace\n";
|
|
20
|
+
open(MFT,$oldMFTRACE) || die "Can't read '$oldMFTRACE': $!\n";
|
|
21
|
+
my $MFT = join("",<MFT>);
|
|
22
|
+
close(MFT);
|
|
23
|
+
$MFT =~ s!r"mf '\\mode:=(?:[^;]*)(; [^"]*)"!r"""mf '\\smode:="lib/blacker.mf"$1"""!;
|
|
24
|
+
open(MFT,">$MFTRACE") || die "Can't write '$MFTRACE': $!\n";
|
|
25
|
+
print MFT $MFT;
|
|
26
|
+
close(MFT);
|
|
27
|
+
chmod 0755, $MFTRACE;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
sub makeBlackerMF {
|
|
31
|
+
my $blacker = shift;
|
|
32
|
+
print "Using blacker = $blacker\n";
|
|
33
|
+
open(BLACKER,">lib/blacker.mf") || die "Can't write 'lib/blacker.mf': $!\n";
|
|
34
|
+
print BLACKER << " END";
|
|
35
|
+
proofing:=0;
|
|
36
|
+
fontmaking:=1;
|
|
37
|
+
tracingtitles:=0;
|
|
38
|
+
pixels_per_inch:=1200;
|
|
39
|
+
blacker:=$blacker;
|
|
40
|
+
fillin:=0;
|
|
41
|
+
o_correction:=1;
|
|
42
|
+
END
|
|
43
|
+
close(BLACKER);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
editMftrace();
|
|
47
|
+
makeBlackerMF($blacker);
|
|
48
|
+
|
|
49
|
+
1;
|