1: <!-- This is a DTD, but will be read as -*- sgml -*- -->
2: <!-- ================================================= -->
3: <!-- $Id: birddoc.dtd,v 1.1.1.1 2017/08/22 12:33:54 misho Exp $
4:
5: This was heavilly modified for use with bird! Don't you dare to use it
6: anywhere else. <pavel@ucw.cz>
7:
8: This was LINUXDOC.DTD,
9: a hacked version of QWERTZ.DTD v1.3 by Matt Welsh,
10: Greg Hankins, Eric Raymond, Marc Baudoin and
11: Tristan Debeaupuis; modified from QWERTZ.DTD by
12: Tom Gordon.
13:
14: $Log: birddoc.dtd,v $
15: Revision 1.1.1.1 2017/08/22 12:33:54 misho
16: bird 1.6.3
17:
18: Revision 1.4 2000-06-05 21:02:58 mj
19: Define element <progdoc> which initializes different formatting for the
20: programmer's guide (\raggedbottom etc.).
21:
22: Also, omit "\usepackage{t1enc}", so that bullets work now.
23:
24: Revision 1.3 2000/05/31 14:24:21 mj
25: Formatting of progdoc works in both HTML and LaTeX. The LaTeX output
26: still has somewhat weird spacing, but it will be hopefully easy
27: to fix.
28:
29: Revision 1.2 2000/05/31 11:28:52 mj
30: Added tags for markup of programmer's documentation.
31:
32: Revision 1.1 2000/05/29 12:05:21 mj
33: Renamed the DTD from linuxdoc to birddoc.
34:
35: Pavel, please check whether it builds in your environment as well.
36:
37: Revision 1.1 2000/05/11 12:00:36 pavel
38: Critical files from linuxdoc1 distribution checked in.
39:
40: Revision 1.8 1998/06/26 19:41:11 cg
41: * Add (La)TeX logos. (NJ)
42:
43: Revision 1.7 1998/03/22 10:39:08 cg
44: * Corrected "isoent" entity reference in DTD. (CdG)
45:
46: Revision 1.6 1998/01/08 19:48:20 cg
47: * Added "invisible" index tags <nidx> and <ncdx>. (SM/CdG)
48:
49: Revision 1.5 1997/11/23 21:04:37 cg
50: * Added <file> tag to all DTDs and documented it (ESR)
51:
52: * Added <idx> and <cdx> to linuxdoc97 and sgmltool DTDs (ESR)
53:
54: * Arrange for <htmlurl> to call \url in the LaTeX back end (ESR)
55:
56: Revision 1.4 1997/11/21 22:58:13 cg
57: * Allow [ and ] to be used inside <tag></tag>. (ESR)
58:
59: Revision 1.3 1997/11/12 21:47:24 cg
60: * Manually modified the Log entry in linuxdoc96.dtd. It contained SGML
61: comments, and nested comments won't go... (CdG)
62:
63: Revision 1.2 1997/11/11 20:50:22 cg
64: * First pass at conditionals. This version is implemented with magic comments
65: <!- if -> and <!- unless ->. (ESR)
66:
67: * The generic options processing now includes the -D option to pass in an
68: attribute/value pair for conditionals. This meant the -D option in
69: sgml2html had to be changed, it's now -h. (ESR)
70:
71: Revision 1.1 1997/07/09 13:27:19 cg
72: * Completely new DTD setup by Bernd (BK).
73:
74:
75: -->
76: <!-- ================================================= -->
77: <!-- Revision Comments -->
78:
79: <!-- ESR/97/11/17: Added file tag. -->
80: <!-- ESR/97/11/11: Removed the crude and undocumented
81: conditionalization features in this DTD. They
82: weren't in the original linuxdoc 1.3 DTD, and are
83: superseded by the new if/unless facility. -->
84: <!-- BK/97/05/09: this is the original Linuxdoc DTD,
85: as of SGML Tools 0.99.0. It is not longer
86: supported. Use only if in dire need, for backwards
87: compabitlity. Backend support for undocumented
88: QWERTZ leftovers not in the strict Linuxdoc DTD's
89: is not guaranteed. -->
90: <!-- BK/97/06/06: finally applied changes proposed by
91: Ken MacLeod to dtd/catalog (PUBLIC). Removed
92: the duplicated linuxdoc96 element name. -->
93: <!-- BK/97/06/22: replaced entire content with DTD
94: from 0.99.12 release - I am not going to maintain
95: any changes to this, just replacing. -->
96: <!-- ================================================= -->
97:
98: <!entity % emph
99: " em|it|bf|sf|sl|tt|cf|m|cparam|const|func|struct|param|type|funcdef " >
100:
101: <!entity % index "idx|cdx|nidx|ncdx" >
102:
103: <!-- url added by HG; htmlurl added by esr -->
104: <!entity % xref
105: " label|ref|pageref|cite|url|htmlurl|rfc|ncite " >
106:
107: <!entity % inline
108: " (#pcdata | f| x| %emph; |sq| %xref | %index | file )* " >
109:
110: <!entity % list
111: " list | itemize | enum | descrip " >
112:
113: <!entity % par
114: " %list; | comment | lq | quote | tscreen | hrule " >
115:
116: <!entity % mathpar " dm | eq " >
117:
118: <!entity % thrm
119: " def | prop | lemma | coroll | proof | theorem " >
120:
121: <!entity % litprog " code | verb " >
122:
123: <!entity % sectpar
124: " %par; | figure | tabular | table | %mathpar; |
125: %thrm; | %litprog; | function ">
126: <!element birddoc o o
127: (sect | chapt | article | report |
128: book | letter | telefax | slides | notes | manpage ) >
129:
130: <!-- `general' entity replaced with ISO entities - kwm -->
131: <!entity % isoent system "isoent">
132: %isoent;
133:
134: <!entity urlnam sdata "urlnam" >
135: <!entity refnam sdata "refnam" >
136: <!entity tex sdata "[tex ]" >
137: <!entity latex sdata "[latex ]" >
138: <!entity latexe sdata "[latexe]" >
139: <!entity tm sdata "[trade ]" >
140: <!entity dquot sdata "[quot ]" >
141: <!entity ero sdata "[amp ]" >
142: <!entity etago '</' >
143: <!entity Ae 'Ä' >
144: <!entity ae 'ä' >
145: <!entity Oe 'Ö' >
146: <!entity oe 'ö' >
147: <!entity Ue 'Ü' >
148: <!entity ue 'ü' >
149: <!entity sz 'ß' >
150: <!element p o o (( %inline | %sectpar )+) +(newline) >
151: <!entity ptag '<p>' >
152: <!entity psplit '</p><p>' >
153: <!element hrule - - EMPTY>
154:
155: <!shortref pmap
156: "&#RS;B" null
157: "&#RS;B&#RE;" psplit
158: "&#RS;&#RE;" psplit
159: -- '"' qtag --
160: "[" lsqb
161: "~" nbsp
162: "_" lowbar
163: "#" num
164: "%" percnt
165: "^" circ
166: "{" lcub
167: "}" rcub
168: "|" verbar >
169:
170: <!usemap pmap p>
171: <!element em - - (%inline)>
172: <!element bf - - (%inline)>
173: <!element it - - (%inline)>
174: <!element sf - - (%inline)>
175: <!element sl - - (%inline)>
176: <!element tt - - (%inline)>
177: <!element cf - - (%inline)>
178: <!element m - - (%inline)>
179: <!element sq - - (%inline)>
180: <!element cparam - - (%inline)>
181:
182: <!element const - - (%inline)>
183: <!element func - - (%inline)>
184: <!element struct - - (%inline)>
185: <!element param - - (%inline)>
186: <!element type - - (%inline)>
187: <!element funcdef - - (%inline)>
188:
189: <!element function - - (%inline | p | funcsect)*>
190: <!element funcsect - o (%inline)>
191:
192: <!entity ftag '<f>' -- formula begin -- >
193: <!entity qendtag '</sq>'>
194:
195: <!shortref sqmap
196: "&#RS;B" null
197: -- '"' qendtag --
198: "[" lsqb
199: "~" nbsp
200: "_" lowbar
201: "#" num
202: "%" percnt
203: "^" circ
204: "{" lcub
205: "}" rcub
206: "|" verbar >
207:
208: <!usemap sqmap sq >
209:
210: <!element lq - - (p*)>
211: <!element quote - - ((%inline; | %sectpar;)*, p*)+ >
212: <!element tscreen - - ((%inline; | %sectpar;)*, p*)+ >
213: <!element itemize - - (item+)>
214: <!element enum - - (item+)>
215: <!element list - - (item+)>
216:
217: <!-- What a mess. The following is here to clean up problems with
218: paragraph breaks in a descrip. I can think of cases where this might
219: break, but it seems to work. mdw -->
220:
221: <!shortref desmap
222: "&#RS;B" null
223: "&#RS;B&#RE;" ptag
224: "&#RS;&#RE;" ptag
225: "~" nbsp
226: "_" lowbar
227: "#" num
228: "%" percnt
229: "^" circ
230: "[" lsqb
231: "]" rsqb
232: "{" lcub
233: "}" rcub
234: "|" verbar >
235:
236: <!element descrip - - ((tag | tagp)?, p+)+ >
237: <!usemap desmap descrip>
238:
239: <!element item o o ((%inline; | %sectpar;)*, p*) >
240:
241: <!element tag - o (%inline)>
242: <!usemap desmap tag>
243:
244: <!element tagp - o (%inline)>
245: <!usemap desmap tagp>
246:
247: <!usemap global (list,itemize,enum)>
248: <!entity space " ">
249: <!entity null "">
250:
251: <!--
252: <!shortref bodymap
253: "&#RS;B&#RE;" ptag
254: "&#RS;&#RE;" ptag
255: '"' qtag
256: "[" lsqb
257: "~" nbsp
258: "_" lowbar
259: "#" num
260: "%" percnt
261: "^" circ
262: "{" lcub
263: "}" rcub
264: "|" verbar>
265: -->
266:
267: <!element figure - - ((eps | ph ), img*, caption?)>
268: <!attlist figure
269: loc cdata "tbp"
270: caption cdata "Caption">
271:
272: <!-- eps attributes added by mb and td -->
273: <!element eps - o empty >
274: <!attlist eps
275: file cdata #required
276: height cdata "5cm"
277: angle cdata "0">
278:
279: <!element ph - o empty >
280: <!attlist ph
281: vspace cdata #required>
282:
283: <!element img - o empty>
284: <!attlist img
285: src cdata #required>
286:
287: <!element caption - o (%inline)>
288:
289: <!shortref oneline
290: "B&#RE;" space
291: "&#RS;&#RE;" null
292: "&#RS;B&#RE;" null
293: -- '"' qtag --
294: "[" ftag
295: "~" nbsp
296: "_" lowbar
297: "#" num
298: "%" percnt
299: "^" circ
300: "{" lcub
301: "}" rcub
302: "|" verbar>
303:
304: <!usemap oneline tag>
305: <!usemap oneline caption>
306:
307: <!entity % tabrow "(%inline, (colsep, %inline)*)" >
308: <!element tabular - -
309: (hline?, %tabrow, (rowsep, hline?, %tabrow)*, caption?) >
310:
311: <!attlist tabular
312: ca cdata #required>
313:
314: <!element rowsep - o empty>
315: <!element colsep - o empty>
316: <!element hline - o empty>
317:
318: <!entity rowsep "<rowsep>">
319: <!entity colsep "<colsep>">
320:
321: <!shortref tabmap
322: "&#RE;" null
323: "&#RS;&#RE;" null
324: "&#RS;B&#RE;" null
325: "&#RS;B" null
326: "B&#RE;" null
327: "BB" space
328: "@" rowsep
329: "|" colsep
330: "[" ftag
331: -- '"' qtag --
332: "_" thinsp
333: "~" nbsp
334: "#" num
335: "%" percnt
336: "^" circ
337: "{" lcub
338: "}" rcub >
339:
340: <!usemap tabmap tabular>
341: <!element table - - (tabular, caption?) >
342: <!attlist table
343: loc cdata "tbp">
344:
345: <!element code - - rcdata>
346: <!element verb - - rcdata>
347:
348: <!shortref ttmap -- also on one-line --
349: "B&#RE;" space
350: "&#RS;&#RE;" null
351: "&#RS;B&#RE;" null
352: "&#RS;B" null
353: '#' num
354: '%' percnt
355: '~' tilde
356: '_' lowbar
357: '^' circ
358: '{' lcub
359: '}' rcub
360: '|' verbar >
361:
362: <!usemap ttmap tt>
363: <!element mc - - cdata >
364: <!entity % sppos "tu" >
365: <!entity % fcs "%sppos;|phr" >
366: <!entity % fcstxt "#pcdata|mc|%fcs;" >
367: <!entity % fscs "rf|v|fi" >
368: <!entity % limits "pr|in|sum" >
369: <!entity % fbu "fr|lim|ar|root" >
370: <!entity % fph "unl|ovl|sup|inf" >
371: <!entity % fbutxt "(%fbu;) | (%limits;) |
372: (%fcstxt;)|(%fscs;)|(%fph;)" >
373: <!entity % fphtxt "p|#pcdata" >
374: <!element f - - ((%fbutxt;)*) >
375:
376: <!entity fendtag '</f>' -- formula end -- >
377:
378: <!shortref fmap
379: "&#RS;B" null
380: "&#RS;B&#RE;" null
381: "&#RS;&#RE;" null
382: "_" thinsp
383: "~" nbsp
384: "]" rsqb
385: "#" num
386: "%" percnt
387: "^" circ
388: "{" lcub
389: "}" rcub
390: "|" verbar>
391:
392: <!usemap fmap f >
393:
394: <!element dm - - ((%fbutxt;)*)>
395: <!element eq - - ((%fbutxt;)*)>
396:
397: <!shortref dmmap
398: "&#RE;" space
399: "_" thinsp
400: "~" nbsp
401: "]" rsqb
402: "#" num
403: "%" percnt
404: "^" circ
405: "{" lcub
406: "}" rcub
407: "|" verbar>
408:
409: <!usemap dmmap (dm,eq)>
410: <!element fr - - (nu,de) >
411: <!element nu o o ((%fbutxt;)*) >
412: <!element de o o ((%fbutxt;)*) >
413: <!element ll o o ((%fbutxt;)*) >
414: <!element ul o o ((%fbutxt;)*) >
415: <!element opd - o ((%fbutxt;)*) >
416: <!element pr - - (ll,ul,opd?) >
417: <!element in - - (ll,ul,opd?) >
418: <!element sum - - (ll,ul,opd?) >
419: <!element lim - - (op,ll,ul,opd?) >
420: <!element op o o (%fcstxt;|rf|%fph;) -(tu) >
421: <!element root - - ((%fbutxt;)*) >
422: <!attlist root
423: n cdata "">
424: <!element col o o ((%fbutxt;)*) >
425: <!element row o o (col, (arc, col)*) >
426:
427: <!element ar - - (row, (arr, row)*) >
428: <!attlist ar
429: ca cdata #required >
430: <!element arr - o empty >
431: <!element arc - o empty >
432: <!entity arr "<arr>" >
433: <!entity arc "<arc>" >
434:
435: <!shortref arrmap
436: "&#RE;" space
437: "@" arr
438: "|" arc
439: "_" thinsp
440: "~" nbsp
441: "#" num
442: "%" percnt
443: "^" circ
444: "{" lcub
445: "}" rcub >
446:
447: <!usemap arrmap ar >
448: <!element sup - - ((%fbutxt;)*) -(tu) >
449: <!element inf - - ((%fbutxt;)*) -(tu) >
450: <!element unl - - ((%fbutxt;)*) >
451: <!element ovl - - ((%fbutxt;)*) >
452: <!element rf - o (#pcdata) >
453: <!element phr - o ((%fphtxt;)*) >
454: <!element v - o ((%fcstxt;)*)
455: -(tu|%limits;|%fbu;|%fph;) >
456: <!element fi - o (#pcdata) >
457: <!element tu - o empty >
458:
459: <!usemap global (rf,phr)>
460: <!element def - - (thtag?, p+) >
461: <!element prop - - (thtag?, p+) >
462: <!element lemma - - (thtag?, p+) >
463: <!element coroll - - (thtag?, p+) >
464: <!element proof - - (p+) >
465: <!element theorem - - (thtag?, p+) >
466: <!element thtag - - (%inline)>
467:
468: <!usemap global (def,prop,lemma,coroll,proof,theorem)>
469: <!usemap oneline thtag>
470: <!entity qtag '<sq>' >
471:
472: <!shortref global
473: "&#RS;B" null -- delete leading blanks --
474: -- '"' qtag --
475: "[" ftag
476: "~" nbsp
477: "_" lowbar
478: "#" num
479: "%" percnt
480: "^" circ
481: "{" lcub
482: "}" rcub
483: "|" verbar>
484:
485: <!usemap global birddoc>
486: <!element label - o empty>
487: <!attlist label id cdata #required>
488:
489: <!-- ref modified to have an optional name field HG -->
490: <!element ref - o empty>
491: <!attlist ref
492: id cdata #required
493: name cdata "&refnam">
494:
495: <!-- url entity added to have direct url references HG -->
496: <!element url - o empty>
497: <!attlist url
498: url cdata #required
499: name cdata "&urlnam" >
500:
501: <!-- htmlurl entity added to have quieter url references esr -->
502: <!element htmlurl - o empty>
503: <!attlist htmlurl
504: url cdata #required
505: name cdata "&urlnam" >
506:
507: <!element rfc - o empty>
508: <!attlist rfc
509: id cdata #required>
510:
511: <!element pageref - o empty>
512: <!attlist pageref
513: id cdata #required>
514: <!element comment - - (%inline)>
515: <!element x - - ((#pcdata | mc)*) >
516: <!usemap #empty x >
517:
518: <!-- Hacked by mdw to exclude abstract; abstract now part of titlepag -->
519: <!element article - -
520: (titlepag, header?,
521: toc?, lof?, lot?, p*, sect*,
522: (appendix, sect+)?, biblio?) +(footnote)>
523:
524: <!attlist article
525: opts cdata "null">
526:
527: <!-- Hacked by mdw to exclude abstract; abstract now part of titlepag -->
528: <!element report - -
529: (titlepag, header?, toc?, lof?, lot?, p*,
530: chapt*, (appendix, chapt+)?, biblio?) +(footnote)>
531:
532: <!attlist report
533: opts cdata "null">
534: <!element book - -
535: (titlepag, header?, toc?, lof?, lot?, p*, chapt*,
536: (appendix, chapt+)?, biblio?) +(footnote) >
537:
538: <!attlist book
539: opts cdata "null">
540:
541: <!-- Hacked by mdw, abstract now part of titlepag -->
542: <!element titlepag o o (progdoc?, title, author, date?, abstract?)>
543: <!element title - o (%inline, subtitle?) +(newline)>
544: <!element subtitle - o (%inline)>
545: <!usemap oneline titlepag>
546: <!element author - o (name, thanks?, inst?,
547: (and, name, thanks?, inst?)*)>
548: <!element name o o (%inline) +(newline)>
549: <!element and - o empty>
550: <!element thanks - o (%inline)>
551: <!element inst - o (%inline) +(newline)>
552: <!element date - o (#pcdata) >
553:
554: <!usemap global thanks>
555:
556: <!element newline - o empty >
557: <!entity nl "<newline>">
558:
559: <!element progdoc - o empty>
560:
561: <!-- Hacked by mdw -->
562: <!element abstract - o (%inline)>
563: <!usemap oneline abstract>
564:
565:
566: <!element toc - o empty>
567: <!element lof - o empty>
568: <!element lot - o empty>
569: <!element header - - (lhead, rhead) >
570: <!element lhead - o (%inline)>
571: <!element rhead - o (%inline)>
572: <!entity % sect "heading, header?, p* " >
573: <!element heading o o (%inline)>
574: <!element chapt - o (%sect, sect*) +(footnote)>
575: <!element sect - o (%sect, sect1*) +(footnote)>
576: <!element sect1 - o (%sect, sect2*) +(footnote)>
577: <!element sect2 - o (%sect, sect3*)>
578: <!element sect3 - o (%sect, sect4*)>
579: <!element sect4 - o (%sect)>
580: <!usemap oneline (chapt,sect,sect1,sect2,sect3,sect4)>
581: <!element appendix - o empty >
582: <!element footnote - - (%inline)>
583: <!usemap global footnote>
584: <!element cite - o empty>
585: <!attlist cite
586: id cdata #required>
587:
588: <!element ncite - o empty>
589: <!attlist ncite
590: id cdata #required
591: note cdata #required>
592:
593: <!element file - - (#pcdata)>
594:
595: <!element idx - - (#pcdata)>
596: <!element cdx - - (#pcdata)>
597: <!element nidx - - (#pcdata)>
598: <!element ncdx - - (#pcdata)>
599:
600: <!element biblio - o empty>
601: <!attlist biblio
602: style cdata "birddoc"
603: files cdata "">
604: <!element slides - - (slide*) >
605:
606: <!attlist slides
607: opts cdata "null">
608: <!element slide - o (title?, p+) >
609: <!entity % addr "(address?, email?, phone?, fax?)" >
610:
611: <!element letter - -
612: (from, %addr, to, %addr, cc?, subject?, sref?, rref?,
613: rdate?, opening, p+, closing, encl?, ps?)>
614:
615: <!attlist letter
616: opts cdata "null">
617:
618: <!element from - o (#pcdata) >
619: <!element to - o (#pcdata) >
620:
621: <!usemap oneline (from,to)>
622:
623: <!element address - o (#pcdata) +(newline) >
624: <!element email - o (#pcdata) >
625: <!element phone - o (#pcdata) >
626: <!element fax - o (#pcdata) >
627:
628: <!element subject - o (%inline;) >
629: <!element sref - o (#pcdata) >
630: <!element rref - o (#pcdata) >
631: <!element rdate - o (#pcdata) >
632:
633: <!element opening - o (%inline;) >
634: <!usemap oneline opening>
635:
636: <!element closing - o (%inline;) >
637: <!element cc - o (%inline;) +(newline) >
638: <!element encl - o (%inline;) +(newline) >
639:
640: <!element ps - o (p+) >
641:
642: <!element telefax - -
643: (from, %addr, to, address, email?,
644: phone?, fax, cc?, subject?,
645: opening, p+, closing, ps?)>
646:
647: <!attlist telefax
648: opts cdata "null"
649: length cdata "2">
650:
651: <!element notes - - (title?, p+) >
652: <!attlist notes
653: opts cdata "null" >
654: <!element manpage - - (sect1*)
655: -(sect2 | f | %mathpar | figure | tabular |
656: table | %xref | %thrm )>
657:
658:
659: <!attlist manpage
660: opts cdata "null"
661: title cdata ""
662: sectnum cdata "1" >
663: <!shortref manpage
664: "&#RS;B" null
665: -- '"' qtag --
666: "[" ftag
667: "~" nbsp
668: "_" lowbar
669: "#" num
670: "%" percnt
671: "^" circ
672: "{" lcub
673: "}" rcub
674: "|" verbar>
675:
676: <!usemap manpage manpage >
677:
678: <!-- ================================================= -->
679: <!-- end of LINUXDOC DTD -->
680: <!--
681: Local Variables:
682: mode: sgml
683: End: -->
684: <!-- ================================================= -->
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>