kiliman / operator-mono-lig Goto Github PK
View Code? Open in Web Editor NEWAdd ligatures to Operator Mono similar to Fira Code
License: MIT License
Add ligatures to Operator Mono similar to Fira Code
License: MIT License
After patching the font using this program and selecting it in Terminal.app on macOS, ligatures don't show up, while they do with Fira Code.
Otherwise, they work fine using Sublime Text.
Hi,
Try to chain multiple --------- and you'll see that the rendering is not great as compared to Fira Code.
Is this something that can be fixed?
Thanks!
Creating a new issue from this comment: #1 (comment)
The problem exists at os level, as the following screenshot shows:
What files can I send you to help with this problem?
Add fish operator >=> for F#
Hi,
This is how it is in Fira and sounds more logical than having the cursor in a blank space.
Try for instance to navigate through >=
in Fira and with Operator-Mono-Lig.
Thanks!
Creating a new issue from this comment: #1 (comment)
The problem exists at os level, as the following screenshot shows:
What files can I send you to help with this problem?
When generating your new Operator Mono Book Lig Italic, the font name is set to "Operator Mono Book Lig Italic" and subfamily is set to "Regular".
These values should be set to "Operator Mono Book Lig" and "Italic" respectively.
Without this change the italic font is seen as a separate font family and not a style of Operator Mono Book Lig.
When I started the build.sh in zsh it only changed directory to /build, but it did nothing else. When I started bash (even from zsh) and started build.sh again everything worked.
As a note, I had to do an extra step (use ttx
to convert the original .otf files to .ttx before running build
), so it might be nice to add this to the README.
But mostly I just wanted to say thank you for doing this!! :) The ligatures look great.
I don't own a Mac and I was going to try my hand and making some of the PHP ligatures to help out, but I'm kinda new to this font editing stuff, I've looked at a few applications, but I'm uncertain what the app needs to be able to do to to export the xml's you are using...thoughts?
Hi there,
When I run the build command I get the following error when building the fonts:
'ttx' is not recognized as an internal or external command, operable program or batch file.
Any idea how to resolve this?
Please add in next update '<=>' symbol ligature for ruby
Hi,
How do you use this font on vscode windows ?
this is what the build generate
$ ls
OperatorMonoLig-Book.otf OperatorMonoLig-Medium.otf
OperatorMonoLig-Book.ttx OperatorMonoLig-Medium.ttx
OperatorMonoLig-BookItalic.otf OperatorMonoLig-MediumItalic.otf
OperatorMonoLig-BookItalic.ttx OperatorMonoLig-MediumItalic.ttx
I want to use the book version, and on my vscode, i can only set with "Operator Mono Lig",
"editor.fontFamily": "Operator Mono Lig",
not "Operator Mono Lig Book", if not the font becomes unvailable
Not really an issue but wanted to ask a question. Where does Operator Mono OpenType files live? and copy to original folder(what is this original folder)? Thanks.
This causes the included build.sh
to fail on these 2 fonts.
Is it because they are not supported?
Don't know if this is anything related to windows or that I did something wrong. But i get the following error while building:
Building OperatorMonoLig-Book
Dumping ".\original\OperatorMono-Book.otf" to ".\original\OperatorMono-Book.ttx"...
Dumping 'GlyphOrder' table...
Dumping 'head' table...
Dumping 'hhea' table...
Dumping 'maxp' table...
Dumping 'OS/2' table...
Dumping 'name' table...
Dumping 'cmap' table...
Dumping 'post' table...
Dumping 'CFF ' table...
Dumping 'GPOS' table...
Dumping 'GSUB' table...
Dumping 'hmtx' table...
Dumping 'DSIG' table...
Reading original font file ./original/OperatorMono-Book.ttx
Patching names
Patching glyphs
Patching gpos
Patching gsub
Patching hmtx
Patching charstrings
Writing ligature font file ./build/OperatorMonoLig-Book.ttx
Done
Compiling ".\build\OperatorMonoLig-Book.ttx" to ".\build\OperatorMonoLig-Book.otf"...
Parsing 'GlyphOrder' table...
Parsing 'head' table...
Parsing 'hhea' table...
Parsing 'maxp' table...
Parsing 'OS/2' table...
Parsing 'name' table...
Parsing 'cmap' table...
Parsing 'post' table...
Parsing 'CFF ' table...
Parsing 'GPOS' table...
Parsing 'GSUB' table...
Parsing 'hmtx' table...
Parsing 'DSIG' table...
ERROR: Unhandled exception has occurred
Traceback (most recent call last):
File "c:\python27\lib\site-packages\fontTools\ttx.py", line 389, in main
process(jobs, options)
File "c:\python27\lib\site-packages\fontTools\ttx.py", line 363, in process
action(input, output, options)
File "c:\python27\lib\site-packages\fontTools\misc\loggingTools.py", line 372, in wrapper
return func(*args, **kwds)
File "c:\python27\lib\site-packages\fontTools\ttx.py", line 281, in ttCompile
ttf.save(output)
File "c:\python27\lib\site-packages\fontTools\ttLib\__init__.py", line 221, in save
self._writeTable(tag, writer, done)
File "c:\python27\lib\site-packages\fontTools\ttLib\__init__.py", line 657, in _writeTable
self._writeTable(masterTable, writer, done)
File "c:\python27\lib\site-packages\fontTools\ttLib\__init__.py", line 660, in _writeTable
tabledata = self.getTableData(tag)
File "c:\python27\lib\site-packages\fontTools\ttLib\__init__.py", line 671, in getTableData
return self.tables[tag].compile(self)
File "c:\python27\lib\site-packages\fontTools\ttLib\tables\C_F_F_.py", line 20, in compile
self.cff.compile(f, otFont, isCFF2=False)
File "c:\python27\lib\site-packages\fontTools\cffLib\__init__.py", line 108, in compile
topDict.recalcFontBBox()
File "c:\python27\lib\site-packages\fontTools\cffLib\__init__.py", line 2341, in recalcFontBBox
bounds = charString.calcBounds()
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 984, in calcBounds
self.draw(boundsPen)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 979, in draw
extractor.execute(self)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 301, in execute
rv = handler(index)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 345, in op_callgsubr
self.execute(subr)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 301, in execute
rv = handler(index)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 345, in op_callgsubr
self.execute(subr)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 301, in execute
rv = handler(index)
File "c:\python27\lib\site-packages\fontTools\misc\psCharStrings.py", line 634, in op_vvcurveto
dya, dxb, dyb, dyc = args[i:i+4]
ValueError: need more than 2 values to unpack
(Hit any key to exit)
Any idea what went wrong? I have the following versions:
Python 2.7.12
Node 8.9.0
I only put in the OperatorMono-Book.otf
in the original folder
This error comes up when I do ./build.sh
from my linux
Glyphs are not added to my font files, doesn't render in my Illustrator Glyphs panel.
Could be related to this error: WARNING: GSUB/GPOS Coverage is not sorted by glyph ids
?
Added the fonts in "original" folder https://imgur.com/a/IPa7o
Installed this "pip3 install fonttools";
node -v ~ v9.2.0, npm -v ~ 5.5.1;
npm install;
But, when i put run "./build.sh" - nothing happens.
No errors, "build" folder is empty.
What am I doing wrong?
macOS HighSierra 10.13.1
Your project is a godsend, thank you!
I'm sorry but I only have Operator SSm
(not mono) and Operator Mono
(not SSm).
When I compile nothing works except OperatorMonoLig-Medium.otf
and OperatorMonoLig-MediumItalic.otf
What Operator Mono SSm
are you talking about? It's not here.
I get rm: original/*.ttx: No such file or directory
error when I run build.sh
.
My files are otf instread of ttx.
OS X is complaining about an issue with the font 'name' table. Need to look into this.
The font installs fine though.
Hi any chance of patching Operator Mono Book non SSm version ?
npm WARN [email protected] No repository field.
Hello,
I can't seem to get the build step to work. Is there anything I'm missing here?
I'm on OS X 10.12.
operator-mono-lig/original git/master
❯ ls
Operator Mono Bold Italic.otf Operator SSm Black Regular.otf
Operator Mono Bold Regular.otf Operator SSm Bold Italic.otf
Operator Mono Book Italic.otf Operator SSm Bold Regular.otf
Operator Mono Book Regular.otf Operator SSm Book Italic.otf
Operator Mono Light Italic.otf Operator SSm Book Regular.otf
Operator Mono Light Regular.otf Operator SSm Light Italic.otf
Operator Mono Medium Italic.otf Operator SSm Light Regular.otf
Operator Mono Medium Regular.otf Operator SSm Medium Italic.otf
Operator Mono XLight Italic.otf Operator SSm Medium Regular.otf
Operator Mono XLight Regular.otf Operator SSm XLight Italic.otf
Operator SSm Black Italic.otf Operator SSm XLight Regular.otf
❯ node -v
v8.4.0
❯ yarn
yarn install v1.2.0
[1/4] 🔍 Resolving packages...
success Already up-to-date.
✨ Done in 0.14s.
❯ python --version
Python 2.7.12
❯ pip install fonttools
Requirement already satisfied (use --upgrade to upgrade): fonttools in /usr/local/lib/python2.7/site-packages
Running the build script doesn't produce any kind of output at all.
Thanks!
I get this error when run build.sh, I am using node v8.4.0
➜ operator-mono-lig git:(master) ✗ sh build.sh
rm: original/*.ttx: No such file or directory
build.sh: line 4: ttx: command not found
build.sh: line 5: ttx: command not found
Reading original font file ./original/OperatorMono-Medium.ttx
(node:19784) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open './original/OperatorMono-Medium.ttx'
(node:19784) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Reading original font file ./original/OperatorMono-MediumItalic.ttx
(node:19785) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open './original/OperatorMono-MediumItalic.ttx'
(node:19785) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
build.sh: line 14: ttx: command not found
build.sh: line 15: ttx: command not found
I'm running OSX 10.12.6
I've followed the prerequisites and have fonttools
installed. After I cloned the repo I copied the Operator Mono fonts to original directory and ran ./build.sh
. It runs very quickly and produces no output.
I checked the 'build' directory and it's empty. Any ideas?
First off, thank you so much @kiliman for the amazing work thus far!!!
I'd like to throw in the suggestion to include/fix some operators here:
<|>
currently displays as the left pipeline and greater than&&&
currently displays as a combined &&
followed by one more disjointed &
And to echo issue #36:
>>=
displays as a greater than followed by a greater-than-or-equal symbol=<<
displays as a less-than-or-equal followed by a less than symbolI plan on grabbing the trial of Glyphs to play around, but I doubt I'll end up with anything as solid as the work you've already done ^_^.
Thanks again!
Hi Killman and friends,
Really appreciate your effort of bringing ligatures to Operator Mono!
If possible, would you kindly add support for the Haskell bind (>>=
) and reverse bind (=<<
) operators?
Currently >>=
would be rendered as >≥
, which is sort of weird.
Although =<<
works fine, it might be nice to add it too, for the sake of symmetry if >>=
could be fixed.
Thank you so much and happy holidays!
The Glyphs version of the italic font works fine, so there must be an issue with the extraction/build process.
Compare TTX from Glyphs with the built version and determine differences.
The file names In the ligature directory should be spelled as SSm
rather than Ssm
. Otherwise, on a case-sensitive file system, build.sh
will not find the corresponding original font.
Hi! I'm having trouble generating fonts with ligature. I tried to use both Python 2 and Python 3 and I get errors in both. I also tried using the build.bat and build.sh but still having the same output. Here is the output:
C:\Users\ricadiz\operator-mono-lig-master>build Building OperatorMonoLig-Medium Dumping ".\original\OperatorMono-Medium.otf" to ".\original\OperatorMono-Medium.ttx"... Dumping 'GlyphOrder' table... Dumping 'head' table... Dumping 'hhea' table... Dumping 'maxp' table... Dumping 'OS/2' table... Dumping 'name' table... Dumping 'cmap' table... Dumping 'post' table... Dumping 'CFF ' table... Dumping 'GPOS' table... Dumping 'GSUB' table... Dumping 'hmtx' table... Dumping 'DSIG' table... Reading original font file ./original/OperatorMono-Medium.ttx Patching names Patching glyphs Patching gpos Patching gsub Patching hmtx Patching charstrings Writing ligature font file ./build/OperatorMonoLig-Medium.ttx Done Compiling ".\build\OperatorMonoLig-Medium.ttx" to ".\build\OperatorMonoLig-Medium.otf"... Parsing 'GlyphOrder' table... Parsing 'head' table... Parsing 'hhea' table... Parsing 'maxp' table... Parsing 'OS/2' table... Parsing 'name' table... Parsing 'cmap' table... Parsing 'post' table... Parsing 'CFF ' table... Parsing 'GPOS' table... Parsing 'GSUB' table... Parsing 'hmtx' table... Parsing 'DSIG' table... ERROR: Unhandled exception has occurred Traceback (most recent call last): File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 399, in main process(jobs, options) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 373, in process action(input, output, options) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\loggingTools.py", line 372, in wrapper return func(*args, **kwds) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 291, in ttCompile ttf.save(output) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 166, in save writer_reordersTables = self._save(tmp) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 205, in _save self._writeTable(tag, writer, done, tableCache) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 618, in _writeTable self._writeTable(masterTable, writer, done, tableCache) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 622, in _writeTable tabledata = self.getTableData(tag) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 640, in getTableData return self.tables[tag].compile(self) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\tables\C_F_F_.py", line 20, in compile self.cff.compile(f, otFont, isCFF2=False) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\cffLib\__init__.py", line 108, in compile topDict.recalcFontBBox() File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\cffLib\__init__.py", line 2340, in recalcFontBBox bounds = charString.calcBounds(self.CharStrings) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 984, in calcBounds self.draw(boundsPen) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 979, in draw extractor.execute(self) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 301, in execute rv = handler(index) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 340, in op_callsubr self.execute(subr) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 301, in execute rv = handler(index) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 360, in op_hintmask hintMaskBytes, index = self.callingStack[-1].getBytes(index, self.hintMaskBytes) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 1073, in getBytes assert len(bytes) == nBytes AssertionError (Hit any key to exit) Building OperatorMonoLig-MediumItalic Dumping ".\original\OperatorMono-MediumItalic.otf" to ".\original\OperatorMono-MediumItalic.ttx"... Dumping 'GlyphOrder' table... Dumping 'head' table... Dumping 'hhea' table... Dumping 'maxp' table... Dumping 'OS/2' table... Dumping 'name' table... Dumping 'cmap' table... Dumping 'post' table... Dumping 'CFF ' table... Dumping 'GPOS' table... Dumping 'GSUB' table... Dumping 'hmtx' table... Dumping 'DSIG' table... Reading original font file ./original/OperatorMono-MediumItalic.ttx Patching names Patching glyphs Patching gpos Patching gsub Patching hmtx Patching charstrings Writing ligature font file ./build/OperatorMonoLig-MediumItalic.ttx Done Compiling ".\build\OperatorMonoLig-MediumItalic.ttx" to ".\build\OperatorMonoLig-MediumItalic.otf"... Parsing 'GlyphOrder' table... Parsing 'head' table... Parsing 'hhea' table... Parsing 'maxp' table... Parsing 'OS/2' table... Parsing 'name' table... Parsing 'cmap' table... Parsing 'post' table... Parsing 'CFF ' table... Parsing 'GPOS' table... Parsing 'GSUB' table... Parsing 'hmtx' table... Parsing 'DSIG' table... ERROR: Unhandled exception has occurred Traceback (most recent call last): File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 399, in main process(jobs, options) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 373, in process action(input, output, options) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\loggingTools.py", line 372, in wrapper return func(*args, **kwds) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttx.py", line 291, in ttCompile ttf.save(output) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 166, in save writer_reordersTables = self._save(tmp) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 205, in _save self._writeTable(tag, writer, done, tableCache) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 618, in _writeTable self._writeTable(masterTable, writer, done, tableCache) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 622, in _writeTable tabledata = self.getTableData(tag) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\ttFont.py", line 640, in getTableData return self.tables[tag].compile(self) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\ttLib\tables\C_F_F_.py", line 20, in compile self.cff.compile(f, otFont, isCFF2=False) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\cffLib\__init__.py", line 108, in compile topDict.recalcFontBBox() File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\cffLib\__init__.py", line 2340, in recalcFontBBox bounds = charString.calcBounds(self.CharStrings) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 984, in calcBounds self.draw(boundsPen) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 979, in draw extractor.execute(self) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 301, in execute rv = handler(index) File "d:\python27\lib\site-packages\fonttools-3.25.0-py2.7.egg\fontTools\misc\psCharStrings.py", line 578, in op_endchar adx, ady, bchar, achar = args ValueError: too many values to unpack (Hit any key to exit)
Do I need to place the whole Operator Mono font family in the original directory? or just the font that I will use?
By the way, I'm using the following:
ttx --version
3.25.0
node --version
v9.1.0
Windows 10 x64
for ex. operator mono light
Hi,
I noticed that, e.g. in LaTeX documents, three dashes are displayed "incorrectly" as a double-dash followed by a single dash.
Three dashes are sometimes needed in the english language, see https://tex.stackexchange.com/questions/3819/dashes-vs-vs
The following image illustrates the problem:
(please ignore the green line below the characters)Is this something that can be fixed within the font or does the problem originate from a different source?
Running on High Sierra with Python 2.7.10:
Building OperatorMonoSSmLig-Book
./build.sh: line 19: ttx: command not found
/Users/st016lo/Downloads/operator-mono-lig-master/index.js:20
async function main() {
^^^^^^^^
Fonttools is installed.
Not everyone likes all the ligatures, so allow the person to specify which ligatures to merge into the font.
I'll probably have a text file that lists all the available ligatures. The user copies this file to the original
folder and simply comments out or deletes the ones they don't want. The build process will only include the ligatures desired.
To take this to the next level, allow the user to create multiple ligature sets. This will allow you to generate a custom font per language, since some ligatures make more sense than others. This will come in handy when a ligature may have a different meaning/representation based on language.
Double curly braces are used a lot in Angular, Mustache, Blade and Twig templates as output delimiters.
{{ variable }} or {{ expression result }}
Then you have the others like the
{% twig execute delimiter %}
and the
{!! blade non-escaped variable !!}
The double curly brace especially gets used in a bunch of other places, a lot of template syntax's in Javascript use them and I've also heard rumor of a dreaded use in Java, but since I don't do Java I'm OK with it.
Hey,
trying to build lig version of operator mono with your scripts:
~/Downloads/operator-mono-lig-master ttx --version
3.21.2
~/Downloads/operator-mono-lig-master node --version
v9.5.0
~/Downloads/operator-mono-lig-master ./build.sh
~/Downloads/operator-mono-lig-master
Same on Windows :(
Hi I keep getting the following error, both on win10 and osx.
async function main() {
^^^^^^^^
SyntaxError: Unexpected token function
at Object.exports.runInThisContext (vm.js:78:16)
at Module._compile (module.js:545:28)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.runMain (module.js:607:10)
at run (bootstrap_node.js:420:7)
at startup (bootstrap_node.js:139:9)
at bootstrap_node.js:535:3
My font names are as follows:
OperatorMono-Bold.oft
.. and so on.
What am I doing wrong? Thanks
Great work! Meduim is too wide for me. Any plan to support OperatorMono-Book? Thanks!
I get the following errors when I run build.sh
.
One of the changes I've made with the updated fonts is extracting each ligature glyph into a separate file.
This has several benefits:
In order to do this, I have to also include the subroutines that were used in the glyph outline. The old way simply extracted all the subroutines from the source font and then extracted them during the build process. However, this would cause issues for those that want to build custom glyphs as those subroutine indexes will vary from one user to another.
Here is what the new glyph file will look like. As you can see it also contains the metrics so I no longer to have to keep the hmtx file.
<Glyph name="equal_equal.liga" lsb="-531" width="625">
<CharString>
1000 callsubr
-531 1063 vstem
531 414 1001 callsubr
-1063 -77 hlineto
1062 -246 1001 callsubr
-1063 -77 hlineto
endchar
</CharString>
<Subrs>
<CharString index="1000">
168 1000 callgsubr
return
</CharString>
<CharString index="1001">
rmoveto
1001 callgsubr
return
</CharString>
</Subrs>
<GlobalSubrs>
<CharString index="1000">
-337 279 rlineto
return
</CharString>
<CharString index="1001">
rmoveto
269 -246 61 63 -257 229 263 227 -60 63 -271 -245 rlineto
endchar
</CharString>
</GlobalSubrs>
</Glyph>
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.