
<!--
  Special formatings

  M uses: %Text, %Intext, %Fmts, %Body, p

  D: "figure|foreign|inline|quote|
      rverb|verb|literate|note|list|enum|desc|def|FAQ"

 -->

<!ENTITY % Notate "ignore" > <!-- if not defined up to now -->

<!ELEMENT verb - - CDATA -- text not parsed -- >
<!ELEMENT rverb - - RCDATA >
<!ELEMENT note - - (%Body)+ -(note)>
<!ELEMENT inline - - RCDATA >
<!ATTLIST inline 
	n NOTATION (fig|eps|tex|latex|lout|lfig|roff|tgif|%Notate)
	#REQUIRED
>

<!ELEMENT literate - - (%Body)* >
<!ATTLIST literate file CDATA #IMPLIED >

<!-- Formate -->
<!ELEMENT caption - o (%Text) +(%Intext)>
<!ELEMENT foreign - o EMPTY >
<!ATTLIST foreign file ENTITY #REQUIRED >
<!ELEMENT figure - o ((table|foreign|inline),caption) >
	<!ATTLIST figure id CDATA #REQUIRED>

<!ELEMENT item	o o (%Body)+	+(%Intext) >
<!ELEMENT o	o o (%Body)+	+(%Intext) >
<!ELEMENT list	- - (item|o)+ >
<!ELEMENT enum	- - (item|o)+ >

<!USEMAP #EMPTY (list, enum) >
<!USEMAP bodymap (o, item) >

<!ELEMENT dt	- o (%Text)	-(%Fmts) +(%Refs) >
<!element dd o o (%Body)+
	-- Mixed contents type is making trouble. --
	-- You better NEVER EVER type <dd> within a document! --
	-- This tag is for internal use only. --
>
<!ELEMENT desc	- o (dt,dd)+ >

<!--USEMAP #EMPTY (desc) -->
<!USEMAP bodymap (dt, dd) >

<!-- FAQ Frequently Asked Questions -->

<!ELEMENT Q - o (%Body)+ -(FAQ) >
<!ELEMENT A - o (%Body)+ -(FAQ) >
<!ELEMENT FAQ - o (Q,A)+ >
<!ATTLIST FAQ
	lang (%Lang)	#IMPLIED -- from document we are in --
	QTAG CDATA	#IMPLIED -- language dependant, e.g., Q: --
	ATAG CDATA	#IMPLIED -- same --
>
<!USEMAP #EMPTY (FAQ) >
<!USEMAP bodymap (Q, A) >

<!ELEMENT topic	o o (item)	> 
<!ELEMENT def	- o (topic,(%Text|p)+)	>
<!ELEMENT quote	- - (%Body)+	-(quote)>

<!ATTLIST quote
	style (default|center) default>

<!ELEMENT table - o (tbl) >

<!-- ********** tbl ********** -->

<!ENTITY % Tbl.pta "left|right|center" >
<!ENTITY % Tbl.ptb "decimal|block" >
<!ELEMENT tbl - - (pattern+,r,(newpage?,pattern?,sep?,r)*) >
<!ATTLIST tbl
	frame (no, yes, double) no
>
<!USEMAP #EMPTY tbl >

<!ELEMENT pattern - o ((%Tbl.pta|%Tbl.ptb),
			(sep?,(%Tbl.pta|%Tbl.ptb))*) >
<!ATTLIST pattern
	id CDATA #IMPLIED
>

<!ELEMENT sep - o EMPTY>
<!ATTLIST sep
	sep (no|yes|double) yes
>

<!ELEMENT (%Tbl.pta|%Tbl.ptb) - o EMPTY>

<!ATTLIST decimal
	align CDATA "."
	spawn NUMBER 1
>
<!ATTLIST block
	align (left|right|center|block) block
	spawn NUMBER 1
	width NUMBER #REQUIRED
> 
<!ATTLIST (%Tbl.pta)
	spawn NUMBER 1
>

<!ELEMENT r - o (c+) -(newpage) >
<!ATTLIST r
	pattern CDATA #IMPLIED
>
<!ELEMENT c o o (%Text) >

<!ENTITY newcol STARTTAG "c" >
<!SHORTREF colmap
	"&#RS;B"	null 
	"&#RS;B&#RE;"	ptag
	"&#RS;&#RE;"	ptag
	"BB"		bl
	"|"		newcol
	'"'		sqtag 
>
<!USEMAP colmap c>
