<!-- minilatex.dtd: XML version of a subset of LaTeX -->
<!-- Most elements have the following attributes  -->
<!ENTITY % all    "id    ID #IMPLIED
                   class CDATA #IMPLIED
                   style CDATA #IMPLIED">
<!-- Most non-empty elements have this language attribute -->
<!ENTITY % i18n   "xml:lang NMTOKEN #IMPLIED">
<!ENTITY % basic  "%all; %i18n;">
<!-- Declaration of parameter entities for structuring the DTD -->
<!ENTITY % fontchange.new "">
<!ENTITY % fontchange "emph|textbf|textsc|textsf|textsl|texttt %fontchange.new;">
<!ENTITY % misc.new "">
<!ENTITY % misc "url|quad|hspace|vspace|includegraphics|tag|ent %misc.new;">
<!ENTITY % xref.new  "">
<!ENTITY % xref "cite|pageref|ref %xref.new;">
<!ENTITY % mathobj.new "">
<!ENTITY % mathobj "displaymath|inlinemath|equation|eqnarray" > 
<!ENTITY % inline.new "">
<!ENTITY % inline  "%fontchange;|quote|tabular|%misc;|%xref;|%mathobj; %inline.new;">
<!ENTITY % list.new "">
<!ENTITY % list    "lalist|description|enumerate|itemize|bibliography %list.new;">
<!ENTITY % preformat.new "">
<!ENTITY % preformat "verbatim|verse %preformat.new;">
<!ENTITY % likepara.new "">
<!ENTITY % likepara "%list;|quotation|align|%preformat; %likepara.new;">
<!ENTITY % floats.new "">
<!ENTITY % floats "figure|table %floats.new;">

<!-- The top level document declarations                     -->
<!ELEMENT document (frontmatter?,bodymatter,backmatter?)>
<!ATTLIST document %i18n; 
                   class CDATA "article">
