Revert to natural hinting w/ control instructions
This commit is contained in:
8
build.py
8
build.py
@@ -94,9 +94,10 @@ ASCENDER_RATIO = 0.8
|
|||||||
# (gray) is the one that matters. n=natural, q=quantized, s=strong.
|
# (gray) is the one that matters. n=natural, q=quantized, s=strong.
|
||||||
# - Remaining two chars are for GDI and DirectWrite (not used on Kobo).
|
# - Remaining two chars are for GDI and DirectWrite (not used on Kobo).
|
||||||
# - Other options are left at ttfautohint defaults; uncomment to override.
|
# - Other options are left at ttfautohint defaults; uncomment to override.
|
||||||
|
AUTOHINT_CTRL = os.path.join(SRC_DIR, "ttfautohint-ctrl.txt")
|
||||||
AUTOHINT_OPTS = [
|
AUTOHINT_OPTS = [
|
||||||
"--no-info",
|
"--no-info",
|
||||||
"--stem-width-mode=qss",
|
"--stem-width-mode=nss",
|
||||||
# "--hinting-range-min=8",
|
# "--hinting-range-min=8",
|
||||||
# "--hinting-range-max=50",
|
# "--hinting-range-max=50",
|
||||||
# "--hinting-limit=200",
|
# "--hinting-limit=200",
|
||||||
@@ -772,8 +773,11 @@ def autohint_ttf(ttf_path):
|
|||||||
return
|
return
|
||||||
|
|
||||||
tmp_path = ttf_path + ".autohint.tmp"
|
tmp_path = ttf_path + ".autohint.tmp"
|
||||||
|
opts = list(AUTOHINT_OPTS)
|
||||||
|
if os.path.isfile(AUTOHINT_CTRL) and os.path.getsize(AUTOHINT_CTRL) > 0:
|
||||||
|
opts += [f"--control-file={AUTOHINT_CTRL}"]
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["ttfautohint"] + AUTOHINT_OPTS + [ttf_path, tmp_path],
|
["ttfautohint"] + opts + [ttf_path, tmp_path],
|
||||||
capture_output=True, text=True,
|
capture_output=True, text=True,
|
||||||
)
|
)
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
|
|||||||
14
src/ttfautohint-ctrl.txt
Normal file
14
src/ttfautohint-ctrl.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# ttfautohint control instructions for Readerly
|
||||||
|
# See: https://freetype.org/ttfautohint/doc/ttfautohint.html
|
||||||
|
#
|
||||||
|
# Syntax reference:
|
||||||
|
# glyph_name left|right point_idx [(left_offset, right_offset)]
|
||||||
|
# → create artificial one-point segment (fixes serif detection)
|
||||||
|
# glyph_name touch points yshift N @ ppems
|
||||||
|
# → shift points vertically at specific sizes (in 1/8 pixel units)
|
||||||
|
# glyph_name nodir points
|
||||||
|
# → remove points from segment detection
|
||||||
|
#
|
||||||
|
# Add entries below for glyphs with serif hinting issues.
|
||||||
|
# Use `ttfautohint --debug -l N -r N font.ttf out.ttf` to inspect
|
||||||
|
# segment/edge detection at a specific PPEM size.
|
||||||
Reference in New Issue
Block a user