<!entity % emph 
	" em|it|bf|sf|sl|tt " >

<!entity % index "idx|cdx" >

<!entity % xref
	" label|ref|pageref|cite|ncite " >

<!entity % inline 
	" (#pcdata | f| x| %emph; |sq| %xref | %index )* " >

<!entity % list 
        " list | itemize | enum | descrip " >

<!entity % par 	
	"  %list; | comment | lq " >

<!entity % mathpar " dm | eq " >

<!entity % thrm 
        " def | prop | lemma | coroll | proof | theorem " >

<!entity % litprog " code | verb " >

<!entity % sectpar 
        " %par; | figure | tabular | table | %mathpar; | 
	  %thrm; | %litprog; ">
<!element qwertz o o 
        (sect | chapt | article | report | 
	 book | letter | telefax | slides | notes | manpage ) >

<!entity % general system -- general purpose characters -- >
%general;
<!entity   Ae  '&Auml;' >
<!entity   ae  '&auml;' >
<!entity   Oe  '&Ouml;' >
<!entity   oe  '&ouml;' >
<!entity   Ue  '&Uuml;' >
<!entity   ue  '&uuml;' >
<!entity   sz  '&szlig;' >
<!element  p o o (( %inline | %sectpar )+) +(newline) >
<!entity ptag '<p>' >
<!entity psplit '</p><p>' >

<!shortref pmap
	"&#RS;B" null 
	"&#RS;B&#RE;" psplit
	"&#RS;&#RE;" psplit
	'"' qtag 
      	"[" ftag
      	"~" nbsp
      	"_" lowbar
      	"#" num
      	"%" percnt
      	"^" circ
      	"{" lcub
      	"}" rcub
      	"|" verbar >

<!usemap pmap p>
<!element em - - (%inline)>
<!element bf - - (%inline)>
<!element it - - (%inline)>
<!element sf - - (%inline)>
<!element sl - - (%inline)>
<!element tt - - (%inline)>
<!element sq - - (%inline)>

<!entity   ftag     '<f>'    -- formula begin -- >
<!entity   qendtag  '</sq>'>

<!shortref sqmap 
      "&#RS;B" null
      '"' qendtag 
      "[" ftag
      "~" nbsp
      "_" lowbar
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar >

<!usemap   sqmap    sq >

<!element lq - - (p*)>
<!element itemize - - (item+)>
<!element enum - - (item+)>
<!element list - - (item+)>
<!element descrip - - (tag?, (%inline; | %sectpar;)*, p*)+ > 
<!element item o o ((%inline; | %sectpar;)*, p*) >
<!element tag - o (%inline)>
<!usemap global (list,itemize,enum,descrip)>
<!entity space " ">
<!entity null "">

<!--
<!shortref bodymap
     "&#RS;B&#RE;" ptag
     "&#RS;&#RE;" ptag
      '"' qtag 
      "[" ftag
      "~" nbsp
      "_" lowbar
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>
-->

<!element figure - - ((eps | ph ), caption?)>
<!attlist figure
	loc cdata "tbp">

<!element eps - o empty  >
<!attlist eps
        file cdata #required>
<!element ph - o empty >
<!attlist ph
        vspace cdata #required>

<!element caption - o (%inline)>

<!shortref oneline
     "B&#RE;" space
     "&#RS;&#RE;" null 
     "&#RS;B&#RE;" null
      '"' qtag 
      "[" ftag
      "~" nbsp
      "_" lowbar
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>

<!usemap oneline tag>
<!usemap oneline caption>

<!entity % tabrow "(%inline, (colsep, %inline)*)" >
<!element tabular - - 
	(%tabrow, (rowsep, hline?, %tabrow)*, caption?) >

<!attlist tabular
	ca cdata #required>

<!element rowsep - o empty>
<!element colsep - o empty>
<!element hline  - o empty>

<!entity rowsep "<rowsep>">
<!entity colsep "<colsep>">

<!shortref tabmap
     "&#RE;" null
     "&#RS;&#RE;" null
     "&#RS;B&#RE;" null
     "&#RS;B" null
      "B&#RE;" null
      "BB"  space
      "@" rowsep
      "|" colsep 
      "[" ftag
      '"' qtag
      "_" thinsp
      "~" nbsp
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub >

<!usemap  tabmap tabular>
<!element table   - - (tabular, caption?) >
<!attlist table
	loc cdata "tbp">

<!element code - - rcdata>
<!element verb - - rcdata>

