summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc')
-rw-r--r--Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc374
1 files changed, 374 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc b/Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc
new file mode 100644
index 00000000000..d310c3df53b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/schema/rnc/LaTeXML/LaTeXML-math.rnc
@@ -0,0 +1,374 @@
+# /=====================================================================\
+# | LaTeXML-math.rnc |
+# | RelaxNG model for LaTeXML generated documents |
+# |=====================================================================|
+# | Part of LaTeXML: |
+# | Public domain software, produced as part of work done by the |
+# | United States Government & not subject to copyright in the US. |
+# |=====================================================================|
+# | Bruce Miller <bruce.miller@nist.gov> #_# |
+# | http://dlmf.nist.gov/LaTeXML/ (o o) |
+# \=========================================================ooo==U==ooo=/
+
+default namespace = "http://dlmf.nist.gov/LaTeXML"
+
+## The math module defines LaTeXML's internal representation of mathematical
+## content, including the basic math container \elementref{Math}. This element is
+## considered inline, as it will be contained within some other block-level
+## element, eg. \elementref{equation} for display-math.
+Inline.class &= Math*
+
+## This class defines the content of the \elementref{Math} element.
+## Additionally, it could contain MathML or OpenMath, after postprocessing.
+Math.class = XMath
+
+## These elements comprise the internal math representation, being
+## the content of the \elementref{XMath} element.
+XMath.class = XMApp* & XMTok* & XMRef* & XMHint* & XMArg* & XMWrap* & XMDual* & XMText* & XMArray*
+
+#======================================================================
+
+Math =
+## Outer container for all math. This holds the internal
+## \elementref{XMath} representation, as well as image data and other representations.
+element Math { Math_attributes & Math_model }
+
+## Attributes for \elementref{Math}.
+Math_attributes =
+ Common.attributes &
+ Imageable.attributes &
+ ID.attributes &
+
+ ## display or inline mode.
+ attribute mode { "display" | "inline" }? &
+
+ ## reconstruction of the \TeX\ that generated the math.
+ attribute tex { text }? &
+
+ ## more semantic version of \attr{tex}.
+ attribute content-tex { text }? &
+
+ ## a textified representation of the math.
+ attribute text { text }?
+
+## Content model for \elementref{Math}.
+Math_model = Math.class
+
+#======================================================================
+XMath.attributes =
+
+ ## The role that this item plays in the Grammar.
+ attribute role { text }? &
+
+ ## an open delimiter to enclose the object;
+ attribute open { text }? &
+
+ ## an close delimiter to enclose the object;
+ attribute close { text }? &
+
+ ## an open delimiter to enclose the argument list,
+ ## when this token is applied to arguments with \elementref{XMApp}.
+ attribute argopen { text }? &
+
+ ## a close delimiter to enclose the argument list,
+ ## when this token is applied to arguments with \elementref{XMApp}.
+ attribute argclose { text }? &
+
+ ## characters to separate arguments,
+ ## when this token is applied to arguments with \elementref{XMApp}.
+ ## Can be multiple characters for different argument positions;
+ ## the last character is repeated if there aren't enough.
+ attribute separators { text }? &
+
+ ## trailing (presumably non-semantic) punctuation.
+ attribute punctuation { text }? &
+
+ ## an annotation placed by the parser when it suspects this token may be used as a function.
+ attribute possibleFunction { text }?
+
+#======================================================================
+
+XMath =
+## Internal representation of mathematics.
+element XMath { XMath_attributes & XMath_model }
+
+## Attributes for \elementref{XMath}.
+XMath_attributes = Common.attributes
+
+## Content model for \elementref{XMath}.
+XMath_model = XMath.class
+
+#======================================================================
+
+XMTok =
+## General mathematical token.
+element XMTok { XMTok_attributes & XMTok_model }
+
+## Attributes for \elementref{XMTok}.
+XMTok_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+
+ ## The name of the token, typically the control sequence that created it.
+ attribute name { text }? &
+
+ ## A more semantic name corresponding to the intended meaning,
+ ## such as the OpenMath name.
+ attribute meaning { text }? &
+
+ ## The OpenMath CD for which \attr{meaning} is a symbol.
+ attribute omcd { text }? &
+
+ ## Various random styling information. NOTE This needs to be made consistent.
+ attribute style { text }? &
+
+ ## The font, size a used for the symbol.
+ attribute font { text }? &
+
+ ## The size for the symbol, not presumed to be meaningful(?)
+ attribute size { text }? &
+
+ ## The color (CSS format) for the symbol, not presumed to be meaningful(?)
+ attribute color { text }? &
+
+ ## An encoding of the position of this token as a sub/superscript, used
+ ## to handle aligned and nested scripts, both pre and post.
+ ## It is a concatenation of (pre|mid|post), which indicates the horizontal
+ ## positioning of the script with relation to it's base, and a counter
+ ## indicating the level. These are used to position the scripts,
+ ## and to pair up aligned sub- and superscripts.
+ ## NOTE: Clarify where this appears: token, base, script operator, apply?
+ attribute scriptpos { text }? &
+
+ ## NOTE: How is this used?
+ attribute thickness { text }?
+
+## Content model for \elementref{XMTok}.
+XMTok_model = text*
+
+
+#======================================================================
+
+XMApp =
+## Generalized application of a function, operator, whatever (the first child)
+## to arguments (the remaining children).
+## The attributes are a subset of those for \elementref{XMTok}.
+element XMApp { XMApp_attributes & XMApp_model }
+
+## Attributes for \elementref{XMApp}.
+XMApp_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+
+ ## The name of the token, typically the control sequence that created it.
+ attribute name { text }? &
+
+ ## A more semantic name corresponding to the intended meaning,
+ ## such as the OpenMath name.
+ attribute meaning { text }? &
+
+ ## An encoding of the position of this token as a sub/superscript, used
+ ## to handle aligned and nested scripts, both pre and post.
+ ## (See \elementref{XMTok} for details)
+ attribute scriptpos { text }?
+
+## Content model for \elementref{XMApp}.
+XMApp_model = XMath.class
+
+#======================================================================
+
+XMDual =
+## Parallel markup of content (first child) and presentation (second child)
+## of a mathematical object.
+## Typically, the arguments are shared between the two branches:
+## they appear in the content branch, with \attr{id}'s,
+## and \elementref{XMRef} is used in the presentation branch
+element XMDual { XMDual_attributes & XMDual_model }
+
+## Attributes for \elementref{XMDual}.
+XMDual_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes
+
+## Content model for \elementref{XMDual}.
+XMDual_model = XMath.class, XMath.class
+
+#======================================================================
+
+XMHint =
+## Various spacing items, generally ignored in parsing.
+## The attributes are a subset of those for \elementref{XMTok}.
+element XMHint { XMHint_attributes & XMHint_model }
+
+## Attributes for \elementref{XMHint}.
+XMHint_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+ attribute name { text }? &
+ attribute meaning { text }? &
+ attribute style { text }?
+
+## Content model for \elementref{XMHint}.
+XMHint_model = empty
+
+#======================================================================
+
+XMText =
+## Text appearing within math.
+element XMText { XMText_attributes & XMText_model }
+
+## Attributes for \elementref{XMText}.
+XMText_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+
+ ## An encoding of the position of this token as a sub/superscript, used
+ ## to handle aligned and nested scripts, both pre and post.
+ ## (See \elementref{XMTok} for details)
+ attribute scriptpos { text }?
+
+## Content model for \elementref{XMText}.
+XMText_model = text & Inline.class & Misc.class
+
+#======================================================================
+
+XMWrap =
+## Wrapper for a sequence of tokens used to assert the role of the
+## contents in its parent. This element generally disappears after parsing.
+## The attributes are a subset of those for \elementref{XMTok}.
+element XMWrap { XMWrap_attributes & XMWrap_model }
+
+## Attributes for \elementref{XMWrap}.
+XMWrap_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+
+ attribute name { text }? &
+
+ ## A more semantic name corresponding to the intended meaning,
+ ## such as the OpenMath name.
+ attribute meaning { text }? &
+
+ attribute style { text }? &
+
+ ## An encoding of the position of this token as a sub/superscript, used
+ ## to handle aligned and nested scripts, both pre and post.
+ ## (See \elementref{XMTok} for details)
+ attribute scriptpos { text }?
+
+
+## Content model for \elementref{XMWrap}.
+XMWrap_model = XMath.class
+
+#======================================================================
+
+XMArg =
+## Wrapper for an argument to a structured macro.
+## It implies that its content can be parsed independently of its parent,
+## and thus generally disappears after parsing.
+element XMArg { XMArg_attributes & XMArg_model }
+
+## Attributes for \elementref{XMArg}.
+XMArg_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+ attribute rule { text }? &
+
+ ## An encoding of the position of this token as a sub/superscript, used
+ ## to handle aligned and nested scripts, both pre and post.
+ ## (See \elementref{XMTok} for details)
+ attribute scriptpos { text }?
+
+## Content model for \elementref{XMArg}.
+XMArg_model = XMath.class
+
+#======================================================================
+
+XMRef =
+## Structure sharing element typically used in the presentation
+## branch of an \elementref{XMDual} to refer to the arguments present in the content branch.
+element XMRef { XMRef_attributes & XMRef_model }
+
+## Attributes for \elementref{XMRef}.
+XMRef_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+ IDREF.attributes
+
+## Content model for \elementref{XMRef}.
+XMRef_model = empty
+
+#======================================================================
+
+XMArray =
+## Math Array/Alignment structure.
+# The attributes are a subset of those for \elementref{XMTok} or of \elementref{tabular}.
+element XMArray { XMArray_attributes & XMArray_model }
+
+## Attributes for \elementref{XMArray}.
+XMArray_attributes =
+ Common.attributes &
+ XMath.attributes &
+ ID.attributes &
+ attribute name { text }? &
+ attribute meaning { text }? &
+ attribute style { text }? &
+ attribute vattach { "top" | "bottom" }? &
+ attribute width { text }?
+
+## Content model for \elementref{XMArray}.
+XMArray_model = XMRow*
+
+#======================================================================
+XMRow =
+## A row in a math alignment.
+element XMRow { XMRow_attributes & XMRow_model }
+
+## Attributes for \elementref{XMRow}.
+XMRow_attributes = Common.attributes
+
+## Content model for \elementref{XMRow}.
+XMRow_model = XMCell*
+
+#======================================================================
+
+XMCell =
+## A cell in a row of a math alignment.
+element XMCell { XMCell_attributes & XMCell_model }
+
+## Attributes for \elementref{XMCell}.
+XMCell_attributes =
+ Common.attributes &
+
+ ## indicates how many columns this cell spans or covers.
+ attribute colspan { xsd:nonNegativeInteger }? &
+
+ ## indicates how many rows this cell spans or covers.
+ attribute rowpan { xsd:nonNegativeInteger }? &
+
+# This would have been clearer, but messes up conversion to dtd
+# attribute align { "left" | "right" | "center" | "justify" | text }? &
+ ## specifies the alignment of the content.
+ attribute align { text }? &
+
+ ## specifies the desired width for the column.
+ attribute width { text }? &
+
+ ## records a sequence of t or tt, r or rr, b or bb and l or ll
+ ## for borders or doubled borders on any side of the cell.
+ attribute border { text }? &
+
+ ## whether this cell corresponds to a table head or foot.
+ attribute thead {xsd:boolean}?
+
+## Content model for \elementref{XMCell}.
+XMCell_model = XMath.class
+#======================================================================