1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
%D \module
%D [ file=hand-ini,
%D version=2008.02.12,
%D title=\CONTEXT\ Handling Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
%D Handling is implemented differently in \MKIV. Maybe I'll cook up
%D some compatibility hack.
% \definefontfeature[demo][default][mode=node,expansion=quality]
% \definefontfeature[demo][default][mode=node,protrusion=pure]
% experimental setup:
%
% \showframe \setupalign[hanging] \enabletrackers[fonts.protrusion]
%
% \definefontfeature[default] [default][mode=node,script=latn]
% %definefontfeature[whatever][default][mode=node,lfbd=yes,rtbd=yes,script=latn]
% \definefontfeature[whatever][default][mode=node,protrusion=quality]
% \definefontfeature[whocares][default][mode=node,protrusion=yes,opbd=yes,script=latn] % left|right|yes
%
% \definedfont[fxlbi.otf*default] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
% \definedfont[fxlbi.otf*whatever] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
% \definedfont[fxlbi.otf*whocares] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
%
% %definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn,featurefile=texgyrepagella-regularxx.fea]
% \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn]
%
% \definedfont[texgyrepagella-regularxx.otf*whocares] \input tufte
\unprotect
%D Probbaly not yet used by many.
\permanent\tolerant\protected\def\setupfontexpansion [#1]#*[#2]{\clf_setupfontexpansion {#1}{#2}}
\permanent\tolerant\protected\def\setupfontprotrusion[#1]#*[#2]{\clf_setupfontprotrusion{#1}{#2}}
% \setupfontprotrusion[quality-upright][vector=quality]
% \setupfontprotrusion[quality-slanted][vector=quality,right=1.5]
\pushoverloadmode
\let\adjustspacing\relax \newcount\adjustspacing % a little bit protection
\let\protrudechars\relax \newcount\protrudechars % a little bit protection
\popoverloadmode
%D At some point we can introduce extreme expansion, i.e. \type {\normaladjustspacing\plustwo}.
% 0 = disabled
% 1 = notused (thesis)
% 2 = glyph + kern
% 3 = glyph only (default)
\def\font_expansion_enable {\normaladjustspacing\plusthree}
\def\font_expansion_enable_k{\normaladjustspacing\plustwo}
%def\font_expansion_enable_n{\normaladjustspacing\plusone}
\def\font_expansion_disable {\normaladjustspacing\zerocount}
\def\font_protruding_enable_b{\normalprotrudechars\plusthree} % also deal with r2l (experimental lmtx)
\def\font_protruding_enable {\normalprotrudechars\plustwo }
\def\font_protruding_disable {\normalprotrudechars\zerocount}
\appendtoks \font_expansion_disable \to \everyforgetall % Here or not here?
\appendtoks \font_protruding_disable \to \everyforgetall % Here or not here?
% \def\fonthandlingerror{\writestatus\m!fonts{font handling is replaced by features in mkiv}}
%
% \let\fonthandling\empty
%
% \protected\def\startfonthandling #1{\fonthandlingerror\fonthandlingerror\gobbleuntil\stopfonthandling} % can't happen
% \protected\def\definefonthandling {\dotripleempty\dodefinefonthandling}
% \protected\def\setupfonthandling {\dodoubleempty\dosetupfonthandling }
% \def\dodefinefonthandling[#1][#2][#3]{\fonthandlingerror}
% \def\dosetupfonthandling [#1][#2]{\fonthandlingerror}
% \def\usehandling [#1]{\fonthandlingerror}
\installcorenamespace{expansion}
\installcommandhandler \??expansion {expansion} \??expansion
\appendtoks
\setuevalue{\??expansion:\currentexpansion}%
{\adjustspacingstep \expansionparameter\c!step\relax
\adjustspacingstretch\expansionparameter\c!stretch\relax
\adjustspacingshrink \expansionparameter\c!shrink\relax}%
\to \everydefineexpansion
\setupexpansion
[\c!step=1,
\c!stretch=40,
\c!shrink=20]
% \defineexpansion
% [myexpansion]
% [\c!stretch=50,
% \c!shrink=20]
\permanent\tolerant\protected\def\setexpansion[#1]{\begincsname\??expansion:#1\endcsname}
%D New in \LMTX: can be used grouped.
\permanent\protected\def\noexpansion {\bitwiseflip\glyphoptions\noexpansioncode}
\permanent\protected\def\noprotrusion{\bitwiseflip\glyphoptions\noprotrusioncode}
\protect \endinput
|