<!shortref ttmap     -- also on one-line --
        "B&#RE;" space
        "&#RS;&#RE;" null 
        "&#RS;B&#RE;" null
	"&#RS;B" null
        '#'     num
        '%'     percnt
        '~'     tilde
        '_'     lowbar
        '^'     circ
        '{'     lcub
        '}'     rcub
        '|'     verbar >

<!usemap ttmap  tt>
<!entity % math system -- math symbols -- >
%math;
<!element  mc  - - cdata >
<!entity % sppos     "tu" >
<!entity % fcs       "%sppos;|phr" >
<!entity % fcstxt    "#pcdata|mc|%fcs;" >
<!entity % fscs      "rf|v|fi" >
<!entity % limits    "pr|in|sum" >
<!entity % fbu       "fr|lim|ar|root" >
<!entity % fph       "unl|ovl|sup|inf" >
<!entity % fbutxt    "(%fbu;) | (%limits;) | 
                      (%fcstxt;)|(%fscs;)|(%fph;)" >
<!entity % fphtxt    "p|#pcdata" >
<!element  f        - - ((%fbutxt;)*) >

<!entity   fendtag  '</f>'   -- formula end -- >

<!shortref fmap 
      "&#RS;B" null
      "&#RS;B&#RE;" null
      "&#RS;&#RE;" null
      "_" thinsp
      "~" nbsp
      "]" fendtag
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>

<!usemap   fmap     f >

<!element  dm       - - ((%fbutxt;)*)>
<!element  eq       - - ((%fbutxt;)*)>

<!shortref dmmap
     "&#RE;" space
      "_" thinsp
      "~" nbsp
      "]" fendtag
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>

<!usemap dmmap (dm,eq)>
<!element  fr       - - (nu,de) >
<!element  nu       o o ((%fbutxt;)*) >
<!element  de       o o ((%fbutxt;)*) >
<!element  ll       o o ((%fbutxt;)*) >
<!element  ul       o o ((%fbutxt;)*) >
<!element  opd      - o ((%fbutxt;)*) >
<!element  pr       - - (ll,ul,opd?) >
<!element  in       - - (ll,ul,opd?) >
<!element  sum      - - (ll,ul,opd?) >
<!element  lim      - - (op,ll,ul,opd?) >
<!element  op       o o (%fcstxt;|rf|%fph;) -(tu) >
<!element  root     - - ((%fbutxt;)*) >
<!attlist  root
        n cdata "">
<!element col o o ((%fbutxt;)*) >
<!element row o o (col, (arc, col)*) >

<!element  ar       - - (row, (arr, row)*) >
<!attlist  ar
    ca     cdata    #required >
<!element  arr      - o empty >
<!element  arc      - o empty >
<!entity   arr "<arr>" >
<!entity   arc "<arc>" >

<!shortref arrmap
     "&#RE;" space
      "@" arr
      "|" arc 
      "_" thinsp
      "~" nbsp
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub >

