summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/ly1/texnansi.txt
blob: 761e44ad29eaad9aa93cf087a64a06610f8dcf65 (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
===============================================================
		Design principles of `texnansi.vec':
===============================================================

*	Make all 228 glyphs in typical plain vanilla text fonts accessible.
	(Avoid need for second copy of font with different encoding)

*	Provide access to `extra' f-ligatures (ff, ffi, ffl) and dotlessj
	if the font has these.

*	Make 58 accented / composite `standard' characters directly accessible 
	(so don't have to use TeX's \accent mechanism - improved hyphenation)

*	Follow ISO Latin 1 in 160 - 255 range --- which matches Windows ANSI.
	(And matches Cork T1 encoding for accented characters in 192 - 255)

*	Fill in from Windows ANSI in 128 -- 159 range 
	(which means one can use a Windows editor for the source file)

*	Have special characters where plain TeX (OT1) has them hard-wired.
	(ae, oe, oslash, AE, OE, Oslash, germandbls)

*	Have accents (grave, acute, caron, breve. macron, ring, cedilla,
	circumflex, tilde, dieresis) mostly where plain TeX (OT1) has them
	hard-wired.

*	Follow `TeX typewriter' in 32 -- 127 as much as reasonable
	(so verbatim environment works as expected)

*	Fortunately, glyphs accessed only via ligature mechanism in TFM can
        be anywhere: ff/fi/fl/ffi/ffl
	exclamdown/questiondown, quotedblleft/quotedblright, endash/emdash

*	Avoid character codes 0, 9, 10, 13, and perhaps 127, since much brain
	dead software has trouble with those.

We use `control characters' (0 -- 31 and 127), since we need space for more
than 224 slots, and since we want to match some aspects of `TeX typewriter'.

Overall layout:

0		Avoid since some buggy software uses null-terminated string ops

4 -- 8		`fraction', `dotaccent', `hungarumlaut', `ogonek', `fl'

9		Avoid (tab - which is treated as white space by some software)

10		Avoid - some applications have hard-wired for `newline'

11 -- 12	ff, fi could actually be anywhere (accessed via ligs)

13		Avoid - some applications have hard-wired for `return'

14 -- 15	ffi, ffl could actually be anywhere (accessed via ligs)

16 -- 17	dotlessi/dotlessj	\i, \j

18 -- 24	grave/acute/caron/breve/macron/ring/cedilla accents.
		Some accents occur again higher up:
		(96), 180, *, *, 175, *, 184 

25 -- 31	germandbls/ae/oe/oslash/AE/OE/Oslash.
		All special characters occur again higher up:
		223, 230, 156, 248, 198, 140, 216

32		space.  Any sane font should have this!  And have it here!

% NO:	34		quotedblright (148)	keep: quotedbl

39		quoteright (146)		*not* quotesingle

% NO:	60		exclamdown (161)	keep: less

% NO:	62		questiondown (191)	keep: greater

NOTE: exclamdown and questiondown can go anywhere (via pseudo ligature)

% NO:	92		quotedblleft (147)	keep: backslash

NOTE: quotedblleft and quotedblright can go anywhere (via pseudo ligature)

94		circumflex (136)		*not* asciicircum

% NO: 95		dotaccent (*)		keep: underscore

96		quoteleft (145)			*not* grave accent

% NO: 123		endash	(150)		keep: braceleft
% NO: 124		emdash  (151)		keep: bar

NOTE: endash/emdash can go anywhere (via pseudo ligature)

% NO: 125		hungarumlaut (*)	keep: braceright

126		tilde (152)			*not* asciitilde
127		dieresis (168)			but use the one in 168 instead

So we have displaced 5 characters (out of 12 possibles) from Windows ANSI: 

	quotesingle (39), asciicircum (94), asciitilde (126),
	underscore (95), grave (96).

but not:	quotedbl (34), less (60), greater (62), 
but not:	backslash (92), bar (124), braceleft (123), braceright (125)

The five above then need to be patched in higher up.

Conversely, we have moved down from Windows ANSI accents and special chars:

	grave (96), acute (180), macron (175), cedilla (184),
	circumflex (136), tilde (152), dieresis (168),
	quoteleft (145), quoteright (146), 
	germandbls (223), ae (230), oe (156), oslash (248), 
	AE (198), OE (140), Oslash (216).

but not:	quotedblleft (147), quotedblright (148), 
but not:	exclamdown (161), questiondown (191)
but not:	endash (150), emdash (151), 

(This opens up some slots higher up that could be filled with other things).

There are eight gaps in Windows ANSI: 128, 129, 141, 142, 143, 144, 157, 158,
we need four for characters displaced from lower down:

	quotesingle (39), asciicircum (94), asciitilde (126), grave (96), 

Actually, we can omit grave, because it appears at 18 now.

Finally, fill in the gaps, and adding minus, Lslash, lslash, Zcaron, zcaron

128	Lslash
129	quotesingle

141	Zcaron
142	asciicircum
143	minus
144	lslash

157	zcaron
158	asciitilde

The rest (160 and above) is ISO Latin 1 / Windows ANSI