How silly: backslashes are symmetric, i cannot flip a slash to build it.

This commit is contained in:
Belleve Invis 2015-07-27 01:57:39 +08:00
parent 72179f482a
commit 778e3a3b27
4 changed files with 35 additions and 23 deletions

View File

@ -219,7 +219,7 @@ local pickHash : if recursive {
define [create-glyph name actions] : piecewise {
[name && actions] : begin {
if [pickHash && [not pickHash.(name)]] : return nothing
console.log : "Building /" + name + [if recursive " (recursive)" ""] + " for " + para.family + ' ' + para.style
process.stderr.write : "Building /" + name + [if recursive " (recursive)" ""] + " for " + para.family + ' ' + para.style + "\n"
set dependencyProfile`name ()
define glyphObject [new Glyph name]
glyphObject.set-width WIDTH

View File

@ -3,29 +3,35 @@ var buildGlyphs = require('./buildglyphs.js');
var parameters = require('./parameters');
var TTFWriter = require('node-sfnt').TTFWriter;
var TTF = require('node-sfnt').TTF;
var argv = require('yargs').argv;
function toArrayBuffer(buffer) {
var length = buffer.length;
var view = new DataView(new ArrayBuffer(length), 0, length);
for (var i = 0, l = length; i < l; i++) {
view.setUint8(i, buffer[i], false);
}
return view.buffer;
var length = buffer.length;
var view = new DataView(new ArrayBuffer(length), 0, length);
for (var i = 0, l = length; i < l; i++) {
view.setUint8(i, buffer[i], false);
}
return view.buffer;
}
function toBuffer(arrayBuffer) {
var length = arrayBuffer.byteLength;
var view = new DataView(arrayBuffer, 0, length);
var buffer = new Buffer(length);
for (var i = 0, l = length; i < l; i++) {
buffer[i] = view.getUint8(i, false);
}
return buffer;
var length = arrayBuffer.byteLength;
var view = new DataView(arrayBuffer, 0, length);
var buffer = new Buffer(length);
for (var i = 0, l = length; i < l; i++) {
buffer[i] = view.getUint8(i, false);
}
return buffer;
}
var options = {preserveOS2Version: true}
var variant = process.argv[2];
var outputPath = process.argv[3];
var variant = argv._[0]
var outputPath = argv._[1]
var ttfFont = buildGlyphs.build(parameters[variant]);
fs.writeFileSync(outputPath, toBuffer(new TTFWriter(options).write(ttfFont)));
if(outputPath) fs.writeFileSync(outputPath, toBuffer(new TTFWriter(options).write(ttfFont)));
if(argv.dumpmap) {
fs.writeFileSync(argv.dumpmap, JSON.stringify(ttfFont.glyf.map(function(glyph){ return [glyph.name, glyph.unicode]})), 'utf8')
}

View File

@ -313,8 +313,13 @@ create-glyph 'backslash' : glyph-construction {
set-width WIDTH
assign-unicode "\\"
include glyphs.slash
include : FlipAround MIDDLE parenMid
local cor : 1 / [Math.sqrt [1 - [Math.pow [[RIGHTSB - SB - STROKE] / [parenTop - parenBot]] 2]]]
start-from SB parenTop
line-to [SB + STROKE * cor] parenTop
line-to RIGHTSB parenBot
line-to [RIGHTSB - STROKE * cor] parenBot
reverse-last
}
create-glyph 'numbersign' : glyph-construction {
set-width WIDTH

View File

@ -9,6 +9,7 @@ SUPPRESS_ERRORS = 2> /dev/null
endif
TARGETS = $(OBJDIR)/iosevka-regular.ttf $(OBJDIR)/iosevka-bold.ttf $(OBJDIR)/iosevka-italic.ttf $(OBJDIR)/iosevka-bolditalic.ttf
MAPS = $(subst .ttf,.charmap,$(TARGETS))
STEP0 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
STEP1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS))
STEP2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS))
@ -18,13 +19,13 @@ FILES = $(SUPPORT_FILES) buildglyphs.js
fonts : update $(TARGETS)
$(OBJDIR)/.pass0-iosevka-regular.ttf : $(FILES) $(OBJDIR)
node generate regular $@
node generate regular $@ --dumpmap $(OBJDIR)/iosevka-regular.charmap
$(OBJDIR)/.pass0-iosevka-bold.ttf : $(FILES) $(OBJDIR)
node generate bold $@
node generate bold $@ --dumpmap $(OBJDIR)/iosevka-bold.charmap
$(OBJDIR)/.pass0-iosevka-italic.ttf : $(FILES) $(OBJDIR)
node generate italic $@
node generate italic $@ --dumpmap $(OBJDIR)/iosevka-italic.charmap
$(OBJDIR)/.pass0-iosevka-bolditalic.ttf : $(FILES) $(OBJDIR)
node generate bolditalic $@
node generate bolditalic $@ --dumpmap $(OBJDIR)/iosevka-bolditalic.charmap
$(STEP1) : $(OBJDIR)/.pass1-%.ttf : $(OBJDIR)/.pass0-%.ttf
fontforge -script pass1-cleanup.pe $< $@ $(SUPPRESS_ERRORS)