<!usemap   arrmap   ar >
<!element  sup      - - ((%fbutxt;)*) -(tu) >
<!element  inf      - - ((%fbutxt;)*) -(tu) >
<!element  unl - - ((%fbutxt;)*) >
<!element  ovl - - ((%fbutxt;)*) >
<!element  rf  - o (#pcdata) >
<!element  phr - o ((%fphtxt;)*) >
<!element  v   - o ((%fcstxt;)*) 
	-(tu|%limits;|%fbu;|%fph;) >
<!element  fi  - o (#pcdata) >
<!element  tu  - o empty >

<!usemap global (rf,phr)>
<!element def - - (thtag?, p+) >
<!element prop - - (thtag?, p+) >
<!element lemma - - (thtag?, p+) >
<!element coroll - - (thtag?, p+) >
<!element proof - - (p+) >
<!element theorem - - (thtag?, p+) >
<!element thtag - - (%inline)>

<!usemap global (def,prop,lemma,coroll,proof,theorem)>
<!usemap oneline thtag>
<!entity   qtag     '<sq>' >

<!shortref global
      "&#RS;B" null  -- delete leading blanks --
      '"' qtag 
      "[" ftag
      "~" nbsp
      "_" lowbar
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>

<!usemap global qwertz>
<!element label - o empty>
<!attlist label id cdata #required>

<!element ref - o empty>
<!attlist ref   
        id cdata #required>

<!element pageref - o empty>
<!attlist pageref
        id cdata #required>
<!element comment - - (%inline)>
<!element x - - ((#pcdata | mc)*) >
<!usemap   #empty   x >
<!element article - -
        (titlepag, header?, abstract?, 
         toc?, lof?, lot?, p*, sect*, 
         (appendix, sect+)?, biblio?) +(footnote)>

<!attlist article
        opts cdata "null">
<!element report - - 
        (titlepag, header?, abstract?, toc?, lof?, lot?, p*,
         chapt*, (appendix, chapt+)?, biblio?) +(footnote)>

<!attlist report
        opts cdata "null">
<!element book  - - 
        (titlepag, header?, toc?, lof?, lot?, p*, chapt*, 
         (appendix, chapt+)?, biblio?) +(footnote) >

<!attlist book
        opts cdata "null">

<!element titlepag o o (title, author, date?)>
<!element title - o (%inline, subtitle?) +(newline)>
<!element subtitle - o (%inline)>
<!usemap oneline titlepag>
<!element author - o (name, thanks?, inst?, 
                        (and, name, thanks?, inst?)*)>
<!element name o o (%inline) +(newline)>
<!element and - o empty>
<!element thanks - o (%inline)>
<!element inst - o (%inline) +(newline)>
<!element date - o (#pcdata) >

<!usemap global thanks>
 
<!element newline - o empty >
<!entity nl "<newline>"> 


<!element abstract - - (p+)>
<!element toc - o empty>
<!element lof - o empty>
<!element lot - o empty>
<!element header - - (lhead, rhead) >
<!element lhead - o (%inline)>
<!element rhead - o (%inline)>
<!entity % sect "heading, header?, p* " >
<!element heading o o (%inline)>
<!element chapt - o (%sect, sect*) +(footnote)> 
<!element sect  - o (%sect, sect1*) +(footnote)>
<!element sect1 - o (%sect, sect2*)>
<!element sect2 - o (%sect, sect3*)>
<!element sect3 - o (%sect, sect4*)>
<!element sect4 - o (%sect)>
<!usemap oneline (chapt,sect,sect1,sect2,sect3,sect4)>
<!element appendix - o empty >
<!element footnote - - (%inline)>
<!usemap global footnote>
<!element cite - o empty>
<!attlist cite 
        id cdata #required>

<!element ncite - o empty>
<!attlist ncite 
        id cdata #required
        note cdata #required>

<!element idx - - (#pcdata)>
<!element cdx - - (#pcdata)>

<!element biblio - o empty>
<!attlist biblio
	style cdata "qwertz"
        files cdata "">
<!element slides - - (slide*) >

<!attlist slides
	opts cdata "null">
<!element slide - o (title?, p+) >
<!entity  % addr "(address?, email?, phone?, fax?)" >  
	
<!element letter - - 
	(from, %addr, to, %addr, cc?, subject?, sref?, rref?,
         rdate?, opening, p+, closing, encl?, ps?)>

<!attlist letter
	opts cdata "null">
	
<!element from		- o (#pcdata) >
<!element to		- o (#pcdata) >
	
<!usemap oneline (from,to)>
	
<!element address 	- o (#pcdata) +(newline) >
<!element email		- o (#pcdata) >
<!element phone		- o (#pcdata) >
<!element fax 		- o (#pcdata) >
	
<!element subject 	- o (%inline;) >
<!element sref		- o (#pcdata) >
<!element rref          - o (#pcdata) >
<!element rdate         - o (#pcdata) >
	
<!element opening 	- o (%inline;) >
<!usemap oneline opening>
	
<!element closing - o (%inline;) >
<!element cc - o (%inline;) +(newline) >
<!element encl - o (%inline;) +(newline) >
	
<!element ps - o (p+) >

<!element telefax - - 
	(from, %addr, to, address, email?, 
         phone?, fax, cc?, subject?,
         opening, p+, closing, ps?)>

<!attlist telefax
	opts cdata "null"
	length cdata "2">

<!element notes - - (title?, p+) >
<!attlist notes
	opts cdata "null" >
<!element manpage - - (sect1*) 
	-(sect2 | f | %mathpar | figure | tabular | 
          table | %xref | %thrm )>


<!attlist manpage
	opts cdata "null"
	title cdata ""
	sectnum cdata "1" >
<!shortref manpage
      "&#RS;B" null
      '"' qtag 
      "[" ftag
      "~" nbsp
      "_" lowbar
      "#" num
      "%" percnt
      "^" circ
      "{" lcub
      "}" rcub
      "|" verbar>

<!usemap manpage  manpage >
<!-- end of qwertz dtd -->
