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
2
B The File gapdoc.dtd
3
4
For easier reference we repeat here the complete content of the file
5
gapdoc.dtd.
6
7
 gapdoc.dtd 
8
<?xml version="1.0" encoding="UTF-8"?>
9
<!-- ==================================================================
10
 gapdoc.dtd - XML Document type definition for GAP documentation
11
 By Frank Lübeck and Max Neunhöffer
12
 ================================================================== -->
13

14

15
<!-- Note that this definition goes "bottom-up" because entities can only
16
 be used after their definition in the file. -->
17

18

19
<!-- ==================================================================
20
 Some entities:
21
 ================================================================== -->
22

23
<!-- The standard XML entities: -->
24

25
<!ENTITY lt "&#38;#60;"> 
26
<!ENTITY gt "&#62;"> 
27
<!ENTITY amp "&#38;#38;"> 
28
<!ENTITY apos "&#39;"> 
29
<!ENTITY quot "&#34;">
30

31

32
<!-- The following were introduced in GAPDoc version < 1.0, it is no longer
33
 necessary to take care of LaTeX special characters
34
 (we keep the entities with simplified definitions for compatibility) -->
35
 
36
<!ENTITY tamp "&amp;">
37
<!ENTITY tlt "&lt;">
38
<!ENTITY tgt "&gt;">
39
<!ENTITY hash "#">
40
<!ENTITY dollar "$">
41
<!ENTITY percent "&#37;">
42
<!ENTITY tilde "~">
43
<!ENTITY bslash "\\">
44
<!ENTITY obrace "{">
45
<!ENTITY cbrace "}">
46
<!ENTITY uscore "_">
47
<!ENTITY circum "^">
48

49
<!-- ==================================================================
50
 Our predefined entities:
51
 ================================================================== -->
52

53
<!ENTITY nbsp "&#160;">
54
<!ENTITY ndash "&#x2013;">
55
<!ENTITY GAP "<Package>GAP</Package>">
56
<!ENTITY GAPDoc "<Package>GAPDoc</Package>">
57
<!ENTITY TeX 
58
 "<Alt Only='LaTeX'>{\TeX}</Alt><Alt Not='LaTeX'>TeX</Alt>">
59
<!ENTITY LaTeX 
60
 "<Alt Only='LaTeX'>{\LaTeX}</Alt><Alt Not='LaTeX'>LaTeX</Alt>">
61
<!ENTITY BibTeX 
62
 "<Alt Only='LaTeX'>{Bib\TeX}</Alt><Alt Not='LaTeX'>BibTeX</Alt>">
63
<!ENTITY MeatAxe "<Package>MeatAxe</Package>">
64
<!ENTITY XGAP "<Package>XGAP</Package>">
65
<!ENTITY copyright "&#169;">
66

67
<!-- and unicode math symbols -->
68
<!ENTITY CC "&#x2102;" > <!-- double struck -->
69
<!ENTITY ZZ "&#x2124;" >
70
<!ENTITY NN "&#x2115;" >
71
<!ENTITY PP "&#x2119;" >
72
<!ENTITY QQ "&#x211a;" >
73
<!ENTITY HH "&#x210d;" >
74
<!ENTITY RR "&#x211d;" >
75

76

77
<!-- ==================================================================
78
 The following describes the "innermost" documentation text which 
79
 can occur at various places in the document like for example
80
 section headings. It does neither contain further sectioning 
81
 elements nor environments like Enums or Lists. 
82
 ================================================================== -->
83

84
<!ENTITY % InnerText "#PCDATA |
85
 Alt |
86
 Emph | E |
87
 Par | P | Br |
88
 Keyword | K | Arg | A | Quoted | Q | Code | C | 
89
 File | F | Button | B | Package |
90
 M | Math | Display | 
91
 Example | Listing | Log | Verb |
92
 URL | Email | Homepage | Address | Cite | Label | 
93
 Ref | Index |
94
 Ignore" >
95

96

97
<!ELEMENT Alt (%InnerText;)*> <!-- This is only to allow "Only" and
98
 "Not" attributes for normal text -->
