summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/fontspec/fontspec-feat-aat.dtx
blob: deda43cc0498f00966c8bd4c1d02e42d25effc87 (plain)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224

% \subsection{AAT feature definitions}
%
% These are only defined for \XeTeX.
%
% \iffalse
%    \begin{macrocode}
%<*fontspec&xetexx>
%    \end{macrocode}
% \fi

% \subsubsection{Ligatures}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Ligatures}
\@@_define_aat_feature:nnnn      {Ligatures} {Required} {1} {0}
\@@_define_aat_feature:nnnn      {Ligatures} {NoRequired} {1} {1}
\@@_define_aat_feature:nnnn      {Ligatures} {Common} {1} {2}
\@@_define_aat_feature:nnnn      {Ligatures} {NoCommon} {1} {3}
\@@_define_aat_feature:nnnn      {Ligatures} {Rare} {1} {4}
\@@_define_aat_feature:nnnn      {Ligatures} {NoRare} {1} {5}
\@@_define_aat_feature:nnnn      {Ligatures} {Discretionary} {1} {4}
\@@_define_aat_feature:nnnn      {Ligatures} {NoDiscretionary} {1} {5}
\@@_define_aat_feature:nnnn      {Ligatures} {Logos} {1} {6}
\@@_define_aat_feature:nnnn      {Ligatures} {NoLogos} {1} {7}
\@@_define_aat_feature:nnnn      {Ligatures} {Rebus} {1} {8}
\@@_define_aat_feature:nnnn      {Ligatures} {NoRebus} {1} {9}
\@@_define_aat_feature:nnnn      {Ligatures} {Diphthong} {1} {10}
\@@_define_aat_feature:nnnn      {Ligatures} {NoDiphthong} {1} {11}
\@@_define_aat_feature:nnnn      {Ligatures} {Squared} {1} {12}
\@@_define_aat_feature:nnnn      {Ligatures} {NoSquared} {1} {13}
\@@_define_aat_feature:nnnn      {Ligatures} {AbbrevSquared} {1} {14}
\@@_define_aat_feature:nnnn      {Ligatures} {NoAbbrevSquared} {1} {15}
\@@_define_aat_feature:nnnn      {Ligatures} {Icelandic} {1} {32}
\@@_define_aat_feature:nnnn      {Ligatures} {NoIcelandic} {1} {33}
%    \end{macrocode}
% Emulate CM extra ligatures.
%    \begin{macrocode}
\keys_define:nn {fontspec-aat}
 {
  Ligatures / TeX .code:n =
   {
    \@@_update_featstr:n { mapping = tex-text }
   }
 }
