blob: eb0ba44f5381ed7961f054a79b9badebc8cb736a (
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
|
% $Id$
% Public domain. Originally by Jonathan Kew.
\XeTeXuseglyphmetrics=1
\XeTeXdashbreakstate=1
\input unicode-letters
% disable the \dump in latex.ltx
\expandafter\let\csname saved-dump-cs\endcsname\dump
\let\dump=\relax
\scrollmode
\input latex.ltx
%
% Allocator for \XeTeXintercharclass values, from Enrico Gregorio
%
\catcode`\@=11
\newcount\xe@alloc@intercharclass % allocates intercharclass
\xe@alloc@intercharclass=\thr@@ % from 4 (1,2 and 3 are used by CJK, AFAIK)
\def\xe@alloc@#1#2#3#4#5{\global\advance#1\@ne
\xe@ch@ck#1#4#2% make sure there's still room
\allocationnumber#1%
\global#3#5\allocationnumber
\wlog{\string#5=\string#2\the\allocationnumber}}
\def\xe@ch@ck#1#2#3{%
\ifnum#1<#2\else
\errmessage{No room for a new #3}%
\fi}
\def\newXeTeXintercharclass{%
\xe@alloc@\xe@alloc@intercharclass\XeTeXintercharclass\chardef\@cclv} %at most 254
% Primitives in pdftex and luatex, we'll just use macros here.
% Since we are generating a whatsit, not 100% compatible,
% but hopefully close enough.
\def\pdfmapfile#1{\special{pdf:mapfile #1}}
\def\pdfmapline#1{\special{pdf:mapline #1}}
\catcode`\@=12
% Because latex.ltx sets up character code tables for T1 encoding by default,
% we need to reset values from unicode-letters that may have been overridden
\begingroup
\catcode`\@=11 \count@=128 % reset chars "80-"FF to category "other", no case mapping
\loop \ifnum\count@<256
\global\uccode\count@=0 \global\lccode\count@=0
\global\catcode\count@=12 \global\sfcode\count@=1000
\advance\count@ by 1 \repeat
\def\C #1 #2 #3 {\global\uccode"#1="#2 \global\lccode"#1="#3 } % case mappings (non-letter)
\def\L #1 #2 #3 {\global\catcode"#1=11 % category: letter
\C #1 #2 #3 % with case mappings
\ifnum"#1="#3 \else \global\sfcode"#1=999 \fi % uppercase letters have sfcode=999
\global\XeTeXmathcode"#1="7"01"#1 % BMP letters default to class 7 (var), fam 1
}
\def\l #1 {\L #1 #1 #1 } % letter without case mappings
\l 00AA
\L 00B5 039C 00B5
\l 00BA
\L 00C0 00C0 00E0
\L 00C1 00C1 00E1
\L 00C2 00C2 00E2
\L 00C3 00C3 00E3
\L 00C4 00C4 00E4
\L 00C5 00C5 00E5
\L 00C6 00C6 00E6
\L 00C7 00C7 00E7
\L 00C8 00C8 00E8
\L 00C9 00C9 00E9
\L 00CA 00CA 00EA
\L 00CB 00CB 00EB
\L 00CC 00CC 00EC
\L 00CD 00CD 00ED
\L 00CE 00CE 00EE
\L 00CF 00CF 00EF
\L 00D0 00D0 00F0
\L 00D1 00D1 00F1
\L 00D2 00D2 00F2
\L 00D3 00D3 00F3
\L 00D4 00D4 00F4
\L 00D5 00D5 00F5
\L 00D6 00D6 00F6
\L 00D8 00D8 00F8
\L 00D9 00D9 00F9
\L 00DA 00DA 00FA
\L 00DB 00DB 00FB
\L 00DC 00DC 00FC
\L 00DD 00DD 00FD
\L 00DE 00DE 00FE
\l 00DF
\L 00E0 00C0 00E0
\L 00E1 00C1 00E1
\L 00E2 00C2 00E2
\L 00E3 00C3 00E3
\L 00E4 00C4 00E4
\L 00E5 00C5 00E5
\L 00E6 00C6 00E6
\L 00E7 00C7 00E7
\L 00E8 00C8 00E8
\L 00E9 00C9 00E9
\L 00EA 00CA 00EA
\L 00EB 00CB 00EB
\L 00EC 00CC 00EC
\L 00ED 00CD 00ED
\L 00EE 00CE 00EE
\L 00EF 00CF 00EF
\L 00F0 00D0 00F0
\L 00F1 00D1 00F1
\L 00F2 00D2 00F2
\L 00F3 00D3 00F3
\L 00F4 00D4 00F4
\L 00F5 00D5 00F5
\L 00F6 00D6 00F6
\L 00F8 00D8 00F8
\L 00F9 00D9 00F9
\L 00FA 00DA 00FA
\L 00FB 00DB 00FB
\L 00FC 00DC 00FC
\L 00FD 00DD 00FD
\L 00FE 00DE 00FE
\L 00FF 0178 00FF
\endgroup
\expandafter\let\expandafter\dump\csname saved-dump-cs\endcsname
\dump
|