99
<!ATTLIST Alt Only CDATA #IMPLIED
100
 Not CDATA #IMPLIED>
101

102
<!-- The following elements declare a certain block of InnerText to
103
 have a certain property. They are non-terminal and can contain
104
 any InnerText recursively. -->
105

106
<!ELEMENT Emph (%InnerText;)*> <!-- Emphasize something -->
107
<!ELEMENT E (%InnerText;)*> <!-- the same as shortcut -->
108

109

110
<!-- The following is an empty element marking a paragraph boundary. -->
111

112
<!ELEMENT Par EMPTY> <!-- this is intentionally empty! -->
113
<!ELEMENT P EMPTY> <!-- the same as shortcut -->
114

115
<!-- And here is an element for forcing a line break, not starting
116
 a new paragraph. -->
117

118
<!ELEMENT Br EMPTY> <!-- a forced line break -->
119

120
<!-- The following elements mark a word or sentence to be of a certain
121
 kind, such that it can be typeset differently. They are terminal
122
 elements that should only contain character data. But we have to
123
 allow Alt elements for handling special characters. For these
124
 elements we introduce a long name - which is easy to remember -
125
 and a short name - which you may prefer because of the shorter
126
 markup. -->
127

128
<!ELEMENT Keyword (#PCDATA|Alt)*> <!-- Keyword -->
129
<!ELEMENT K (#PCDATA|Alt)*> <!-- Keyword (shortcut) -->
130

131
<!ELEMENT Arg (#PCDATA|Alt)*> <!-- Argument -->
132
<!ELEMENT A (#PCDATA|Alt)*> <!-- Argument (shortcut) -->
133

134
<!ELEMENT Code (#PCDATA|Alt|A|Arg)*> <!-- GAP code -->
135
<!ELEMENT C (#PCDATA|Alt|A|Arg)*> <!-- GAP code (shortcut) -->
136

137
<!ELEMENT File (#PCDATA|Alt)*> <!-- Filename -->
138
<!ELEMENT F (#PCDATA|Alt)*> <!-- Filename (shortcut) -->
139

140
<!ELEMENT Button (#PCDATA|Alt)*> <!-- "Button" (also Menu, Key) -->
141
<!ELEMENT B (#PCDATA|Alt)*> <!-- "Button" (shortcut) -->
142

143
<!ELEMENT Package (#PCDATA|Alt)*> <!-- A package name -->
144

145
<!ELEMENT Quoted (%InnerText;)*> <!-- Quoted (in quotes) text -->
146
<!ELEMENT Q (%InnerText;)*> <!-- Quoted text (shortcut) -->
147

148

149
<!-- The following elements contain mathematical formulae. They are 
150
 terminal elements that contain character data in TeX notation. -->
151

152
<!-- Math with well defined translation to text output -->
153
<!ELEMENT M (#PCDATA|A|Arg|Alt)*>
154
<!-- Normal TeX math mode formula -->
155
<!ELEMENT Math (#PCDATA|A|Arg|Alt)*> 
156
<!-- TeX displayed math mode formula -->
157
<!ELEMENT Display (#PCDATA|A|Arg|Alt)*>
158
<!-- Mode="M" causes <M>-style formatting -->
159
<!ATTLIST Display Mode CDATA #IMPLIED> 
160

161

162
<!-- The following elements contain GAP related text like code,
163
 session logs or examples. They are all terminal elements and
164
 consist of character data which is normally typeset verbatim. The
165
 different types of the elements only control how they are
166
 treated. -->
167

168
<!ELEMENT Example (#PCDATA)> <!-- This is subject to the automatic 
169
 example checking mechanism -->
170
<!ELEMENT Log (#PCDATA)> <!-- This not -->
171
<!ELEMENT Listing (#PCDATA)> <!-- This is just for code listings -->
172
<!ATTLIST Listing Type CDATA #IMPLIED> <!-- a comment about the type of
173
 listed code, may appear in
174
 output -->
175

176
<!-- One further verbatim element, this is truely verbatim without
177
 any processing and intended for ASCII substitutes of complicated
178
 displayed formulae or tables. -->
179

180
<!ELEMENT Verb (#PCDATA)> 
181

182
<!-- The following elements are for cross-referencing purposes like
183
 URLs, citations, references, and the index. All these elements
184
 are terminal and need special methods to make up the actual
185
 output during document generation. -->
186

187
<!ELEMENT URL (#PCDATA|Alt|Link|LinkText)*> <!-- Link, LinkText
188
 variant for case where text needs further markup -->
189
<!ATTLIST URL Text CDATA #IMPLIED> <!-- This is for output formats
190
 that have links like HTML -->
191
<!ELEMENT Link (%InnerText;)*> <!-- the URL -->
192
<!ELEMENT LinkText (%InnerText;)*> <!-- text for links, can contain markup -->
193
<!-- The following two are actually URLs, but the element name determines
194
 the type. -->
195
<!ELEMENT Email (#PCDATA|Alt|Link|LinkText)*>
196
<!ELEMENT Homepage (#PCDATA|Alt|Link|LinkText)*>
197

198
<!-- Those who still want to give postal addresses can use the following
199
 element. Use <Br/> for specifying typical line breaks -->
200

201
<!ELEMENT Address (#PCDATA|Alt|Br)*>
202

203
<!ELEMENT Cite EMPTY>
204
<!ATTLIST Cite Key CDATA #REQUIRED
205
 Where CDATA #IMPLIED>
206
 
207
<!ELEMENT Label EMPTY>
208
<!ATTLIST Label Name CDATA #REQUIRED>
209

210
<!ELEMENT Ref EMPTY>
211
<!ATTLIST Ref Func CDATA #IMPLIED
212
 Oper CDATA #IMPLIED
213
 Constr CDATA #IMPLIED
214
 Meth CDATA #IMPLIED
215
 Filt CDATA #IMPLIED
216
 Prop CDATA #IMPLIED
217
 Attr CDATA #IMPLIED
218
 Var CDATA #IMPLIED
219
 Fam CDATA #IMPLIED
220
 InfoClass CDATA #IMPLIED
221
 Chap CDATA #IMPLIED
222
 Sect CDATA #IMPLIED
223
 Subsect CDATA #IMPLIED
224
 Appendix CDATA #IMPLIED
225
 Text CDATA #IMPLIED
226

227
 Label CDATA #IMPLIED
228
 BookName CDATA #IMPLIED
229
 Style (Text|Number) #IMPLIED> <!-- normally automatic -->
230

231
<!-- Note that only one attribute of Ref is used normally. BookName
232
 and Style can be specified in addition to handle external
233
 references and the typesetting style of the reference. -->
234

235
<!-- For explicit index entries (Func and so on should cause an
236
 automatically generated index entry). Use the attributes Key,
237
 Subkey for sorting (simplified, without markup). The Subkey value
238
 also gets printed. Use the optional Subkey element if the printed
239
 version needs some markup. -->
240
<!ELEMENT Index (%InnerText;|Subkey)*>
241
<!ATTLIST Index Key CDATA #IMPLIED
242
 Subkey CDATA #IMPLIED>
243
<!ELEMENT Subkey (%InnerText;)*>
244

245

246
<!-- ==================================================================
247
 The following describes the normal documentation text which can
248
 occur at various places in the document. It does not contain
249
 further sectioning elements. In addition to InnerText it can contain 
250
 environments like enumerations, lists, and such.
251
 ================================================================== -->
252

253
<!ENTITY % Text "%InnerText; | List | Enum | Table">
254

255
<!ELEMENT Item ( %Text;)*>
256
<!ELEMENT Mark ( %InnerText;)*>
257

258
<!ELEMENT List ( ((Mark,Item)|Item)+ )>
259
<!ATTLIST List Only CDATA #IMPLIED
260
 Not CDATA #IMPLIED>
261
<!ELEMENT Enum ( Item+ )>
262
<!ATTLIST Enum Only CDATA #IMPLIED
263
 Not CDATA #IMPLIED>
264

265
<!ELEMENT Table ( Caption?, (Row | HorLine)+ )>
266
<!ATTLIST Table Label CDATA #IMPLIED
267
 Only CDATA #IMPLIED
268
 Not CDATA #IMPLIED
269
 Align CDATA #REQUIRED> <!-- A TeX tabular string -->
270
 <!-- We allow | and l,c,r, nothing else -->
271
<!ELEMENT Row ( Item+ )>
272
<!ELEMENT HorLine EMPTY>
273
<!ELEMENT Caption ( %InnerText;)*>
274

275
<!-- ==================================================================
276
 We start defining some things within the overall structure:
277
 ================================================================== -->
278

279
<!-- The TitlePage consists of several sub-elements: -->
280

281
<!ELEMENT TitlePage (Title, Subtitle?, Version?, TitleComment?, 
282
 Author+, Date?, Address?, Abstract?, Copyright?, 
283
 Acknowledgements? , Colophon? )>
284

285
<!ELEMENT Title (%Text;)*>
286
<!ELEMENT Subtitle (%Text;)*>
287
<!ELEMENT Version (%Text;)*>
288
<!ELEMENT TitleComment (%Text;)*>
289
<!ELEMENT Author (%Text;)*> <!-- There may be more than one Author! -->
290
<!ELEMENT Date (%Text;)*>
291
<!ELEMENT Abstract (%Text;)*>
292
<!ELEMENT Copyright (%Text;)*>
293
<!ELEMENT Acknowledgements (%Text;)*> 
294
<!ELEMENT Colophon (%Text;)*>
295

296

297
<!-- The following things just specify some information about the
298
 corresponding parts of the Book: -->
299

300
<!ELEMENT TableOfContents EMPTY>
301
<!ELEMENT Bibliography EMPTY>
302
<!ATTLIST Bibliography Databases CDATA #REQUIRED
303
 Style CDATA #IMPLIED>
304
<!ELEMENT TheIndex EMPTY>
305

306
<!-- ==================================================================
307
 The Ignore element can be used everywhere to include further
308
 information in a GAPDoc document which is not intended for the 
309
 standard converters (e.g., source code, not yet finished stuff,
310
 and so on. This information can be extracted by special converter 
311
 routines, more precise information about the content of an Ignore
312
 element can be given by the "Remark" attribute.
313
 ================================================================== -->
314

315
<!ELEMENT Ignore (%Text;| Chapter | Section | Subsection | ManSection |
316
 Heading)*>
317
<!ATTLIST Ignore Remark CDATA #IMPLIED>
318
 
319
<!-- ==================================================================
320
 Now we go on with the overall structure by defining the sectioning 
321
 structure, which includes the Synopsis element: 
322
 ================================================================== -->
323

324

325
<!ELEMENT Subsection (%Text;| Heading)*>
326
<!ATTLIST Subsection Label CDATA #IMPLIED> <!-- For reference purposes -->
327

328
<!ELEMENT ManSection ( Heading?, 
329
 ((Func, Returns?) | (Oper, Returns?) | 
330
 (Meth, Returns?) | (Filt, Returns?) | 
331
 (Prop, Returns?) | (Attr, Returns?) |
332
 (Constr, Returns?) |
333
 Var | Fam | InfoClass)+, Description )>
334
<!ATTLIST ManSection Label CDATA #IMPLIED> <!-- For reference purposes -->
335

336
<!ELEMENT Returns (%Text;)*>
337
<!ELEMENT Description (%Text;)*>
338

339

340
<!-- Note that the ManSection element is actually a subsection with
341
 respect to labelling, referencing, and counting of sectioning
342
 elements. -->
343

344
<!ELEMENT Func EMPTY>
345
<!ATTLIST Func Name CDATA #REQUIRED
346
 Label CDATA #IMPLIED
347
 Arg CDATA #REQUIRED
348
 Comm CDATA #IMPLIED>
349

350
<!-- Note that Arg contains the full list of arguments, including
351
 optional parts, which are denoted by square brackets [].
352
 Arguments are separated by whitespace, commas count as
353
 whitespace. -->
354

355
<!-- Note further that although Name and Label are CDATA (and not ID)
356
 Label must make up a unique identifier. -->
357

358
<!ELEMENT Oper EMPTY>
359
<!ATTLIST Oper Name CDATA #REQUIRED
360
 Label CDATA #IMPLIED
361
 Arg CDATA #REQUIRED
362
 Comm CDATA #IMPLIED>
363

364
<!ELEMENT Constr EMPTY>
365
<!ATTLIST Constr Name CDATA #REQUIRED
366
 Label CDATA #IMPLIED
367
 Arg CDATA #REQUIRED
368
 Comm CDATA #IMPLIED>
369

370
<!ELEMENT Meth EMPTY>
371
<!ATTLIST Meth Name CDATA #REQUIRED
372
 Label CDATA #IMPLIED
373
 Arg CDATA #REQUIRED
374
 Comm CDATA #IMPLIED>
375

376
<!ELEMENT Filt EMPTY>
377
<!ATTLIST Filt Name CDATA #REQUIRED
378
 Label CDATA #IMPLIED
379
 Arg CDATA #IMPLIED
380
 Comm CDATA #IMPLIED
381
 Type CDATA #IMPLIED> 
382

383
<!ELEMENT Prop EMPTY>
384
<!ATTLIST Prop Name CDATA #REQUIRED
385
 Label CDATA #IMPLIED
386
 Arg CDATA #REQUIRED
387
 Comm CDATA #IMPLIED>
388

389
<!ELEMENT Attr EMPTY>
390
<!ATTLIST Attr Name CDATA #REQUIRED
391
 Label CDATA #IMPLIED
392
 Arg CDATA #REQUIRED
393
 Comm CDATA #IMPLIED>
394

395
<!ELEMENT Var EMPTY>
396
<!ATTLIST Var Name CDATA #REQUIRED
397
 Label CDATA #IMPLIED
398
 Comm CDATA #IMPLIED>
399

400
<!ELEMENT Fam EMPTY>
401
<!ATTLIST Fam Name CDATA #REQUIRED
402
 Label CDATA #IMPLIED
403
 Comm CDATA #IMPLIED>
404

405
<!ELEMENT InfoClass EMPTY>
406
<!ATTLIST InfoClass Name CDATA #REQUIRED
407
 Label CDATA #IMPLIED
408
 Comm CDATA #IMPLIED>
409

410

411
<!ELEMENT Heading (%InnerText;)*>
412

413
<!ELEMENT Section (%Text;| Heading | Subsection | ManSection)*>
414
<!ATTLIST Section Label CDATA #IMPLIED> <!-- For reference purposes -->
415

416

417
<!ELEMENT Chapter (%Text;| Heading | Section)*>
418
<!ATTLIST Chapter Label CDATA #IMPLIED> <!-- For reference purposes -->
419

420

421
<!-- Note that the entity %InnerText; is documentation that contains
422
 neither sectioning elements nor environments like enumerations,
423
 but only formulae, labels, references, citations, and other
424
 terminal elements. -->
425

426
<!ELEMENT Appendix (%Text;| Heading | Section)*>
427
<!ATTLIST Appendix Label CDATA #IMPLIED> <!-- For reference purposes -->
428

429
<!-- Note that an Appendix is exactly the same as a Chapter. They
430
 differ only in the numbering. -->
431

432
<!-- ==================================================================
433
 At last we define the overall structure of a gapdoc Book:
434
 ================================================================== -->
435

436
<!ELEMENT Body ( %Text;| Chapter | Section )*>
437

438
<!ELEMENT Book (TitlePage,
439
 TableOfContents?,
440
 Body,
441
 Appendix*,
442
 Bibliography?,
443
 TheIndex?)>
444
<!ATTLIST Book Name CDATA #REQUIRED>
445
 
446
<!-- Note that the entity %Text; is documentation that contains
447
 no further sectioning elements but possibly environments like
448
 enumerations, and formulae, labels, references, and citations.
449
 -->
450

451
<!-- ============================================================== -->
452

453

454

455
456
457