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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
|
******************************************************************************
FILE: $RCSfile: csfile.txt,v $
$Revision: 3.71 $
$Date: 1996/08/18 20:41:31 $
******************************************************************************
An 8-bit Implementation of BibTeX 0.99 with a Very Large Capacity
=================================================================
Contents
--------
1. The Codepage and Sort Order (CS) File
1.1 CS file syntax
1.2 Testing a CS file
1.3 Sharing your CS file
2. Change Log
1. The Codepage and Sort Order (CS) File
-----------------------------------------
The Codepage and Sort definition (CS) file is used to define the 8-bit
character set used by BibTeX and the order in which those characters should
be sorted.
NOTE: this file contains many 8-bit characters and may cause problems
if you try to display or print it on 7-bit systems (e.g. older
versions of Unix).
1.1 CS file syntax
------------------
The codepage and sorting order (CS) file defines how BibTeX will treat an
8-bit character set, specifically which characters are to be treated as
letters, the upper/lower case relationships between characters, and the
sorting order of characters.
The CS file may contain a number of sections, each presented in the form
of a TeX macro:
\section-name{
<section definitions>
}
Four sections are currently supported: \lowupcase, \lowercase, \uppercase
and \order. The syntax of the four supported sections is summarised
below.
8-bit characters may be entered naturally, but to avoid problems with
character set translation or corruption, they can also be entered using
the TeX-style portable notation for character codes, i.e. ^^XX, where XX
is the hexadecimal value ofthe character code.
Reading of the sections ends when the first '}' character is reached, so
'}' can't be included in a section. You can, however, use ^^7d instead.
The percent sign ('%') is used to introduce a trailing comment - it and
all remaining characters on a line are ignored. If you need to insert a
percent character, you can use ^^25 instead.
\lowupcase section
The \lowupcase section of the CS file is used to define the lower
/upper and upper/lower case relationship of pairs of specified
characters. It is only used if the relationship is symmetrical - use
\lowercase or \upcase if it isn't.
The syntax of the \lowupcase section is:
\lowupcase{
<LC-1> <UC-1> % Comment begins with a percent sign
<LC-2> <UC-2>
...
<LC-N> <UC-N>
}
Each <LC-n> <UC-n> pair of characters defines that the upper case
equivalent of <LC-n> is <UC-n> *and* the lower case equivalent of
<UC-n> is <LC-n>.
You cannot redefine the lower or upper case equivalent of an ASCII
character (code < 128), so all instances of <LC-n> and <UC-n> (i.e.
both sides of the relationship) must have codes > 127.
\lowercase section
The \lowercase section of the CS file is used to define the lower
case equivalent of specified characters. It should normally only be
used if the relationship isn't symmetrical - use \lowupcase if it is.
The syntax of the \lowercase section is:
\lowercase{
<UC-1> <LC-1> % Comment begins with a percent sign
<UC-2> <LC-2>
...
<UC-N> <LC-N>
}
Each <LC-n> <UC-n> pair of characters defines that the lower case
equivalent of <UC-n> is <LC-n>.
You cannot redefine the lower case equivalent of an ASCII character
(code < 128), so all instances of <UC-n> (i.e. the left hand side of
the relationship) must have codes > 127.
\uppercase section
The \uppercase section of the CS file is used to define the upper
case equivalent of specified characters. It should normally only be
used if the relationship isn't symmetrical - use \lowupcase if it is.
The syntax of the \uppercase section is:
\uppercase{
<LC-1> <UC-1> % Comment begins with a percent sign
<LC-2> <UC-2>
...
<LC-N> <UC-N>
}
Each <LC-n> <UC-n> pair of characters defines that the upper case
case equivalent of <LC-n> is <UC-n>.
You cannot redefine the upper case equivalent of an ASCII character
(code < 128), so all instances of <LC-n> (i.e. the left hand side of
the relationship) must have codes > 127.
\order section
The \order section of the CS file is used to define the order in
which characters are sorted.
The syntax of the \order section is:
\order{
<char-1> % Comment begins with a percent sign
<char-2> <char-3> % whitespace between the chars
<char-4> - <char-5> % a hyphen between the chars
<char-4> _ <char-5> % an underscore between the chars
...
<char-n>
}
All characters on the same line are given the same sorting weight.
The construct <char-1> <underscore> <char-2> is used to denote that
all characters in the range <char-1> to <char-2> should be given the
same sorting weight. For example, "A _ Z" would cause all ASCII
upper case alphabetical characters to have the same sorting weight
and would be equivalent to placing all 26 characters on the same
line.
The construct <char-1> <hyphen> <char-2> is used to denote that all
characters in the range <char-1> to <char-2> should be given an
ascending set of sorting weights, starting with <char-1> and ending
with <char-2>. For example, "A - Z" would cause all upper case ASCII
alphabetical characters to be sorted in ascending order and would be
equivalent to placing 'A' on the first line, 'B' on the second,
through to 'Z' on the 26th line.
The characters at the beginning of the order section are given a
lower sorting weight than characters occuring later. When sorting
alphabetically, characters with the lowest weight come first.
All characters not in the \order section (including ASCII characters)
are given the same very high sorting weight to ensure that they come
last when sorting alphabetically.
1.2 Testing a CS file
---------------------
If you create a CS, you'll want a straightforward way of testing that
BibTeX is interpreting it as you expect it to. The --debug=csf option
will report the results of parsing the CS file. Specifically, BibTeX
will report:
o characters with codes > 127 that it has defined as type ALPHA
o characters with upper case equivalents
o characters with lower case equivalents
o characters in ascending sorting order
An example of the output when processing the cp437lat.csf CS file is
shown below. This output will only make sense if you are using a
computer that supports the IBM codepage 437.
D-CSF: c8read_csf: trying to open CS file `cp437lat.csf' ...
D-CSF: reading the \lowupcase section ...
D-CSF: finished reading the \lowupcase section.
D-CSF: reading the \uppercase section ...
D-CSF: finished reading the \uppercase section.
D-CSF: reading the \order section ...
D-CSF: finished reading the \order section.
D-CSF: 8-bit ALPHA characters
D-CSF: ----------------------
D-CSF: 80:
D-CSF: 90: . . . . . .
D-CSF: a0: . . . . . . . . . .
D-CSF: b0: . . . . . . . . . . . . . . . .
D-CSF: c0: . . . . . . . . . . . . . . . .
D-CSF: d0: . . . . . . . . . . . . . . . .
D-CSF: e0: . . . . . . . . . . . . . . .
D-CSF: f0: . . . . . . . . . . . . . . . .
D-CSF: Characters with upper case equivalents
D-CSF: --------------------------------------
D-CSF: a [61] <<< A [41] b [62] <<< B [42] c [63] <<< C [43]
D-CSF: d [64] <<< D [44] e [65] <<< E [45] f [66] <<< F [46]
D-CSF: g [67] <<< G [47] h [68] <<< H [48] i [69] <<< I [49]
D-CSF: j [6a] <<< J [4a] k [6b] <<< K [4b] l [6c] <<< L [4c]
D-CSF: m [6d] <<< M [4d] n [6e] <<< N [4e] o [6f] <<< O [4f]
D-CSF: p [70] <<< P [50] q [71] <<< Q [51] r [72] <<< R [52]
D-CSF: s [73] <<< S [53] t [74] <<< T [54] u [75] <<< U [55]
D-CSF: v [76] <<< V [56] w [77] <<< W [57] x [78] <<< X [58]
D-CSF: y [79] <<< Y [59] z [7a] <<< Z [5a] [81] <<< [9a]
D-CSF: [82] <<< [90] [83] <<< A [41] [84] <<< [8e]
D-CSF: [85] <<< A [41] [86] <<< [8f] [87] <<< [80]
D-CSF: [88] <<< E [45] [89] <<< E [45] [8a] <<< E [45]
D-CSF: [8b] <<< I [49] [8c] <<< I [49] [8d] <<< I [49]
D-CSF: [91] <<< [92] [93] <<< O [4f] [94] <<< [99]
D-CSF: [95] <<< O [4f] [96] <<< U [55] [97] <<< U [55]
D-CSF: [a0] <<< A [41] [a1] <<< I [49] [a2] <<< O [4f]
D-CSF: [a3] <<< U [55] [a4] <<< [a5]
D-CSF: Characters with lower case equivalents
D-CSF: --------------------------------------
D-CSF: A [41] >>> a [61] B [42] >>> b [62] C [43] >>> c [63]
D-CSF: D [44] >>> d [64] E [45] >>> e [65] F [46] >>> f [66]
D-CSF: G [47] >>> g [67] H [48] >>> h [68] I [49] >>> i [69]
D-CSF: J [4a] >>> j [6a] K [4b] >>> k [6b] L [4c] >>> l [6c]
D-CSF: M [4d] >>> m [6d] N [4e] >>> n [6e] O [4f] >>> o [6f]
D-CSF: P [50] >>> p [70] Q [51] >>> q [71] R [52] >>> r [72]
D-CSF: S [53] >>> s [73] T [54] >>> t [74] U [55] >>> u [75]
D-CSF: V [56] >>> v [76] W [57] >>> w [77] X [58] >>> x [78]
D-CSF: Y [59] >>> y [79] Z [5a] >>> z [7a] [80] >>> [87]
D-CSF: [8e] >>> [84] [8f] >>> [86] [90] >>> [82]
D-CSF: [92] >>> [91] [99] >>> [94] [9a] >>> [81]
D-CSF: [a5] >>> [a4]
D-CSF: Characters in sorting order
D-CSF: ---------------------------
D-CSF: 00: 0 [30]
D-CSF: 01: 1 [31]
D-CSF: 02: 2 [32]
D-CSF: 03: 3 [33]
D-CSF: 04: 4 [34]
D-CSF: 05: 5 [35]
D-CSF: 06: 6 [36]
D-CSF: 07: 7 [37]
D-CSF: 08: 8 [38]
D-CSF: 09: 9 [39]
D-CSF: 0a: A [41] a [61] [83] [84] [85] [86] [8e] [8f] [a0]
D-CSF: 0b: [91] [92]
D-CSF: 0c: B [42] b [62]
D-CSF: 0d: C [43] c [63] [80] [87]
D-CSF: 0e: D [44] d [64]
D-CSF: 0f: E [45] e [65] [82] [88] [89] [8a] [90]
D-CSF: 10: F [46] f [66]
D-CSF: 11: G [47] g [67]
D-CSF: 12: H [48] h [68]
D-CSF: 13: I [49] i [69] [8b] [8c] [8d] [a1]
D-CSF: 14: J [4a] j [6a]
D-CSF: 15: K [4b] k [6b]
D-CSF: 16: L [4c] l [6c]
D-CSF: 17: M [4d] m [6d]
D-CSF: 18: N [4e] n [6e]
D-CSF: 19: [a4] [a5]
D-CSF: 1a: O [4f] o [6f] [93] [94] [95] [99] [a2]
D-CSF: 1b: P [50] p [70]
D-CSF: 1c: Q [51] q [71]
D-CSF: 1d: R [52] r [72]
D-CSF: 1e: S [53] s [73]
D-CSF: 1f: [e1]
D-CSF: 20: T [54] t [74]
D-CSF: 21: U [55] u [75] [81] [96] [97] [9a] [a3]
D-CSF: 22: V [56] v [76]
D-CSF: 23: W [57] w [77]
D-CSF: 24: X [58] x [78]
D-CSF: 25: Y [59] y [79]
D-CSF: 26: Z [5a] z [7a]
D-CSF: (All other characters are sorted equally after any of the above.)
1.3 Sharing your CS file
------------------------
Although we have provided a limited number of CS files, we hope that
other will soon produce different examples for other character sets and
national sorting orders. We will also be happy to accept corrections to
the example files supplied.
If you'd like to contribute a CS file, please send it to one of the
authors or upload it to one of the CTAN FTP archives. If you e-mail a
copy please ZIP and encode (UU/MIME) it so that we can be confident that
the file has not become corrupted in transit.
2. Change Log
--------------
$Log: csfile.txt,v $
# Revision 3.71 1996/08/18 20:41:31 kempson
# Placed under RCS control.
#
******************************** END OF FILE *******************************
|