packages feed

texmath 0.5.0.4 → 0.6

raw patch · 69 files changed

+5543/−300 lines, 69 files

Files

Text/TeXMath.hs view
@@ -1,5 +1,5 @@ {--Copyright (C) 2009 John MacFarlane <jgm@berkeley.edu>+Copyright (C) 2009-2012 John MacFarlane <jgm@berkeley.edu>  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by@@ -19,12 +19,18 @@ {- | Functions for converting LaTeX math formulas to MathML. -} -module Text.TeXMath ( texMathToMathML, DisplayType(..) )+module Text.TeXMath ( texMathToMathML, texMathToOMML, DisplayType(..) ) where import Text.TeXMath.Parser import Text.TeXMath.MathML+import Text.TeXMath.OMML+import Text.TeXMath.Types import Text.XML.Light  texMathToMathML :: DisplayType -> String -> Either String Element texMathToMathML dt inp = inp `seq`   either Left (Right . toMathML dt) $ parseFormula inp++texMathToOMML :: DisplayType -> String -> Either String Element+texMathToOMML dt inp = inp `seq`+  either Left (Right . toOMML dt) $ parseFormula inp
Text/TeXMath/MathML.hs view
@@ -19,7 +19,7 @@ {- | Functions for writing a parsed formula as MathML. -} -module Text.TeXMath.MathML (toMathML, DisplayType(..), showExp)+module Text.TeXMath.MathML (toMathML, showExp) where  import qualified Data.Map as M@@ -27,10 +27,6 @@ import Text.TeXMath.Types import Data.Generics (everywhere, mkT) -data DisplayType = DisplayBlock-                 | DisplayInline-                 deriving Show- toMathML :: DisplayType -> [Exp] -> Element toMathML dt exprs =   add_attr dtattr $ math $ map showExp $ everywhere (mkT $ handleDownup dt) exprs@@ -111,13 +107,22 @@ makeScaled :: String -> Element -> Element makeScaled s = withAttribute "minsize" s . withAttribute "maxsize" s -makeText :: String -> String -> Element+makeText :: TextType -> String -> Element makeText a s = if trailingSp                   then mrow [s', sp]                   else s'   where sp = spaceWidth "0.333em"-        s' = withAttribute "mathvariant" a $ unode "mtext" s+        s' = withAttribute "mathvariant" attr $ unode "mtext" s         trailingSp = not (null s) && last s `elem` " \t"+        attr = case a of+                    TextNormal       -> "normal"+                    TextBold         -> "bold"+                    TextItalic       -> "italic"+                    TextMonospace    -> "monospace"+                    TextSansSerif    -> "sans-serif"+                    TextDoubleStruck -> "double-struck"+                    TextScript       -> "script"+                    TextFraktur      -> "fraktur"  makeArray :: [Alignment] -> [ArrayLine] -> Element makeArray as ls = unode "mtable" $@@ -151,6 +156,10 @@    ENumber x        -> unode "mn" x    EGrouped [x]     -> showExp x    EGrouped xs      -> mrow $ map showExp xs+   EDelimited start end xs -> mrow $+                       [ makeStretchy (unode "mo" start) | not (null start) ] +++                       map showExp xs +++                       [ makeStretchy (unode "mo" end) | not (null end) ]     EIdentifier x    -> unode "mi" x    EMathOperator x  -> unode "mi" x    ESymbol Accent x -> accent x
+ Text/TeXMath/OMML.hs view
@@ -0,0 +1,231 @@+{-+Copyright (C) 2012 John MacFarlane <jgm@berkeley.edu>++This program is free software; you can redistribute it and/or modify+it under the terms of the GNU General Public License as published by+the Free Software Foundation; either version 2 of the License, or+(at your option) any later version.++This program is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+GNU General Public License for more details.++You should have received a copy of the GNU General Public License+along with this program; if not, write to the Free Software+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA+-}++{- | Functions for writing a parsed formula as OMML.+-}++module Text.TeXMath.OMML (toOMML, showExp)+where++import Text.XML.Light+import Text.TeXMath.Types+import Data.Generics (everywhere, mkT)++toOMML :: DisplayType -> [Exp] -> Element+toOMML dt = container . concatMap showExp+            . everywhere (mkT $ handleDownup dt)+    where container = case dt of+                  DisplayBlock  -> mnode "oMathPara" . mnode "oMath"+                  DisplayInline -> mnode "oMath"++mnode :: Node t => String -> t -> Element+mnode s = node (QName s Nothing (Just "m"))++mnodeA :: Node t => String -> String -> t -> Element+mnodeA s v = add_attr (Attr (QName "val" Nothing (Just "m")) v) . mnode s++str :: [Element] -> String -> Element+str props s = mnode "r" [ mnode "rPr" props+                        , mnode "t" s ]++showBinary :: String -> Exp -> Exp -> Element+showBinary c x y =+  case c of+       "\\frac" -> mnode "f" [ mnode "fPr" $+                                mnodeA "type" "bar" ()+                             , mnode "num" x'+                             , mnode "den" y']+       "\\dfrac" -> showBinary "\\frac" x y+       "\\tfrac" -> mnode "f" [ mnode "fPr" $+                                 mnodeA "type" "lin" ()+                              , mnode "num" x'+                              , mnode "den" y']+       "\\sqrt"  -> mnode "rad" [ mnode "radPr" $+                                   mnodeA "degHide" "on" ()+                                , mnode "deg" y'+                                , mnode "e" x']+       "\\stackrel" -> mnode "limUpp" [ mnode "e" x'+                                       , mnode "lim" y']+       "\\overset" -> mnode "limUpp" [ mnode "e" x'+                                     , mnode "lim" y' ]+       "\\underset" -> mnode "limLow" [ mnode "e" x'+                                      , mnode "lim" y' ]+       "\\binom"    -> mnode "d" [ mnode "dPr" $+                                     mnodeA "sepChr" "," ()+                                 , mnode "e" $+                                     mnode "f" [ mnode "fPr" $+                                                   mnodeA "type"+                                                     "noBar" ()+                                               , mnode "num" x'+                                               , mnode "den" y' ]] +       _ -> error $ "Unknown binary operator " ++ c+    where x' = showExp x+          y' = showExp y++makeArray :: [Alignment] -> [ArrayLine] -> Element+makeArray as rs = mnode "m" $ mProps : map toMr rs+  where mProps = mnode "mPr"+                  [ mnodeA "baseJc" "center" ()+                  , mnodeA "plcHide" "on" ()+                  , mnode "mcs" $ map toMc as' ]+        as'    = take (length rs) $ as ++ cycle [AlignDefault]+        toMr r = mnode "mr" $ map (mnode "e" . concatMap showExp) r+        toMc a = mnode "mc" $ mnode "mcPr"+                            $ mnodeA "mcJc" (toAlign a) ()+        toAlign AlignLeft    = "left"+        toAlign AlignRight   = "right"+        toAlign AlignCenter  = "center"+        toAlign AlignDefault = "left"++makeText :: TextType -> String -> Element+makeText a s = str attrs s+  where attrs = case a of+                     TextNormal       -> [sty "p"]+                     TextBold         -> [sty "b"]+                     TextItalic       -> [sty "i"]+                     TextMonospace    -> [sty "p", scr "monospace"]+                     TextSansSerif    -> [sty "p", scr "sans-serif"]+                     TextDoubleStruck -> [sty "p", scr "double-struck"]+                     TextScript       -> [sty "p", scr "script"]+                     TextFraktur      -> [sty "p", scr "fraktur"]+        sty x = mnodeA "sty" x ()+        scr x = mnodeA "scr" x ()++handleDownup :: DisplayType -> [Exp] -> [Exp]+handleDownup dt (exp' : xs) =+  case exp' of+       EDown x y+         | isNary x  -> EGrouped [constructor x y emptyGroup, next] : rest+         | otherwise -> case dt of+                             DisplayBlock  -> EUnder x y : xs+                             DisplayInline -> ESub x y : xs+       EUp   x y+         | isNary x  -> EGrouped [constructor x emptyGroup y, next] : rest+         | otherwise -> case dt of+                             DisplayBlock  -> EOver x y : xs+                             DisplayInline -> ESuper x y : xs+       EDownup x y z+         | isNary x  -> EGrouped [constructor x y z, next] : rest+         | otherwise -> case dt of+                             DisplayBlock  -> EUnderover x y z : xs+                             DisplayInline -> ESubsup x y z : xs+       ESub x y+         | isNary x  -> EGrouped [ESubsup x y emptyGroup, next] : rest+       ESuper x y+         | isNary x  -> EGrouped [ESubsup x emptyGroup y, next] : rest+       ESubsup x y z+         | isNary x  -> EGrouped [ESubsup x y z, next] : rest+       EOver x y+         | isNary x  -> EGrouped [EUnderover x y emptyGroup, next] : rest+       EUnder x y+         | isNary x  -> EGrouped [EUnderover x emptyGroup y, next] : rest+       EUnderover x y z+         | isNary x  -> EGrouped [EUnderover x y z, next] : rest+       _             -> exp' : next : rest+    where (next, rest) = case xs of+                              (t:ts) -> (t,ts)+                              []     -> (emptyGroup, [])+          emptyGroup = EGrouped []+          constructor = case dt of+                             DisplayBlock  -> EUnderover+                             DisplayInline -> ESubsup+handleDownup _ []            = []++showExp :: Exp -> [Element]+showExp e =+ case e of+   ENumber x        -> [str [] x]+   EGrouped [EUnderover (ESymbol Op s) y z, w] -> [makeNary "undOvr" s y z w]+   EGrouped [ESubsup (ESymbol Op s) y z, w] -> [makeNary "subSup" s y z w]+   EGrouped xs      -> concatMap showExp xs+   EDelimited start end xs ->+                       [mnode "d" [ mnode "dPr"+                                    [ mnodeA "begChr" start ()+                                    , mnodeA "endChr" end ()+                                    , mnode "grow" () ]+                                  , mnode "e" $ concatMap showExp xs+                                  ] ]++   EIdentifier x    -> [str [] x]+   EMathOperator x  -> [str [] x]+   EStretchy x      -> showExp x  -- no support for stretchy in OMML+   ESymbol _ x      -> [str [] x]+   ESpace "0.167em" -> [str [] "\x2009"]+   ESpace "0.222em" -> [str [] "\x2005"]+   ESpace "0.278em" -> [str [] "\x2004"]+   ESpace "0.333em" -> [str [] "\x2004"]+   ESpace "1em"     -> [str [] "\x2001"]+   ESpace "2em"     -> [str [] "\x2001\x2001"]+   ESpace _         -> [] -- this is how the xslt sheet handles all spaces+   EBinary c x y    -> [showBinary c x y]+   EUnder x (ESymbol Accent [c]) | isBarChar c ->+                       [mnode "bar" [ mnode "barPr" $+                                        mnodeA "pos" "bot" ()+                                    , mnode "e" $ showExp x ]]+   EOver x (ESymbol Accent [c]) | isBarChar c ->+                       [mnode "bar" [ mnode "barPr" $+                                        mnodeA "pos" "top" ()+                                    , mnode "e" $ showExp x ]]+   EOver x (ESymbol Accent y) ->+                       [mnode "acc" [ mnode "accPr" $+                                        mnodeA "chr" y ()+                                    , mnode "e" $ showExp x ]]+   ESub x y         -> [mnode "sSub" [ mnode "e" $ showExp x+                                     , mnode "sub" $ showExp y]]+   ESuper x y       -> [mnode "sSup" [ mnode "e" $ showExp x+                                     , mnode "sup" $ showExp y]]+   ESubsup x y z    -> [mnode "sSubSup" [ mnode "e" $ showExp x+                                        , mnode "sub" $ showExp y+                                        , mnode "sup" $ showExp z]]+   EUnder x y       -> [mnode "limLow" [ mnode "e" $ showExp x+                                       , mnode "lim" $ showExp y]]+   EOver x y        -> [mnode "limUpp" [ mnode "e" $ showExp x+                                       , mnode "lim" $ showExp y]]+   EUnderover x y z -> showExp (EUnder x (EOver y z))+   EUnary "\\sqrt" x  -> [mnode "rad" [ mnode "radPr" $ mnodeA "degHide" "on" ()+                                      , mnode "deg" ()+                                      , mnode "e" $ showExp x]]+   EUnary "\\surd" x  -> showExp $ EUnary "\\sqrt" x+   EScaled _ x      -> showExp x   -- no support for scaler?+   EArray as ls     -> [makeArray as ls]+   EText a s        -> [makeText a s]+   x                -> error $ "showExp encountered " ++ show x+   -- note: EUp, EDown, EDownup should be removed by handleDownup++isBarChar :: Char -> Bool+isBarChar c = c == '\x203E' || c == '\x00AF'++isNary :: Exp -> Bool+isNary (ESymbol Op _) = True+isNary _ = False++makeNary :: String -> String -> Exp -> Exp -> Exp -> Element+makeNary t s y z w =+  mnode "nary" [ mnode "naryPr"+                 [ mnodeA "chr" s ()+                 , mnodeA "limLoc" t ()+                 , mnode "grow" ()+                 , mnodeA "supHide"+                    (if y == EGrouped [] then "on" else "off") ()+                 , mnodeA "supHide"+                    (if y == EGrouped [] then "on" else "off") ()+                 ]+               , mnode "e" $ showExp w+               , mnode "sub" $ showExp y+               , mnode "sup" $ showExp z ]+
Text/TeXMath/Parser.hs view
@@ -136,7 +136,13 @@   contents <- manyTill expr                (try $ symbol "\\right" >> lookAhead basicEnclosure)   end <- basicEnclosure-  return $ EGrouped $ EStretchy start : (contents ++ [EStretchy end])+  let startChar = case start of+                     ESymbol _ c -> c+                     _           -> ""+  let endChar   = case end of+                     ESymbol _ c -> c+                     _           -> ""+  return $ EDelimited startChar endChar contents  scaledEnclosure :: GenParser Char st Exp scaledEnclosure = try $ do@@ -170,9 +176,7 @@   inEnvironment keywd $ do     aligns <- option [] arrayAlignments     lines' <- sepEndBy1 arrayLine endLine-    return $ EGrouped [ EStretchy (ESymbol Open opendelim)-                      , EArray aligns lines'-                      , EStretchy (ESymbol Close closedelim)]+    return $ EDelimited opendelim closedelim [EArray aligns lines']  stdarray :: GenParser Char st Exp stdarray = inEnvironment "array" $ do@@ -192,7 +196,7 @@ cases :: GenParser Char st Exp cases = inEnvironment "cases" $ do   rs <- sepEndBy1 arrayLine endLine-  return $ EGrouped [EStretchy (ESymbol Open "{"), EArray [] rs]+  return $ EDelimited "{" "" [EArray [] rs]  split :: GenParser Char st Exp split = inEnvironment "split" $ do@@ -287,20 +291,20 @@  textOps :: M.Map String (String -> Exp) textOps = M.fromList-          [ ("\\textrm", EText "normal" . parseText)-          , ("\\mathrm", EText "normal")-          , ("\\text",   EText "normal" . parseText)-          , ("\\mbox",   EText "normal")-          , ("\\mathbf", EText "bold")-          , ("\\textbf", EText "bold" . parseText)-          , ("\\mathit", EText "italic")-          , ("\\textit", EText "italic" . parseText)-          , ("\\mathtt", EText "monospace")-          , ("\\texttt", EText "monospace")-          , ("\\mathsf", EText "sans-serif")-          , ("\\mathbb", \e -> maybe (EText "double-struck" e) (ESymbol Pun) (M.lookup e mathbb))-          , ("\\mathcal", \e -> maybe (EText "script" e) (ESymbol Pun) (M.lookup e mathcal))-          , ("\\mathfrak", EText "fraktur")+          [ ("\\textrm", EText TextNormal . parseText)+          , ("\\mathrm", EText TextNormal)+          , ("\\text",   EText TextNormal . parseText)+          , ("\\mbox",   EText TextNormal)+          , ("\\mathbf", EText TextBold)+          , ("\\textbf", EText TextBold . parseText)+          , ("\\mathit", EText TextItalic)+          , ("\\textit", EText TextItalic . parseText)+          , ("\\mathtt", EText TextMonospace)+          , ("\\texttt", EText TextMonospace)+          , ("\\mathsf", EText TextSansSerif)+          , ("\\mathbb", \e -> maybe (EText TextDoubleStruck e) (ESymbol Pun) (M.lookup e mathbb))+          , ("\\mathcal", \e -> maybe (EText TextScript e) (ESymbol Pun) (M.lookup e mathcal))+          , ("\\mathfrak", EText TextFraktur)           ]  parseText :: String -> String
Text/TeXMath/Types.hs view
@@ -20,7 +20,8 @@ {- | Types for representing a structured formula. -} -module Text.TeXMath.Types (Exp(..), TeXSymbolType(..), ArrayLine, Alignment(..))+module Text.TeXMath.Types (Exp(..), TeXSymbolType(..), ArrayLine,+                           TextType(..), Alignment(..), DisplayType(..)) where  import Data.Generics@@ -36,6 +37,7 @@ data Exp =     ENumber String   | EGrouped [Exp]+  | EDelimited String String [Exp]   | EIdentifier String   | EMathOperator String   | ESymbol TeXSymbolType String@@ -54,5 +56,19 @@   | EScaled String Exp   | EStretchy Exp   | EArray [Alignment] [ArrayLine]-  | EText String String+  | EText TextType String   deriving (Show, Read, Eq, Data, Typeable)++data DisplayType = DisplayBlock+                 | DisplayInline+                 deriving Show++data TextType = TextNormal+              | TextBold+              | TextItalic+              | TextMonospace+              | TextSansSerif+              | TextDoubleStruck+              | TextScript+              | TextFraktur+              deriving (Show, Read, Eq, Data, Typeable)
+ tests/01.omml view
@@ -0,0 +1,80 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>−</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>b</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>±</m:t>+        </m:r>+        <m:rad>+          <m:radPr>+            <m:degHide m:val="on" />+          </m:radPr>+          <m:deg />+          <m:e>+            <m:sSup>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>b</m:t>+                </m:r>+              </m:e>+              <m:sup>+                <m:r>+                  <m:rPr />+                  <m:t>2</m:t>+                </m:r>+              </m:sup>+            </m:sSup>+            <m:r>+              <m:rPr />+              <m:t>−</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>4</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>a</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>c</m:t>+            </m:r>+          </m:e>+        </m:rad>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/01.xhtml view
@@ -10,16 +10,16 @@         <mo>=</mo>         <mfrac>           <mrow>-            <mo>&#8722;</mo>+            <mo>−</mo>             <mi>b</mi>-            <mo>&#177;</mo>+            <mo>±</mo>             <msqrt>               <mrow>                 <msup>                   <mi>b</mi>                   <mn>2</mn>                 </msup>-                <mo>&#8722;</mo>+                <mo>−</mo>                 <mn>4</mn>                 <mi>a</mi>                 <mi>c</mi>
+ tests/02.omml view
@@ -0,0 +1,72 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>2</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:d>+      <m:dPr>+        <m:begChr m:val="(" />+        <m:endChr m:val=")" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:f>+          <m:fPr>+            <m:type m:val="bar" />+          </m:fPr>+          <m:num>+            <m:d>+              <m:dPr>+                <m:begChr m:val="(" />+                <m:endChr m:val=")" />+                <m:grow />+              </m:dPr>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>3</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>−</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>x</m:t>+                </m:r>+              </m:e>+            </m:d>+            <m:r>+              <m:rPr />+              <m:t>×</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>2</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:rPr />+              <m:t>3</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>−</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>x</m:t>+            </m:r>+          </m:den>+        </m:f>+      </m:e>+    </m:d>+  </m:oMath>+</m:oMathPara>
tests/02.xhtml view
@@ -15,16 +15,16 @@               <mrow>                 <mo stretchy="true">(</mo>                 <mn>3</mn>-                <mo>&#8722;</mo>+                <mo>−</mo>                 <mi>x</mi>                 <mo stretchy="true">)</mo>               </mrow>-              <mo>&#215;</mo>+              <mo>×</mo>               <mn>2</mn>             </mrow>             <mrow>               <mn>3</mn>-              <mo>&#8722;</mo>+              <mo>−</mo>               <mi>x</mi>             </mrow>           </mfrac>
+ tests/03.omml view
@@ -0,0 +1,51 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>a</m:t>+    </m:r>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>x</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>b</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>c</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>0</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
+ tests/04.omml view
@@ -0,0 +1,89 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>S</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>new</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>S</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>old</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>−</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:sSup>+          <m:e>+            <m:d>+              <m:dPr>+                <m:begChr m:val="(" />+                <m:endChr m:val=")" />+                <m:grow />+              </m:dPr>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>5</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>−</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>T</m:t>+                </m:r>+              </m:e>+            </m:d>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/04.xhtml view
@@ -15,13 +15,13 @@           <mi>S</mi>           <mtext mathvariant="normal">old</mtext>         </msub>-        <mo>&#8722;</mo>+        <mo>−</mo>         <mfrac>           <msup>             <mrow>               <mo stretchy="true">(</mo>               <mn>5</mn>-              <mo>&#8722;</mo>+              <mo>−</mo>               <mi>T</mi>               <mo stretchy="true">)</mo>             </mrow>
+ tests/05.omml view
@@ -0,0 +1,165 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∫" />+        <m:limLoc m:val="subSup" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e />+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>x</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∫" />+        <m:limLoc m:val="subSup" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>f</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>s</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>d</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>d</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>s</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∫" />+        <m:limLoc m:val="subSup" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>f</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>x</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>−</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>d</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/05.xhtml view
@@ -7,7 +7,7 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msubsup>-          <mo>&#8747;</mo>+          <mo>∫</mo>           <mi>a</mi>           <mi>x</mi>         </msubsup>@@ -15,7 +15,7 @@         <mspace width="-0.167em" />         <mspace width="-0.167em" />         <msubsup>-          <mo>&#8747;</mo>+          <mo>∫</mo>           <mi>a</mi>           <mi>s</mi>         </msubsup>@@ -31,7 +31,7 @@         <mi>s</mi>         <mo>=</mo>         <msubsup>-          <mo>&#8747;</mo>+          <mo>∫</mo>           <mi>a</mi>           <mi>x</mi>         </msubsup>@@ -41,7 +41,7 @@         <mo stretchy="false">)</mo>         <mo stretchy="false">(</mo>         <mi>x</mi>-        <mo>&#8722;</mo>+        <mo>−</mo>         <mi>y</mi>         <mo stretchy="false">)</mo>         <mspace width="0.167em" />
+ tests/06.omml view
@@ -0,0 +1,169 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∑" />+        <m:limLoc m:val="undOvr" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="∑" />+            <m:limLoc m:val="undOvr" />+            <m:grow />+            <m:supHide m:val="off" />+            <m:supHide m:val="off" />+          </m:naryPr>+          <m:e>+            <m:f>+              <m:fPr>+                <m:type m:val="bar" />+              </m:fPr>+              <m:num>+                <m:sSup>+                  <m:e>+                    <m:r>+                      <m:rPr />+                      <m:t>m</m:t>+                    </m:r>+                  </m:e>+                  <m:sup>+                    <m:r>+                      <m:rPr />+                      <m:t>2</m:t>+                    </m:r>+                  </m:sup>+                </m:sSup>+                <m:r>+                  <m:rPr />+                  <m:t> </m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:num>+              <m:den>+                <m:sSup>+                  <m:e>+                    <m:r>+                      <m:rPr />+                      <m:t>3</m:t>+                    </m:r>+                  </m:e>+                  <m:sup>+                    <m:r>+                      <m:rPr />+                      <m:t>m</m:t>+                    </m:r>+                  </m:sup>+                </m:sSup>+                <m:d>+                  <m:dPr>+                    <m:begChr m:val="(" />+                    <m:endChr m:val=")" />+                    <m:grow />+                  </m:dPr>+                  <m:e>+                    <m:r>+                      <m:rPr />+                      <m:t>m</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr />+                      <m:t> </m:t>+                    </m:r>+                    <m:sSup>+                      <m:e>+                        <m:r>+                          <m:rPr />+                          <m:t>3</m:t>+                        </m:r>+                      </m:e>+                      <m:sup>+                        <m:r>+                          <m:rPr />+                          <m:t>n</m:t>+                        </m:r>+                      </m:sup>+                    </m:sSup>+                    <m:r>+                      <m:rPr />+                      <m:t>+</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr />+                      <m:t>n</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr />+                      <m:t> </m:t>+                    </m:r>+                    <m:sSup>+                      <m:e>+                        <m:r>+                          <m:rPr />+                          <m:t>3</m:t>+                        </m:r>+                      </m:e>+                      <m:sup>+                        <m:r>+                          <m:rPr />+                          <m:t>m</m:t>+                        </m:r>+                      </m:sup>+                    </m:sSup>+                  </m:e>+                </m:d>+              </m:den>+            </m:f>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>=</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>1</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>∞</m:t>+            </m:r>+          </m:sup>+        </m:nary>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>m</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>∞</m:t>+        </m:r>+      </m:sup>+    </m:nary>+  </m:oMath>+</m:oMathPara>
tests/06.xhtml view
@@ -7,22 +7,22 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <munderover>-          <mo>&#8721;</mo>+          <mo>∑</mo>           <mrow>             <mi>m</mi>             <mo>=</mo>             <mn>1</mn>           </mrow>-          <mo>&#8734;</mo>+          <mo>∞</mo>         </munderover>         <munderover>-          <mo>&#8721;</mo>+          <mo>∑</mo>           <mrow>             <mi>n</mi>             <mo>=</mo>             <mn>1</mn>           </mrow>-          <mo>&#8734;</mo>+          <mo>∞</mo>         </munderover>         <mfrac>           <mrow>
+ tests/07.omml view
@@ -0,0 +1,105 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>u</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>ʺ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>p</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>u</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>ʹ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>q</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>u</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>f</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>&gt;</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>a</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/07.xhtml view
@@ -7,14 +7,14 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <mi>u</mi>-        <mo>&#698;</mo>+        <mo>ʺ</mo>         <mo>+</mo>         <mi>p</mi>         <mo stretchy="false">(</mo>         <mi>x</mi>         <mo stretchy="false">)</mo>         <mi>u</mi>-        <mo>&#697;</mo>+        <mo>ʹ</mo>         <mo>+</mo>         <mi>q</mi>         <mo stretchy="false">(</mo>
+ tests/08.omml view
@@ -0,0 +1,161 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:bar>+      <m:barPr>+        <m:pos m:val="top" />+      </m:barPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+      </m:e>+    </m:bar>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>z</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:bar>+      <m:barPr>+        <m:pos m:val="top" />+      </m:barPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+      </m:e>+    </m:bar>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>)</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∣</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>z</m:t>+    </m:r>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>∣</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>arg</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>n</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>arg</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>z</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/08.xhtml view
@@ -6,33 +6,33 @@   <body>     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mover>           <mi>z</mi>-          <mo accent="true">&#8254;</mo>+          <mo accent="true">‾</mo>         </mover>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mo>=</mo>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mi>z</mi>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mo>,</mo>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mo stretchy="false">(</mo>         <mover>           <mi>z</mi>-          <mo accent="true">&#8254;</mo>+          <mo accent="true">‾</mo>         </mover>         <msup>           <mo stretchy="false">)</mo>           <mi>n</mi>         </msup>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mo>=</mo>-        <mo stretchy="false">&#8739;</mo>+        <mo stretchy="false">∣</mo>         <mi>z</mi>         <msup>-          <mo stretchy="false">&#8739;</mo>+          <mo stretchy="false">∣</mo>           <mi>n</mi>         </msup>         <mo>,</mo>
+ tests/09.omml view
@@ -0,0 +1,83 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:limLow>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>lim</m:t>+        </m:r>+      </m:e>+      <m:lim>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>→</m:t>+        </m:r>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>z</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>0</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:lim>+    </m:limLow>+    <m:r>+      <m:rPr />+      <m:t>f</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>z</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>f</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>0</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/09.xhtml view
@@ -10,7 +10,7 @@           <mi>lim</mi>           <mrow>             <mi>z</mi>-            <mo>&#8594;</mo>+            <mo>→</mo>             <msub>               <mi>z</mi>               <mn>0</mn>
+ tests/10.omml view
@@ -0,0 +1,243 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>φ</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>κ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>4</m:t>+        </m:r>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>π</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>κ</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:den>+    </m:f>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∫" />+        <m:limLoc m:val="subSup" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:f>+          <m:fPr>+            <m:type m:val="bar" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:rPr />+              <m:t>sin</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>κ</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>R</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>)</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:rPr />+              <m:t>κ</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>R</m:t>+            </m:r>+          </m:den>+        </m:f>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>0</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>∞</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>R</m:t>+        </m:r>+      </m:den>+    </m:f>+    <m:d>+      <m:dPr>+        <m:begChr m:val="[" />+        <m:endChr m:val="]" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>R</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:f>+          <m:fPr>+            <m:type m:val="bar" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:rPr />+              <m:t>∂</m:t>+            </m:r>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>D</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>R</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>)</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:rPr />+              <m:t>∂</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>R</m:t>+            </m:r>+          </m:den>+        </m:f>+      </m:e>+    </m:d>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>d</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>R</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/10.xhtml view
@@ -7,11 +7,11 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msub>-          <mi>&#966;</mi>+          <mi>φ</mi>           <mi>n</mi>         </msub>         <mo stretchy="false">(</mo>-        <mi>&#954;</mi>+        <mi>κ</mi>         <mo stretchy="false">)</mo>         <mo>=</mo>         <mfrac>@@ -19,37 +19,37 @@           <mrow>             <mn>4</mn>             <msup>-              <mi>&#960;</mi>+              <mi>π</mi>               <mn>2</mn>             </msup>             <msup>-              <mi>&#954;</mi>+              <mi>κ</mi>               <mn>2</mn>             </msup>           </mrow>         </mfrac>         <msubsup>-          <mo>&#8747;</mo>+          <mo>∫</mo>           <mn>0</mn>-          <mo>&#8734;</mo>+          <mo>∞</mo>         </msubsup>         <mfrac>           <mrow>             <mi>sin</mi>             <mo stretchy="false">(</mo>-            <mi>&#954;</mi>+            <mi>κ</mi>             <mi>R</mi>             <mo stretchy="false">)</mo>           </mrow>           <mrow>-            <mi>&#954;</mi>+            <mi>κ</mi>             <mi>R</mi>           </mrow>         </mfrac>         <mfrac>-          <mo>&#8706;</mo>+          <mo>∂</mo>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <mi>R</mi>           </mrow>         </mfrac>@@ -61,7 +61,7 @@           </msup>           <mfrac>             <mrow>-              <mo>&#8706;</mo>+              <mo>∂</mo>               <msub>                 <mi>D</mi>                 <mi>n</mi>@@ -71,7 +71,7 @@               <mo stretchy="false">)</mo>             </mrow>             <mrow>-              <mo>&#8706;</mo>+              <mo>∂</mo>               <mi>R</mi>             </mrow>           </mfrac>
+ tests/11.omml view
@@ -0,0 +1,167 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>φ</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>κ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>0</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>.</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>033</m:t>+    </m:r>+    <m:sSubSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>C</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:sup>+    </m:sSubSup>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>κ</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>−</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>11</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>/</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>3</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>L</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>0</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:den>+    </m:f>+    <m:r>+      <m:rPr />+      <m:t>≪</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>κ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≪</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>l</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>0</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/11.xhtml view
@@ -7,11 +7,11 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msub>-          <mi>&#966;</mi>+          <mi>φ</mi>           <mi>n</mi>         </msub>         <mo stretchy="false">(</mo>-        <mi>&#954;</mi>+        <mi>κ</mi>         <mo stretchy="false">)</mo>         <mo>=</mo>         <mn>0</mn>@@ -23,9 +23,9 @@           <mn>2</mn>         </msubsup>         <msup>-          <mi>&#954;</mi>+          <mi>κ</mi>           <mrow>-            <mo>&#8722;</mo>+            <mo>−</mo>             <mn>11</mn>             <mo>/</mo>             <mn>3</mn>@@ -40,9 +40,9 @@             <mn>0</mn>           </msub>         </mfrac>-        <mo>&#8810;</mo>-        <mi>&#954;</mi>-        <mo>&#8810;</mo>+        <mo>≪</mo>+        <mi>κ</mi>+        <mo>≪</mo>         <mfrac>           <mn>1</mn>           <msub>
+ tests/12.omml view
@@ -0,0 +1,160 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>f</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:d>+      <m:dPr>+        <m:begChr m:val="{" />+        <m:endChr m:val="" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>−</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>≤</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>x</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>&lt;</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:f>+                <m:fPr>+                  <m:type m:val="bar" />+                </m:fPr>+                <m:num>+                  <m:r>+                    <m:rPr />+                    <m:t>1</m:t>+                  </m:r>+                </m:num>+                <m:den>+                  <m:r>+                    <m:rPr />+                    <m:t>2</m:t>+                  </m:r>+                </m:den>+              </m:f>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>x</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>=</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>−</m:t>+              </m:r>+              <m:sSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>x</m:t>+                  </m:r>+                </m:e>+                <m:sup>+                  <m:r>+                    <m:rPr />+                    <m:t>2</m:t>+                  </m:r>+                </m:sup>+              </m:sSup>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr>+                  <m:sty m:val="p" />+                </m:rPr>+                <m:t>otherwise</m:t>+              </m:r>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+  </m:oMath>+</m:oMathPara>
tests/12.xhtml view
@@ -19,9 +19,9 @@                 <mn>1</mn>               </mtd>               <mtd>-                <mo>&#8722;</mo>+                <mo>−</mo>                 <mn>1</mn>-                <mo>&#8804;</mo>+                <mo>≤</mo>                 <mi>x</mi>                 <mo>&lt;</mo>                 <mn>0</mn>@@ -43,7 +43,7 @@             <mtr>               <mtd>                 <mn>1</mn>-                <mo>&#8722;</mo>+                <mo>−</mo>                 <msup>                   <mi>x</mi>                   <mn>2</mn>
+ tests/13.omml view
@@ -0,0 +1,339 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSub>+      <m:e />+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>p</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>F</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>q</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>…</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>p</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>;</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>c</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>…</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>c</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>q</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>;</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>z</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∑" />+        <m:limLoc m:val="undOvr" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:f>+          <m:fPr>+            <m:type m:val="bar" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>a</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>1</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>)</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:r>+              <m:rPr />+              <m:t>⋯</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>a</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>p</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>)</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+          </m:num>+          <m:den>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>c</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>1</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>)</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:r>+              <m:rPr />+              <m:t>⋯</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>(</m:t>+            </m:r>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>c</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>q</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>)</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>n</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+          </m:den>+        </m:f>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>0</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>∞</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>z</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>!</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/13.xhtml view
@@ -20,7 +20,7 @@           <mn>1</mn>         </msub>         <mo>,</mo>-        <mo>&#8230;</mo>+        <mo>…</mo>         <mo>,</mo>         <msub>           <mi>a</mi>@@ -32,7 +32,7 @@           <mn>1</mn>         </msub>         <mo>,</mo>-        <mo>&#8230;</mo>+        <mo>…</mo>         <mo>,</mo>         <msub>           <mi>c</mi>@@ -43,13 +43,13 @@         <mo stretchy="false">)</mo>         <mo>=</mo>         <munderover>-          <mo>&#8721;</mo>+          <mo>∑</mo>           <mrow>             <mi>n</mi>             <mo>=</mo>             <mn>0</mn>           </mrow>-          <mo>&#8734;</mo>+          <mo>∞</mo>         </munderover>         <mfrac>           <mrow>@@ -62,7 +62,7 @@               <mo stretchy="false">)</mo>               <mi>n</mi>             </msub>-            <mo>&#8943;</mo>+            <mo>⋯</mo>             <mo stretchy="false">(</mo>             <msub>               <mi>a</mi>@@ -83,7 +83,7 @@               <mo stretchy="false">)</mo>               <mi>n</mi>             </msub>-            <mo>&#8943;</mo>+            <mo>⋯</mo>             <mo stretchy="false">(</mo>             <msub>               <mi>c</mi>
+ tests/14.omml view
@@ -0,0 +1,43 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>b</m:t>+        </m:r>+      </m:den>+    </m:f>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="lin" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>b</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
+ tests/15.omml view
@@ -0,0 +1,22 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
+ tests/16.omml view
@@ -0,0 +1,17 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>3</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>×</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>4</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/16.xhtml view
@@ -7,7 +7,7 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <mn>3</mn>-        <mo>&#215;</mo>+        <mo>×</mo>         <mn>4</mn>       </mrow>     </math>
+ tests/17.omml view
@@ -0,0 +1,33 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>*</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>4</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>4</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>*</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
+ tests/18.omml view
@@ -0,0 +1,29 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>1</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>.</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>3</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>×</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>.</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>2</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/18.xhtml view
@@ -9,7 +9,7 @@         <mn>1</mn>         <mo>.</mo>         <mn>3</mn>-        <mo>&#215;</mo>+        <mo>×</mo>         <mo>.</mo>         <mn>2</mn>       </mrow>
+ tests/19.omml view
@@ -0,0 +1,457 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:d>+      <m:dPr>+        <m:begChr m:val="[" />+        <m:endChr m:val="]" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:f>+                <m:fPr>+                  <m:type m:val="bar" />+                </m:fPr>+                <m:num>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>x</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:num>+                <m:den>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>y</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:den>+              </m:f>+            </m:e>+            <m:e>+              <m:f>+                <m:fPr>+                  <m:type m:val="bar" />+                </m:fPr>+                <m:num>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>x</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>2</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:num>+                <m:den>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>y</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:den>+              </m:f>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t> </m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:f>+                <m:fPr>+                  <m:type m:val="bar" />+                </m:fPr>+                <m:num>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>x</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:num>+                <m:den>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>y</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>2</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:den>+              </m:f>+            </m:e>+            <m:e>+              <m:f>+                <m:fPr>+                  <m:type m:val="bar" />+                </m:fPr>+                <m:num>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>x</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>2</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:num>+                <m:den>+                  <m:r>+                    <m:rPr />+                    <m:t>∂</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>y</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>2</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                </m:den>+              </m:f>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+    <m:d>+      <m:dPr>+        <m:begChr m:val="(" />+        <m:endChr m:val=")" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>4</m:t>+              </m:r>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+    <m:d>+      <m:dPr>+        <m:begChr m:val="{" />+        <m:endChr m:val="}" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>4</m:t>+              </m:r>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+    <m:d>+      <m:dPr>+        <m:begChr m:val="∣" />+        <m:endChr m:val="∣" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>4</m:t>+              </m:r>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+    <m:d>+      <m:dPr>+        <m:begChr m:val="∥" />+        <m:endChr m:val="∥" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>4</m:t>+              </m:r>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+  </m:oMath>+</m:oMathPara>
tests/19.xhtml view
@@ -14,14 +14,14 @@                 <mstyle displaystyle="true">                   <mfrac>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>x</mi>                         <mn>1</mn>                       </msub>                     </mrow>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>y</mi>                         <mn>1</mn>@@ -34,14 +34,14 @@                 <mstyle displaystyle="true">                   <mfrac>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>x</mi>                         <mn>2</mn>                       </msub>                     </mrow>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>y</mi>                         <mn>1</mn>@@ -61,14 +61,14 @@                 <mstyle displaystyle="true">                   <mfrac>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>x</mi>                         <mn>1</mn>                       </msub>                     </mrow>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>y</mi>                         <mn>2</mn>@@ -81,14 +81,14 @@                 <mstyle displaystyle="true">                   <mfrac>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>x</mi>                         <mn>2</mn>                       </msub>                     </mrow>                     <mrow>-                      <mo>&#8706;</mo>+                      <mo>∂</mo>                       <msub>                         <mi>y</mi>                         <mn>2</mn>@@ -146,7 +146,7 @@           <mo stretchy="true">}</mo>         </mrow>         <mrow>-          <mo stretchy="true">&#8739;</mo>+          <mo stretchy="true">∣</mo>           <mtable>             <mtr>               <mtd>@@ -165,10 +165,10 @@               </mtd>             </mtr>           </mtable>-          <mo stretchy="true">&#8739;</mo>+          <mo stretchy="true">∣</mo>         </mrow>         <mrow>-          <mo stretchy="true">&#8741;</mo>+          <mo stretchy="true">∥</mo>           <mtable>             <mtr>               <mtd>@@ -187,7 +187,7 @@               </mtd>             </mtr>           </mtable>-          <mo stretchy="true">&#8741;</mo>+          <mo stretchy="true">∥</mo>         </mrow>       </mrow>     </math>
+ tests/axiom_of_power_set.omml view
@@ -0,0 +1,113 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>∀</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>A</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∃</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>P</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∀</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>B</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>[</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>B</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∈</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>P</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>⇔</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∀</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>C</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>C</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∈</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>B</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>⇒</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>C</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∈</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>A</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>]</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/axiom_of_power_set.xhtml view
@@ -6,30 +6,30 @@   <body>     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>-        <mo>&#8704;</mo>+        <mo>∀</mo>         <mi>A</mi>         <mspace width="0.167em" />-        <mo>&#8707;</mo>+        <mo>∃</mo>         <mi>P</mi>         <mspace width="0.167em" />-        <mo>&#8704;</mo>+        <mo>∀</mo>         <mi>B</mi>         <mspace width="0.167em" />         <mo stretchy="false">[</mo>         <mi>B</mi>-        <mo>&#8712;</mo>+        <mo>∈</mo>         <mi>P</mi>-        <mo>&#8660;</mo>-        <mo>&#8704;</mo>+        <mo>⇔</mo>+        <mo>∀</mo>         <mi>C</mi>         <mspace width="0.167em" />         <mo stretchy="false">(</mo>         <mi>C</mi>-        <mo>&#8712;</mo>+        <mo>∈</mo>         <mi>B</mi>-        <mo>&#8658;</mo>+        <mo>⇒</mo>         <mi>C</mi>-        <mo>&#8712;</mo>+        <mo>∈</mo>         <mi>A</mi>         <mo stretchy="false">)</mo>         <mo stretchy="false">]</mo>
+ tests/binomial_coefficient.omml view
@@ -0,0 +1,171 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr>+        <m:sty m:val="b" />+      </m:rPr>+      <m:t>C</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>n</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>k</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:sSubSup>+      <m:e>+        <m:r>+          <m:rPr>+            <m:sty m:val="b" />+          </m:rPr>+          <m:t>C</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>k</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sup>+    </m:sSubSup>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:sSub>+      <m:e />+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr>+            <m:sty m:val="b" />+          </m:rPr>+          <m:t>C</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>k</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:d>+      <m:dPr>+        <m:sepChr m:val="," />+      </m:dPr>+      <m:e>+        <m:f>+          <m:fPr>+            <m:type m:val="noBar" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:rPr />+              <m:t>k</m:t>+            </m:r>+          </m:den>+        </m:f>+      </m:e>+    </m:d>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>!</m:t>+        </m:r>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>k</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>!</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t> </m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>(</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>−</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>k</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>)</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>!</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/binomial_coefficient.xhtml view
@@ -46,7 +46,7 @@             <mspace width="0.167em" />             <mo stretchy="false">(</mo>             <mi>n</mi>-            <mo>&#8722;</mo>+            <mo>−</mo>             <mi>k</mi>             <mo stretchy="false">)</mo>             <mo>!</mo>
+ tests/complex_number.omml view
@@ -0,0 +1,94 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>c</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:limUpp>+      <m:e>+        <m:acc>+          <m:accPr>+            <m:chr m:val="︷" />+          </m:accPr>+          <m:e>+            <m:limLow>+              <m:e>+                <m:limLow>+                  <m:e>+                    <m:r>+                      <m:rPr />+                      <m:t>a</m:t>+                    </m:r>+                  </m:e>+                  <m:lim>+                    <m:r>+                      <m:rPr />+                      <m:t>︸</m:t>+                    </m:r>+                  </m:lim>+                </m:limLow>+              </m:e>+              <m:lim>+                <m:r>+                  <m:rPr>+                    <m:sty m:val="p" />+                  </m:rPr>+                  <m:t>real</m:t>+                </m:r>+              </m:lim>+            </m:limLow>+            <m:r>+              <m:rPr />+              <m:t>+</m:t>+            </m:r>+            <m:limLow>+              <m:e>+                <m:limLow>+                  <m:e>+                    <m:r>+                      <m:rPr />+                      <m:t>b</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr>+                        <m:sty m:val="p" />+                      </m:rPr>+                      <m:t>i</m:t>+                    </m:r>+                  </m:e>+                  <m:lim>+                    <m:r>+                      <m:rPr />+                      <m:t>︸</m:t>+                    </m:r>+                  </m:lim>+                </m:limLow>+              </m:e>+              <m:lim>+                <m:r>+                  <m:rPr>+                    <m:sty m:val="p" />+                  </m:rPr>+                  <m:t>imaginary</m:t>+                </m:r>+              </m:lim>+            </m:limLow>+          </m:e>+        </m:acc>+      </m:e>+      <m:lim>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>complex number</m:t>+        </m:r>+      </m:lim>+    </m:limUpp>+  </m:oMath>+</m:oMathPara>
tests/complex_number.xhtml view
@@ -14,7 +14,7 @@               <munder>                 <munder>                   <mi>a</mi>-                  <mo accent="true">&#65080;</mo>+                  <mo accent="true">︸</mo>                 </munder>                 <mtext mathvariant="normal">real</mtext>               </munder>@@ -25,12 +25,12 @@                     <mi>b</mi>                     <mtext mathvariant="normal">i</mtext>                   </mrow>-                  <mo accent="true">&#65080;</mo>+                  <mo accent="true">︸</mo>                 </munder>                 <mtext mathvariant="normal">imaginary</mtext>               </munder>             </mrow>-            <mo accent="true">&#65079;</mo>+            <mo accent="true">︷</mo>           </mover>           <mtext mathvariant="normal">complex number</mtext>         </mover>
+ tests/deMorgans_law.omml view
@@ -0,0 +1,177 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>¬</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>p</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∧</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>q</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>⇔</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>¬</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>p</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>∨</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>(</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>¬</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>q</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>)</m:t>+    </m:r>+    <m:bar>+      <m:barPr>+        <m:pos m:val="top" />+      </m:barPr>+      <m:e>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="⋃" />+            <m:limLoc m:val="undOvr" />+            <m:grow />+            <m:supHide m:val="off" />+            <m:supHide m:val="off" />+          </m:naryPr>+          <m:e>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>A</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>i</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>i</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>=</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>1</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+          </m:sup>+        </m:nary>+      </m:e>+    </m:bar>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="⋂" />+        <m:limLoc m:val="undOvr" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:bar>+          <m:barPr>+            <m:pos m:val="top" />+          </m:barPr>+          <m:e>+            <m:sSub>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>A</m:t>+                </m:r>+              </m:e>+              <m:sub>+                <m:r>+                  <m:rPr />+                  <m:t>i</m:t>+                </m:r>+              </m:sub>+            </m:sSub>+          </m:e>+        </m:bar>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>i</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+      </m:sup>+    </m:nary>+  </m:oMath>+</m:oMathPara>
tests/deMorgans_law.xhtml view
@@ -6,26 +6,26 @@   <body>     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>-        <mo>&#172;</mo>+        <mo>¬</mo>         <mo stretchy="false">(</mo>         <mi>p</mi>-        <mo>&#8743;</mo>+        <mo>∧</mo>         <mi>q</mi>         <mo stretchy="false">)</mo>-        <mo>&#8660;</mo>+        <mo>⇔</mo>         <mo stretchy="false">(</mo>-        <mo>&#172;</mo>+        <mo>¬</mo>         <mi>p</mi>         <mo stretchy="false">)</mo>-        <mo>&#8744;</mo>+        <mo>∨</mo>         <mo stretchy="false">(</mo>-        <mo>&#172;</mo>+        <mo>¬</mo>         <mi>q</mi>         <mo stretchy="false">)</mo>         <mover>           <mrow>             <munderover>-              <mo>&#8899;</mo>+              <mo>⋃</mo>               <mrow>                 <mi>i</mi>                 <mo>=</mo>@@ -38,11 +38,11 @@               <mi>i</mi>             </msub>           </mrow>-          <mo accent="true">&#175;</mo>+          <mo accent="true">¯</mo>         </mover>         <mo>=</mo>         <munderover>-          <mo>&#8898;</mo>+          <mo>⋂</mo>           <mrow>             <mi>i</mi>             <mo>=</mo>@@ -55,7 +55,7 @@             <mi>A</mi>             <mi>i</mi>           </msub>-          <mo accent="true">&#175;</mo>+          <mo accent="true">¯</mo>         </mover>       </mrow>     </math>
+ tests/differentiable_manifold.omml view
@@ -0,0 +1,325 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>γ</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>≡</m:t>+    </m:r>+    <m:sSub>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>γ</m:t>+        </m:r>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:sub>+    </m:sSub>+    <m:r>+      <m:rPr />+      <m:t>⇔</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>{</m:t>+    </m:r>+    <m:m>+      <m:mPr>+        <m:baseJc m:val="center" />+        <m:plcHide m:val="on" />+        <m:mcs>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+        </m:mcs>+      </m:mPr>+      <m:mr>+        <m:e>+          <m:sSub>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>γ</m:t>+              </m:r>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:sub>+          </m:sSub>+          <m:r>+            <m:rPr />+            <m:t>(</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>0</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>)</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:sSub>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>γ</m:t>+              </m:r>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:sub>+          </m:sSub>+          <m:r>+            <m:rPr />+            <m:t>(</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>0</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>)</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>p</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>,</m:t>+          </m:r>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>and </m:t>+          </m:r>+        </m:e>+      </m:mr>+      <m:mr>+        <m:e>+          <m:sSub>+            <m:e>+              <m:d>+                <m:dPr>+                  <m:begChr m:val="&#65279;" />+                  <m:endChr m:val="∣" />+                  <m:grow />+                </m:dPr>+                <m:e>+                  <m:f>+                    <m:fPr>+                      <m:type m:val="bar" />+                    </m:fPr>+                    <m:num>+                      <m:r>+                        <m:rPr>+                          <m:sty m:val="p" />+                        </m:rPr>+                        <m:t>d</m:t>+                      </m:r>+                    </m:num>+                    <m:den>+                      <m:r>+                        <m:rPr>+                          <m:sty m:val="p" />+                        </m:rPr>+                        <m:t>d</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>t</m:t>+                      </m:r>+                    </m:den>+                  </m:f>+                  <m:r>+                    <m:rPr />+                    <m:t>φ</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>∘</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>γ</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                  <m:r>+                    <m:rPr />+                    <m:t>(</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>t</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>)</m:t>+                  </m:r>+                </m:e>+              </m:d>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>t</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>=</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+          </m:sSub>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:sSub>+            <m:e>+              <m:d>+                <m:dPr>+                  <m:begChr m:val="&#65279;" />+                  <m:endChr m:val="∣" />+                  <m:grow />+                </m:dPr>+                <m:e>+                  <m:f>+                    <m:fPr>+                      <m:type m:val="bar" />+                    </m:fPr>+                    <m:num>+                      <m:r>+                        <m:rPr>+                          <m:sty m:val="p" />+                        </m:rPr>+                        <m:t>d</m:t>+                      </m:r>+                    </m:num>+                    <m:den>+                      <m:r>+                        <m:rPr>+                          <m:sty m:val="p" />+                        </m:rPr>+                        <m:t>d</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>t</m:t>+                      </m:r>+                    </m:den>+                  </m:f>+                  <m:r>+                    <m:rPr />+                    <m:t>φ</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>∘</m:t>+                  </m:r>+                  <m:sSub>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>γ</m:t>+                      </m:r>+                    </m:e>+                    <m:sub>+                      <m:r>+                        <m:rPr />+                        <m:t>2</m:t>+                      </m:r>+                    </m:sub>+                  </m:sSub>+                  <m:r>+                    <m:rPr />+                    <m:t>(</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>t</m:t>+                  </m:r>+                  <m:r>+                    <m:rPr />+                    <m:t>)</m:t>+                  </m:r>+                </m:e>+              </m:d>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>t</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>=</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+          </m:sSub>+        </m:e>+      </m:mr>+    </m:m>+    <m:r>+      <m:rPr />+      <m:t>&#65279;</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/differentiable_manifold.xhtml view
@@ -7,21 +7,21 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msub>-          <mi>&#947;</mi>+          <mi>γ</mi>           <mn>1</mn>         </msub>-        <mo>&#8801;</mo>+        <mo>≡</mo>         <msub>-          <mi>&#947;</mi>+          <mi>γ</mi>           <mn>2</mn>         </msub>-        <mo>&#8660;</mo>+        <mo>⇔</mo>         <mo stretchy="true">{</mo>         <mtable>           <mtr>             <mtd columnalign="left">               <msub>-                <mi>&#947;</mi>+                <mi>γ</mi>                 <mn>1</mn>               </msub>               <mo stretchy="false">(</mo>@@ -29,7 +29,7 @@               <mo stretchy="false">)</mo>               <mo>=</mo>               <msub>-                <mi>&#947;</mi>+                <mi>γ</mi>                 <mn>2</mn>               </msub>               <mo stretchy="false">(</mo>@@ -56,16 +56,16 @@                       <mi>t</mi>                     </mrow>                   </mfrac>-                  <mi>&#966;</mi>-                  <mo>&#8728;</mo>+                  <mi>φ</mi>+                  <mo>∘</mo>                   <msub>-                    <mi>&#947;</mi>+                    <mi>γ</mi>                     <mn>1</mn>                   </msub>                   <mo stretchy="false">(</mo>                   <mi>t</mi>                   <mo stretchy="false">)</mo>-                  <mo stretchy="true">&#8739;</mo>+                  <mo stretchy="true">∣</mo>                 </mrow>                 <mrow>                   <mi>t</mi>@@ -84,16 +84,16 @@                       <mi>t</mi>                     </mrow>                   </mfrac>-                  <mi>&#966;</mi>-                  <mo>&#8728;</mo>+                  <mi>φ</mi>+                  <mo>∘</mo>                   <msub>-                    <mi>&#947;</mi>+                    <mi>γ</mi>                     <mn>2</mn>                   </msub>                   <mo stretchy="false">(</mo>                   <mi>t</mi>                   <mo stretchy="false">)</mo>-                  <mo stretchy="true">&#8739;</mo>+                  <mo stretchy="true">∣</mo>                 </mrow>                 <mrow>                   <mi>t</mi>
+ tests/divergence.omml view
@@ -0,0 +1,141 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>∇</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>⋅</m:t>+    </m:r>+    <m:acc>+      <m:accPr>+        <m:chr m:val="⃗" />+      </m:accPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>v</m:t>+        </m:r>+      </m:e>+    </m:acc>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>v</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>x</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>x</m:t>+        </m:r>+      </m:den>+    </m:f>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>v</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>y</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>y</m:t>+        </m:r>+      </m:den>+    </m:f>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:sSub>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>v</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:rPr />+              <m:t>z</m:t>+            </m:r>+          </m:sub>+        </m:sSub>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>∂</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>z</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/divergence.xhtml view
@@ -6,51 +6,51 @@   <body>     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>-        <mo>&#8711;</mo>-        <mo>&#8901;</mo>+        <mo>∇</mo>+        <mo>⋅</mo>         <mover>           <mi>v</mi>-          <mo accent="true">&#8407;</mo>+          <mo accent="true">⃗</mo>         </mover>         <mo>=</mo>         <mfrac>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <msub>               <mi>v</mi>               <mi>x</mi>             </msub>           </mrow>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <mi>x</mi>           </mrow>         </mfrac>         <mo>+</mo>         <mfrac>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <msub>               <mi>v</mi>               <mi>y</mi>             </msub>           </mrow>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <mi>y</mi>           </mrow>         </mfrac>         <mo>+</mo>         <mfrac>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <msub>               <mi>v</mi>               <mi>z</mi>             </msub>           </mrow>           <mrow>-            <mo>&#8706;</mo>+            <mo>∂</mo>             <mi>z</mi>           </mrow>         </mfrac>
+ tests/ensuremath.omml view
@@ -0,0 +1,19 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:sSup>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>π</m:t>+        </m:r>+      </m:e>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+      </m:sup>+    </m:sSup>+  </m:oMath>+</m:oMathPara>
tests/ensuremath.xhtml view
@@ -7,7 +7,7 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msup>-          <mi>&#960;</mi>+          <mi>π</mi>           <mn>2</mn>         </msup>       </mrow>
+ tests/macros.omml view
@@ -0,0 +1,37 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>2</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>5</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>y</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>3</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>+</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>3</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
+ tests/moore_determinant.omml view
@@ -0,0 +1,334 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>M</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:d>+      <m:dPr>+        <m:begChr m:val="[" />+        <m:endChr m:val="]" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:m>+          <m:mPr>+            <m:baseJc m:val="center" />+            <m:plcHide m:val="on" />+            <m:mcs>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+              <m:mc>+                <m:mcPr>+                  <m:mcJc m:val="left" />+                </m:mcPr>+              </m:mc>+            </m:mcs>+          </m:mPr>+          <m:mr>+            <m:e>+              <m:sSub>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>1</m:t>+                  </m:r>+                </m:sub>+              </m:sSub>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>1</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:r>+                    <m:rPr />+                    <m:t>q</m:t>+                  </m:r>+                </m:sup>+              </m:sSubSup>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋯</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>1</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:sSup>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>q</m:t>+                      </m:r>+                    </m:e>+                    <m:sup>+                      <m:r>+                        <m:rPr />+                        <m:t>n</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>−</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sup>+                  </m:sSup>+                </m:sup>+              </m:sSubSup>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:sSub>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>2</m:t>+                  </m:r>+                </m:sub>+              </m:sSub>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>2</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:r>+                    <m:rPr />+                    <m:t>q</m:t>+                  </m:r>+                </m:sup>+              </m:sSubSup>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋯</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>2</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:sSup>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>q</m:t>+                      </m:r>+                    </m:e>+                    <m:sup>+                      <m:r>+                        <m:rPr />+                        <m:t>n</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>−</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sup>+                  </m:sSup>+                </m:sup>+              </m:sSubSup>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋮</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋮</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋱</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋮</m:t>+              </m:r>+            </m:e>+          </m:mr>+          <m:mr>+            <m:e>+              <m:sSub>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>m</m:t>+                  </m:r>+                </m:sub>+              </m:sSub>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>m</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:r>+                    <m:rPr />+                    <m:t>q</m:t>+                  </m:r>+                </m:sup>+              </m:sSubSup>+            </m:e>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>⋯</m:t>+              </m:r>+            </m:e>+            <m:e>+              <m:sSubSup>+                <m:e>+                  <m:r>+                    <m:rPr />+                    <m:t>α</m:t>+                  </m:r>+                </m:e>+                <m:sub>+                  <m:r>+                    <m:rPr />+                    <m:t>m</m:t>+                  </m:r>+                </m:sub>+                <m:sup>+                  <m:sSup>+                    <m:e>+                      <m:r>+                        <m:rPr />+                        <m:t>q</m:t>+                      </m:r>+                    </m:e>+                    <m:sup>+                      <m:r>+                        <m:rPr />+                        <m:t>n</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>−</m:t>+                      </m:r>+                      <m:r>+                        <m:rPr />+                        <m:t>1</m:t>+                      </m:r>+                    </m:sup>+                  </m:sSup>+                </m:sup>+              </m:sSubSup>+            </m:e>+          </m:mr>+        </m:m>+      </m:e>+    </m:d>+  </m:oMath>+</m:oMathPara>
tests/moore_determinant.xhtml view
@@ -14,29 +14,29 @@             <mtr>               <mtd>                 <msub>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>1</mn>                 </msub>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>1</mn>                   <mi>q</mi>                 </msubsup>               </mtd>               <mtd>-                <mo>&#8943;</mo>+                <mo>⋯</mo>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>1</mn>                   <msup>                     <mi>q</mi>                     <mrow>                       <mi>n</mi>-                      <mo>&#8722;</mo>+                      <mo>−</mo>                       <mn>1</mn>                     </mrow>                   </msup>@@ -46,29 +46,29 @@             <mtr>               <mtd>                 <msub>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>2</mn>                 </msub>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>2</mn>                   <mi>q</mi>                 </msubsup>               </mtd>               <mtd>-                <mo>&#8943;</mo>+                <mo>⋯</mo>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mn>2</mn>                   <msup>                     <mi>q</mi>                     <mrow>                       <mi>n</mi>-                      <mo>&#8722;</mo>+                      <mo>−</mo>                       <mn>1</mn>                     </mrow>                   </msup>@@ -77,44 +77,44 @@             </mtr>             <mtr>               <mtd>-                <mo>&#8942;</mo>+                <mo>⋮</mo>               </mtd>               <mtd>-                <mo>&#8942;</mo>+                <mo>⋮</mo>               </mtd>               <mtd>-                <mo>&#8945;</mo>+                <mo>⋱</mo>               </mtd>               <mtd>-                <mo>&#8942;</mo>+                <mo>⋮</mo>               </mtd>             </mtr>             <mtr>               <mtd>                 <msub>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mi>m</mi>                 </msub>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mi>m</mi>                   <mi>q</mi>                 </msubsup>               </mtd>               <mtd>-                <mo>&#8943;</mo>+                <mo>⋯</mo>               </mtd>               <mtd>                 <msubsup>-                  <mi>&#945;</mi>+                  <mi>α</mi>                   <mi>m</mi>                   <msup>                     <mi>q</mi>                     <mrow>                       <mi>n</mi>-                      <mo>&#8722;</mo>+                      <mo>−</mo>                       <mn>1</mn>                     </mrow>                   </msup>
+ tests/quadratic_formula.omml view
@@ -0,0 +1,80 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:f>+      <m:fPr>+        <m:type m:val="bar" />+      </m:fPr>+      <m:num>+        <m:r>+          <m:rPr />+          <m:t>−</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>b</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>±</m:t>+        </m:r>+        <m:rad>+          <m:radPr>+            <m:degHide m:val="on" />+          </m:radPr>+          <m:deg />+          <m:e>+            <m:sSup>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>b</m:t>+                </m:r>+              </m:e>+              <m:sup>+                <m:r>+                  <m:rPr />+                  <m:t>2</m:t>+                </m:r>+              </m:sup>+            </m:sSup>+            <m:r>+              <m:rPr />+              <m:t>−</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>4</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>a</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>c</m:t>+            </m:r>+          </m:e>+        </m:rad>+      </m:num>+      <m:den>+        <m:r>+          <m:rPr />+          <m:t>2</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>a</m:t>+        </m:r>+      </m:den>+    </m:f>+  </m:oMath>+</m:oMathPara>
tests/quadratic_formula.xhtml view
@@ -10,16 +10,16 @@         <mo>=</mo>         <mfrac>           <mrow>-            <mo>&#8722;</mo>+            <mo>−</mo>             <mi>b</mi>-            <mo>&#177;</mo>+            <mo>±</mo>             <msqrt>               <mrow>                 <msup>                   <mi>b</mi>                   <mn>2</mn>                 </msup>-                <mo>&#8722;</mo>+                <mo>−</mo>                 <mn>4</mn>                 <mi>a</mi>                 <mi>c</mi>
tests/runtests.sh view
@@ -5,23 +5,37 @@ # Otherwise the test program 'texmath' won't be built. # Exit status is number of failed tests. TESTPROG=../dist/build/texmath/texmath-failures=0-passes=0-if [ -f $TESTPROG ]; then-    for t in *.tex; do-        $TESTPROG <$t >tmp-        diff ${t%.tex}.xhtml tmp >tmpdiff-        if [ "$?" -ne "0" ]; then-            echo "Test ${t%.tex} FAILED (< expected, > actual):"-            cat tmpdiff+totalfailures=0++for format in xhtml omml; do+  failures=0+  passes=0+  if [ -f $TESTPROG ]; then+      for t in *.tex; do+          $TESTPROG --${format} <$t >tmp+          testname="Test ${t%.tex} ${format}"+          if [ "$?" -ne "0" ]; then+            echo "${testname} FAILED"             failures=`expr $failures + 1`-        else-            echo "Test ${t%.tex} PASSED"-            passes=`expr $passes + 1`-        fi-    done-else-    echo "Test executable not built. NOT running tests."-fi-echo "$passes tests passed, $failures tests failed."+          else+            diff -u ${t%.tex}.${format} tmp >tmpdiff+            if [ "$?" -ne "0" ]; then+                echo "${testname} (- expected, + actual):"+                cat tmpdiff+                failures=`expr $failures + 1`+            else+                echo "${testname} PASSED"+                passes=`expr $passes + 1`+            fi+          fi+      done+  else+      echo "Test executable not built. NOT running tests."+  fi+  echo "$format: $passes tests passed, $failures tests failed."+  totalfailures=`expr $totalfailures + $failures`+done+echo "$totalfailures tests failed total." exit $failures++
+ tests/schwinger_dyson.omml view
@@ -0,0 +1,187 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:d>+      <m:dPr>+        <m:begChr m:val="⟨" />+        <m:endChr m:val="⟩" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>ψ</m:t>+        </m:r>+        <m:d>+          <m:dPr>+            <m:begChr m:val="∣" />+            <m:endChr m:val="∣" />+            <m:grow />+          </m:dPr>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>𝒯</m:t>+            </m:r>+            <m:d>+              <m:dPr>+                <m:begChr m:val="{" />+                <m:endChr m:val="}" />+                <m:grow />+              </m:dPr>+              <m:e>+                <m:f>+                  <m:fPr>+                    <m:type m:val="bar" />+                  </m:fPr>+                  <m:num>+                    <m:r>+                      <m:rPr />+                      <m:t>δ</m:t>+                    </m:r>+                  </m:num>+                  <m:den>+                    <m:r>+                      <m:rPr />+                      <m:t>δ</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr />+                      <m:t>φ</m:t>+                    </m:r>+                  </m:den>+                </m:f>+                <m:r>+                  <m:rPr />+                  <m:t>F</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>[</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>φ</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>]</m:t>+                </m:r>+              </m:e>+            </m:d>+          </m:e>+        </m:d>+        <m:r>+          <m:rPr />+          <m:t>ψ</m:t>+        </m:r>+      </m:e>+    </m:d>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>−</m:t>+    </m:r>+    <m:r>+      <m:rPr>+        <m:sty m:val="p" />+      </m:rPr>+      <m:t>i</m:t>+    </m:r>+    <m:d>+      <m:dPr>+        <m:begChr m:val="⟨" />+        <m:endChr m:val="⟩" />+        <m:grow />+      </m:dPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>ψ</m:t>+        </m:r>+        <m:d>+          <m:dPr>+            <m:begChr m:val="∣" />+            <m:endChr m:val="∣" />+            <m:grow />+          </m:dPr>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>𝒯</m:t>+            </m:r>+            <m:d>+              <m:dPr>+                <m:begChr m:val="{" />+                <m:endChr m:val="}" />+                <m:grow />+              </m:dPr>+              <m:e>+                <m:r>+                  <m:rPr />+                  <m:t>F</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>[</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>φ</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>]</m:t>+                </m:r>+                <m:f>+                  <m:fPr>+                    <m:type m:val="bar" />+                  </m:fPr>+                  <m:num>+                    <m:r>+                      <m:rPr />+                      <m:t>δ</m:t>+                    </m:r>+                  </m:num>+                  <m:den>+                    <m:r>+                      <m:rPr />+                      <m:t>δ</m:t>+                    </m:r>+                    <m:r>+                      <m:rPr />+                      <m:t>φ</m:t>+                    </m:r>+                  </m:den>+                </m:f>+                <m:r>+                  <m:rPr />+                  <m:t>S</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>[</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>φ</m:t>+                </m:r>+                <m:r>+                  <m:rPr />+                  <m:t>]</m:t>+                </m:r>+              </m:e>+            </m:d>+          </m:e>+        </m:d>+        <m:r>+          <m:rPr />+          <m:t>ψ</m:t>+        </m:r>+      </m:e>+    </m:d>+  </m:oMath>+</m:oMathPara>
tests/schwinger_dyson.xhtml view
@@ -7,63 +7,63 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <mrow>-          <mo stretchy="true">&#10216;</mo>-          <mi>&#968;</mi>+          <mo stretchy="true">⟨</mo>+          <mi>ψ</mi>           <mrow>-            <mo stretchy="true">&#8739;</mo>-            <mo>&#119983;</mo>+            <mo stretchy="true">∣</mo>+            <mo>𝒯</mo>             <mrow>               <mo stretchy="true">{</mo>               <mfrac>-                <mi>&#948;</mi>+                <mi>δ</mi>                 <mrow>-                  <mi>&#948;</mi>-                  <mi>&#966;</mi>+                  <mi>δ</mi>+                  <mi>φ</mi>                 </mrow>               </mfrac>               <mi>F</mi>               <mo stretchy="false">[</mo>-              <mi>&#966;</mi>+              <mi>φ</mi>               <mo stretchy="false">]</mo>               <mo stretchy="true">}</mo>             </mrow>-            <mo stretchy="true">&#8739;</mo>+            <mo stretchy="true">∣</mo>           </mrow>-          <mi>&#968;</mi>-          <mo stretchy="true">&#10217;</mo>+          <mi>ψ</mi>+          <mo stretchy="true">⟩</mo>         </mrow>         <mo>=</mo>-        <mo>&#8722;</mo>+        <mo>−</mo>         <mtext mathvariant="normal">i</mtext>         <mrow>-          <mo stretchy="true">&#10216;</mo>-          <mi>&#968;</mi>+          <mo stretchy="true">⟨</mo>+          <mi>ψ</mi>           <mrow>-            <mo stretchy="true">&#8739;</mo>-            <mo>&#119983;</mo>+            <mo stretchy="true">∣</mo>+            <mo>𝒯</mo>             <mrow>               <mo stretchy="true">{</mo>               <mi>F</mi>               <mo stretchy="false">[</mo>-              <mi>&#966;</mi>+              <mi>φ</mi>               <mo stretchy="false">]</mo>               <mfrac>-                <mi>&#948;</mi>+                <mi>δ</mi>                 <mrow>-                  <mi>&#948;</mi>-                  <mi>&#966;</mi>+                  <mi>δ</mi>+                  <mi>φ</mi>                 </mrow>               </mfrac>               <mi>S</mi>               <mo stretchy="false">[</mo>-              <mi>&#966;</mi>+              <mi>φ</mi>               <mo stretchy="false">]</mo>               <mo stretchy="true">}</mo>             </mrow>-            <mo stretchy="true">&#8739;</mo>+            <mo stretchy="true">∣</mo>           </mrow>-          <mi>&#968;</mi>-          <mo stretchy="true">&#10217;</mo>+          <mi>ψ</mi>+          <mo stretchy="true">⟩</mo>         </mrow>       </mrow>     </math>
+ tests/sophomores_dream.omml view
@@ -0,0 +1,147 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∫" />+        <m:limLoc m:val="subSup" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>x</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>x</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>0</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sup>+    </m:nary>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr>+        <m:sty m:val="p" />+      </m:rPr>+      <m:t>d</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>x</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:nary>+      <m:naryPr>+        <m:chr m:val="∑" />+        <m:limLoc m:val="undOvr" />+        <m:grow />+        <m:supHide m:val="off" />+        <m:supHide m:val="off" />+      </m:naryPr>+      <m:e>+        <m:r>+          <m:rPr />+          <m:t>(</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>−</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>)</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>+</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>1</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:r>+          <m:rPr />+          <m:t> </m:t>+        </m:r>+        <m:sSup>+          <m:e>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:rPr />+              <m:t>−</m:t>+            </m:r>+            <m:r>+              <m:rPr />+              <m:t>n</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:e>+      <m:sub>+        <m:r>+          <m:rPr />+          <m:t>n</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:rPr />+          <m:t>1</m:t>+        </m:r>+      </m:sub>+      <m:sup>+        <m:r>+          <m:rPr />+          <m:t>∞</m:t>+        </m:r>+      </m:sup>+    </m:nary>+  </m:oMath>+</m:oMathPara>
tests/sophomores_dream.xhtml view
@@ -7,7 +7,7 @@     <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">       <mrow>         <msubsup>-          <mo>&#8747;</mo>+          <mo>∫</mo>           <mn>0</mn>           <mn>1</mn>         </msubsup>@@ -20,17 +20,17 @@         <mi>x</mi>         <mo>=</mo>         <munderover>-          <mo>&#8721;</mo>+          <mo>∑</mo>           <mrow>             <mi>n</mi>             <mo>=</mo>             <mn>1</mn>           </mrow>-          <mo>&#8734;</mo>+          <mo>∞</mo>         </munderover>         <mrow>           <mo stretchy="false">(</mo>-          <mo>&#8722;</mo>+          <mo>−</mo>           <mn>1</mn>           <msup>             <mo stretchy="false">)</mo>@@ -44,7 +44,7 @@           <msup>             <mi>n</mi>             <mrow>-              <mo>&#8722;</mo>+              <mo>−</mo>               <mi>n</mi>             </mrow>           </msup>
+ tests/sphere_volume.omml view
@@ -0,0 +1,614 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>S</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>=</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>{</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>0</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>φ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>2</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>π</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>0</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>θ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>π</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>,</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t> </m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>0</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>ρ</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>≤</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>R</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>}</m:t>+    </m:r>+    <m:m>+      <m:mPr>+        <m:baseJc m:val="center" />+        <m:plcHide m:val="on" />+        <m:mcs>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="right" />+            </m:mcPr>+          </m:mc>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+          <m:mc>+            <m:mcPr>+              <m:mcJc m:val="left" />+            </m:mcPr>+          </m:mc>+        </m:mcs>+      </m:mPr>+      <m:mr>+        <m:e>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>Volume</m:t>+          </m:r>+        </m:e>+        <m:e>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:nary>+            <m:naryPr>+              <m:chr m:val="∭" />+              <m:limLoc m:val="undOvr" />+              <m:grow />+              <m:supHide m:val="on" />+              <m:supHide m:val="on" />+            </m:naryPr>+            <m:e />+            <m:sub />+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>S</m:t>+              </m:r>+            </m:sup>+          </m:nary>+          <m:sSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>ρ</m:t>+              </m:r>+            </m:e>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:sup>+          </m:sSup>+          <m:r>+            <m:rPr />+            <m:t>sin</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>θ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>ρ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>θ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>φ</m:t>+          </m:r>+        </m:e>+      </m:mr>+      <m:mr>+        <m:e />+        <m:e>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:nary>+            <m:naryPr>+              <m:chr m:val="∫" />+              <m:limLoc m:val="subSup" />+              <m:grow />+              <m:supHide m:val="off" />+              <m:supHide m:val="off" />+            </m:naryPr>+            <m:e />+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>π</m:t>+              </m:r>+            </m:sup>+          </m:nary>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>φ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:nary>+            <m:naryPr>+              <m:chr m:val="∫" />+              <m:limLoc m:val="subSup" />+              <m:grow />+              <m:supHide m:val="off" />+              <m:supHide m:val="off" />+            </m:naryPr>+            <m:e />+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>π</m:t>+              </m:r>+            </m:sup>+          </m:nary>+          <m:r>+            <m:rPr />+            <m:t>sin</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>θ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>θ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:nary>+            <m:naryPr>+              <m:chr m:val="∫" />+              <m:limLoc m:val="subSup" />+              <m:grow />+              <m:supHide m:val="off" />+              <m:supHide m:val="off" />+            </m:naryPr>+            <m:e />+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>R</m:t>+              </m:r>+            </m:sup>+          </m:nary>+          <m:sSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>ρ</m:t>+              </m:r>+            </m:e>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+            </m:sup>+          </m:sSup>+          <m:r>+            <m:rPr>+              <m:sty m:val="p" />+            </m:rPr>+            <m:t>d</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>ρ</m:t>+          </m:r>+        </m:e>+      </m:mr>+      <m:mr>+        <m:e />+        <m:e>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>φ</m:t>+          </m:r>+          <m:sSubSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>∣</m:t>+              </m:r>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>2</m:t>+              </m:r>+              <m:r>+                <m:rPr />+                <m:t>π</m:t>+              </m:r>+            </m:sup>+          </m:sSubSup>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>(</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>−</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>cos</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>θ</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>)</m:t>+          </m:r>+          <m:sSubSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>∣</m:t>+              </m:r>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>π</m:t>+              </m:r>+            </m:sup>+          </m:sSubSup>+          <m:r>+            <m:rPr />+            <m:t> </m:t>+          </m:r>+          <m:f>+            <m:fPr>+              <m:type m:val="lin" />+            </m:fPr>+            <m:num>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:num>+            <m:den>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:den>+          </m:f>+          <m:sSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>ρ</m:t>+              </m:r>+            </m:e>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:sup>+          </m:sSup>+          <m:sSubSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>∣</m:t>+              </m:r>+            </m:e>+            <m:sub>+              <m:r>+                <m:rPr />+                <m:t>0</m:t>+              </m:r>+            </m:sub>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>R</m:t>+              </m:r>+            </m:sup>+          </m:sSubSup>+        </m:e>+      </m:mr>+      <m:mr>+        <m:e />+        <m:e>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>2</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>π</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>×</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>2</m:t>+          </m:r>+          <m:r>+            <m:rPr />+            <m:t>×</m:t>+          </m:r>+          <m:f>+            <m:fPr>+              <m:type m:val="lin" />+            </m:fPr>+            <m:num>+              <m:r>+                <m:rPr />+                <m:t>1</m:t>+              </m:r>+            </m:num>+            <m:den>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:den>+          </m:f>+          <m:sSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>R</m:t>+              </m:r>+            </m:e>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:sup>+          </m:sSup>+        </m:e>+      </m:mr>+      <m:mr>+        <m:e />+        <m:e>+          <m:r>+            <m:rPr />+            <m:t>=</m:t>+          </m:r>+          <m:f>+            <m:fPr>+              <m:type m:val="lin" />+            </m:fPr>+            <m:num>+              <m:r>+                <m:rPr />+                <m:t>4</m:t>+              </m:r>+            </m:num>+            <m:den>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:den>+          </m:f>+          <m:r>+            <m:rPr />+            <m:t>π</m:t>+          </m:r>+          <m:sSup>+            <m:e>+              <m:r>+                <m:rPr />+                <m:t>R</m:t>+              </m:r>+            </m:e>+            <m:sup>+              <m:r>+                <m:rPr />+                <m:t>3</m:t>+              </m:r>+            </m:sup>+          </m:sSup>+        </m:e>+      </m:mr>+    </m:m>+  </m:oMath>+</m:oMathPara>
tests/sphere_volume.xhtml view
@@ -10,24 +10,24 @@         <mo>=</mo>         <mo stretchy="false">{</mo>         <mn>0</mn>-        <mo>&#8804;</mo>-        <mi>&#966;</mi>-        <mo>&#8804;</mo>+        <mo>≤</mo>+        <mi>φ</mi>+        <mo>≤</mo>         <mn>2</mn>-        <mi>&#960;</mi>+        <mi>π</mi>         <mo>,</mo>         <mo> </mo>         <mn>0</mn>-        <mo>&#8804;</mo>-        <mi>&#952;</mi>-        <mo>&#8804;</mo>-        <mi>&#960;</mi>+        <mo>≤</mo>+        <mi>θ</mi>+        <mo>≤</mo>+        <mi>π</mi>         <mo>,</mo>         <mo> </mo>         <mn>0</mn>-        <mo>&#8804;</mo>-        <mi>&#961;</mi>-        <mo>&#8804;</mo>+        <mo>≤</mo>+        <mi>ρ</mi>+        <mo>≤</mo>         <mi>R</mi>         <mo stretchy="false">}</mo>         <mtable>@@ -38,25 +38,25 @@             <mtd columnalign="left">               <mo>=</mo>               <munder>-                <mo>&#8749;</mo>+                <mo>∭</mo>                 <mi>S</mi>               </munder>               <mspace width="-0.167em" />               <msup>-                <mi>&#961;</mi>+                <mi>ρ</mi>                 <mn>2</mn>               </msup>               <mi>sin</mi>-              <mi>&#952;</mi>+              <mi>θ</mi>               <mspace width="0.167em" />               <mtext mathvariant="normal">d</mtext>-              <mi>&#961;</mi>+              <mi>ρ</mi>               <mspace width="0.167em" />               <mtext mathvariant="normal">d</mtext>-              <mi>&#952;</mi>+              <mi>θ</mi>               <mspace width="0.167em" />               <mtext mathvariant="normal">d</mtext>-              <mi>&#966;</mi>+              <mi>φ</mi>             </mtd>           </mtr>           <mtr>@@ -64,66 +64,66 @@             <mtd columnalign="left">               <mo>=</mo>               <msubsup>-                <mo>&#8747;</mo>+                <mo>∫</mo>                 <mn>0</mn>                 <mrow>                   <mn>2</mn>-                  <mi>&#960;</mi>+                  <mi>π</mi>                 </mrow>               </msubsup>               <mspace width="-0.167em" />               <mtext mathvariant="normal">d</mtext>-              <mi>&#966;</mi>+              <mi>φ</mi>               <mspace width="0.167em" />               <msubsup>-                <mo>&#8747;</mo>+                <mo>∫</mo>                 <mn>0</mn>-                <mi>&#960;</mi>+                <mi>π</mi>               </msubsup>               <mspace width="-0.167em" />               <mi>sin</mi>-              <mi>&#952;</mi>+              <mi>θ</mi>               <mspace width="0.167em" />               <mtext mathvariant="normal">d</mtext>-              <mi>&#952;</mi>+              <mi>θ</mi>               <mspace width="0.167em" />               <msubsup>-                <mo>&#8747;</mo>+                <mo>∫</mo>                 <mn>0</mn>                 <mi>R</mi>               </msubsup>               <mspace width="-0.167em" />               <msup>-                <mi>&#961;</mi>+                <mi>ρ</mi>                 <mn>2</mn>               </msup>               <mtext mathvariant="normal">d</mtext>-              <mi>&#961;</mi>+              <mi>ρ</mi>             </mtd>           </mtr>           <mtr>             <mtd columnalign="right" />             <mtd columnalign="left">               <mo>=</mo>-              <mi>&#966;</mi>+              <mi>φ</mi>               <msubsup>-                <mo minsize="1.6" maxsize="1.6" stretchy="true">&#8739;</mo>+                <mo minsize="1.6" maxsize="1.6" stretchy="true">∣</mo>                 <mn>0</mn>                 <mrow>                   <mn>2</mn>-                  <mi>&#960;</mi>+                  <mi>π</mi>                 </mrow>               </msubsup>               <mo> </mo>               <mo stretchy="false">(</mo>-              <mo>&#8722;</mo>+              <mo>−</mo>               <mi>cos</mi>-              <mi>&#952;</mi>+              <mi>θ</mi>               <mo stretchy="false">)</mo>               <msubsup>-                <mo minsize="1.6" maxsize="1.6" stretchy="true">&#8739;</mo>+                <mo minsize="1.6" maxsize="1.6" stretchy="true">∣</mo>                 <mn>0</mn>-                <mi>&#960;</mi>+                <mi>π</mi>               </msubsup>               <mo> </mo>               <mstyle displaystyle="false">@@ -133,11 +133,11 @@                 </mfrac>               </mstyle>               <msup>-                <mi>&#961;</mi>+                <mi>ρ</mi>                 <mn>3</mn>               </msup>               <msubsup>-                <mo minsize="1.6" maxsize="1.6" stretchy="true">&#8739;</mo>+                <mo minsize="1.6" maxsize="1.6" stretchy="true">∣</mo>                 <mn>0</mn>                 <mi>R</mi>               </msubsup>@@ -148,10 +148,10 @@             <mtd columnalign="left">               <mo>=</mo>               <mn>2</mn>-              <mi>&#960;</mi>-              <mo>&#215;</mo>+              <mi>π</mi>+              <mo>×</mo>               <mn>2</mn>-              <mo>&#215;</mo>+              <mo>×</mo>               <mstyle displaystyle="false">                 <mfrac>                   <mn>1</mn>@@ -174,7 +174,7 @@                   <mn>3</mn>                 </mfrac>               </mstyle>-              <mi>&#960;</mi>+              <mi>π</mi>               <msup>                 <mi>R</mi>                 <mn>3</mn>
+ tests/unicode.omml view
@@ -0,0 +1,25 @@+<?xml version='1.0' ?>+<m:oMathPara>+  <m:oMath>+    <m:r>+      <m:rPr />+      <m:t>f</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>:</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>X</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>→</m:t>+    </m:r>+    <m:r>+      <m:rPr />+      <m:t>Y</m:t>+    </m:r>+  </m:oMath>+</m:oMathPara>
tests/unicode.xhtml view
@@ -9,7 +9,7 @@         <mi>f</mi>         <mo>:</mo>         <mi>X</mi>-        <mo>&#8594;</mo>+        <mo>→</mo>         <mi>Y</mi>       </mrow>     </math>
texmath.cabal view
@@ -1,12 +1,13 @@ Name:                texmath-Version:             0.5.0.4+Version:             0.6 Cabal-Version:       >= 1.6 Build-type:          Custom-Synopsis:            Conversion of LaTeX math formulas to MathML.+Synopsis:            Conversion of LaTeX math formulas to MathML or OMML. Description:         The texmathml library provides functions to convert LaTeX-                     math formulas to presentation MathML. It supports-                     basic LaTeX and AMS extensions, and it can parse and-                     apply LaTeX macros.+                     math formulas to presentation MathML (which can be used+                     in HTML) or OMML (Office Math Markup Language, used in+                     Microsoft Office). It supports basic LaTeX and AMS+                     extensions, and it can parse and apply LaTeX macros.                      .                      Use the @test@ flag to install a standalone executable,                      @texmath@, that reads a LaTeX formula from @stdin@ and@@ -24,39 +25,39 @@ Homepage:            http://github.com/jgm/texmath Data-Files:          cgi/texmath.xhtml,                      tests/runtests.sh,-                     tests/01.tex, tests/01.xhtml,-                     tests/02.tex, tests/02.xhtml,-                     tests/03.tex, tests/03.xhtml,-                     tests/04.tex, tests/04.xhtml,-                     tests/05.tex, tests/05.xhtml,-                     tests/06.tex, tests/06.xhtml,-                     tests/07.tex, tests/07.xhtml,-                     tests/08.tex, tests/08.xhtml,-                     tests/09.tex, tests/09.xhtml,-                     tests/10.tex, tests/10.xhtml,-                     tests/11.tex, tests/11.xhtml,-                     tests/12.tex, tests/12.xhtml,-                     tests/13.tex, tests/13.xhtml,-                     tests/14.tex, tests/14.xhtml,-                     tests/15.tex, tests/15.xhtml,-                     tests/16.tex, tests/16.xhtml,-                     tests/17.tex, tests/17.xhtml,-                     tests/18.tex, tests/18.xhtml,-                     tests/19.tex, tests/19.xhtml,-                     tests/axiom_of_power_set.tex, tests/axiom_of_power_set.xhtml,-                     tests/binomial_coefficient.tex, tests/binomial_coefficient.xhtml,-                     tests/complex_number.tex, tests/complex_number.xhtml,-                     tests/deMorgans_law.tex, tests/deMorgans_law.xhtml,-                     tests/differentiable_manifold.tex, tests/differentiable_manifold.xhtml,-                     tests/divergence.tex, tests/divergence.xhtml,-                     tests/moore_determinant.tex, tests/moore_determinant.xhtml,-                     tests/quadratic_formula.tex, tests/quadratic_formula.xhtml,-                     tests/schwinger_dyson.tex, tests/schwinger_dyson.xhtml,-                     tests/sophomores_dream.tex, tests/sophomores_dream.xhtml,-                     tests/sphere_volume.tex, tests/sphere_volume.xhtml,-                     tests/unicode.tex, tests/unicode.xhtml-                     tests/ensuremath.tex, tests/ensuremath.xhtml-                     tests/macros.tex, tests/macros.xhtml+                     tests/01.tex, tests/01.xhtml, tests/01.omml,+                     tests/02.tex, tests/02.xhtml, tests/02.omml,+                     tests/03.tex, tests/03.xhtml, tests/03.omml,+                     tests/04.tex, tests/04.xhtml, tests/04.omml,+                     tests/05.tex, tests/05.xhtml, tests/05.omml,+                     tests/06.tex, tests/06.xhtml, tests/06.omml,+                     tests/07.tex, tests/07.xhtml, tests/07.omml,+                     tests/08.tex, tests/08.xhtml, tests/08.omml,+                     tests/09.tex, tests/09.xhtml, tests/09.omml,+                     tests/10.tex, tests/10.xhtml, tests/10.omml,+                     tests/11.tex, tests/11.xhtml, tests/11.omml,+                     tests/12.tex, tests/12.xhtml, tests/12.omml,+                     tests/13.tex, tests/13.xhtml, tests/13.omml,+                     tests/14.tex, tests/14.xhtml, tests/14.omml,+                     tests/15.tex, tests/15.xhtml, tests/15.omml,+                     tests/16.tex, tests/16.xhtml, tests/16.omml,+                     tests/17.tex, tests/17.xhtml, tests/17.omml,+                     tests/18.tex, tests/18.xhtml, tests/18.omml,+                     tests/19.tex, tests/19.xhtml, tests/19.omml,+                     tests/axiom_of_power_set.tex, tests/axiom_of_power_set.xhtml, tests/axiom_of_power_set.omml,+                     tests/binomial_coefficient.tex, tests/binomial_coefficient.xhtml, tests/binomial_coefficient.omml,+                     tests/complex_number.tex, tests/complex_number.xhtml, tests/complex_number.omml,+                     tests/deMorgans_law.tex, tests/deMorgans_law.xhtml, tests/deMorgans_law.omml,+                     tests/differentiable_manifold.tex, tests/differentiable_manifold.xhtml, tests/differentiable_manifold.omml,+                     tests/divergence.tex, tests/divergence.xhtml, tests/divergence.omml,+                     tests/moore_determinant.tex, tests/moore_determinant.xhtml, tests/moore_determinant.omml,+                     tests/quadratic_formula.tex, tests/quadratic_formula.xhtml, tests/quadratic_formula.omml,+                     tests/schwinger_dyson.tex, tests/schwinger_dyson.xhtml, tests/schwinger_dyson.omml,+                     tests/sophomores_dream.tex, tests/sophomores_dream.xhtml, tests/sophomores_dream.omml,+                     tests/sphere_volume.tex, tests/sphere_volume.xhtml, tests/sphere_volume.omml,+                     tests/unicode.tex, tests/unicode.xhtml, tests/unicode.omml,+                     tests/ensuremath.tex, tests/ensuremath.xhtml, tests/ensuremath.omml,+                     tests/macros.tex, tests/macros.xhtml, tests/macros.omml  Source-repository head   type:              git@@ -80,6 +81,7 @@                          Text.TeXMath.Types                          Text.TeXMath.Parser                          Text.TeXMath.MathML+                         Text.TeXMath.OMML                          Text.TeXMath.Macros      if impl(ghc >= 6.12)
texmath.hs view
@@ -2,12 +2,15 @@ module Main where  import Text.TeXMath+import Text.TeXMath.Parser (parseFormula) import Text.XML.Light import Text.TeXMath.Macros import System.IO+import System.Environment -inHtml :: Element -> Element-inHtml x =+inHtml :: Either String Element -> Either String Element+inHtml (Left x) = Left x+inHtml (Right x) = Right $   add_attr (Attr (unqual "xmlns") "http://www.w3.org/1999/xhtml") $   unode "html"     [ unode "head" $@@ -26,8 +29,17 @@  main :: IO () main = do+  args <- getArgs+  let dt = if "--inline" `elem` args+              then DisplayInline+              else DisplayBlock+  let converter = if "--omml" `elem` args+                     then fmap ppTopElement . texMathToOMML dt+                     else if "--native" `elem` args+                          then fmap show . parseFormula+                          else fmap ppTopElement . inHtml . texMathToMathML dt   inp <- getUTF8Contents   let (ms, rest) = parseMacroDefinitions inp-  case (texMathToMathML DisplayBlock $! applyMacros ms rest) of+  case (converter $! applyMacros ms rest) of         Left err         -> hPutStrLn stderr err-        Right v          -> putStr . ppTopElement . inHtml $ v+        Right v          -> putStr v