CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!-- ==================================================================
3
gapdoc.dtd - XML Document type definition for GAP documentation
4
By Frank Lübeck and Max Neunhöffer
5
================================================================== -->
6
7
8
<!-- Note that this definition goes "bottom-up" because entities can only
9
be used after their definition in the file. -->
10
11
12
<!-- ==================================================================
13
Some entities:
14
================================================================== -->
15
16
<!-- The standard XML entities: -->
17
18
<!ENTITY lt "&#38;#60;">
19
<!ENTITY gt "&#62;">
20
<!ENTITY amp "&#38;#38;">
21
<!ENTITY apos "&#39;">
22
<!ENTITY quot "&#34;">
23
24
25
<!-- The following were introduced in GAPDoc version < 1.0, it is no longer
26
necessary to take care of LaTeX special characters
27
(we keep the entities with simplified definitions for compatibility) -->
28
29
<!ENTITY tamp "&amp;">
30
<!ENTITY tlt "&lt;">
31
<!ENTITY tgt "&gt;">
32
<!ENTITY hash "#">
33
<!ENTITY dollar "$">
34
<!ENTITY percent "&#37;">
35
<!ENTITY tilde "~">
36
<!ENTITY bslash "\\">
37
<!ENTITY obrace "{">
38
<!ENTITY cbrace "}">
39
<!ENTITY uscore "_">
40
<!ENTITY circum "^">
41
42
<!-- ==================================================================
43
Our predefined entities:
44
================================================================== -->
45
46
<!ENTITY nbsp "&#160;">
47
<!ENTITY ndash "&#x2013;">
48
<!ENTITY GAP "<Package>GAP</Package>">
49
<!ENTITY GAPDoc "<Package>GAPDoc</Package>">
50
<!ENTITY TeX
51
"<Alt Only='LaTeX'>{\TeX}</Alt><Alt Not='LaTeX'>TeX</Alt>">
52
<!ENTITY LaTeX
53
"<Alt Only='LaTeX'>{\LaTeX}</Alt><Alt Not='LaTeX'>LaTeX</Alt>">
54
<!ENTITY BibTeX
55
"<Alt Only='LaTeX'>{Bib\TeX}</Alt><Alt Not='LaTeX'>BibTeX</Alt>">
56
<!ENTITY MeatAxe "<Package>MeatAxe</Package>">
57
<!ENTITY XGAP "<Package>XGAP</Package>">
58
<!ENTITY copyright "&#169;">
59
60
<!-- and unicode math symbols -->
61
<!ENTITY CC "&#x2102;" > <!-- double struck -->
62
<!ENTITY ZZ "&#x2124;" >
63
<!ENTITY NN "&#x2115;" >
64
<!ENTITY PP "&#x2119;" >
65
<!ENTITY QQ "&#x211a;" >
66
<!ENTITY HH "&#x210d;" >
67
<!ENTITY RR "&#x211d;" >
68
69
70
<!-- ==================================================================
71
The following describes the "innermost" documentation text which
72
can occur at various places in the document like for example
73
section headings. It does neither contain further sectioning
74
elements nor environments like Enums or Lists.
75
================================================================== -->
76
77
<!ENTITY % InnerText "#PCDATA |
78
Alt |
79
Emph | E |
80
Par | P | Br |
81
Keyword | K | Arg | A | Quoted | Q | Code | C |
82
File | F | Button | B | Package |
83
M | Math | Display |
84
Example | Listing | Log | Verb |
85
URL | Email | Homepage | Address | Cite | Label |
86
Ref | Index |
87
Ignore" >
88
89
90
<!ELEMENT Alt (%InnerText;)*> <!-- This is only to allow "Only" and
91
"Not" attributes for normal text -->
92
<!ATTLIST Alt Only CDATA #IMPLIED
93
Not CDATA #IMPLIED>
94
95
<!-- The following elements declare a certain block of InnerText to
96
have a certain property. They are non-terminal and can contain
97
any InnerText recursively. -->
98
99
<!ELEMENT Emph (%InnerText;)*> <!-- Emphasize something -->
100
<!ELEMENT E (%InnerText;)*> <!-- the same as shortcut -->
101
102
103
<!-- The following is an empty element marking a paragraph boundary. -->
104
105
<!ELEMENT Par EMPTY> <!-- this is intentionally empty! -->
106
<!ELEMENT P EMPTY> <!-- the same as shortcut -->
107
108
<!-- And here is an element for forcing a line break, not starting
109
a new paragraph. -->
110
111
<!ELEMENT Br EMPTY> <!-- a forced line break -->
112
113
<!-- The following elements mark a word or sentence to be of a certain
114
kind, such that it can be typeset differently. They are terminal
115
elements that should only contain character data. But we have to
116
allow Alt elements for handling special characters. For these
117
elements we introduce a long name - which is easy to remember -
118
and a short name - which you may prefer because of the shorter
119
markup. -->
120
121
<!ELEMENT Keyword (#PCDATA|Alt)*> <!-- Keyword -->
122
<!ELEMENT K (#PCDATA|Alt)*> <!-- Keyword (shortcut) -->
123
124
<!ELEMENT Arg (#PCDATA|Alt)*> <!-- Argument -->
125
<!ELEMENT A (#PCDATA|Alt)*> <!-- Argument (shortcut) -->
126
127
<!ELEMENT Code (#PCDATA|Alt|A|Arg)*> <!-- GAP code -->
128
<!ELEMENT C (#PCDATA|Alt|A|Arg)*> <!-- GAP code (shortcut) -->
129
130
<!ELEMENT File (#PCDATA|Alt)*> <!-- Filename -->
131
<!ELEMENT F (#PCDATA|Alt)*> <!-- Filename (shortcut) -->
132
133
<!ELEMENT Button (#PCDATA|Alt)*> <!-- "Button" (also Menu, Key) -->
134
<!ELEMENT B (#PCDATA|Alt)*> <!-- "Button" (shortcut) -->
135
136
<!ELEMENT Package (#PCDATA|Alt)*> <!-- A package name -->
137
138
<!ELEMENT Quoted (%InnerText;)*> <!-- Quoted (in quotes) text -->
139
<!ELEMENT Q (%InnerText;)*> <!-- Quoted text (shortcut) -->
140
141
142
<!-- The following elements contain mathematical formulae. They are
143
terminal elements that contain character data in TeX notation. -->
144
145
<!-- Math with well defined translation to text output -->
146
<!ELEMENT M (#PCDATA|A|Arg|Alt)*>
147
<!-- Normal TeX math mode formula -->
148
<!ELEMENT Math (#PCDATA|A|Arg|Alt)*>
149
<!-- TeX displayed math mode formula -->
150
<!ELEMENT Display (#PCDATA|A|Arg|Alt)*>
151
<!-- Mode="M" causes <M>-style formatting -->
152
<!ATTLIST Display Mode CDATA #IMPLIED>
153
154
155
<!-- The following elements contain GAP related text like code,
156
session logs or examples. They are all terminal elements and
157
consist of character data which is normally typeset verbatim. The
158
different types of the elements only control how they are
159
treated. -->
160
161
<!ELEMENT Example (#PCDATA)> <!-- This is subject to the automatic
162
example checking mechanism -->
163
<!ELEMENT Log (#PCDATA)> <!-- This not -->
164
<!ELEMENT Listing (#PCDATA)> <!-- This is just for code listings -->
165
<!ATTLIST Listing Type CDATA #IMPLIED> <!-- a comment about the type of
166
listed code, may appear in
167
output -->
168
169
<!-- One further verbatim element, this is truely verbatim without
170
any processing and intended for ASCII substitutes of complicated
171
displayed formulae or tables. -->
172
173
<!ELEMENT Verb (#PCDATA)>
174
175
<!-- The following elements are for cross-referencing purposes like
176
URLs, citations, references, and the index. All these elements
177
are terminal and need special methods to make up the actual
178
output during document generation. -->
179
180
<!ELEMENT URL (#PCDATA|Alt|Link|LinkText)*> <!-- Link, LinkText
181
variant for case where text needs further markup -->
182
<!ATTLIST URL Text CDATA #IMPLIED> <!-- This is for output formats
183
that have links like HTML -->
184
<!ELEMENT Link (%InnerText;)*> <!-- the URL -->
185
<!ELEMENT LinkText (%InnerText;)*> <!-- text for links, can contain markup -->
186
<!-- The following two are actually URLs, but the element name determines
187
the type. -->
188
<!ELEMENT Email (#PCDATA|Alt|Link|LinkText)*>
189
<!ELEMENT Homepage (#PCDATA|Alt|Link|LinkText)*>
190
191
<!-- Those who still want to give postal addresses can use the following
192
element. Use <Br/> for specifying typical line breaks -->
193
194
<!ELEMENT Address (#PCDATA|Alt|Br)*>
195
196
<!ELEMENT Cite EMPTY>
197
<!ATTLIST Cite Key CDATA #REQUIRED
198
Where CDATA #IMPLIED>
199
200
<!ELEMENT Label EMPTY>
201
<!ATTLIST Label Name CDATA #REQUIRED>
202
203
<!ELEMENT Ref EMPTY>
204
<!ATTLIST Ref Func CDATA #IMPLIED
205
Oper CDATA #IMPLIED
206
Constr CDATA #IMPLIED
207
Meth CDATA #IMPLIED
208
Filt CDATA #IMPLIED
209
Prop CDATA #IMPLIED
210
Attr CDATA #IMPLIED
211
Var CDATA #IMPLIED
212
Fam CDATA #IMPLIED
213
InfoClass CDATA #IMPLIED
214
Chap CDATA #IMPLIED
215
Sect CDATA #IMPLIED
216
Subsect CDATA #IMPLIED
217
Appendix CDATA #IMPLIED
218
Text CDATA #IMPLIED
219
220
Label CDATA #IMPLIED
221
BookName CDATA #IMPLIED
222
Style (Text|Number) #IMPLIED> <!-- normally automatic -->
223
224
<!-- Note that only one attribute of Ref is used normally. BookName
225
and Style can be specified in addition to handle external
226
references and the typesetting style of the reference. -->
227
228
<!-- For explicit index entries (Func and so on should cause an
229
automatically generated index entry). Use the attributes Key,
230
Subkey for sorting (simplified, without markup). The Subkey value
231
also gets printed. Use the optional Subkey element if the printed
232
version needs some markup. -->
233
<!ELEMENT Index (%InnerText;|Subkey)*>
234
<!ATTLIST Index Key CDATA #IMPLIED
235
Subkey CDATA #IMPLIED>
236
<!ELEMENT Subkey (%InnerText;)*>
237
238
239
<!-- ==================================================================
240
The following describes the normal documentation text which can
241
occur at various places in the document. It does not contain
242
further sectioning elements. In addition to InnerText it can contain
243
environments like enumerations, lists, and such.
244
================================================================== -->
245
246
<!ENTITY % Text "%InnerText; | List | Enum | Table">
247
248
<!ELEMENT Item ( %Text;)*>
249
<!ELEMENT Mark ( %InnerText;)*>
250
251
<!ELEMENT List ( ((Mark,Item)|Item)+ )>
252
<!ATTLIST List Only CDATA #IMPLIED
253
Not CDATA #IMPLIED>
254
<!ELEMENT Enum ( Item+ )>
255
<!ATTLIST Enum Only CDATA #IMPLIED
256
Not CDATA #IMPLIED>
257
258
<!ELEMENT Table ( Caption?, (Row | HorLine)+ )>
259
<!ATTLIST Table Label CDATA #IMPLIED
260
Only CDATA #IMPLIED
261
Not CDATA #IMPLIED
262
Align CDATA #REQUIRED> <!-- A TeX tabular string -->
263
<!-- We allow | and l,c,r, nothing else -->
264
<!ELEMENT Row ( Item+ )>
265
<!ELEMENT HorLine EMPTY>
266
<!ELEMENT Caption ( %InnerText;)*>
267
268
<!-- ==================================================================
269
We start defining some things within the overall structure:
270
================================================================== -->
271
272
<!-- The TitlePage consists of several sub-elements: -->
273
274
<!ELEMENT TitlePage (Title, Subtitle?, Version?, TitleComment?,
275
Author+, Date?, Address?, Abstract?, Copyright?,
276
Acknowledgements? , Colophon? )>
277
278
<!ELEMENT Title (%Text;)*>
279
<!ELEMENT Subtitle (%Text;)*>
280
<!ELEMENT Version (%Text;)*>
281
<!ELEMENT TitleComment (%Text;)*>
282
<!ELEMENT Author (%Text;)*> <!-- There may be more than one Author! -->
283
<!ELEMENT Date (%Text;)*>
284
<!ELEMENT Abstract (%Text;)*>
285
<!ELEMENT Copyright (%Text;)*>
286
<!ELEMENT Acknowledgements (%Text;)*>
287
<!ELEMENT Colophon (%Text;)*>
288
289
290
<!-- The following things just specify some information about the
291
corresponding parts of the Book: -->
292
293
<!ELEMENT TableOfContents EMPTY>
294
<!ELEMENT Bibliography EMPTY>
295
<!ATTLIST Bibliography Databases CDATA #REQUIRED
296
Style CDATA #IMPLIED>
297
<!ELEMENT TheIndex EMPTY>
298
299
<!-- ==================================================================
300
The Ignore element can be used everywhere to include further
301
information in a GAPDoc document which is not intended for the
302
standard converters (e.g., source code, not yet finished stuff,
303
and so on. This information can be extracted by special converter
304
routines, more precise information about the content of an Ignore
305
element can be given by the "Remark" attribute.
306
================================================================== -->
307
308
<!ELEMENT Ignore (%Text;| Chapter | Section | Subsection | ManSection |
309
Heading)*>
310
<!ATTLIST Ignore Remark CDATA #IMPLIED>
311
312
<!-- ==================================================================
313
Now we go on with the overall structure by defining the sectioning
314
structure, which includes the Synopsis element:
315
================================================================== -->
316
317
318
<!ELEMENT Subsection (%Text;| Heading)*>
319
<!ATTLIST Subsection Label CDATA #IMPLIED> <!-- For reference purposes -->
320
321
<!ELEMENT ManSection ( Heading?,
322
((Func, Returns?) | (Oper, Returns?) |
323
(Meth, Returns?) | (Filt, Returns?) |
324
(Prop, Returns?) | (Attr, Returns?) |
325
(Constr, Returns?) |
326
Var | Fam | InfoClass)+, Description )>
327
<!ATTLIST ManSection Label CDATA #IMPLIED> <!-- For reference purposes -->
328
329
<!ELEMENT Returns (%Text;)*>
330
<!ELEMENT Description (%Text;)*>
331
332
333
<!-- Note that the ManSection element is actually a subsection with
334
respect to labelling, referencing, and counting of sectioning
335
elements. -->
336
337
<!ELEMENT Func EMPTY>
338
<!ATTLIST Func Name CDATA #REQUIRED
339
Label CDATA #IMPLIED
340
Arg CDATA #REQUIRED
341
Comm CDATA #IMPLIED>
342
343
<!-- Note that Arg contains the full list of arguments, including
344
optional parts, which are denoted by square brackets [].
345
Arguments are separated by whitespace, commas count as
346
whitespace. -->
347
348
<!-- Note further that although Name and Label are CDATA (and not ID)
349
Label must make up a unique identifier. -->
350
351
<!ELEMENT Oper EMPTY>
352
<!ATTLIST Oper Name CDATA #REQUIRED
353
Label CDATA #IMPLIED
354
Arg CDATA #REQUIRED
355
Comm CDATA #IMPLIED>
356
357
<!ELEMENT Constr EMPTY>
358
<!ATTLIST Constr Name CDATA #REQUIRED
359
Label CDATA #IMPLIED
360
Arg CDATA #REQUIRED
361
Comm CDATA #IMPLIED>
362
363
<!ELEMENT Meth EMPTY>
364
<!ATTLIST Meth Name CDATA #REQUIRED
365
Label CDATA #IMPLIED
366
Arg CDATA #REQUIRED
367
Comm CDATA #IMPLIED>
368
369
<!ELEMENT Filt EMPTY>
370
<!ATTLIST Filt Name CDATA #REQUIRED
371
Label CDATA #IMPLIED
372
Arg CDATA #IMPLIED
373
Comm CDATA #IMPLIED
374
Type CDATA #IMPLIED>
375
376
<!ELEMENT Prop EMPTY>
377
<!ATTLIST Prop Name CDATA #REQUIRED
378
Label CDATA #IMPLIED
379
Arg CDATA #REQUIRED
380
Comm CDATA #IMPLIED>
381
382
<!ELEMENT Attr EMPTY>
383
<!ATTLIST Attr Name CDATA #REQUIRED
384
Label CDATA #IMPLIED
385
Arg CDATA #REQUIRED
386
Comm CDATA #IMPLIED>
387
388
<!ELEMENT Var EMPTY>
389
<!ATTLIST Var Name CDATA #REQUIRED
390
Label CDATA #IMPLIED
391
Comm CDATA #IMPLIED>
392
393
<!ELEMENT Fam EMPTY>
394
<!ATTLIST Fam Name CDATA #REQUIRED
395
Label CDATA #IMPLIED
396
Comm CDATA #IMPLIED>
397
398
<!ELEMENT InfoClass EMPTY>
399
<!ATTLIST InfoClass Name CDATA #REQUIRED
400
Label CDATA #IMPLIED
401
Comm CDATA #IMPLIED>
402
403
404
<!ELEMENT Heading (%InnerText;)*>
405
406
<!ELEMENT Section (%Text;| Heading | Subsection | ManSection)*>
407
<!ATTLIST Section Label CDATA #IMPLIED> <!-- For reference purposes -->
408
409
410
<!ELEMENT Chapter (%Text;| Heading | Section)*>
411
<!ATTLIST Chapter Label CDATA #IMPLIED> <!-- For reference purposes -->
412
413
414
<!-- Note that the entity %InnerText; is documentation that contains
415
neither sectioning elements nor environments like enumerations,
416
but only formulae, labels, references, citations, and other
417
terminal elements. -->
418
419
<!ELEMENT Appendix (%Text;| Heading | Section)*>
420
<!ATTLIST Appendix Label CDATA #IMPLIED> <!-- For reference purposes -->
421
422
<!-- Note that an Appendix is exactly the same as a Chapter. They
423
differ only in the numbering. -->
424
425
<!-- ==================================================================
426
At last we define the overall structure of a gapdoc Book:
427
================================================================== -->
428
429
<!ELEMENT Body ( %Text;| Chapter | Section )*>
430
431
<!ELEMENT Book (TitlePage,
432
TableOfContents?,
433
Body,
434
Appendix*,
435
Bibliography?,
436
TheIndex?)>
437
<!ATTLIST Book Name CDATA #REQUIRED>
438
439
<!-- Note that the entity %Text; is documentation that contains
440
no further sectioning elements but possibly environments like
441
enumerations, and formulae, labels, references, and citations.
442
-->
443
444
<!-- ============================================================== -->
445
446
447