<!ELEMENT frontmatter (title,author?,date?,abstract?,keywords?)>
<!ELEMENT bodymatter  ((par|%likepara;|%floats;|part|chapter|section)*,appendix*)>
<!ELEMENT backmatter  (index|glossary)*>
<!-- fontchanges -->
<!ELEMENT emph    (#PCDATA|%inline;)*>
<!ELEMENT textbf  (#PCDATA|%inline;)*>
<!ELEMENT textsc  (#PCDATA|%inline;)*>
<!ELEMENT textsf  (#PCDATA|%inline;)*>
<!ELEMENT textsl  (#PCDATA|%inline;)*>
<!ELEMENT texttt  (#PCDATA|%inline;)*>
<!-- cross-references -->
<!ENTITY % idref  "refid IDREF #REQUIRED">
<!ELEMENT cite     EMPTY>
<!ATTLIST cite     %idref;>
<!ELEMENT pageref  EMPTY>
<!ATTLIST pageref  %idref;>
<!ELEMENT ref      EMPTY>
<!ATTLIST ref      %idref;>
<!-- quoted material inline and displayed -->
<!ELEMENT quote        (#PCDATA|%inline;|par)*>
<!ATTLIST quote        %basic;>
<!ELEMENT quotation    (#PCDATA|%inline;|par)*>
<!ATTLIST quotation    %basic;>
<!-- lists -->
<!ELEMENT description  ((term*,item*)+)>
<!ELEMENT enumerate    ((term*,item*)+)>
<!ATTLIST enumerate    %basic;>
<!ELEMENT itemize      ((term*,item*)+)>
<!ATTLIST itemize      %basic;>
<!ELEMENT lalist       ((term*,item*)+)>
<!ATTLIST lalist       %basic;>
<!ELEMENT term         (#PCDATA|%inline;)*>
<!ATTLIST term         %basic;>
<!ELEMENT item         (#PCDATA|%inline;|par|%likepara;)*>
<!ATTLIST item         %basic;>
<!ELEMENT bibliography (bibitem)*>
<!ATTLIST bibliography %basic;>
<!ELEMENT bibitem      (#PCDATA|%inline;|par|%likepara;)*>
<!ATTLIST bibitem      %basic;>
<!-- low-level bits and pieces -->
<!ELEMENT url    EMPTY>
<!ATTLIST url    name CDATA #REQUIRED>
<!ELEMENT quad   EMPTY>
<!ELEMENT hspace EMPTY>
<!ATTLIST hspace dim CDATA #REQUIRED>
<!ELEMENT vspace EMPTY>
<!ATTLIST vspace dim CDATA #REQUIRED>
<!ELEMENT tag    (#PCDATA)>
<!ELEMENT ent    EMPTY>
<!ATTLIST ent    value CDATA #REQUIRED
                 name  CDATA #REQUIRED>
<!-- everything that can go into a paragraph -->
<!ELEMENT par     (#PCDATA|%inline;|%likepara;)*>
<!ATTLIST par     %basic;>
<!-- "floats" and their contents -->
<!ELEMENT figure  (#PCDATA|par|%inline;|%likepara;|includegraphics|caption)*>
<!ATTLIST figure  %basic;>
<!ELEMENT table   (#PCDATA|par|%inline;|%likepara;|tabular|caption)*>
<!ATTLIST table   %basic;>
<!ELEMENT includegraphics EMPTY>
<!ATTLIST includegraphics %basic;
                          file     CDATA #REQUIRED
                          width    CDATA #IMPLIED
                          height   CDATA #IMPLIED
                          bb       CDATA #IMPLIED
                          scale    CDATA ".5"
                          angle    CDATA #IMPLIED>
<!ELEMENT caption  (#PCDATA|par|%inline;)*>
<!ATTLIST caption  %basic;>
<!-- tabular material -->
<!ELEMENT tabular (hline|row)*>
<!ATTLIST tabular %basic;
                  preamble CDATA  #REQUIRED
                  width    CDATA  #IMPLIED 
                  border   CDATA  #IMPLIED>
<!ELEMENT row     (cell)*>
<!ATTLIST row     %basic;>
<!ELEMENT hline   EMPTY>
<!ELEMENT cell    (#PCDATA|%inline;)*>
<!ATTLIST cell    %basic;
                  rowspan CDATA "1"
                  colspan CDATA "1"
                  align   (left|center|right) "center">
<!-- verbatim material -->
<!ELEMENT verbatim (#PCDATA)>
<!ATTLIST verbatim %basic;
                   xml:space (default|preserve) 'preserve'>
<!ELEMENT verse    (#PCDATA|%inline;)*>
<!ATTLIST verse    %basic;
                   xml:space (default|preserve) 'preserve'>
<!-- things that go in the frontmatter -->
<!ELEMENT newline  EMPTY>
<!ELEMENT title    (#PCDATA|%inline;|thanks|newline)*>
<!ATTLIST title    %basic;>
<!ELEMENT author   (#PCDATA|%inline;|name|thanks|inst)*>
<!ELEMENT name     (#PCDATA|%inline;)*>
<!ATTLIST name     %basic;>
<!ELEMENT thanks   (#PCDATA|%inline;|newline)*>
<!ATTLIST thanks   %basic;>
<!ELEMENT inst     (#PCDATA|%inline;|newline)*>
<!ATTLIST inst     %basic;>
<!ELEMENT date     (#PCDATA)>
<!ATTLIST date     %basic;>
<!ELEMENT abstract (par+)>
<!ATTLIST abstract %basic;>
<!-- structuring -->
<!ENTITY % sect          "stitle, (par|%likepara;|%floats;)* ">
<!ELEMENT stitle         (#PCDATA|%inline;)*>
<!ATTLIST stitle          %basic;>
<!ELEMENT part           (%sect;, (chapter|section|subsection|subsubsection)*)>
<!ATTLIST part            %basic;>
<!ELEMENT chapter        (%sect;, section*)> 
<!ATTLIST chapter         %basic;>
<!ELEMENT section        (%sect;, subsection*)>
<!ATTLIST section         %basic;>
<!ELEMENT subsection     (%sect;, subsubsection*)>
<!ATTLIST subsection      %basic;>
<!ELEMENT subsubsection  (%sect;, paragraph*)>
<!ATTLIST subsubsection   %basic;>
<!ELEMENT paragraph      (%sect;, subparagraph*)>
<!ATTLIST paragraph       %basic;>
<!ELEMENT subparagraph   (%sect;)>
<!ATTLIST subparagraph    %basic;>
<!ELEMENT appendix       EMPTY>
<!-- backmatter: index and glossary -->
<!ELEMENT index (par|%likepara;)*>
<!ATTLIST index %basic;>
<!ELEMENT glossary (par|%likepara;)*>
<!ATTLIST glossagry %basic;>
<!-- LaTeX math constructs -->
<!ENTITY % LaTeXmath  "INCLUDE">
<!ENTITY % latexmath.dtd SYSTEM "latexmath.dtd">
<![ %LaTeXmath; [
%latexmath.dtd;
]]>
<!ENTITY % MathML     "IGNORE">
<!ENTITY % latexmml.dtd SYSTEM "latexmml.dtd">
<![ %MathML; [
%latexmml.dtd;
]]>
<!-- Basic XML entities -->
<!ENTITY lt     "&#60;"> <!-- "<" -->
<!ENTITY gt     "&#62;"> <!-- ">" -->
<!ENTITY amp    "&#38;"> <!-- "&" -->
<!ENTITY apos   "&#39;"> <!-- "'" -->
<!ENTITY quot   "&#34;"> <!-- '"' -->