%    \end{macrocode}
%
% \subsubsection{Letters}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Letters}
\@@_define_aat_feature:nnnn      {Letters} {Normal} {3} {0}
\@@_define_aat_feature:nnnn      {Letters} {Uppercase} {3} {1}
\@@_define_aat_feature:nnnn      {Letters} {Lowercase} {3} {2}
\@@_define_aat_feature:nnnn      {Letters} {SmallCaps} {3} {3}
\@@_define_aat_feature:nnnn      {Letters} {InitialCaps} {3} {4}
%    \end{macrocode}
%
% \subsubsection{Numbers}
%
% These were originally separated into \feat{NumberCase} and
% \feat{NumberSpacing} following \AAT, but it makes more sense to
% combine them.
%
% Both naming conventions are offered to select the number case.
%
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Numbers}
\@@_define_aat_feature:nnnn      {Numbers} {Monospaced} {6} {0}
\@@_define_aat_feature:nnnn      {Numbers} {Proportional} {6} {1}
\@@_define_aat_feature:nnnn      {Numbers} {Lowercase} {21} {0}
\@@_define_aat_feature:nnnn      {Numbers} {OldStyle} {21} {0}
\@@_define_aat_feature:nnnn      {Numbers} {Uppercase} {21} {1}
\@@_define_aat_feature:nnnn      {Numbers} {Lining} {21} {1}
\@@_define_aat_feature:nnnn      {Numbers} {SlashedZero} {14} {5}
\@@_define_aat_feature:nnnn      {Numbers} {NoSlashedZero} {14} {4}
%    \end{macrocode}
%
% \subsubsection{Contextuals}
%    \begin{macrocode}
\@@_define_aat_feature_group:n   {Contextuals}
\@@_define_aat_feature:nnnn      {Contextuals} {WordInitial} {8} {0}
\@@_define_aat_feature:nnnn      {Contextuals} {NoWordInitial} {8} {1}
\@@_define_aat_feature:nnnn      {Contextuals} {WordFinal} {8} {2}
\@@_define_aat_feature:nnnn      {Contextuals} {NoWordFinal} {8} {3}
\@@_define_aat_feature:nnnn      {Contextuals} {LineInitial} {8} {4}
\@@_define_aat_feature:nnnn      {Contextuals} {NoLineInitial} {8} {5}
\@@_define_aat_feature:nnnn      {Contextuals} {LineFinal} {8} {6}
\@@_define_aat_feature:nnnn      {Contextuals} {NoLineFinal} {8} {7}
\@@_define_aat_feature:nnnn      {Contextuals} {Inner} {8} {8}
\@@_define_aat_feature:nnnn      {Contextuals} {NoInner} {8} {9}
%    \end{macrocode}
%
% \subsubsection{Diacritics}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Diacritics}
\@@_define_aat_feature:nnnn      {Diacritics} {Show} {9} {0}
\@@_define_aat_feature:nnnn      {Diacritics} {Hide} {9} {1}
\@@_define_aat_feature:nnnn      {Diacritics} {Decompose} {9} {2}
%    \end{macrocode}
%
%
% \subsubsection{Vertical position}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {VerticalPosition}
\@@_define_aat_feature:nnnn      {VerticalPosition} {Normal} {10} {0}
\@@_define_aat_feature:nnnn      {VerticalPosition} {Superior} {10} {1}
\@@_define_aat_feature:nnnn      {VerticalPosition} {Inferior} {10} {2}
\@@_define_aat_feature:nnnn      {VerticalPosition} {Ordinal} {10} {3}
%    \end{macrocode}
%
% \subsubsection{Fractions}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Fractions}
\@@_define_aat_feature:nnnn      {Fractions} {On} {11} {1}
\@@_define_aat_feature:nnnn      {Fractions} {Off} {11} {0}
\@@_define_aat_feature:nnnn      {Fractions} {Diagonal} {11} {2}
%    \end{macrocode}
%
% \subsubsection{Alternate}
%    \begin{macrocode}
\@@_define_aat_feature_group:n  { Alternate }
\keys_define:nn {fontspec-aat}
 {
  Alternate .default:n = {0} ,
  Alternate / unknown .code:n =
   {
    \clist_map_inline:nn {#1}
      {
        \@@_make_AAT_feature:nn {17}{##1}
      }
   }
 }
%    \end{macrocode}
%
%
% \subsubsection{Variant / StylisticSet}
%    \begin{macrocode}
\@@_define_aat_feature_group:n  {Variant}
\keys_define:nn {fontspec-aat}
 {
  Variant .default:n = {0} ,
  Variant / unknown .code:n =
   {
    \clist_map_inline:nn {#1}
      { \@@_make_AAT_feature:nn {18}{##1} }
   }
 }
\aliasfontfeature{Variant}{StylisticSet}
%    \end{macrocode}
%
%
%
%    \begin{macrocode}
\@@_define_aat_feature_group:n  {Vertical}
\keys_define:nn {fontspec-aat}
 {
  Vertical .choice: ,
  Vertical / RotatedGlyphs .code:n =
    {
      \__fontspec_update_featstr:n {vertical}
    }
 }

%    \end{macrocode}
%
%
% \subsubsection{Style}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Style}
\@@_define_aat_feature:nnnn      {Style} {Italic} {32} {2}
\@@_define_aat_feature:nnnn      {Style} {Ruby} {28} {2}
\@@_define_aat_feature:nnnn      {Style} {Display} {19} {1}
\@@_define_aat_feature:nnnn      {Style} {Engraved} {19} {2}
\@@_define_aat_feature:nnnn      {Style} {TitlingCaps} {19} {4}
\@@_define_aat_feature:nnnn      {Style} {TallCaps} {19} {5}
%    \end{macrocode}
%
% \subsubsection{CJK shape}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {CJKShape}
\@@_define_aat_feature:nnnn      {CJKShape} {Traditional} {20} {0}
\@@_define_aat_feature:nnnn      {CJKShape} {Simplified} {20} {1}
\@@_define_aat_feature:nnnn      {CJKShape} {JIS1978} {20} {2}
\@@_define_aat_feature:nnnn      {CJKShape} {JIS1983} {20} {3}
\@@_define_aat_feature:nnnn      {CJKShape} {JIS1990} {20} {4}
\@@_define_aat_feature:nnnn      {CJKShape} {Expert} {20} {10}
\@@_define_aat_feature:nnnn      {CJKShape} {NLC} {20} {13}
%    \end{macrocode}
%
% \subsubsection{Character width}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {CharacterWidth}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Proportional} {22} {0}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Full} {22} {1}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Half} {22} {2}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Third} {22} {3}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Quarter} {22} {4}
\@@_define_aat_feature:nnnn      {CharacterWidth} {AlternateProportional} {22} {5}
\@@_define_aat_feature:nnnn      {CharacterWidth} {AlternateHalf} {22} {6}
\@@_define_aat_feature:nnnn      {CharacterWidth} {Default} {22} {7}
%    \end{macrocode}
%
% \subsubsection{Annotation}
%    \begin{macrocode}
\@@_define_aat_feature_group:n {Annotation}
\@@_define_aat_feature:nnnn      {Annotation} {Off} {24} {0}
\@@_define_aat_feature:nnnn      {Annotation} {Box} {24} {1}
\@@_define_aat_feature:nnnn      {Annotation} {RoundedBox} {24} {2}
\@@_define_aat_feature:nnnn      {Annotation} {Circle} {24} {3}
\@@_define_aat_feature:nnnn      {Annotation} {BlackCircle} {24} {4}
\@@_define_aat_feature:nnnn      {Annotation} {Parenthesis} {24} {5}
\@@_define_aat_feature:nnnn      {Annotation} {Period} {24} {6}
\@@_define_aat_feature:nnnn      {Annotation} {RomanNumerals} {24} {7}
\@@_define_aat_feature:nnnn      {Annotation} {Diamond} {24} {8}
\@@_define_aat_feature:nnnn      {Annotation} {BlackSquare} {24} {9}
\@@_define_aat_feature:nnnn      {Annotation} {BlackRoundSquare} {24} {10}
\@@_define_aat_feature:nnnn      {Annotation} {DoubleCircle} {24} {11}
%    \end{macrocode}
%
% \iffalse
%    \begin{macrocode}
%</fontspec&xetexx>
%    \end{macrocode}
% \fi