From 0a5f59a9aa25b3de7e9659b39ad201aaf7eb5a67 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Fri, 27 Sep 2019 20:24:34 +0200
Subject: 2019-09-27 18:10:00

---
 .../context/2017/context-2017-features.tex         | 153 +++++++++++++++++++++
 1 file changed, 153 insertions(+)
 create mode 100644 doc/context/presentations/context/2017/context-2017-features.tex

(limited to 'doc/context/presentations/context/2017/context-2017-features.tex')

diff --git a/doc/context/presentations/context/2017/context-2017-features.tex b/doc/context/presentations/context/2017/context-2017-features.tex
new file mode 100644
index 000000000..772de4ff6
--- /dev/null
+++ b/doc/context/presentations/context/2017/context-2017-features.tex
@@ -0,0 +1,153 @@
+\usemodule[present-lines]
+
+\definecolor[maincolor][r=.4,g=.4]
+
+\startdocument[title=Font features,subtitle={\CONTEXT\ 2017 Maibach}]
+
+\startchapter[title=What are they]
+
+\startitemize
+    \startitem
+        built in substitution that is often optional like ligatures but for some
+        languages mandate
+    \stopitem
+    \startitem
+        built in positioning that is assumed to be applied like kerning, mark
+        anchoring cursive
+    \stopitem
+    \startitem
+        external properties like coloring, spacing, fallback combinations
+    \stopitem
+    \startitem
+        engine related tricks like expansion and protrusion
+    \stopitem
+    \startitem
+        tracing options
+    \stopitem
+    \startitem
+        whatever you like \unknown\ so let me know
+    \stopitem
+    \blank[2*big]
+    \startitem
+        so in \CONTEXT\ we have font features (driven by font) and pseudo
+        features (driven by additional needs)
+    \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=Substitution]
+
+\startitemize
+    \startitem
+        single: replace one by another
+    \stopitem
+    \startitem
+        alternate: replace one by one of a set
+    \stopitem
+    \startitem
+        multiple: replace one by multiple others
+    \stopitem
+    \startitem
+        ligature: replace multiple by one shape
+    \stopitem
+    \blank[2*big]
+    \startitem
+        contextual lookups and replacements with look back and look ahead
+    \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=Positioning]
+
+\startitemize
+    \startitem
+        single: repositioning a glyph (with optional marks), this includes
+        traditional kerning
+    \stopitem
+    \startitem
+        pairwise: repositioning two adjacent glyphs (with optional marks)
+    \stopitem
+    \startitem
+        anchoring: often used for marks to base glyphs, ligatures and other marks
+    \stopitem
+    \startitem
+        attachment: often used for cursive scripts, pasting glyphs in a word together
+    \stopitem
+    \blank[2*big]
+    \startitem
+        contextual lookups and positioning with look back and look ahead
+    \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=Related]
+
+\startitemize
+    \startitem
+        analyze: needed for dealing with features that need information about
+        initial, medial, final and isolated properties
+    \stopitem
+    \startitem
+        reordering: needed for script like devanagari
+    \stopitem
+    \startitem
+        spacing: deals with for positioning glyphs and spaces
+    \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=Pitfalls]
+
+\startitemize
+    \startitem
+        solutions for similar tasks can be quite different which makes tracing
+        or checking sometimes hard (many ways to make ligatures)
+    \stopitem
+    \startitem
+        order matters and demands careful font design but it is hard to predict
+        all cases
+    \stopitem
+    \startitem
+        a sloppy font design can result in a performance hit or huge fonts
+    \stopitem
+    \startitem
+        features can be bugged and fonts vendors seldom have an update policy
+    \stopitem
+    \startitem
+        shapers can differ due to assumptions, heuristics, interpreting
+        specifications, bugs, \unknown
+    \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=Examples]
+    \startitem
+        all kind of substitutions: \type {2017-features-substitutiontest.tex}
+    \stopitem
+    \startitem
+        simple inter character kerns: \type {2017-features-kerntest.tex}
+    \stopitem
+    \startitem
+        single character positioning: \type {2017-features-singletest.tex}
+    \stopitem
+    \startitem
+        pairwise character positioning: \type {2017-features-pairtest.tex}
+    \stopitem
+    \startitem
+        contextual positioning: \type {2017-features-contexttest.tex}
+    \stopitem
+    \startitem
+        kerning with space (glue): \type {2017-features-spacetest.tex}
+    \stopitem
+\startitemize
+
+\stopitemize
+
+\stopchapter
+
+\stopdocument
-- 
cgit v1.2.3

