texmath 0.12.6 → 0.12.7
raw patch · 78 files changed
+4206/−47 lines, 78 files
Files
- README.markdown +1/−1
- changelog +6/−0
- extra/texmath.hs +1/−0
- server/Main.hs +41/−39
- server/texmath.html +3/−2
- src/Text/TeXMath.hs +2/−0
- src/Text/TeXMath/Readers/TeX.hs +1/−0
- src/Text/TeXMath/Writers/Eqn.hs +2/−3
- src/Text/TeXMath/Writers/Typst.hs +1004/−0
- test/test-texmath.hs +3/−0
- test/writer/typst/01.test +22/−0
- test/writer/typst/02.test +25/−0
- test/writer/typst/03.test +13/−0
- test/writer/typst/04.test +20/−0
- test/writer/typst/05.test +31/−0
- test/writer/typst/06.test +35/−0
- test/writer/typst/07.test +23/−0
- test/writer/typst/08.test +33/−0
- test/writer/typst/09.test +18/−0
- test/writer/typst/10.test +45/−0
- test/writer/typst/11.test +26/−0
- test/writer/typst/12.test +33/−0
- test/writer/typst/13.test +57/−0
- test/writer/typst/14.test +7/−0
- test/writer/typst/15.test +4/−0
- test/writer/typst/16.test +4/−0
- test/writer/typst/17.test +11/−0
- test/writer/typst/18.test +4/−0
- test/writer/typst/19.test +83/−0
- test/writer/typst/20.test +119/−0
- test/writer/typst/21.test +9/−0
- test/writer/typst/22.test +277/−0
- test/writer/typst/23.test +4/−0
- test/writer/typst/abs1.test +4/−0
- test/writer/typst/axiom_of_power_set.test +36/−0
- test/writer/typst/binomial_coefficient.test +43/−0
- test/writer/typst/boxed.test +12/−0
- test/writer/typst/chain2.test +52/−0
- test/writer/typst/choose.test +21/−0
- test/writer/typst/complex1.test +622/−0
- test/writer/typst/complex2.test +408/−0
- test/writer/typst/complex_number.test +27/−0
- test/writer/typst/coprod2.test +10/−0
- test/writer/typst/cospan.test +11/−0
- test/writer/typst/deMorgans_law.test +39/−0
- test/writer/typst/differentiable_manifold.test +63/−0
- test/writer/typst/divergence.test +25/−0
- test/writer/typst/double-struck.test +15/−0
- test/writer/typst/doubleint1.test +10/−0
- test/writer/typst/genfrac.test +9/−0
- test/writer/typst/largeop1.test +84/−0
- test/writer/typst/largeopPos3.test +11/−0
- test/writer/typst/math-in-text.test +20/−0
- test/writer/typst/moore_determinant.test +54/−0
- test/writer/typst/nestFrac1.test +37/−0
- test/writer/typst/nestScript.test +10/−0
- test/writer/typst/nestedAwidth1.test +33/−0
- test/writer/typst/notin.test +11/−0
- test/writer/typst/oint1.test +10/−0
- test/writer/typst/operatorname.test +71/−0
- test/writer/typst/phantom.test +10/−0
- test/writer/typst/primes1.test +40/−0
- test/writer/typst/primes2.test +30/−0
- test/writer/typst/prod2.test +10/−0
- test/writer/typst/schwinger_dyson.test +57/−0
- test/writer/typst/simple_sum_formula.test +15/−0
- test/writer/typst/sophomores_dream.test +25/−0
- test/writer/typst/span.test +9/−0
- test/writer/typst/sphere_volume.test +133/−0
- test/writer/typst/stackrel.test +7/−0
- test/writer/typst/substack.test +37/−0
- test/writer/typst/subsup.test +68/−0
- test/writer/typst/sum1.test +10/−0
- test/writer/typst/text.test +8/−0
- test/writer/typst/tripleint2.test +10/−0
- test/writer/typst/unicode.test +9/−0
- test/writer/typst/verbar2.test +9/−0
- texmath.cabal +4/−2
README.markdown view
@@ -6,7 +6,7 @@ texmath is a Haskell library for converting between formats used to represent mathematics. Currently it provides functions to read and write TeX math, presentation MathML, and OMML (Office Math Markup-Language, used in Microsoft Office), and to write Gnu eqn and+Language, used in Microsoft Office), and to write Gnu eqn, typst, and [pandoc]'s native format (allowing conversion, using pandoc, to a variety of different markup formats). The TeX reader and writer supports basic LaTeX and AMS extensions, and it can parse
changelog view
@@ -1,3 +1,9 @@+texmath (0.12.7)++ * Add typst writer. New module: Text.TeXMath.Writers.Typst.++ * TeX reader: Support multilined environment. Closes #210.+ texmath (0.12.6) * MathML writer:
extra/texmath.hs view
@@ -58,6 +58,7 @@ ("native", StringWriter (\_ es -> tshow es) ) , ("tex", StringWriter (\_ -> writeTeX)) , ("eqn", StringWriter writeEqn)+ , ("typst", StringWriter writeTypst) , ("omml", XMLWriter writeOMML) , ("xhtml", XMLWriter (\dt e -> inHtml (writeMathML dt e))) , ("mathml", XMLWriter writeMathML)
server/Main.hs view
@@ -22,6 +22,45 @@ import Options.Applicative import Safe (readMay) +-- This is the data to be supplied by the JSON payload+-- of requests.+data Params = Params+ { text :: Text+ , from :: Format+ , to :: Format+ , display :: Bool+ } deriving (Show)++data Format =+ TeX | MathML | Eqn | OMML | Typst+ deriving (Show, Ord, Eq)++instance FromJSON Format where+ parseJSON (String s) =+ case T.toLower s of+ "tex" -> pure TeX+ "mathml" -> pure MathML+ "eqn" -> pure Eqn+ "typst" -> pure Typst+ "omml" -> pure OMML+ _ -> fail $ "Unknown format " <> T.unpack s+ parseJSON _ = fail "Expecting string format"++instance ToJSON Format where+ toJSON x = String $ T.toLower $ T.pack $ show x++instance FromHttpApiData Format where+ parseQueryParam t =+ case T.toLower t of+ "tex" -> pure TeX+ "mathml" -> pure MathML+ "eqn" -> pure Eqn+ "typst" -> pure Typst+ "omml" -> pure OMML+ _ -> Left $ "Unknown format " <> t++-- Automatically derive code to convert to/from JSON.+$(deriveJSON defaultOptions ''Params) data Opts = Opts { port :: Int } @@ -82,8 +121,10 @@ TeX -> readTeX MathML -> readMathML Eqn -> \_ -> Left "eqn reader not implemented"+ Typst -> \_ -> Left "typst reader not implemented" writer = case to params of Eqn -> writeEqn dt+ Typst -> writeTypst dt OMML -> T.pack . ppElement . writeOMML dt TeX -> writeTeX MathML -> T.pack . ppElement . writeMathML dt@@ -92,43 +133,4 @@ handleErr (Right t) = return t handleErr (Left err) = throwError $ err500 { errBody = TLE.encodeUtf8 $ TL.fromStrict err }---- This is the data to be supplied by the JSON payload--- of requests.-data Params = Params- { text :: Text- , from :: Format- , to :: Format- , display :: Bool- } deriving (Show)--data Format =- TeX | MathML | Eqn | OMML- deriving (Show, Ord, Eq)--instance FromJSON Format where- parseJSON (String s) =- case T.toLower s of- "tex" -> pure TeX- "mathml" -> pure MathML- "eqn" -> pure Eqn- "omml" -> pure OMML- _ -> fail $ "Unknown format " <> T.unpack s- parseJSON _ = fail "Expecting string format"--instance ToJSON Format where- toJSON x = String $ T.toLower $ T.pack $ show x--instance FromHttpApiData Format where- parseQueryParam t =- case T.toLower t of- "tex" -> pure TeX- "mathml" -> pure MathML- "eqn" -> pure Eqn- "omml" -> pure OMML- _ -> Left $ "Unknown format " <> t---- Automatically derive code to convert to/from JSON.-$(deriveJSON defaultOptions ''Params)-
server/texmath.html view
@@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">- <meta name="description" content="Convert between LaTeX, MathML, OMML, and eqn math formats.">+ <meta name="description" content="Convert between LaTeX, MathML, OMML, eqn, and typst math formats."> <meta name="robots" content="index,follow"> <title>texmath demo</title> <script src="//code.jquery.com/jquery-3.6.0.min.js"></script>@@ -72,7 +72,7 @@ <h1>texmath demo</h1> <p><a href="https://github.com/jgm/texmath">texmath</a> is a Haskell library, command-line program, and web server that converts between- TeX, MathML, OMML, and eqn formats for mathematical formulas.</p>+ TeX, MathML, OMML, eqn, and typst formats for mathematical formulas.</p> <div id="controls" class="container"> <button id="convert">Convert</button> <label for="from">from</label>@@ -87,6 +87,7 @@ <option value="mathml" selected>mathml</option> <option value="omml">omml</option> <option value="eqn">eqn</option>+ <option value="typst">typst</option> </select> <select name="display" id="display"> <option value="true" selected>display</option>
src/Text/TeXMath.hs view
@@ -62,6 +62,7 @@ writeTeXWith, addLaTeXEnvironment, writeEqn,+ writeTypst, writeOMML, writeMathML, writePandoc,@@ -77,4 +78,5 @@ import Text.TeXMath.Writers.Pandoc import Text.TeXMath.Writers.TeX import Text.TeXMath.Writers.Eqn+import Text.TeXMath.Writers.Typst import Text.TeXMath.Types
src/Text/TeXMath/Readers/TeX.hs view
@@ -477,6 +477,7 @@ , ("Vmatrix", matrixWith "\x2225" "\x2225") , ("split", align) , ("multline", gather)+ , ("multlined", gather) , ("gather", gather) , ("gathered", gather) , ("equation", equation)
src/Text/TeXMath/Writers/Eqn.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving, ViewPatterns, GADTs, OverloadedStrings #-} {--Copyright (C) 2014 Matthew Pickering <matthewtpickering@gmail.com>+Copyright (C) 2016-2023 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@@ -33,8 +33,7 @@ -- import Debug.Trace -- tr' x = trace (show x) x --- | Transforms an expression tree to equivalent Eqn with the default--- packages (amsmath and amssymb)+-- | Transforms an expression tree to equivalent Eqn writeEqn :: DisplayType -> [Exp] -> T.Text writeEqn dt exprs = T.unwords $ map writeExp $ everywhere (mkT $ S.handleDownup dt) exprs
+ src/Text/TeXMath/Writers/Typst.hs view
@@ -0,0 +1,1004 @@+{-# LANGUAGE GeneralizedNewtypeDeriving, ViewPatterns, GADTs, OverloadedStrings #-}+{-+Copyright (C) 2023 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++-}++module Text.TeXMath.Writers.Typst (writeTypst) where++import Data.List (transpose)+import qualified Data.Map as M+import qualified Data.Text as T+import Text.TeXMath.Types+import qualified Text.TeXMath.Shared as S+import Data.Generics (everywhere, mkT)+import Data.Text (Text)++-- import Debug.Trace+-- tr' x = trace (show x) x++-- | Transforms an expression tree to equivalent Typst+writeTypst :: DisplayType -> [Exp] -> Text+writeTypst dt exprs =+ T.unwords $ map writeExp $ everywhere (mkT $ S.handleDownup dt) exprs++writeExps :: [Exp] -> Text+writeExps = T.intercalate " " . map writeExp++inParens :: Text -> Text+inParens s = "(" <> s <> ")"++inQuotes :: Text -> Text+inQuotes s = "\"" <> s <> "\""++esc :: Text -> Text+esc t =+ if T.any needsEscape t+ then T.concatMap escapeChar t+ else t+ where+ escapeChar c+ | needsEscape c = "\\" <> T.singleton c+ | otherwise = T.singleton c+ needsEscape '[' = True+ needsEscape ']' = True+ needsEscape '|' = True+ needsEscape '#' = True+ needsEscape '$' = True+ needsEscape '(' = True+ needsEscape ')' = True+ needsEscape '_' = True+ needsEscape _ = False++writeExp' :: Exp -> Text+writeExp' (EGrouped es) = "(" <> writeExps es <> ")"+writeExp' e = writeExp e++writeExp :: Exp -> Text+writeExp (ENumber s) = s+writeExp (ESymbol _t s) =+ maybe (esc s) id $ M.lookup s typstSymbols+writeExp (EIdentifier s) =+ if T.length s == 1+ then writeExp (ESymbol Ord s)+ else inQuotes s+writeExp (EMathOperator s)+ | s `elem` ["arccos", "arcsin", "arctan", "arg", "cos", "cosh",+ "cot", "ctg", "coth", "csc", "deg", "det", "dim", "exp",+ "gcd", "hom", "mod", "inf", "ker", "lg", "lim", "ln",+ "log", "max", "min", "Pr", "sec", "sin", "sinh", "sup",+ "tan", "tg", "tanh", "liminf", "and", "limsup"]+ = s+ | otherwise = "\"" <> s <> "\""+writeExp (EGrouped es) = writeExps es+writeExp (EFraction _fractype e1 e2) =+ case (e1, e2) of+ (EGrouped _, _) -> "frac(" <> writeExp e1 <> ", " <> writeExp e2 <> ")"+ (_, EGrouped _) -> "frac(" <> writeExp e1 <> ", " <> writeExp e2 <> ")"+ _ -> writeExp e1 <> " / " <> writeExp e2+writeExp (ESub b e1) = writeExp' b <> "_" <> writeExp' e1+writeExp (ESuper b e1) = writeExp' b <> "^" <> writeExp' e1+writeExp (ESubsup b e1 e2) = writeExp' b <> "_" <> writeExp' e1 <>+ "^" <> writeExp' e2+writeExp (EOver _convertible b e1) =+ case e1 of+ ESymbol Accent "`" -> "grave" <> inParens (writeExp b)+ ESymbol Accent "\xb4" -> "acute" <> inParens (writeExp b)+ ESymbol Accent "^" -> "hat" <> inParens (writeExp b)+ ESymbol Accent "~" -> "tilde" <> inParens (writeExp b)+ ESymbol Accent "\xaf" -> "macron" <> inParens (writeExp b)+ ESymbol Accent "\x2d8" -> "breve" <> inParens (writeExp b)+ ESymbol Accent "." -> "dot" <> inParens (writeExp b)+ ESymbol Accent "\xa8" -> "diaer" <> inParens (writeExp b)+ ESymbol Accent "\x2218" -> "circle" <> inParens (writeExp b)+ ESymbol Accent "\x2dd" -> "acute.double" <> inParens (writeExp b)+ ESymbol Accent "\x2c7" -> "caron" <> inParens (writeExp b)+ ESymbol Accent "\x2192" -> "->" <> inParens (writeExp b)+ ESymbol Accent "\x2190" -> "<-" <> inParens (writeExp b)+ ESymbol TOver "\9182" -> "overbrace(" <> writeExp b <> ")"+ ESymbol TOver "\9140" -> "overbracket(" <> writeExp b <> ")"+ _ -> writeExp' b <> "^" <> writeExp' e1+writeExp (EUnder _convertible b e1) =+ case e1 of+ ESymbol TUnder "_" -> "underline(" <> writeExp b <> ")"+ ESymbol TUnder "\9182" -> "underbrace(" <> writeExp b <> ")"+ ESymbol TUnder "\9140" -> "underbracket(" <> writeExp b <> ")"+ _ -> writeExp' b <> "_" <> writeExp' e1+writeExp (EUnderover convertible b e1 e2) =+ case (e1, e2) of+ (_, ESymbol Accent _) -> writeExp (EUnder convertible (EOver False b e2) e1)+ (_, ESymbol TOver _) -> writeExp (EUnder convertible (EOver False b e2) e1)+ (ESymbol TUnder _, _) -> writeExp (EOver convertible (EUnder False b e1) e2)+ _ -> writeExp' b <> "_" <> writeExp' e1 <> "^" <> writeExp' e2+writeExp (ESqrt e) = "sqrt(" <> writeExp e <> ")"+writeExp (ERoot i e) = "root(" <> writeExp i <> ", " <> writeExp e <> ")"+writeExp (ESpace width) =+ case (floor (width * 18) :: Int) of+ 0 -> "zws"+ 3 -> "thin"+ 4 -> "med"+ 6 -> "thick"+ 18 -> "quad"+ n -> "#h(" <> tshow (n `div` 18) <> "em)"+writeExp (EText ttype s) =+ case ttype of+ TextNormal -> "upright" <> inParens (inQuotes s)+ TextItalic -> "italic" <> inParens (inQuotes s)+ TextBold -> "bold" <> inParens (inQuotes s)+ TextBoldItalic -> "bold" <> inParens ("italic" <> inParens (inQuotes s))+ TextMonospace -> "mono" <> inParens (inQuotes s)+ TextSansSerif -> "sans" <> inParens (inQuotes s)+ TextDoubleStruck -> "bb" <> inParens (inQuotes s)+ TextScript -> "cal" <> inParens (inQuotes s)+ TextFraktur -> "frak" <> inParens (inQuotes s)+ TextSansSerifBold -> "bold" <> inParens ("sans" <> inParens (inQuotes s))+ TextSansSerifBoldItalic -> "bold" <>+ inParens ("italic" <> inParens ("sans" <> inParens (inQuotes s)))+ TextBoldScript -> "bold" <> inParens ("cal" <> inParens (inQuotes s))+ TextBoldFraktur -> "bold" <> inParens ("frak" <> inParens (inQuotes s))+ TextSansSerifItalic -> "italic" <>+ inParens ("sans" <> inParens (inQuotes s))+writeExp (EStyled ttype es) =+ let contents = writeExps es+ in case ttype of+ TextNormal -> "upright" <> inParens contents+ TextItalic -> "italic" <> inParens contents+ TextBold -> "bold" <> inParens contents+ TextBoldItalic -> "bold" <> inParens ("italic" <> inParens contents)+ TextMonospace -> "mono" <> inParens contents+ TextSansSerif -> "sans" <> inParens contents+ TextDoubleStruck -> "bb" <> inParens contents+ TextScript -> "cal" <> inParens contents+ TextFraktur -> "frak" <> inParens contents+ TextSansSerifBold -> "bold" <> inParens ("sans" <> inParens contents)+ TextSansSerifBoldItalic -> "bold" <>+ inParens ("italic" <> inParens ("sans" <> inParens contents))+ TextBoldScript -> "bold" <> inParens ("cal" <> inParens contents)+ TextBoldFraktur -> "bold" <> inParens ("frak" <> inParens contents)+ TextSansSerifItalic -> "italic" <> inParens ("sans" <> inParens contents)+writeExp (EBoxed e) = "#box([" <> writeExp e <> "])"+writeExp (EPhantom e) = "#hide[" <> writeExp e <> "]"+writeExp (EScaled size e) =+ "#scale(x: " <> tshow (floor (100 * size) :: Int) <>+ "%, y: " <> tshow (floor (100 * size) :: Int) <>+ "%)[" <> writeExp e <> "]"+writeExp (EDelimited "(" ")" [Right (EArray _aligns rows)])+ | all (\row -> length row == 1) rows = -- vector+ "vec(" <> mkArray (transpose rows) <> ")"+writeExp (EDelimited "(" ")" [Right (EArray _aligns [[xs],[ys]])]) =+ "binom(" <> writeExps xs <> ", " <> writeExps ys <> ")"+writeExp (EDelimited "(" ")" [Right (EArray _aligns rows)]) =+ "mat(delim: \"(\", " <> mkArray rows <> ")"+writeExp (EDelimited "[" "]" [Right (EArray _aligns rows)]) =+ "mat(delim: \"[\", " <> mkArray rows <> ")"+writeExp (EDelimited "{" "}" [Right (EArray _aligns rows)]) =+ "mat(delim: \"{\", " <> mkArray rows <> ")"+writeExp (EDelimited "|" "|" [Right (EArray _aligns rows)]) =+ "mat(delim: \"|\", " <> mkArray rows <> ")"+writeExp (EDelimited "||" "||" [Right (EArray _aligns rows)]) =+ "mat(delim: \"||\", " <> mkArray rows <> ")"+writeExp (EDelimited "\x2223" "\x2223" [Right (EArray _aligns rows)]) =+ "mat(delim: \"||\", " <> mkArray rows <> ")"+writeExp (EDelimited "\x2225" "\x2225" [Right (EArray _aligns rows)]) =+ "mat(delim: \"||\", " <> mkArray rows <> ")"+writeExp (EDelimited op "" [Right (EArray [AlignLeft, AlignLeft] rows)]) =+ "cases" <> inParens("delim: " <> inQuotes op <> mconcat (map toCase rows))+ where toCase = (", " <>) . T.intercalate " & " . map writeExps+writeExp (EDelimited open close es) =+ if isDelim open && isDelim close+ then "lr" <> inParens (open <> body <> close)+ else esc open <> body <> esc close+ where fromDelimited (Left e) = e+ fromDelimited (Right e) = writeExp e+ isDelim c = c `elem` ["(",")","[","]","{","}","|","||"]+ body = T.unwords (map fromDelimited es)+writeExp (EArray _aligns rows)+ = T.intercalate "\\\n" $ map mkRow rows+ where mkRow = T.intercalate " & " . map writeExps++mkArray :: [[[Exp]]] -> Text+mkArray rows =+ T.intercalate "; " $ map mkRow rows+ where+ mkRow = T.intercalate ", " . map mkCell+ mkCell = writeExps++tshow :: Show a => a -> Text+tshow = T.pack . show++typstSymbols :: M.Map Text Text+typstSymbols = M.fromList+ [ ("\x1d538","AA")+ , ("\x391","Alpha")+ , ("\x1d539","BB")+ , ("\x392","Beta")+ , ("\x2102","CC")+ , ("\x3A7","Chi")+ , ("\x1d53b","DD")+ , ("\x394","Delta")+ , ("\x1d53c","EE")+ , ("\x395","Epsilon")+ , ("\x397","Eta")+ , ("\x1d53d","FF")+ , ("\x1d53e","GG")+ , ("\x393","Gamma")+ , ("\x210d","HH")+ , ("\x1d540","II")+ , ("\x2111","Im")+ , ("\x399","Iota")+ , ("\x1d541","JJ")+ , ("\x1d542","KK")+ , ("\x3CF","Kai")+ , ("\x39A","Kappa")+ , ("\x1d543","LL")+ , ("\x39B","Lambda")+ , ("\x1d544","MM")+ , ("\x39C","Mu")+ , ("\x2115","NN")+ , ("\x39D","Nu")+ , ("\x1d546","OO")+ , ("\x3A9","Omega")+ , ("\x39F","Omicron")+ , ("\x2119","PP")+ , ("\x3A6","Phi")+ , ("\x3A0","Pi")+ , ("\x3A8","Psi")+ , ("\x211a","QQ")+ , ("\x211d","RR")+ , ("\x211c","Re")+ , ("\x3A1","Rho")+ , ("\x1d54a","SS")+ , ("\x3A3","Sigma")+ , ("\x1d54b","TT")+ , ("\x3A4","Tau")+ , ("\x398","Theta")+ , ("\x1d54c","UU")+ , ("\x3A5","Upsilon")+ , ("\x1d54d","VV")+ , ("\x1d54e","WW")+ , ("\x1d54f","XX")+ , ("\x39E","Xi")+ , ("\x1d550","YY")+ , ("\x2124","ZZ")+ , ("\x396","Zeta")+ , ("\xb4","acute")+ , ("\x2dd","acute.double")+ , ("\x5d0","alef")+ , ("\x3b1","alpha")+ , ("&","amp")+ , ("\x214b","amp.inv")+ , ("\x2227","and")+ , ("\x22c0","and.big")+ , ("\x22cf","and.curly")+ , ("\x27d1","and.dot")+ , ("\x2a53","and.double")+ , ("\x2220","angle")+ , ("\x2329","angle.l")+ , ("\x232a","angle.r")+ , ("\x300a","angle.l.double")+ , ("\x300b","angle.r.double")+ , ("\x299f","angle.acute")+ , ("\x2221","angle.arc")+ , ("\x299b","angle.arc.rev")+ , ("\x29a3","angle.rev")+ , ("\x221f","angle.right")+ , ("\11262","angle.right.rev")+ , ("\x22be","angle.right.arc")+ , ("\x299d","angle.right.dot")+ , ("\x299c","angle.right.sq")+ , ("\x27c0","angle.spatial")+ , ("\x2222","angle.spheric")+ , ("\x29a0","angle.spheric.rev")+ , ("\x29a1","angle.spheric.top")+ , ("\x212B","angstrom")+ , ("\x2248","approx")+ , ("\x224a","approx.eq")+ , ("\x2249","approx.not")+ , ("\x2192","arrow.r")+ , ("\x27fc","arrow.r.long.bar")+ , ("\x21a6","arrow.r.bar")+ , ("\x2937","arrow.r.curve")+ , ("\x21e2","arrow.r.dashed")+ , ("\x2911","arrow.r.dotted")+ , ("\x21d2","arrow.r.double")+ , ("\x2907","arrow.r.double.bar")+ , ("\x27f9","arrow.r.double.long")+ , ("\x27fe","arrow.r.double.long.bar")+ , ("\x21cf","arrow.r.double.not")+ , ("\x27a1","arrow.r.filled")+ , ("\x21aa","arrow.r.hook")+ , ("\x27f6","arrow.r.long")+ , ("\x27ff","arrow.r.long.squiggly")+ , ("\x21ac","arrow.r.loop")+ , ("\x219b","arrow.r.not")+ , ("\x2b46","arrow.r.quad")+ , ("\x21dd","arrow.r.squiggly")+ , ("\x21e5","arrow.r.stop")+ , ("\x21e8","arrow.r.stroked")+ , ("\x21a3","arrow.r.tail")+ , ("\x21db","arrow.r.triple")+ , ("\x2905","arrow.r.twohead.bar")+ , ("\x21a0","arrow.r.twohead")+ , ("\x219d","arrow.r.wave")+ , ("\x2190","arrow.l")+ , ("\x21a4","arrow.l.bar")+ , ("\x2936","arrow.l.curve")+ , ("\x21e0","arrow.l.dashed")+ , ("\x2b38","arrow.l.dotted")+ , ("\x21d0","arrow.l.double")+ , ("\x2906","arrow.l.double.bar")+ , ("\x27f8","arrow.l.double.long")+ , ("\x27fd","arrow.l.double.long.bar")+ , ("\x21cd","arrow.l.double.not")+ , ("\x2b05","arrow.l.filled")+ , ("\x21a9","arrow.l.hook")+ , ("\x27f5","arrow.l.long")+ , ("\x27fb","arrow.l.long.bar")+ , ("\x2b33","arrow.l.long.squiggly")+ , ("\x21ab","arrow.l.loop")+ , ("\x219a","arrow.l.not")+ , ("\x2b45","arrow.l.quad")+ , ("\x21dc","arrow.l.squiggly")+ , ("\x21e4","arrow.l.stop")+ , ("\x21e6","arrow.l.stroked")+ , ("\x21a2","arrow.l.tail")+ , ("\x21da","arrow.l.triple")+ , ("\x2b36","arrow.l.twohead.bar")+ , ("\x219e","arrow.l.twohead")+ , ("\x219c","arrow.l.wave")+ , ("\x2191","arrow.t")+ , ("\x21a5","arrow.t.bar")+ , ("\x2934","arrow.t.curve")+ , ("\x21e1","arrow.t.dashed")+ , ("\x21d1","arrow.t.double")+ , ("\x2b06","arrow.t.filled")+ , ("\x27f0","arrow.t.quad")+ , ("\x2912","arrow.t.stop")+ , ("\x21e7","arrow.t.stroked")+ , ("\x290a","arrow.t.triple")+ , ("\x219f","arrow.t.twohead")+ , ("\x2193","arrow.b")+ , ("\x21a7","arrow.b.bar")+ , ("\x2935","arrow.b.curve")+ , ("\x21e3","arrow.b.dashed")+ , ("\x21d3","arrow.b.double")+ , ("\x2b07","arrow.b.filled")+ , ("\x27f1","arrow.b.quad")+ , ("\x2913","arrow.b.stop")+ , ("\x21e9","arrow.b.stroked")+ , ("\x290b","arrow.b.triple")+ , ("\x21a1","arrow.b.twohead")+ , ("\x2194","arrow.l.r")+ , ("\x21d4","arrow.l.r.double")+ , ("\x27fa","arrow.l.r.double.long")+ , ("\x21ce","arrow.l.r.double.not")+ , ("\x2b0c","arrow.l.r.filled")+ , ("\x27f7","arrow.l.r.long")+ , ("\x21ae","arrow.l.r.not")+ , ("\x2b04","arrow.l.r.stroked")+ , ("\x21ad","arrow.l.r.wave")+ , ("\x2195","arrow.t.b")+ , ("\x21d5","arrow.t.b.double")+ , ("\x2b0d","arrow.t.b.filled")+ , ("\x21f3","arrow.t.b.stroked")+ , ("\x2197","arrow.tr")+ , ("\x21d7","arrow.tr.double")+ , ("\x2b08","arrow.tr.filled")+ , ("\x2924","arrow.tr.hook")+ , ("\x2b00","arrow.tr.stroked")+ , ("\x2198","arrow.br")+ , ("\x21d8","arrow.br.double")+ , ("\x2b0a","arrow.br.filled")+ , ("\x2925","arrow.br.hook")+ , ("\x2b02","arrow.br.stroked")+ , ("\x2196","arrow.tl")+ , ("\x21d6","arrow.tl.double")+ , ("\x2b09","arrow.tl.filled")+ , ("\x2923","arrow.tl.hook")+ , ("\x2b01","arrow.tl.stroked")+ , ("\x2199","arrow.bl")+ , ("\x21d9","arrow.bl.double")+ , ("\x2b0b","arrow.bl.filled")+ , ("\x2926","arrow.bl.hook")+ , ("\x2b03","arrow.bl.stroked")+ , ("\x2921","arrow.tl.br")+ , ("\x2922","arrow.tr.bl")+ , ("\x21ba","arrow.ccw")+ , ("\x21b6","arrow.ccw.half")+ , ("\x21bb","arrow.cw")+ , ("\x21b7","arrow.cw.half")+ , ("\x21af","arrow.zigzag")+ , ("\x2303","arrowhead.t")+ , ("\x2304","arrowhead.b")+ , ("\x21c9","arrows.rr")+ , ("\x21c7","arrows.ll")+ , ("\x21c8","arrows.tt")+ , ("\x21ca","arrows.bb")+ , ("\x21c6","arrows.lr")+ , ("\x21b9","arrows.lr.stop")+ , ("\x21c4","arrows.rl")+ , ("\x21c5","arrows.tb")+ , ("\x21f5","arrows.bt")+ , ("\x21f6","arrows.rrr")+ , ("\x2b31","arrows.lll")+ , ("*","ast")+ , ("\x204e","ast.low")+ , ("\x2051","ast.double")+ , ("\x2042","ast.triple")+ , ("\xfe61","ast.small")+ , ("\x2217","ast.op")+ , ("\x229b","ast.circle")+ , ("\x29c6","ast.sq")+ , ("@","at")+ , ("\\","backslash")+ , ("\x29b8","backslash.circle")+ , ("\x29f7","backslash.not")+ , ("\x2610","ballot")+ , ("\x2612","ballot.x")+ , ("|","bar.v")+ , ("\x2016","bar.v.double")+ , ("\x2980","bar.v.triple")+ , ("\xa6","bar.v.broken")+ , ("\x29b6","bar.v.circle")+ , ("\x2015","bar.h")+ , ("\x2235","because")+ , ("\x5d1","bet")+ , ("\x3b2","beta")+ , ("\x3d0","beta.alt")+ , ("\x20bf","bitcoin")+ , ("\x22a5","bot")+ , ("{","brace.l")+ , ("}","brace.r")+ , ("\x23de","brace.t")+ , ("\x23df","brace.b")+ , ("[","bracket.l")+ , ("]","bracket.r")+ , ("\x23b4","bracket.t")+ , ("\x23b5","bracket.b")+ , ("\x2d8","breve")+ , ("\x2038","caret")+ , ("\x2c7","caron")+ , ("\x2713","checkmark")+ , ("\x1f5f8","checkmark.light")+ , ("\x3c7","chi")+ , ("\x25cb","circle.stroked")+ , ("\x2218","circle.stroked.tiny")+ , ("\x26ac","circle.stroked.small")+ , ("\x25ef","circle.stroked.big")+ , ("\x25cf","circle.filled")+ , ("\x2981","circle.filled.tiny")+ , ("\x2219","circle.filled.small")+ , ("\x2b24","circle.filled.big")+ , ("\x25cc","circle.dotted")+ , ("\x229a","circle.nested")+ , ("\x2105","co")+ , (":","colon")+ , ("\x2254","colon.eq")+ , ("\x2a74","colon.double.eq")+ , (",","comma")+ , ("\x2201","complement")+ , ("\x2218","compose")+ , ("\x2217","convolve")+ , ("\xa9","copyright")+ , ("\x2117","copyright.sound")+ , ("\x2020","dagger")+ , ("\x2021","dagger.double")+ , ("\x2013","dash.en")+ , ("\x2014","dash.em")+ , ("\x2012","dash.fig")+ , ("\x301c","dash.wave")+ , ("\x2239","dash.colon")+ , ("\x229d","dash.circle")+ , ("\x3030","dash.wave.double")+ , ("\xb0","degree")+ , ("\x2103","degree.c")+ , ("\x2109","degree.f")+ , ("\x3b4","delta")+ , ("\xa8","diaer")+ , ("\x2300","diameter")+ , ("\x25c7","diamond.stroked")+ , ("\x22c4","diamond.stroked.small")+ , ("\x2b26","diamond.stroked.medium")+ , ("\x27d0","diamond.stroked.dot")+ , ("\x25c6","diamond.filled")+ , ("\x2b25","diamond.filled.medium")+ , ("\x2b29","diamond.filled.small")+ , ("\x2202","diff")+ , ("\xf7","div")+ , ("\x2a38","div.circle")+ , ("\x2223","divides")+ , ("\x2224","divides.not")+ , ("$","dollar")+ , (".","dot")+ , ("\x22c5","dot.op")+ , ("\xb7","dot.c")+ , ("\x2299","dot.circle")+ , ("\x2a00","dot.circle.big")+ , ("\x22a1","dot.square")+ , ("\x2026","dots.h")+ , ("\x22ef","dots.h.c")+ , ("\x22ee","dots.v")+ , ("\x22f1","dots.down")+ , ("\x22f0","dots.up")+ , ("\x2113","ell")+ , ("\x2b2d","ellipse.stroked.h")+ , ("\x2b2f","ellipse.stroked.v")+ , ("\x2b2c","ellipse.filled.h")+ , ("\x2b2e","ellipse.filled.v")+ , ("\x3b5","epsilon")+ , ("\x3f5","epsilon.alt")+ , ("=","eq")+ , ("\x225b","eq.star")+ , ("\x229c","eq.circle")+ , ("\x2255","eq.colon")+ , ("\x225d","eq.def")+ , ("\x225c","eq.delta")+ , ("\x225a","eq.equi")+ , ("\x2259","eq.est")+ , ("\x22dd","eq.gt")+ , ("\x22dc","eq.lt")+ , ("\x225e","eq.m")+ , ("\x2260","eq.not")+ , ("\x22de","eq.prec")+ , ("\x225f","eq.quest")+ , ("\xfe66","eq.small")+ , ("\x22df","eq.succ")+ , ("\x3b7","eta")+ , ("\x20ac","euro")+ , ("!","excl")+ , ("\x203c","excl.double")+ , ("\xa1","excl.inv")+ , ("\x2049","excl.quest")+ , ("\x2203","exists")+ , ("\x2204","exists.not")+ , ("\x29d8","fence.l")+ , ("\x29da","fence.l.double")+ , ("\x29d9","fence.r")+ , ("\x29db","fence.r.double")+ , ("\x2999","fence.dotted")+ , ("\x2766","floral")+ , ("\x2619","floral.l")+ , ("\x2767","floral.r")+ , ("\x2200","forall")+ , ("\x20a3","franc")+ , ("\x3b3","gamma")+ , ("\x5d2","gimel")+ , ("`","grave")+ , (">","gt")+ , ("\x29c1","gt.circle")+ , ("\x22d7","gt.dot")+ , ("\x226b","gt.double")+ , ("\x2265","gt.eq")+ , ("\x22db","gt.eq.lt")+ , ("\x2271","gt.eq.not")+ , ("\x2267","gt.eqq")+ , ("\x2277","gt.lt")+ , ("\x2279","gt.lt.not")+ , ("\x2269","gt.neqq")+ , ("\x226f","gt.not")+ , ("\x22e7","gt.ntilde")+ , ("\xfe65","gt.small")+ , ("\x2273","gt.tilde")+ , ("\x2275","gt.tilde.not")+ , ("\x22d9","gt.triple")+ , ("\x2af8","gt.triple.nested")+ , ("\x21c0","harpoon.rt")+ , ("\x295b","harpoon.rt.bar")+ , ("\x2953","harpoon.rt.stop")+ , ("\x21c1","harpoon.rb")+ , ("\x295f","harpoon.rb.bar")+ , ("\x2957","harpoon.rb.stop")+ , ("\x21bc","harpoon.lt")+ , ("\x295a","harpoon.lt.bar")+ , ("\x2952","harpoon.lt.stop")+ , ("\x21bd","harpoon.lb")+ , ("\x295e","harpoon.lb.bar")+ , ("\x2956","harpoon.lb.stop")+ , ("\x21bf","harpoon.tl")+ , ("\x2960","harpoon.tl.bar")+ , ("\x2958","harpoon.tl.stop")+ , ("\x21be","harpoon.tr")+ , ("\x295c","harpoon.tr.bar")+ , ("\x2954","harpoon.tr.stop")+ , ("\x21c3","harpoon.bl")+ , ("\x2961","harpoon.bl.bar")+ , ("\x2959","harpoon.bl.stop")+ , ("\x21c2","harpoon.br")+ , ("\x295d","harpoon.br.bar")+ , ("\x2955","harpoon.br.stop")+ , ("\x294e","harpoon.lt.rt")+ , ("\x2950","harpoon.lb.rb")+ , ("\x294b","harpoon.lb.rt")+ , ("\x294a","harpoon.lt.rb")+ , ("\x2951","harpoon.tl.bl")+ , ("\x294f","harpoon.tr.br")+ , ("\x294d","harpoon.tl.br")+ , ("\x294c","harpoon.tr.bl")+ , ("\x2964","harpoons.rtrb")+ , ("\x2965","harpoons.blbr")+ , ("\x296f","harpoons.bltr")+ , ("\x2967","harpoons.lbrb")+ , ("\x2962","harpoons.ltlb")+ , ("\x21cb","harpoons.ltrb")+ , ("\x2966","harpoons.ltrt")+ , ("\x2969","harpoons.rblb")+ , ("\x21cc","harpoons.rtlb")+ , ("\x2968","harpoons.rtlt")+ , ("\x296e","harpoons.tlbr")+ , ("\x2963","harpoons.tltr")+ , ("#","hash")+ , ("^","hat")+ , ("\x2b21","hexa.stroked")+ , ("\x2b22","hexa.filled")+ , ("\x2010","hyph")+ , ("-","hyph.minus")+ , ("\x2011","hyph.nobreak")+ , ("\x2027","hyph.point")+ , ("\173","hyph.soft")+ , ("\x2261","ident")+ , ("\x2262","ident.not")+ , ("\x2263","ident.strict")+ , ("\x2208","in")+ , ("\x2209","in.not")+ , ("\x220b","in.rev")+ , ("\x220c","in.rev.not")+ , ("\x220d","in.rev.small")+ , ("\x220a","in.small")+ , ("\x221e","infinity")+ , ("\x222b","integral")+ , ("\x2a17","integral.arrow.hook")+ , ("\x2a11","integral.ccw")+ , ("\x222e","integral.cont")+ , ("\x2233","integral.cont.ccw")+ , ("\x2232","integral.cont.cw")+ , ("\x2231","integral.cw")+ , ("\x222c","integral.double")+ , ("\x2a0c","integral.quad")+ , ("\x2a19","integral.sect")+ , ("\x2a16","integral.sq")+ , ("\x222f","integral.surf")+ , ("\x2a18","integral.times")+ , ("\x222d","integral.triple")+ , ("\x2a1a","integral.union")+ , ("\x2230","integral.vol")+ , ("\x203d","interrobang")+ , ("\x3b9","iota")+ , ("\x2a1d","join")+ , ("\x27d6","join.r")+ , ("\x27d5","join.l")+ , ("\x27d7","join.l.r")+ , ("\x3d7","kai")+ , ("\x3ba","kappa")+ , ("\x3f0","kappa.alt")+ , ("\x212a","kelvin")+ , ("\x3bb","lambda")+ , ("\x20ba","lira")+ , ("\x25ca","lozenge.stroked")+ , ("\x2b2b","lozenge.stroked.small")+ , ("\x2b28","lozenge.stroked.medium")+ , ("\x29eb","lozenge.filled")+ , ("\x2b2a","lozenge.filled.small")+ , ("\x2b27","lozenge.filled.medium")+ , ("<","lt")+ , ("\x29c0","lt.circle")+ , ("\x22d6","lt.dot")+ , ("\x226a","lt.double")+ , ("\x2264","lt.eq")+ , ("\x22da","lt.eq.gt")+ , ("\x2270","lt.eq.not")+ , ("\x2266","lt.eqq")+ , ("\x2276","lt.gt")+ , ("\x2278","lt.gt.not")+ , ("\x2268","lt.neqq")+ , ("\x226e","lt.not")+ , ("\x22e6","lt.ntilde")+ , ("\xfe64","lt.small")+ , ("\x2272","lt.tilde")+ , ("\x2274","lt.tilde.not")+ , ("\x22d8","lt.triple")+ , ("\x2af7","lt.triple.nested")+ , ("\xaf","macron")+ , ("\x2720","maltese")+ , ("\x2212","minus")+ , ("\x2296","minus.circle")+ , ("\x2238","minus.dot")+ , ("\x2213","minus.plus")+ , ("\x229f","minus.square")+ , ("\x2242","minus.tilde")+ , ("\x2a3a","minus.triangle")+ , ("\x22a7","models")+ , ("\x3bc","mu")+ , ("\x22b8","multimap")+ , ("\x2207","nabla")+ , ("\xac","not")+ , ("\x1f39c","notes.up")+ , ("\x1f39d","notes.down")+ , ("\x2205","nothing")+ , ("\x29b0","nothing.rev")+ , ("\x3bd","nu")+ , ("\x2126","ohm")+ , ("\x2127","ohm.inv")+ , ("\x3c9","omega")+ , ("\x3bf","omicron")+ , ("\x221e","oo")+ , ("\x2228","or")+ , ("\x22c1","or.big")+ , ("\x22ce","or.curly")+ , ("\x27c7","or.dot")+ , ("\x2a54","or.double")+ , ("\x2225","parallel")+ , ("\x29b7","parallel.circle")+ , ("\x2226","parallel.not")+ , ("(","paren.l")+ , (")","paren.r")+ , ("\x23dc","paren.t")+ , ("\x23dd","paren.b")+ , ("\x2b20","penta.stroked")+ , ("\x2b1f","penta.filled")+ , ("%","percent")+ , ("\x2030","permille")+ , ("\x27c2","perp")+ , ("\x29b9","perp.circle")+ , ("\x20b1","peso")+ , ("\x3c6","phi")+ , ("\x3d5","phi.alt")+ , ("\x3c0","pi")+ , ("\x3d6","pi.alt")+ , ("\xb6","pilcrow")+ , ("\x204b","pilcrow.rev")+ , ("\x210e","planck")+ , ("\x210f","planck.reduce")+ , ("+","plus")+ , ("\x2295","plus.circle")+ , ("\x27f4","plus.circle.arrow")+ , ("\x2a01","plus.circle.big")+ , ("\x2214","plus.dot")+ , ("\xb1","plus.minus")+ , ("\xfe62","plus.small")+ , ("\x229e","plus.square")+ , ("\x2a39","plus.triangle")+ , ("\xa3","pound")+ , ("\x227a","prec")+ , ("\x2ab7","prec.approx")+ , ("\x2abb","prec.double")+ , ("\x227c","prec.eq")+ , ("\x22e0","prec.eq.not")+ , ("\x2ab3","prec.eqq")+ , ("\x2ab9","prec.napprox")+ , ("\x2ab5","prec.neqq")+ , ("\x2280","prec.not")+ , ("\x22e8","prec.ntilde")+ , ("\x227e","prec.tilde")+ , ("\x2032","prime")+ , ("\x2035","prime.rev")+ , ("\x2033","prime.double")+ , ("\x2036","prime.double.rev")+ , ("\x2034","prime.triple")+ , ("\x2037","prime.triple.rev")+ , ("\x2057","prime.quad")+ , ("\x220f","product")+ , ("\x2210","product.co")+ , ("\x221d","prop")+ , ("\x3c8","psi")+ , ("\x220e","qed")+ , ("?","quest")+ , ("\x2047","quest.double")+ , ("\x2048","quest.excl")+ , ("\xbf","quest.inv")+ , ("\"","quote.double")+ , ("'","quote.single")+ , ("\x201c","quote.l.double")+ , ("\x2018","quote.l.single")+ , ("\x201d","quote.r.double")+ , ("\x2019","quote.r.single")+ , ("\xab","quote.angle.l.double")+ , ("\x2039","quote.angle.l.single")+ , ("\xbb","quote.angle.r.double")+ , ("\x203a","quote.angle.r.single")+ , ("\x201f","quote.high.double")+ , ("\x201b","quote.high.single")+ , ("\x201e","quote.low.double")+ , ("\x201a","quote.low.single")+ , ("\x2236","ratio")+ , ("\x25ad","rect.stroked.h")+ , ("\x25af","rect.stroked.v")+ , ("\x25ac","rect.filled.h")+ , ("\x25ae","rect.filled.v")+ , ("\x203b","refmark")+ , ("\x3c1","rho")+ , ("\x3f1","rho.alt")+ , ("\x20bd","ruble")+ , ("\x20b9","rupee")+ , ("\x2229","sect")+ , ("\x2a44","sect.and")+ , ("\x22c2","sect.big")+ , ("\x2a40","sect.dot")+ , ("\x22d2","sect.double")+ , ("\x2293","sect.sq")+ , ("\x2a05","sect.sq.big")+ , ("\x2a4e","sect.sq.double")+ , ("\xa7","section")+ , (";","semi")+ , ("\x204f","semi.rev")+ , ("\x2120","servicemark")+ , ("\x5e9","shin")+ , ("\x3c3","sigma")+ , ("/","slash")+ , ("\x2afd","slash.double")+ , ("\x2afb","slash.triple")+ , ("\x2a33","smash")+ , ("s","space")+ , ("\xa0","space.nobreak")+ , ("\x2002","space.en")+ , ("\x2003","space.quad")+ , ("\x2004","space.third")+ , ("\x2005","space.quarter")+ , ("\x2006","space.sixth")+ , ("\x205f","space.med")+ , ("\x2007","space.fig")+ , ("\x2008","space.punct")+ , ("\x2009","space.thin")+ , ("\x200a","space.hair")+ , ("\x25a1","square.stroked")+ , ("\x25ab","square.stroked.tiny")+ , ("\x25fd","square.stroked.small")+ , ("\x25fb","square.stroked.medium")+ , ("\x2b1c","square.stroked.big")+ , ("\x2b1a","square.stroked.dotted")+ , ("\x25a2","square.stroked.rounded")+ , ("\x25a0","square.filled")+ , ("\x25aa","square.filled.tiny")+ , ("\x25fe","square.filled.small")+ , ("\x25fc","square.filled.medium")+ , ("\x2b1b","square.filled.big")+ , ("\x22c6","star.op")+ , ("\x2605","star.stroked")+ , ("\x2605","star.filled")+ , ("\x2282","subset")+ , ("\x2abd","subset.dot")+ , ("\x22d0","subset.double")+ , ("\x2286","subset.eq")+ , ("\x2288","subset.eq.not")+ , ("\x2291","subset.eq.sq")+ , ("\x22e2","subset.eq.sq.not")+ , ("\x228a","subset.neq")+ , ("\x2284","subset.not")+ , ("\x228f","subset.sq")+ , ("\x22e4","subset.sq.neq")+ , ("\x227b","succ")+ , ("\x2ab8","succ.approx")+ , ("\x2abc","succ.double")+ , ("\x227d","succ.eq")+ , ("\x22e1","succ.eq.not")+ , ("\x2ab4","succ.eqq")+ , ("\x2aba","succ.napprox")+ , ("\x2ab6","succ.neqq")+ , ("\x2281","succ.not")+ , ("\x22e9","succ.ntilde")+ , ("\x227f","succ.tilde")+ , ("\x2663","suit.club")+ , ("\x2666","suit.diamond")+ , ("\x2665","suit.heart")+ , ("\x2660","suit.spade")+ , ("\x2211","sum")+ , ("\x2a0b","sum.integral")+ , ("\x2283","supset")+ , ("\x2abe","supset.dot")+ , ("\x22d1","supset.double")+ , ("\x2287","supset.eq")+ , ("\x2289","supset.eq.not")+ , ("\x2292","supset.eq.sq")+ , ("\x22e3","supset.eq.sq.not")+ , ("\x228b","supset.neq")+ , ("\x2285","supset.not")+ , ("\x2290","supset.sq")+ , ("\x22e5","supset.sq.neq")+ , ("\x22a2","tack.r")+ , ("\x27dd","tack.r.long")+ , ("\x22a3","tack.l")+ , ("\x27de","tack.l.long")+ , ("\x2ade","tack.l.short")+ , ("\x22a5","tack.t")+ , ("\x27d8","tack.t.big")+ , ("\x2aeb","tack.t.double")+ , ("\x2ae0","tack.t.short")+ , ("\x22a4","tack.b")+ , ("\x27d9","tack.b.big")+ , ("\x2aea","tack.b.double")+ , ("\x2adf","tack.b.short")+ , ("\x27db","tack.l.r")+ , ("\x3c4","tau")+ , ("\x2234","therefore")+ , ("\x3b8","theta")+ , ("\x3d1","theta.alt")+ , ("~","tilde")+ , ("\x223c","tilde.op")+ , ("\x2243","tilde.eq")+ , ("\x2244","tilde.eq.not")+ , ("\x22cd","tilde.eq.rev")+ , ("\x2245","tilde.eqq")+ , ("\x2247","tilde.eqq.not")+ , ("\x2246","tilde.neqq")+ , ("\x2241","tilde.not")+ , ("\x223d","tilde.rev")+ , ("\x224c","tilde.rev.eqq")+ , ("\x224b","tilde.triple")+ , ("\xd7","times")+ , ("\x2a09","times.big")+ , ("\x2297","times.circle")+ , ("\x2a02","times.circle.big")+ , ("\x22c7","times.div")+ , ("\x22cb","times.l")+ , ("\x22cc","times.r")+ , ("\x22a0","times.square")+ , ("\x2a3b","times.triangle")+ , ("\x22a4","top")+ , ("\x25b7","triangle.stroked.r")+ , ("\x25c1","triangle.stroked.l")+ , ("\x25b3","triangle.stroked.t")+ , ("\x25bd","triangle.stroked.b")+ , ("\x25fa","triangle.stroked.bl")+ , ("\x25ff","triangle.stroked.br")+ , ("\x25f8","triangle.stroked.tl")+ , ("\x25f9","triangle.stroked.tr")+ , ("\x25b9","triangle.stroked.small.r")+ , ("\x25bf","triangle.stroked.small.b")+ , ("\x25c3","triangle.stroked.small.l")+ , ("\x25b5","triangle.stroked.small.t")+ , ("\x1f6c6","triangle.stroked.rounded")+ , ("\x27c1","triangle.stroked.nested")+ , ("\x25ec","triangle.stroked.dot")+ , ("\x25b6","triangle.filled.r")+ , ("\x25c0","triangle.filled.l")+ , ("\x25b2","triangle.filled.t")+ , ("\x25bc","triangle.filled.b")+ , ("\x25e3","triangle.filled.bl")+ , ("\x25e2","triangle.filled.br")+ , ("\x25e4","triangle.filled.tl")+ , ("\x25e5","triangle.filled.tr")+ , ("\x25b8","triangle.filled.small.r")+ , ("\x25be","triangle.filled.small.b")+ , ("\x25c2","triangle.filled.small.l")+ , ("\x25b4","triangle.filled.small.t")+ , ("\x3014","turtle.l")+ , ("\x3015","turtle.r")+ , ("\x23e0","turtle.t")+ , ("\x23e1","turtle.b")+ , ("\x222a","union")+ , ("\x228c","union.arrow")+ , ("\x22c3","union.big")+ , ("\x228d","union.dot")+ , ("\x2a03","union.dot.big")+ , ("\x22d3","union.double")+ , ("\x2a41","union.minus")+ , ("\x2a45","union.or")+ , ("\x228e","union.plus")+ , ("\x2a04","union.plus.big")+ , ("\x2294","union.sq")+ , ("\x2a06","union.sq.big")+ , ("\x2a4f","union.sq.double")+ , ("\x3c5","upsilon")+ , ("\x2216","without")+ , ("\8288","wj")+ , ("\x20a9","won")+ , ("\x2240","wreath")+ , ("\x3be","xi")+ , ("\xa5","yen")+ , ("\x3b6","zeta")+ , ("\x200d","zwj")+ , ("\x200c","zwnj")+ , ("\x200b","zws") ]
test/test-texmath.hs view
@@ -37,6 +37,7 @@ mmlWriterTests <- getFiles "test/writer/mml" ommlWriterTests <- getFiles "test/writer/omml" eqnWriterTests <- getFiles "test/writer/eqn"+ typstWriterTests <- getFiles "test/writer/typst" regressionTests <- getFiles "test/regression" roundtripTests <- getFiles "test/roundtrip" let ings = includingOptions [Option (Proxy :: Proxy RoundTrip)] :@@ -62,6 +63,7 @@ , testGroup "mml" $ map toGoldenTest mmlWriterTests , testGroup "omml" $ map toGoldenTest ommlWriterTests , testGroup "eqn" $ map toGoldenTest eqnWriterTests+ , testGroup "typst" $ map toGoldenTest typstWriterTests ], testGroup "regression" $ map toGoldenTest regressionTests ]@@ -145,5 +147,6 @@ , ("tex", writeTeX) , ("omml", T.pack . ppTopElement . writeOMML DisplayBlock) , ("eqn", writeEqn DisplayBlock)+ , ("typst", writeTypst DisplayBlock) , ("native", T.pack . ppShow) ]
+ test/writer/typst/01.test view
@@ -0,0 +1,22 @@+<<< native+[ EIdentifier "x"+, ESymbol Rel "="+, EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Op "\8722"+ , EIdentifier "b"+ , ESymbol Bin "\177"+ , ESqrt+ (EGrouped+ [ ESuper (EIdentifier "b") (ENumber "2")+ , ESymbol Bin "\8722"+ , ENumber "4"+ , EIdentifier "a"+ , EIdentifier "c"+ ])+ ])+ (EGrouped [ ENumber "2" , EIdentifier "a" ])+]+>>> typst+x eq frac(minus b plus.minus sqrt(b^2 minus 4 a c), 2 a)
+ test/writer/typst/02.test view
@@ -0,0 +1,25 @@+<<< native+[ ENumber "2"+, ESymbol Rel "="+, EDelimited+ "("+ ")"+ [ Right+ (EFraction+ NormalFrac+ (EGrouped+ [ EDelimited+ "("+ ")"+ [ Right (ENumber "3")+ , Right (ESymbol Bin "\8722")+ , Right (EIdentifier "x")+ ]+ , ESymbol Bin "\215"+ , ENumber "2"+ ])+ (EGrouped [ ENumber "3" , ESymbol Bin "\8722" , EIdentifier "x" ]))+ ]+]+>>> typst+2 eq lr((frac(lr((3 minus x)) times 2, 3 minus x)))
+ test/writer/typst/03.test view
@@ -0,0 +1,13 @@+<<< native+[ EIdentifier "a"+, ESuper (EIdentifier "x") (ENumber "2")+, ESymbol Bin "+"+, EIdentifier "b"+, EIdentifier "x"+, ESymbol Bin "+"+, EIdentifier "c"+, ESymbol Rel "="+, ENumber "0"+]+>>> typst+a x^2 plus b x plus c eq 0
+ test/writer/typst/04.test view
@@ -0,0 +1,20 @@+<<< native+[ ESub (EIdentifier "S") (EText TextNormal "new")+, ESymbol Rel "="+, ESub (EIdentifier "S") (EText TextNormal "old")+, ESymbol Bin "\8722"+, EFraction+ NormalFrac+ (ESuper+ (EDelimited+ "("+ ")"+ [ Right (ENumber "5")+ , Right (ESymbol Bin "\8722")+ , Right (EIdentifier "T")+ ])+ (ENumber "2"))+ (ENumber "2")+]+>>> typst+S_upright("new") eq S_upright("old") minus lr((5 minus T))^2 / 2
+ test/writer/typst/05.test view
@@ -0,0 +1,31 @@+<<< native+[ ESubsup (ESymbol Op "\8747") (EIdentifier "a") (EIdentifier "x")+, ESpace ((-1) % 6)+, ESpace ((-1) % 6)+, ESpace ((-1) % 6)+, ESubsup (ESymbol Op "\8747") (EIdentifier "a") (EIdentifier "s")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "y") ]+, ESpace (1 % 6)+, EIdentifier "d"+, EIdentifier "y"+, ESpace (1 % 6)+, EIdentifier "d"+, EIdentifier "s"+, ESymbol Rel "="+, ESubsup (ESymbol Op "\8747") (EIdentifier "a") (EIdentifier "x")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "y") ]+, EDelimited+ "("+ ")"+ [ Right (EIdentifier "x")+ , Right (ESymbol Bin "\8722")+ , Right (EIdentifier "y")+ ]+, ESpace (1 % 6)+, EIdentifier "d"+, EIdentifier "y"+]+>>> typst+integral_a^x #h(-1em) #h(-1em) #h(-1em) integral_a^space f lr((y)) thin d y thin d space eq integral_a^x f lr((y)) lr((x minus y)) thin d y
+ test/writer/typst/06.test view
@@ -0,0 +1,35 @@+<<< native+[ EUnderover+ True+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "m" , ESymbol Rel "=" , ENumber "1" ])+ (ESymbol Ord "\8734")+, EUnderover+ True+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "n" , ESymbol Rel "=" , ENumber "1" ])+ (ESymbol Ord "\8734")+, EFraction+ NormalFrac+ (EGrouped+ [ ESuper (EIdentifier "m") (ENumber "2")+ , ESpace (1 % 6)+ , EIdentifier "n"+ ])+ (EGrouped+ [ ESuper (ENumber "3") (EIdentifier "m")+ , EDelimited+ "("+ ")"+ [ Right (EIdentifier "m")+ , Right (ESpace (1 % 6))+ , Right (ESuper (ENumber "3") (EIdentifier "n"))+ , Right (ESymbol Bin "+")+ , Right (EIdentifier "n")+ , Right (ESpace (1 % 6))+ , Right (ESuper (ENumber "3") (EIdentifier "m"))+ ]+ ])+]+>>> typst+sum_(m eq 1)^oo sum_(n eq 1)^oo frac(m^2 thin n, 3^m lr((m thin 3^n plus n thin 3^m)))
+ test/writer/typst/07.test view
@@ -0,0 +1,23 @@+<<< native+[ EIdentifier "u"+, ESymbol Ord "\8243"+, ESymbol Bin "+"+, EIdentifier "p"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, EIdentifier "u"+, ESymbol Ord "\8242"+, ESymbol Bin "+"+, EIdentifier "q"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, EIdentifier "u"+, ESymbol Rel "="+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESymbol Pun ","+, ESpace (1 % 1)+, EIdentifier "x"+, ESymbol Rel ">"+, EIdentifier "a"+]+>>> typst+u prime.double plus p lr((x)) u prime plus q lr((x)) u eq f lr((x)) comma quad x gt a
+ test/writer/typst/08.test view
@@ -0,0 +1,33 @@+<<< native+[ EDelimited+ "|"+ "|"+ [ Right (EOver False (EIdentifier "z") (ESymbol Accent "\8254")) ]+, ESymbol Rel "="+, EDelimited "|" "|" [ Right (EIdentifier "z") ]+, ESymbol Pun ","+, EDelimited+ "|"+ "|"+ [ Right+ (ESuper+ (EDelimited+ "("+ ")"+ [ Right (EOver False (EIdentifier "z") (ESymbol Accent "\8254")) ])+ (EIdentifier "n"))+ ]+, ESymbol Rel "="+, ESuper+ (EDelimited "|" "|" [ Right (EIdentifier "z") ]) (EIdentifier "n")+, ESymbol Pun ","+, EMathOperator "arg"+, EDelimited+ "(" ")" [ Right (ESuper (EIdentifier "z") (EIdentifier "n")) ]+, ESymbol Rel "="+, EIdentifier "n"+, EMathOperator "arg"+, EDelimited "(" ")" [ Right (EIdentifier "z") ]+]+>>> typst+lr(|z^‾|) eq lr(|z|) comma lr(|lr((z^‾))^n|) eq lr(|z|)^n comma arg lr((z^n)) eq n arg lr((z))
+ test/writer/typst/09.test view
@@ -0,0 +1,18 @@+<<< native+[ EUnder+ True+ (EMathOperator "lim")+ (EGrouped+ [ EIdentifier "z"+ , ESymbol Rel "\8594"+ , ESub (EIdentifier "z") (ENumber "0")+ ])+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "z") ]+, ESymbol Rel "="+, EIdentifier "f"+, EDelimited+ "(" ")" [ Right (ESub (EIdentifier "z") (ENumber "0")) ]+]+>>> typst+lim_(z arrow.r z_0) f lr((z)) eq f lr((z_0))
+ test/writer/typst/10.test view
@@ -0,0 +1,45 @@+<<< native+[ ESub (EIdentifier "\981") (EIdentifier "n")+, EDelimited "(" ")" [ Right (EIdentifier "\954") ]+, ESymbol Rel "="+, EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ENumber "4"+ , ESuper (EIdentifier "\960") (ENumber "2")+ , ESuper (EIdentifier "\954") (ENumber "2")+ ])+, ESubsup (ESymbol Op "\8747") (ENumber "0") (ESymbol Ord "\8734")+, EFraction+ NormalFrac+ (EGrouped+ [ EMathOperator "sin"+ , EDelimited+ "(" ")" [ Right (EIdentifier "\954") , Right (EIdentifier "R") ]+ ])+ (EGrouped [ EIdentifier "\954" , EIdentifier "R" ])+, EFraction+ NormalFrac+ (ESymbol Ord "\8706")+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "R" ])+, EDelimited+ "["+ "]"+ [ Right (ESuper (EIdentifier "R") (ENumber "2"))+ , Right+ (EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706"+ , ESub (EIdentifier "D") (EIdentifier "n")+ , EDelimited "(" ")" [ Right (EIdentifier "R") ]+ ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "R" ]))+ ]+, ESpace (1 % 6)+, EIdentifier "d"+, EIdentifier "R"+]+>>> typst+phi.alt_n lr((kappa)) eq frac(1, 4 pi^2 kappa^2) integral_0^oo frac(sin lr((kappa R)), kappa R) frac(diff, diff R) lr([R^2 frac(diff D_n lr((R)), diff R)]) thin d R
+ test/writer/typst/11.test view
@@ -0,0 +1,26 @@+<<< native+[ ESub (EIdentifier "\981") (EIdentifier "n")+, EDelimited "(" ")" [ Right (EIdentifier "\954") ]+, ESymbol Rel "="+, ENumber "0.033"+, ESubsup (EIdentifier "C") (EIdentifier "n") (ENumber "2")+, ESuper+ (EIdentifier "\954")+ (EGrouped+ [ ESymbol Op "\8722"+ , ENumber "11"+ , ESymbol Ord "/"+ , ENumber "3"+ ])+, ESymbol Pun ","+, ESpace (1 % 1)+, EFraction+ NormalFrac (ENumber "1") (ESub (EIdentifier "L") (ENumber "0"))+, ESymbol Rel "\8810"+, EIdentifier "\954"+, ESymbol Rel "\8810"+, EFraction+ NormalFrac (ENumber "1") (ESub (EIdentifier "l") (ENumber "0"))+]+>>> typst+phi.alt_n lr((kappa)) eq 0.033 C_n^2 kappa^(minus 11 slash 3) comma quad 1 / L_0 lt.double kappa lt.double 1 / l_0
+ test/writer/typst/12.test view
@@ -0,0 +1,33 @@+<<< native+[ EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESymbol Rel "="+, EDelimited+ "{"+ ""+ [ Right+ (EArray+ [ AlignLeft , AlignLeft ]+ [ [ [ ENumber "1" ]+ , [ ESymbol Bin "\8722"+ , ENumber "1"+ , ESymbol Rel "\8804"+ , EIdentifier "x"+ , ESymbol Rel "<"+ , ENumber "0"+ ]+ ]+ , [ [ EFraction NormalFrac (ENumber "1") (ENumber "2") ]+ , [ EIdentifier "x" , ESymbol Rel "=" , ENumber "0" ]+ ]+ , [ [ ENumber "1"+ , ESymbol Bin "\8722"+ , ESuper (EIdentifier "x") (ENumber "2")+ ]+ , [ EText TextNormal "otherwise" ]+ ]+ ])+ ]+]+>>> typst+f lr((x)) eq cases(delim: "{", 1 & minus 1 lt.eq x lt 0, 1 / 2 & x eq 0, 1 minus x^2 & upright("otherwise"))
+ test/writer/typst/13.test view
@@ -0,0 +1,57 @@+<<< native+[ ESub (EGrouped []) (EIdentifier "p")+, ESub (EIdentifier "F") (EIdentifier "q")+, EDelimited+ "("+ ")"+ [ Right (ESub (EIdentifier "a") (ENumber "1"))+ , Right (ESymbol Pun ",")+ , Right (ESymbol Ord "\8230")+ , Right (ESymbol Pun ",")+ , Right (ESub (EIdentifier "a") (EIdentifier "p"))+ , Right (ESymbol Pun ";")+ , Right (ESub (EIdentifier "c") (ENumber "1"))+ , Right (ESymbol Pun ",")+ , Right (ESymbol Ord "\8230")+ , Right (ESymbol Pun ",")+ , Right (ESub (EIdentifier "c") (EIdentifier "q"))+ , Right (ESymbol Pun ";")+ , Right (EIdentifier "z")+ ]+, ESymbol Rel "="+, EUnderover+ True+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "n" , ESymbol Rel "=" , ENumber "0" ])+ (ESymbol Ord "\8734")+, EFraction+ NormalFrac+ (EGrouped+ [ ESub+ (EDelimited+ "(" ")" [ Right (ESub (EIdentifier "a") (ENumber "1")) ])+ (EIdentifier "n")+ , ESymbol Ord "\8943"+ , ESub+ (EDelimited+ "(" ")" [ Right (ESub (EIdentifier "a") (EIdentifier "p")) ])+ (EIdentifier "n")+ ])+ (EGrouped+ [ ESub+ (EDelimited+ "(" ")" [ Right (ESub (EIdentifier "c") (ENumber "1")) ])+ (EIdentifier "n")+ , ESymbol Ord "\8943"+ , ESub+ (EDelimited+ "(" ")" [ Right (ESub (EIdentifier "c") (EIdentifier "q")) ])+ (EIdentifier "n")+ ])+, EFraction+ NormalFrac+ (ESuper (EIdentifier "z") (EIdentifier "n"))+ (EGrouped [ EIdentifier "n" , ESymbol Ord "!" ])+]+>>> typst+()_p F_q lr((a_1 comma dots.h comma a_p semi c_1 comma dots.h comma c_q semi z)) eq sum_(n eq 0)^oo frac(lr((a_1))_n dots.h.c lr((a_p))_n, lr((c_1))_n dots.h.c lr((c_q))_n) frac(z^n, n excl)
+ test/writer/typst/14.test view
@@ -0,0 +1,7 @@+<<< native+[ EFraction NormalFrac (EIdentifier "a") (EIdentifier "b")+, ESpace (2 % 9)+, EFraction InlineFrac (EIdentifier "a") (EIdentifier "b")+]+>>> typst+a / b med a / b
+ test/writer/typst/15.test view
@@ -0,0 +1,4 @@+<<< native+[ EFraction NormalFrac (EIdentifier "a") (ENumber "2") ]+>>> typst+a / 2
+ test/writer/typst/16.test view
@@ -0,0 +1,4 @@+<<< native+[ ENumber "3" , ESymbol Bin "\215" , ENumber "4" ]+>>> typst+3 times 4
+ test/writer/typst/17.test view
@@ -0,0 +1,11 @@+<<< native+[ EIdentifier "x"+, ESymbol Bin "*"+, ENumber "4"+, ESymbol Rel "="+, ENumber "4"+, ESymbol Bin "*"+, EIdentifier "x"+]+>>> typst+x ast 4 eq 4 ast x
+ test/writer/typst/18.test view
@@ -0,0 +1,4 @@+<<< native+[ ENumber "1.3" , ESymbol Bin "\215" , ENumber ".2" ]+>>> typst+1.3 times .2
+ test/writer/typst/19.test view
@@ -0,0 +1,83 @@+<<< native+[ EDelimited+ "["+ "]"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ EFraction+ DisplayFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "x") (ENumber "1") ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "y") (ENumber "1") ])+ ]+ , [ EFraction+ DisplayFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "x") (ENumber "2") ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "y") (ENumber "1") ])+ ]+ ]+ , [ [ ESpace (2 % 9) ] ]+ , [ [ EFraction+ DisplayFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "x") (ENumber "1") ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "y") (ENumber "2") ])+ ]+ , [ EFraction+ DisplayFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "x") (ENumber "2") ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "y") (ENumber "2") ])+ ]+ ]+ ])+ ]+, EDelimited+ "("+ ")"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ ENumber "3" ] , [ ENumber "4" ] ]+ ])+ ]+, EDelimited+ "{"+ "}"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ ENumber "3" ] , [ ENumber "4" ] ]+ ])+ ]+, EDelimited+ "\8739"+ "\8739"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ ENumber "3" ] , [ ENumber "4" ] ]+ ])+ ]+, EDelimited+ "\8741"+ "\8741"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ ENumber "3" ] , [ ENumber "4" ] ]+ ])+ ]+]+>>> typst+mat(delim: "[", frac(diff x_1, diff y_1), frac(diff x_2, diff y_1); med; frac(diff x_1, diff y_2), frac(diff x_2, diff y_2)) mat(delim: "(", 1, 2; 3, 4) mat(delim: "{", 1, 2; 3, 4) mat(delim: "||", 1, 2; 3, 4) mat(delim: "||", 1, 2; 3, 4)
+ test/writer/typst/20.test view
@@ -0,0 +1,119 @@+<<< native+[ EStyled TextScript [ EIdentifier "A" ]+, EStyled TextScript [ EIdentifier "B" ]+, EStyled TextScript [ EIdentifier "C" ]+, EStyled TextScript [ EIdentifier "D" ]+, EStyled TextScript [ EIdentifier "E" ]+, EStyled TextScript [ EIdentifier "F" ]+, EStyled TextScript [ EIdentifier "G" ]+, EStyled TextScript [ EIdentifier "H" ]+, EStyled TextScript [ EIdentifier "I" ]+, EStyled TextScript [ EIdentifier "J" ]+, EStyled TextScript [ EIdentifier "K" ]+, EStyled TextScript [ EIdentifier "L" ]+, EStyled TextScript [ EIdentifier "M" ]+, EStyled TextScript [ EIdentifier "N" ]+, EStyled TextScript [ EIdentifier "O" ]+, EStyled TextScript [ EIdentifier "P" ]+, EStyled TextScript [ EIdentifier "Q" ]+, EStyled TextScript [ EIdentifier "R" ]+, EStyled TextScript [ EIdentifier "S" ]+, EStyled TextScript [ EIdentifier "T" ]+, EStyled TextScript [ EIdentifier "U" ]+, EStyled TextScript [ EIdentifier "V" ]+, EStyled TextScript [ EIdentifier "W" ]+, EStyled TextScript [ EIdentifier "X" ]+, EStyled TextScript [ EIdentifier "Y" ]+, EStyled TextScript [ EIdentifier "Z" ]+, EStyled TextScript [ EIdentifier "a" ]+, EStyled TextScript [ EIdentifier "b" ]+, EStyled TextScript [ EIdentifier "c" ]+, EStyled TextScript [ EIdentifier "d" ]+, EStyled TextScript [ EIdentifier "e" ]+, EStyled TextScript [ EIdentifier "f" ]+, EStyled TextScript [ EIdentifier "g" ]+, EStyled TextScript [ EIdentifier "h" ]+, EStyled TextScript [ EIdentifier "i" ]+, EStyled TextScript [ EIdentifier "j" ]+, EStyled TextScript [ EIdentifier "k" ]+, EStyled TextScript [ EIdentifier "l" ]+, EStyled TextScript [ EIdentifier "m" ]+, EStyled TextScript [ EIdentifier "n" ]+, EStyled TextScript [ EIdentifier "o" ]+, EStyled TextScript [ EIdentifier "p" ]+, EStyled TextScript [ EIdentifier "q" ]+, EStyled TextScript [ EIdentifier "r" ]+, EStyled TextScript [ EIdentifier "s" ]+, EStyled TextScript [ EIdentifier "t" ]+, EStyled TextScript [ EIdentifier "u" ]+, EStyled TextScript [ EIdentifier "v" ]+, EStyled TextScript [ EIdentifier "w" ]+, EStyled TextScript [ EIdentifier "x" ]+, EStyled TextScript [ EIdentifier "y" ]+, EStyled TextScript [ EIdentifier "z" ]+, EStyled TextDoubleStruck [ EIdentifier "A" ]+, EStyled TextDoubleStruck [ EIdentifier "B" ]+, EStyled TextDoubleStruck [ EIdentifier "C" ]+, EStyled TextDoubleStruck [ EIdentifier "D" ]+, EStyled TextDoubleStruck [ EIdentifier "E" ]+, EStyled TextDoubleStruck [ EIdentifier "F" ]+, EStyled TextDoubleStruck [ EIdentifier "G" ]+, EStyled TextDoubleStruck [ EIdentifier "H" ]+, EStyled TextDoubleStruck [ EIdentifier "I" ]+, EStyled TextDoubleStruck [ EIdentifier "J" ]+, EStyled TextDoubleStruck [ EIdentifier "K" ]+, EStyled TextDoubleStruck [ EIdentifier "L" ]+, EStyled TextDoubleStruck [ EIdentifier "M" ]+, EStyled TextDoubleStruck [ EIdentifier "N" ]+, EStyled TextDoubleStruck [ EIdentifier "O" ]+, EStyled TextDoubleStruck [ EIdentifier "P" ]+, EStyled TextDoubleStruck [ EIdentifier "Q" ]+, EStyled TextDoubleStruck [ EIdentifier "R" ]+, EStyled TextDoubleStruck [ EIdentifier "S" ]+, EStyled TextDoubleStruck [ EIdentifier "T" ]+, EStyled TextDoubleStruck [ EIdentifier "U" ]+, EStyled TextDoubleStruck [ EIdentifier "V" ]+, EStyled TextDoubleStruck [ EIdentifier "W" ]+, EStyled TextDoubleStruck [ EIdentifier "X" ]+, EStyled TextDoubleStruck [ EIdentifier "Y" ]+, EStyled TextDoubleStruck [ EIdentifier "Z" ]+, EStyled TextDoubleStruck [ EIdentifier "a" ]+, EStyled TextDoubleStruck [ EIdentifier "b" ]+, EStyled TextDoubleStruck [ EIdentifier "c" ]+, EStyled TextDoubleStruck [ EIdentifier "d" ]+, EStyled TextDoubleStruck [ EIdentifier "e" ]+, EStyled TextDoubleStruck [ EIdentifier "f" ]+, EStyled TextDoubleStruck [ EIdentifier "g" ]+, EStyled TextDoubleStruck [ EIdentifier "h" ]+, EStyled TextDoubleStruck [ EIdentifier "i" ]+, EStyled TextDoubleStruck [ EIdentifier "j" ]+, EStyled TextDoubleStruck [ EIdentifier "k" ]+, EStyled TextDoubleStruck [ EIdentifier "l" ]+, EStyled TextDoubleStruck [ EIdentifier "m" ]+, EStyled TextDoubleStruck [ EIdentifier "n" ]+, EStyled TextDoubleStruck [ EIdentifier "o" ]+, EStyled TextDoubleStruck [ EIdentifier "p" ]+, EStyled TextDoubleStruck [ EIdentifier "q" ]+, EStyled TextDoubleStruck [ EIdentifier "r" ]+, EStyled TextDoubleStruck [ EIdentifier "s" ]+, EStyled TextDoubleStruck [ EIdentifier "t" ]+, EStyled TextDoubleStruck [ EIdentifier "u" ]+, EStyled TextDoubleStruck [ EIdentifier "v" ]+, EStyled TextDoubleStruck [ EIdentifier "w" ]+, EStyled TextDoubleStruck [ EIdentifier "x" ]+, EStyled TextDoubleStruck [ EIdentifier "y" ]+, EStyled TextDoubleStruck [ EIdentifier "z" ]+, EStyled TextDoubleStruck [ ENumber "0" ]+, EStyled TextDoubleStruck [ ENumber "1" ]+, EStyled TextDoubleStruck [ ENumber "2" ]+, EStyled TextDoubleStruck [ ENumber "3" ]+, EStyled TextDoubleStruck [ ENumber "4" ]+, EStyled TextDoubleStruck [ ENumber "5" ]+, EStyled TextDoubleStruck [ ENumber "6" ]+, EStyled TextDoubleStruck [ ENumber "7" ]+, EStyled TextDoubleStruck [ ENumber "8" ]+, EStyled TextDoubleStruck [ ENumber "9" ]+, EStyled TextDoubleStruck [ ENumber "0" ]+]+>>> typst+cal(A) cal(B) cal(C) cal(D) cal(E) cal(F) cal(G) cal(H) cal(I) cal(J) cal(K) cal(L) cal(M) cal(N) cal(O) cal(P) cal(Q) cal(R) cal(S) cal(T) cal(U) cal(V) cal(W) cal(X) cal(Y) cal(Z) cal(a) cal(b) cal(c) cal(d) cal(e) cal(f) cal(g) cal(h) cal(i) cal(j) cal(k) cal(l) cal(m) cal(n) cal(o) cal(p) cal(q) cal(r) cal(space) cal(t) cal(u) cal(v) cal(w) cal(x) cal(y) cal(z) bb(A) bb(B) bb(C) bb(D) bb(E) bb(F) bb(G) bb(H) bb(I) bb(J) bb(K) bb(L) bb(M) bb(N) bb(O) bb(P) bb(Q) bb(R) bb(S) bb(T) bb(U) bb(V) bb(W) bb(X) bb(Y) bb(Z) bb(a) bb(b) bb(c) bb(d) bb(e) bb(f) bb(g) bb(h) bb(i) bb(j) bb(k) bb(l) bb(m) bb(n) bb(o) bb(p) bb(q) bb(r) bb(space) bb(t) bb(u) bb(v) bb(w) bb(x) bb(y) bb(z) bb(0) bb(1) bb(2) bb(3) bb(4) bb(5) bb(6) bb(7) bb(8) bb(9) bb(0)
+ test/writer/typst/21.test view
@@ -0,0 +1,9 @@+<<< native+[ ESub (EIdentifier "e") (ENumber "1")+, ESymbol Rel "="+, ESuper (EIdentifier "b") (ENumber "2")+, ESymbol Bin "+"+, ESuper (EIdentifier "c") (ENumber "22")+]+>>> typst+e_1 eq b^2 plus c^22
+ test/writer/typst/22.test view
@@ -0,0 +1,277 @@+<<< native+[ EArray+ [ AlignLeft , AlignLeft ]+ [ [ [ EText TextMonospace "textrm" ]+ , [ EText TextNormal "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mathrm" ]+ , [ EStyled+ TextNormal+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathup" ]+ , [ EStyled+ TextNormal+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "text" ]+ , [ EText TextNormal "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mbox" ]+ , [ EText TextNormal "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mathbf" ]+ , [ EStyled+ TextBold+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfup" ]+ , [ EStyled+ TextBold+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "textbf" ]+ , [ EText TextBold "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mathit" ]+ , [ EStyled+ TextItalic+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "textit" ]+ , [ EText TextItalic "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mathtt" ]+ , [ EStyled+ TextMonospace+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "texttt" ]+ , [ EText TextMonospace "ABCabc" ]+ ]+ , [ [ EText TextMonospace "mathsf" ]+ , [ EStyled+ TextSansSerif+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathsfup" ]+ , [ EStyled+ TextSansSerif+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbb" ]+ , [ EStyled+ TextDoubleStruck+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathcal" ]+ , [ EStyled+ TextScript+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathscr" ]+ , [ EStyled+ TextScript+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathfrak" ]+ , [ EStyled+ TextFraktur+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfit" ]+ , [ EStyled+ TextBoldItalic+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfsfup" ]+ , [ EStyled+ TextSansSerifBold+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfsfit" ]+ , [ EStyled+ TextSansSerifBoldItalic+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfscr" ]+ , [ EStyled+ TextBoldScript+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbffrak" ]+ , [ EStyled+ TextBoldFraktur+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathbfcal" ]+ , [ EStyled+ TextBoldScript+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ , [ [ EText TextMonospace "mathsfit" ]+ , [ EStyled+ TextSansSerifItalic+ [ EIdentifier "A"+ , EIdentifier "B"+ , EIdentifier "C"+ , EIdentifier "a"+ , EIdentifier "b"+ , EIdentifier "c"+ ]+ ]+ ]+ ]+]+>>> typst+mono("textrm") & upright("ABCabc")\+mono("mathrm") & upright(A B C a b c)\+mono("mathup") & upright(A B C a b c)\+mono("text") & upright("ABCabc")\+mono("mbox") & upright("ABCabc")\+mono("mathbf") & bold(A B C a b c)\+mono("mathbfup") & bold(A B C a b c)\+mono("textbf") & bold("ABCabc")\+mono("mathit") & italic(A B C a b c)\+mono("textit") & italic("ABCabc")\+mono("mathtt") & mono(A B C a b c)\+mono("texttt") & mono("ABCabc")\+mono("mathsf") & sans(A B C a b c)\+mono("mathsfup") & sans(A B C a b c)\+mono("mathbb") & bb(A B C a b c)\+mono("mathcal") & cal(A B C a b c)\+mono("mathscr") & cal(A B C a b c)\+mono("mathfrak") & frak(A B C a b c)\+mono("mathbfit") & bold(italic(A B C a b c))\+mono("mathbfsfup") & bold(sans(A B C a b c))\+mono("mathbfsfit") & bold(italic(sans(A B C a b c)))\+mono("mathbfscr") & bold(cal(A B C a b c))\+mono("mathbffrak") & bold(frak(A B C a b c))\+mono("mathbfcal") & bold(cal(A B C a b c))\+mono("mathsfit") & italic(sans(A B C a b c))
+ test/writer/typst/23.test view
@@ -0,0 +1,4 @@+<<< native+[ ENumber "1" , ESymbol Ord "." ]+>>> typst+1 dot
+ test/writer/typst/abs1.test view
@@ -0,0 +1,4 @@+<<< native+[ EDelimited "|" "|" [ Right (EIdentifier "x") ] ]+>>> typst+lr(|x|)
+ test/writer/typst/axiom_of_power_set.test view
@@ -0,0 +1,36 @@+<<< native+[ ESymbol Op "\8704"+, EIdentifier "A"+, ESpace (1 % 6)+, ESymbol Op "\8707"+, EIdentifier "P"+, ESpace (1 % 6)+, ESymbol Op "\8704"+, EIdentifier "B"+, ESpace (1 % 6)+, EDelimited+ "["+ "]"+ [ Right (EIdentifier "B")+ , Right (ESymbol Rel "\8712")+ , Right (EIdentifier "P")+ , Right (ESymbol Rel "\8660")+ , Right (ESymbol Op "\8704")+ , Right (EIdentifier "C")+ , Right (ESpace (1 % 6))+ , Right+ (EDelimited+ "("+ ")"+ [ Right (EIdentifier "C")+ , Right (ESymbol Rel "\8712")+ , Right (EIdentifier "B")+ , Right (ESymbol Rel "\8658")+ , Right (EIdentifier "C")+ , Right (ESymbol Rel "\8712")+ , Right (EIdentifier "A")+ ])+ ]+]+>>> typst+forall A thin exists P thin forall B thin lr([B in P arrow.l.r.double forall C thin lr((C in B arrow.r.double C in A))])
+ test/writer/typst/binomial_coefficient.test view
@@ -0,0 +1,43 @@+<<< native+[ EStyled TextBold [ EIdentifier "C" ]+, EDelimited+ "("+ ")"+ [ Right (EIdentifier "n")+ , Right (ESymbol Pun ",")+ , Right (EIdentifier "k")+ ]+, ESymbol Rel "="+, ESubsup+ (EStyled TextBold [ EIdentifier "C" ])+ (EIdentifier "k")+ (EIdentifier "n")+, ESymbol Rel "="+, ESub (EGrouped []) (EIdentifier "n")+, ESub (EStyled TextBold [ EIdentifier "C" ]) (EIdentifier "k")+, ESymbol Rel "="+, EDelimited+ "("+ ")"+ [ Right (EFraction NoLineFrac (EIdentifier "n") (EIdentifier "k"))+ ]+, ESymbol Rel "="+, EFraction+ NormalFrac+ (EGrouped [ EIdentifier "n" , ESymbol Ord "!" ])+ (EGrouped+ [ EIdentifier "k"+ , ESymbol Ord "!"+ , ESpace (1 % 6)+ , EDelimited+ "("+ ")"+ [ Right (EIdentifier "n")+ , Right (ESymbol Bin "\8722")+ , Right (EIdentifier "k")+ ]+ , ESymbol Ord "!"+ ])+]+>>> typst+bold(C) lr((n comma k)) eq bold(C)_k^n eq ()_n bold(C)_k eq lr((n / k)) eq frac(n excl, k excl thin lr((n minus k)) excl)
+ test/writer/typst/boxed.test view
@@ -0,0 +1,12 @@+<<< native+[ EBoxed+ (EGrouped+ [ ESuper (EIdentifier "x") (ENumber "2")+ , ESymbol Bin "+"+ , ESuper (EIdentifier "y") (ENumber "2")+ , ESymbol Bin "+"+ , ESuper (EIdentifier "z") (ENumber "2")+ ])+]+>>> typst+#box([x^2 plus y^2 plus z^2])
+ test/writer/typst/chain2.test view
@@ -0,0 +1,52 @@+<<< native+[ ESubsup (ESymbol Op "\8747") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+, ESymbol Rel "="+, EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+, ESymbol Rel "="+, EUnderover+ False+ (ESymbol Op "\8719")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+, ESymbol Rel "="+, EUnderover+ False+ (ESymbol Op "\8720")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+, ESymbol Rel "="+, ESubsup (ESymbol Op "\8750") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+, ESymbol Rel "="+, ESubsup (ESymbol Op "\8748") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+, ESymbol Rel "="+, ESubsup (ESymbol Op "\8749") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+]+>>> typst+integral_0^1 f lr((x)) #h(0em) ⅆ x eq sum_(i eq 0)^oo x_i eq product_(i eq 0)^oo x_i eq product.co_(i eq 0)^oo x_i eq integral.cont_0^1 f lr((x)) #h(0em) ⅆ x eq integral.double_0^1 f lr((x)) #h(0em) ⅆ x eq integral.triple_0^1 f lr((x)) #h(0em) ⅆ x
+ test/writer/typst/choose.test view
@@ -0,0 +1,21 @@+<<< native+[ EDelimited+ "("+ ")"+ [ Right+ (EFraction+ NoLineFrac+ (EIdentifier "a")+ (EDelimited+ "{"+ "}"+ [ Right+ (EFraction+ NoLineFrac+ (EIdentifier "b")+ (EGrouped [ EIdentifier "c" , ESymbol Bin "+" , ENumber "2" ]))+ ]))+ ]+]+>>> typst+lr((a / lr({frac(b, c plus 2)})))
+ test/writer/typst/complex1.test view
@@ -0,0 +1,622 @@+<<< native+[ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ EText TextNormal "Bernoulli Trials" ]+ , [ EGrouped+ [ EGrouped+ [ EIdentifier "P"+ , ESymbol Open "("+ , EIdentifier "E"+ , ESymbol Close ")"+ ]+ , ESymbol Rel "="+ , EDelimited+ "("+ ")"+ [ Right (EFraction NormalFrac (EIdentifier "n") (EIdentifier "k"))+ ]+ , ESubsup (EIdentifier "p") (EGrouped []) (EIdentifier "k")+ , ESubsup+ (EGrouped+ [ ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , EIdentifier "p"+ , ESymbol Close ")"+ ])+ (EGrouped [])+ (EGrouped [ EIdentifier "n" , ESymbol Bin "-" , EIdentifier "k" ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Cauchy-Schwarz Inequality" ]+ , [ EGrouped+ [ ESubsup+ (EDelimited+ "("+ ")"+ [ Right+ (EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "k" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "n"))+ , Right (ESubsup (EIdentifier "a") (EIdentifier "k") (EGrouped []))+ , Right (ESubsup (EIdentifier "b") (EIdentifier "k") (EGrouped []))+ ])+ (EGrouped [])+ (ENumber "2")+ , ESymbol Rel "\8804"+ , EDelimited+ "("+ ")"+ [ Right+ (EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "k" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "n"))+ , Right (ESubsup (EIdentifier "a") (EIdentifier "k") (ENumber "2"))+ ]+ , EDelimited+ "("+ ")"+ [ Right+ (EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "k" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "n"))+ , Right (ESubsup (EIdentifier "b") (EIdentifier "k") (ENumber "2"))+ ]+ ]+ ]+ ]+ , [ [ EText TextNormal "Cauchy Formula" ]+ , [ EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESpace (1 % 6)+ , ESymbol Bin "\183"+ , ESubsup (EIdentifier "Ind") (EIdentifier "\947") (EGrouped [])+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped [ ENumber "2" , EIdentifier "\960" , EIdentifier "i" ])+ , EUnderover+ False (ESymbol Op "\8750") (EIdentifier "\947") (EGrouped [])+ , EFraction+ NormalFrac+ (EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "\958"+ , ESymbol Close ")"+ ])+ (EGrouped+ [ EIdentifier "\958" , ESymbol Bin "-" , EIdentifier "z" ])+ , ESpace (1 % 6)+ , EIdentifier "d"+ , EIdentifier "\958"+ ]+ ]+ ]+ , [ [ EText TextNormal "Cross Product" ]+ , [ EGrouped+ [ ESubsup (EIdentifier "V") (ENumber "1") (EGrouped [])+ , ESymbol Bin "\215"+ , ESubsup (EIdentifier "V") (ENumber "2") (EGrouped [])+ , ESymbol Rel "="+ , EDelimited+ "|"+ "|"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ EIdentifier "i" ]+ , [ EIdentifier "j" ]+ , [ EIdentifier "k" ]+ ]+ , [ [ EFraction+ NormalFrac+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "X" ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "u" ])+ ]+ , [ EFraction+ NormalFrac+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "Y" ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "u" ])+ ]+ , [ ENumber "0" ]+ ]+ , [ [ EFraction+ NormalFrac+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "X" ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "v" ])+ ]+ , [ EFraction+ NormalFrac+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "Y" ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "v" ])+ ]+ , [ ENumber "0" ]+ ]+ ])+ ]+ ]+ ]+ ]+ , [ [ EText TextNormal "Vandermonde Determinant" ]+ , [ EGrouped+ [ EDelimited+ "|"+ "|"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ]+ , [ ENumber "1" ]+ , [ ESymbol Ord "\8943" ]+ , [ ENumber "1" ]+ ]+ , [ [ ESubsup (EIdentifier "v") (ENumber "1") (EGrouped []) ]+ , [ ESubsup (EIdentifier "v") (ENumber "2") (EGrouped []) ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup (EIdentifier "v") (EIdentifier "n") (EGrouped []) ]+ ]+ , [ [ ESubsup (EIdentifier "v") (ENumber "1") (ENumber "2") ]+ , [ ESubsup (EIdentifier "v") (ENumber "2") (ENumber "2") ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup (EIdentifier "v") (EIdentifier "n") (ENumber "2") ]+ ]+ , [ [ ESymbol Rel "\8942" ]+ , [ ESymbol Rel "\8942" ]+ , [ ESymbol Rel "\8945" ]+ , [ ESymbol Rel "\8942" ]+ ]+ , [ [ ESubsup+ (EIdentifier "v")+ (ENumber "1")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "-" , ENumber "1" ])+ ]+ , [ ESubsup+ (EIdentifier "v")+ (ENumber "2")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "-" , ENumber "1" ])+ ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup+ (EIdentifier "v")+ (EIdentifier "n")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "-" , ENumber "1" ])+ ]+ ]+ ])+ ]+ , ESymbol Rel "="+ , EUnderover+ False+ (ESymbol Op "\8719")+ (EGrouped+ [ ENumber "1"+ , ESymbol Rel "\8804"+ , EIdentifier "i"+ , ESymbol Rel "<"+ , EIdentifier "j"+ , ESymbol Rel "\8804"+ , EIdentifier "n"+ ])+ (EGrouped [])+ , ESymbol Open "("+ , ESubsup (EIdentifier "v") (EIdentifier "j") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "v") (EIdentifier "i") (EGrouped [])+ , ESymbol Close ")"+ ]+ ]+ ]+ , [ [ EText TextNormal "Lorenz Equations" ]+ , [ EArray+ [ AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ EUnderover+ False (EIdentifier "x") (EGrouped []) (ESymbol Accent "\729")+ ]+ , [ ESymbol Rel "=" ]+ , [ EGrouped+ [ EIdentifier "\963"+ , ESymbol Open "("+ , EIdentifier "y"+ , ESymbol Bin "-"+ , EIdentifier "x"+ , ESymbol Close ")"+ ]+ ]+ ]+ , [ [ EUnderover+ False (EIdentifier "y") (EGrouped []) (ESymbol Accent "\729")+ ]+ , [ ESymbol Rel "=" ]+ , [ EGrouped+ [ EIdentifier "\961"+ , EIdentifier "x"+ , ESymbol Bin "-"+ , EIdentifier "y"+ , ESymbol Bin "-"+ , EIdentifier "x"+ , EIdentifier "z"+ ]+ ]+ ]+ , [ [ EUnderover+ False (EIdentifier "z") (EGrouped []) (ESymbol Accent "\729")+ ]+ , [ ESymbol Rel "=" ]+ , [ EGrouped+ [ ESymbol Bin "-"+ , EIdentifier "\946"+ , EIdentifier "z"+ , ESymbol Bin "+"+ , EIdentifier "x"+ , EIdentifier "y"+ ]+ ]+ ]+ ]+ ]+ ]+ , [ [ EText TextNormal "Maxwell's Equations" ]+ , [ EDelimited+ "{"+ ""+ [ Right+ (EArray+ [ AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ EGrouped+ [ ESymbol Ord "\8711"+ , ESpace (0 % 1)+ , ESymbol Bin "\215"+ , EUnderover+ False (EIdentifier "B") (EGrouped []) (ESymbol Accent "\8636")+ , ESymbol Bin "-"+ , ESpace (1 % 6)+ , EFraction NormalFrac (ENumber "1") (EIdentifier "c")+ , ESpace (1 % 6)+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706"+ , ESpace (0 % 1)+ , EUnderover+ False (EIdentifier "E") (EGrouped []) (ESymbol Accent "\8636")+ ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESpace (0 % 1) , EIdentifier "t" ])+ ]+ ]+ , [ ESymbol Rel "=" ]+ , [ EGrouped+ [ EFraction+ NormalFrac+ (EGrouped [ ENumber "4" , EIdentifier "\960" ])+ (EIdentifier "c")+ , ESpace (1 % 6)+ , EUnderover+ False (EIdentifier "j") (EGrouped []) (ESymbol Accent "\8636")+ ]+ ]+ ]+ , [ [ EGrouped+ [ ESymbol Ord "\8711"+ , ESpace (0 % 1)+ , ESymbol Bin "\183"+ , EUnderover+ False (EIdentifier "E") (EGrouped []) (ESymbol Accent "\8636")+ ]+ ]+ , [ ESymbol Rel "=" ]+ , [ EGrouped+ [ ENumber "4" , EIdentifier "\960" , EIdentifier "\961" ]+ ]+ ]+ , [ [ EGrouped+ [ ESymbol Ord "\8711"+ , ESpace (0 % 1)+ , ESymbol Bin "\215"+ , EUnderover+ False (EIdentifier "E") (EGrouped []) (ESymbol Accent "\8636")+ , ESpace (1 % 6)+ , ESymbol Bin "+"+ , ESpace (1 % 6)+ , EFraction NormalFrac (ENumber "1") (EIdentifier "c")+ , ESpace (1 % 6)+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706"+ , ESpace (0 % 1)+ , EUnderover+ False (EIdentifier "B") (EGrouped []) (ESymbol Accent "\8636")+ ])+ (EGrouped+ [ ESymbol Ord "\8706" , ESpace (0 % 1) , EIdentifier "t" ])+ ]+ ]+ , [ ESymbol Rel "=" ]+ , [ EUnderover+ False (ENumber "0") (EGrouped []) (ESymbol Accent "\8636")+ ]+ ]+ , [ [ EGrouped+ [ ESymbol Ord "\8711"+ , ESpace (0 % 1)+ , ESymbol Bin "\183"+ , EUnderover+ False (EIdentifier "B") (EGrouped []) (ESymbol Accent "\8636")+ ]+ ]+ , [ ESymbol Rel "=" ]+ , [ ENumber "0" ]+ ]+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Einstein Field Equations" ]+ , [ EGrouped+ [ ESubsup+ (EIdentifier "R")+ (EGrouped [ EIdentifier "\956" , EIdentifier "\957" ])+ (EGrouped [])+ , ESymbol Bin "-"+ , EFraction NormalFrac (ENumber "1") (ENumber "2")+ , ESpace (1 % 6)+ , ESubsup+ (EIdentifier "g")+ (EGrouped [ EIdentifier "\956" , EIdentifier "\957" ])+ (EGrouped [])+ , ESpace (1 % 6)+ , EIdentifier "R"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped [ ENumber "8" , EIdentifier "\960" , EIdentifier "G" ])+ (ESubsup (EIdentifier "c") (EGrouped []) (ENumber "4"))+ , ESpace (1 % 6)+ , ESubsup+ (EIdentifier "T")+ (EGrouped [ EIdentifier "\956" , EIdentifier "\957" ])+ (EGrouped [])+ ]+ ]+ ]+ , [ [ EText TextNormal "Ramanujan Identity" ]+ , [ EGrouped+ [ EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESymbol Open "("+ , ESqrt (EGrouped [ EIdentifier "\966" , ESqrt (ENumber "5") ])+ , ESymbol Bin "-"+ , EIdentifier "\966"+ , ESymbol Close ")"+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EFraction NormalFrac (ENumber "25") (EIdentifier "\960"))+ ])+ , ESymbol Rel "="+ , ENumber "1"+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped [ ESymbol Bin "-" , ENumber "2" , EIdentifier "\960" ]))+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped [ ESymbol Bin "-" , ENumber "4" , EIdentifier "\960" ]))+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped [ ESymbol Bin "-" , ENumber "6" , EIdentifier "\960" ]))+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-" , ENumber "8" , EIdentifier "\960" ]))+ (EGrouped+ [ ENumber "1" , ESymbol Bin "+" , ESymbol Ord "\8230" ])+ ])+ ])+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Another Ramanujan identity" ]+ , [ EGrouped+ [ EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "k" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "\8734")+ , EFraction+ NormalFrac+ (ENumber "1")+ (ESubsup+ (ENumber "2")+ (EGrouped [])+ (EGrouped+ [ ESymbol Open "\8970"+ , EIdentifier "k"+ , ESymbol Bin "\183"+ , ESpace (0 % 1)+ , EIdentifier "\966"+ , ESymbol Close "\8971"+ ]))+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESubsup (ENumber "2") (EGrouped []) (ENumber "0")+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESubsup (ENumber "2") (EGrouped []) (ENumber "1")+ , ESymbol Bin "+"+ , ESymbol Ord "\8943"+ ])+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Rogers-Ramanujan Identity" ]+ , [ EGrouped+ [ ENumber "1"+ , ESymbol Bin "+"+ , EGrouped+ [ EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "k" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "\8734")+ , EFraction+ NormalFrac+ (ESubsup+ (EIdentifier "q")+ (EGrouped [])+ (EGrouped+ [ ESubsup (EIdentifier "k") (EGrouped []) (ENumber "2")+ , ESymbol Bin "+"+ , EIdentifier "k"+ ]))+ (EGrouped+ [ ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , EIdentifier "q"+ , ESymbol Close ")"+ , ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "q") (EGrouped []) (ENumber "2")+ , ESymbol Close ")"+ , ESymbol Ord "\8943"+ , ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "q") (EGrouped []) (EIdentifier "k")+ , ESymbol Close ")"+ ])+ ]+ , ESymbol Rel "="+ , EGrouped+ [ EUnderover+ False+ (ESymbol Op "\8719")+ (EGrouped [ EIdentifier "j" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup+ (EIdentifier "q")+ (EGrouped [])+ (EGrouped+ [ ENumber "5" , EIdentifier "j" , ESymbol Bin "+" , ENumber "2" ])+ , ESymbol Close ")"+ , ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup+ (EIdentifier "q")+ (EGrouped [])+ (EGrouped+ [ ENumber "5" , EIdentifier "j" , ESymbol Bin "+" , ENumber "3" ])+ , ESymbol Close ")"+ ])+ ]+ , ESymbol Pun ","+ , EText TextNormal "\8287\8202"+ , EText TextNormal "\8287\8202"+ , EGrouped [ EIdentifier "f" , EIdentifier "o" , EIdentifier "r" ]+ , ESpace (2 % 9)+ , ESymbol Op "|"+ , EIdentifier "q"+ , ESymbol Op "|"+ , ESymbol Rel "<"+ , ENumber "1"+ , EIdentifier "."+ ]+ ]+ ]+ , [ [ EText TextNormal "Commutative Diagram" ]+ , [ EArray+ [ AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ EIdentifier "H" ]+ , [ ESymbol Accent "\8592" ]+ , [ EIdentifier "K" ]+ ]+ , [ [ ESymbol Rel "\8595" ]+ , [ ESpace (0 % 1) ]+ , [ ESymbol Rel "\8593" ]+ ]+ , [ [ EIdentifier "H" ]+ , [ ESymbol Accent "\8594" ]+ , [ EIdentifier "K" ]+ ]+ ]+ ]+ ]+ ]+]+>>> typst+upright("Bernoulli Trials") & P paren.l E paren.r eq lr((n / k)) p_()^k (paren.l 1 hyph.minus p paren.r)_()^(n hyph.minus k)\+upright("Cauchy-Schwarz Inequality") & lr((sum_(k eq 1)^n a_k^() b_k^()))_()^2 lt.eq lr((sum_(k eq 1)^n a_k^2)) lr((sum_(k eq 1)^n b_k^2))\+upright("Cauchy Formula") & f paren.l z paren.r thin dot.c "Ind"_gamma^() paren.l z paren.r eq frac(1, 2 pi i) integral.cont_gamma^() frac(f paren.l xi paren.r, xi hyph.minus z) thin d xi\+upright("Cross Product") & V_1^() times V_2^() eq mat(delim: "|", i, j, k; frac(diff X, diff u), frac(diff Y, diff u), 0; frac(diff X, diff v), frac(diff Y, diff v), 0)\+upright("Vandermonde Determinant") & mat(delim: "|", 1, 1, dots.h.c, 1; v_1^(), v_2^(), dots.h.c, v_n^(); v_1^2, v_2^2, dots.h.c, v_n^2; dots.v, dots.v, dots.down, dots.v; v_1^(n hyph.minus 1), v_2^(n hyph.minus 1), dots.h.c, v_n^(n hyph.minus 1)) eq product_(1 lt.eq i lt j lt.eq n)^() paren.l v_j^() hyph.minus v_i^() paren.r\+upright("Lorenz Equations") & x^˙_() & eq & sigma paren.l y hyph.minus x paren.r\+y^˙_() & eq & rho x hyph.minus y hyph.minus x z\+z^˙_() & eq & hyph.minus beta z plus x y\+upright("Maxwell's Equations") & {nabla zws times B^harpoon.lt_() hyph.minus thin 1 / c thin frac(diff zws E^harpoon.lt_(), diff zws t) & eq & frac(4 pi, c) thin j^harpoon.lt_()\+nabla zws dot.c E^harpoon.lt_() & eq & 4 pi rho\+nabla zws times E^harpoon.lt_() thin plus thin 1 / c thin frac(diff zws B^harpoon.lt_(), diff zws t) & eq & 0^harpoon.lt_()\+nabla zws dot.c B^harpoon.lt_() & eq & 0\+upright("Einstein Field Equations") & R_(mu nu)^() hyph.minus 1 / 2 thin g_(mu nu)^() thin R eq frac(8 pi G, c_()^4) thin T_(mu nu)^()\+upright("Ramanujan Identity") & frac(1, paren.l sqrt(phi sqrt(5)) hyph.minus phi paren.r e_()^25 / pi) eq 1 plus frac(e_()^(hyph.minus 2 pi), 1 plus frac(e_()^(hyph.minus 4 pi), 1 plus frac(e_()^(hyph.minus 6 pi), 1 plus frac(e_()^(hyph.minus 8 pi), 1 plus dots.h))))\+upright("Another Ramanujan identity") & sum_(k eq 1)^oo 1 / 2_()^(⌊ k dot.c zws phi ⌋) eq frac(1, 2_()^0 plus frac(1, 2_()^1 plus dots.h.c))\+upright("Rogers-Ramanujan Identity") & 1 plus sum_(k eq 1)^oo frac(q_()^(k_()^2 plus k), paren.l 1 hyph.minus q paren.r paren.l 1 hyph.minus q_()^2 paren.r dots.h.c paren.l 1 hyph.minus q_()^k paren.r) eq product_(j eq 0)^oo frac(1, paren.l 1 hyph.minus q_()^(5 j plus 2) paren.r paren.l 1 hyph.minus q_()^(5 j plus 3) paren.r) comma upright(" ") upright(" ") f o r med bar.v q bar.v lt 1 dot\+upright("Commutative Diagram") & H & arrow.l & K\+arrow.b & zws & arrow.t\+H & arrow.r & K
+ test/writer/typst/complex2.test view
@@ -0,0 +1,408 @@+<<< native+[ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ EText TextNormal "Quadratic Equation" ]+ , [ EGrouped+ [ EIdentifier "x"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Bin "-"+ , EIdentifier "b"+ , ESymbol Bin "\177"+ , ESqrt+ (EGrouped+ [ ESubsup (EIdentifier "b") (EGrouped []) (ENumber "2")+ , ESymbol Bin "-"+ , ENumber "4"+ , EIdentifier "a"+ , EIdentifier "c"+ ])+ ])+ (EGrouped [ ENumber "2" , EIdentifier "a" ])+ ]+ ]+ ]+ , [ [ EText TextNormal "DisplayQuadratic Equation" ]+ , [ EGrouped+ [ EIdentifier "x"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Bin "-"+ , EIdentifier "b"+ , ESymbol Bin "\177"+ , ESqrt+ (EGrouped+ [ ESubsup (EIdentifier "b") (EGrouped []) (ENumber "2")+ , ESymbol Bin "-"+ , ENumber "4"+ , EIdentifier "a"+ , EIdentifier "c"+ ])+ ])+ (EGrouped [ ENumber "2" , EIdentifier "a" ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Rational Function" ]+ , [ EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "x"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "2")+ ])+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Rational Function" ]+ , [ EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "x"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "2")+ , ESymbol Close ")"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ ])+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Rational Function" ]+ , [ EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "x"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Open "("+ , ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "2")+ , ESymbol Close ")"+ , ESymbol Open "("+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ , ESymbol Bin "-"+ , ENumber "5"+ , EIdentifier "x"+ , ESymbol Close ")"+ ])+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Parametrize Rational Function" ]+ , [ EGrouped+ [ EIdentifier "f"+ , ESymbol Open "("+ , EIdentifier "x"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Open "("+ , ESubsup (EIdentifier "a") (EIdentifier "i") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "2")+ , ESubsup (ESymbol Close ")") (EGrouped []) (ENumber "5")+ ])+ (EGrouped+ [ ENumber "1"+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "3")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Stacked exponents" ]+ , [ EGrouped+ [ EIdentifier "g"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (EGrouped []) (ENumber "2")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Stacked exponents" ]+ , [ EGrouped+ [ EIdentifier "g"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Bin "-"+ , EIdentifier "a"+ , ESubsup (ESymbol Close ")") (EGrouped []) (ENumber "2")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Stacked exponents" ]+ , [ EGrouped+ [ EIdentifier "g"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-"+ , EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+ , ESubsup (EIdentifier "z") (EIdentifier "i") (ENumber "2")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Stacked exponents" ]+ , [ EGrouped+ [ EIdentifier "g"+ , ESymbol Open "("+ , EIdentifier "y"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-"+ , EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+ , ESubsup (EIdentifier "y") (EIdentifier "i") (ENumber "2")+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Stacked exponents" ]+ , [ EGrouped+ [ EIdentifier "g"+ , ESymbol Open "("+ , EIdentifier "z"+ , ESymbol Close ")"+ , ESymbol Rel "="+ , ESubsup+ (EIdentifier "e")+ (EGrouped [])+ (EGrouped+ [ ESymbol Bin "-"+ , EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+ , ESubsup+ (EIdentifier "z")+ (EGrouped [])+ (EFraction+ NormalFrac+ (ENumber "2")+ (EGrouped [ EIdentifier "a" , ESymbol Bin "-" , EIdentifier "i" ]))+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Cross Product" ]+ , [ EGrouped+ [ EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ])+ , EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ ])+ ]+ ]+ ]+ , [ [ EText TextNormal "Cross Product" ]+ , [ EGrouped+ [ ESymbol Open "("+ , EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ])+ , ESymbol Close ")"+ , ESymbol Open "("+ , EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ ])+ , ESymbol Close ")"+ ]+ ]+ ]+ , [ [ EText TextNormal "Cross Product" ]+ , [ EGrouped+ [ EDelimited+ "("+ ")"+ [ Right+ (EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ]))+ ]+ , EDelimited+ "("+ ")"+ [ Right+ (EFraction+ NormalFrac+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ ])+ (EGrouped+ [ ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ ]))+ ]+ ]+ ]+ ]+ , [ [ EText TextNormal "Cross Product" ]+ , [ EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Open "("+ , ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ , ESymbol Close ")"+ , ESymbol Open "("+ , ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ , ESymbol Close ")"+ ])+ (EGrouped+ [ ESymbol Open "("+ , ESubsup (EIdentifier "x") (ENumber "1") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "4") (EGrouped [])+ , ESymbol Close ")"+ , ESymbol Open "("+ , ESubsup (EIdentifier "x") (ENumber "2") (EGrouped [])+ , ESymbol Bin "-"+ , ESubsup (EIdentifier "x") (ENumber "3") (EGrouped [])+ , ESymbol Close ")"+ ])+ ]+ ]+ ]+]+>>> typst+upright("Quadratic Equation") & x eq frac(hyph.minus b plus.minus sqrt(b_()^2 hyph.minus 4 a c), 2 a)\+upright("DisplayQuadratic Equation") & x eq frac(hyph.minus b plus.minus sqrt(b_()^2 hyph.minus 4 a c), 2 a)\+upright("Rational Function") & f paren.l x paren.r eq frac(1 hyph.minus x_()^2, 1 hyph.minus x_()^3)\+upright("Rational Function") & f paren.l x paren.r eq frac(paren.l 1 hyph.minus x_()^2 paren.r x_()^3, 1 hyph.minus x_()^3)\+upright("Rational Function") & f paren.l x paren.r eq frac(paren.l 1 hyph.minus x_()^2 paren.r paren.l x_()^3 hyph.minus 5 x paren.r, 1 hyph.minus x_()^3)\+upright("Parametrize Rational Function") & f paren.l x paren.r eq frac(paren.l a_i^() hyph.minus x_()^2 paren.r_()^5, 1 hyph.minus x_()^3)\+upright("Stacked exponents") & g paren.l z paren.r eq e_()^(hyph.minus x_()^2)\+upright("Stacked exponents") & g paren.l z paren.r eq e_()^(hyph.minus paren.l z hyph.minus a paren.r_()^2)\+upright("Stacked exponents") & g paren.l z paren.r eq e_()^(hyph.minus sum_(i eq 0)^oo z_i^2)\+upright("Stacked exponents") & g paren.l y paren.r eq e_()^(hyph.minus sum_(i eq 0)^oo y_i^2)\+upright("Stacked exponents") & g paren.l z paren.r eq e_()^(hyph.minus sum_(i eq 0)^oo z_()^frac(2, a hyph.minus i))\+upright("Cross Product") & frac(x_1^() hyph.minus x_2^(), x_3^() hyph.minus x_4^()) frac(x_1^() hyph.minus x_4^(), x_2^() hyph.minus x_3^())\+upright("Cross Product") & paren.l frac(x_1^() hyph.minus x_2^(), x_3^() hyph.minus x_4^()) paren.r paren.l frac(x_1^() hyph.minus x_4^(), x_2^() hyph.minus x_3^()) paren.r\+upright("Cross Product") & lr((frac(x_1^() hyph.minus x_2^(), x_3^() hyph.minus x_4^()))) lr((frac(x_1^() hyph.minus x_4^(), x_2^() hyph.minus x_3^())))\+upright("Cross Product") & frac(paren.l x_1^() hyph.minus x_2^() paren.r paren.l x_3^() hyph.minus x_4^() paren.r, paren.l x_1^() hyph.minus x_4^() paren.r paren.l x_2^() hyph.minus x_3^() paren.r)
+ test/writer/typst/complex_number.test view
@@ -0,0 +1,27 @@+<<< native+[ EIdentifier "c"+, ESymbol Rel "="+, EOver+ False+ (EOver+ False+ (EGrouped+ [ EUnder+ False+ (EUnder False (EIdentifier "a") (ESymbol TUnder "\9183"))+ (EText TextNormal "real")+ , ESymbol Bin "+"+ , EUnder+ False+ (EUnder+ False+ (EGrouped+ [ EIdentifier "b" , EStyled TextNormal [ EIdentifier "i" ] ])+ (ESymbol TUnder "\9183"))+ (EText TextNormal "imaginary")+ ])+ (ESymbol TOver "\9182"))+ (EText TextNormal "complex number")+]+>>> typst+c eq overbrace(a_brace.b_upright("real") plus (b upright(i))_brace.b_upright("imaginary"))^upright("complex number")
+ test/writer/typst/coprod2.test view
@@ -0,0 +1,10 @@+<<< native+[ EUnderover+ False+ (ESymbol Op "\8720")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+]+>>> typst+product.co_(i eq 0)^oo x_i
+ test/writer/typst/cospan.test view
@@ -0,0 +1,11 @@+<<< native+[ EIdentifier "B"+, EUnderover+ False (ESymbol Op "\8594") (EIdentifier "f") (EGrouped [])+, EIdentifier "A"+, EUnderover+ False (ESymbol Op "\8592") (EIdentifier "f") (EGrouped [])+, EIdentifier "C"+]+>>> typst+B arrow.r_f^() A arrow.l_f^() C
+ test/writer/typst/deMorgans_law.test view
@@ -0,0 +1,39 @@+<<< native+[ ESymbol Op "\172"+, EDelimited+ "("+ ")"+ [ Right (EIdentifier "p")+ , Right (ESymbol Bin "\8743")+ , Right (EIdentifier "q")+ ]+, ESymbol Rel "\8660"+, EDelimited+ "(" ")" [ Right (ESymbol Op "\172") , Right (EIdentifier "p") ]+, ESymbol Bin "\8744"+, EDelimited+ "(" ")" [ Right (ESymbol Op "\172") , Right (EIdentifier "q") ]+, EOver+ False+ (EGrouped+ [ EUnderover+ True+ (ESymbol Op "\8899")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "n")+ , ESub (EIdentifier "A") (EIdentifier "i")+ ])+ (ESymbol TOver "\175")+, ESymbol Rel "="+, EUnderover+ True+ (ESymbol Op "\8898")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "1" ])+ (EIdentifier "n")+, EOver+ False+ (ESub (EIdentifier "A") (EIdentifier "i"))+ (ESymbol TOver "\175")+]+>>> typst+not lr((p and q)) arrow.l.r.double lr((not p)) or lr((not q)) (union.big_(i eq 1)^n A_i)^macron eq sect.big_(i eq 1)^n A_i^macron
+ test/writer/typst/differentiable_manifold.test view
@@ -0,0 +1,63 @@+<<< native+[ ESub (EIdentifier "\947") (ENumber "1")+, ESymbol Rel "\8801"+, ESub (EIdentifier "\947") (ENumber "2")+, ESymbol Rel "\8660"+, EDelimited+ "{"+ ""+ [ Right+ (EArray+ [ AlignLeft ]+ [ [ [ ESub (EIdentifier "\947") (ENumber "1")+ , EDelimited "(" ")" [ Right (ENumber "0") ]+ , ESymbol Rel "="+ , ESub (EIdentifier "\947") (ENumber "2")+ , EDelimited "(" ")" [ Right (ENumber "0") ]+ , ESymbol Rel "="+ , EIdentifier "p"+ , ESymbol Pun ","+ , EText TextNormal " and "+ ]+ ]+ , [ [ ESub+ (EDelimited+ ""+ "|"+ [ Right+ (EFraction+ NormalFrac+ (EStyled TextNormal [ EIdentifier "d" ])+ (EGrouped+ [ EStyled TextNormal [ EIdentifier "d" ] , EIdentifier "t" ]))+ , Right (EIdentifier "\981")+ , Right (ESymbol Bin "\8728")+ , Right (ESub (EIdentifier "\947") (ENumber "1"))+ , Right (EDelimited "(" ")" [ Right (EIdentifier "t") ])+ ])+ (EGrouped [ EIdentifier "t" , ESymbol Rel "=" , ENumber "0" ])+ , ESymbol Rel "="+ , ESub+ (EDelimited+ ""+ "|"+ [ Right+ (EFraction+ NormalFrac+ (EStyled TextNormal [ EIdentifier "d" ])+ (EGrouped+ [ EStyled TextNormal [ EIdentifier "d" ] , EIdentifier "t" ]))+ , Right (EIdentifier "\981")+ , Right (ESymbol Bin "\8728")+ , Right (ESub (EIdentifier "\947") (ENumber "2"))+ , Right (EDelimited "(" ")" [ Right (EIdentifier "t") ])+ ])+ (EGrouped [ EIdentifier "t" , ESymbol Rel "=" , ENumber "0" ])+ ]+ ]+ ])+ ]+]+>>> typst+gamma_1 ident gamma_2 arrow.l.r.double {gamma_1 lr((0)) eq gamma_2 lr((0)) eq p comma upright(" and ")\+frac(upright(d), upright(d) t) phi.alt compose gamma_1 lr((t))\|_(t eq 0) eq frac(upright(d), upright(d) t) phi.alt compose gamma_2 lr((t))\|_(t eq 0)
+ test/writer/typst/divergence.test view
@@ -0,0 +1,25 @@+<<< native+[ ESymbol Ord "\8711"+, ESymbol Bin "\8901"+, EOver False (EIdentifier "v") (ESymbol Accent "\8407")+, ESymbol Rel "="+, EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "v") (EIdentifier "x") ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "x" ])+, ESymbol Bin "+"+, EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "v") (EIdentifier "y") ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "y" ])+, ESymbol Bin "+"+, EFraction+ NormalFrac+ (EGrouped+ [ ESymbol Ord "\8706" , ESub (EIdentifier "v") (EIdentifier "z") ])+ (EGrouped [ ESymbol Ord "\8706" , EIdentifier "z" ])+]+>>> typst+nabla dot.op v^⃗ eq frac(diff v_x, diff x) plus frac(diff v_y, diff y) plus frac(diff v_z, diff z)
+ test/writer/typst/double-struck.test view
@@ -0,0 +1,15 @@+<<< native+[ EStyled+ TextDoubleStruck+ [ EArray+ [ AlignLeft ]+ [ [ [ EText TextNormal "0123456789" ] ]+ , [ [ EText TextNormal "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ] ]+ , [ [ EText TextNormal "abcdefghijklmnopqrstuvwxyz" ] ]+ ]+ ]+]+>>> typst+bb(upright("0123456789")\+upright("ABCDEFGHIJKLMNOPQRSTUVWXYZ")\+upright("abcdefghijklmnopqrstuvwxyz"))
+ test/writer/typst/doubleint1.test view
@@ -0,0 +1,10 @@+<<< native+[ ESubsup (ESymbol Op "\8748") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+]+>>> typst+integral.double_0^1 f lr((x)) #h(0em) ⅆ x
+ test/writer/typst/genfrac.test view
@@ -0,0 +1,9 @@+<<< native+[ EDelimited+ "{"+ "}"+ [ Right (EFraction NoLineFrac (EIdentifier "x") (EIdentifier "y"))+ ]+]+>>> typst+lr({x / y})
+ test/writer/typst/largeop1.test view
@@ -0,0 +1,84 @@+<<< native+[ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ EText TextNormal "displaystyle: false largeop: false" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ , [ [ EText TextNormal "displaystyle: false largeop: true" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ , [ [ EText TextNormal "displaystyle: true largeop: false" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ , [ [ EText TextNormal "displaystyle: true largeop: true" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ , [ [ EText TextNormal "displaystyle: false largeop: default" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ , [ [ EText TextNormal "displaystyle: true largeop: default" ]+ , [ EGrouped+ [ ESymbol Op "\8896"+ , ESymbol Op "\8897"+ , ESymbol Op "\8747"+ , ESymbol Op "\8721"+ , ESymbol Op "\8719"+ , ESymbol Op "\8899"+ , ESymbol Op "\8898"+ ]+ ]+ ]+ ]+]+>>> typst+upright("displaystyle: false largeop: false") & and.big or.big integral sum product union.big sect.big\+upright("displaystyle: false largeop: true") & and.big or.big integral sum product union.big sect.big\+upright("displaystyle: true largeop: false") & and.big or.big integral sum product union.big sect.big\+upright("displaystyle: true largeop: true") & and.big or.big integral sum product union.big sect.big\+upright("displaystyle: false largeop: default") & and.big or.big integral sum product union.big sect.big\+upright("displaystyle: true largeop: default") & and.big or.big integral sum product union.big sect.big
+ test/writer/typst/largeopPos3.test view
@@ -0,0 +1,11 @@+<<< native+[ EUnderover+ False+ (ESymbol Op "\8898")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, EGrouped+ [ EIdentifier "A" , ESymbol Bin "\8745" , EIdentifier "B" ]+]+>>> typst+sect.big_(i eq 0)^oo A sect B
+ test/writer/typst/math-in-text.test view
@@ -0,0 +1,20 @@+<<< native+[ ESuper (EIdentifier "X") (ENumber "2")+, ESymbol Rel "="+, EIdentifier "y"+, EGrouped+ [ EText TextNormal " under "+ , ESub (EIdentifier "H") (ENumber "0")+ , EText TextNormal " except when "+ , EGrouped+ [ EIdentifier "x"+ , EGrouped+ [ EText TextBold " is less than "+ , EIdentifier "z"+ , EText TextBold "."+ ]+ ]+ ]+]+>>> typst+X^2 eq y upright(" under ") H_0 upright(" except when ") x bold(" is less than ") z bold(".")
+ test/writer/typst/moore_determinant.test view
@@ -0,0 +1,54 @@+<<< native+[ EIdentifier "M"+, ESymbol Rel "="+, EDelimited+ "["+ "]"+ [ Right+ (EArray+ [ AlignCenter , AlignCenter , AlignCenter , AlignCenter ]+ [ [ [ ESub (EIdentifier "\945") (ENumber "1") ]+ , [ ESubsup (EIdentifier "\945") (ENumber "1") (EIdentifier "q") ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup+ (EIdentifier "\945")+ (ENumber "1")+ (ESuper+ (EIdentifier "q")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "\8722" , ENumber "1" ]))+ ]+ ]+ , [ [ ESub (EIdentifier "\945") (ENumber "2") ]+ , [ ESubsup (EIdentifier "\945") (ENumber "2") (EIdentifier "q") ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup+ (EIdentifier "\945")+ (ENumber "2")+ (ESuper+ (EIdentifier "q")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "\8722" , ENumber "1" ]))+ ]+ ]+ , [ [ ESymbol Ord "\8942" ]+ , [ ESymbol Ord "\8942" ]+ , [ ESymbol Rel "\8945" ]+ , [ ESymbol Ord "\8942" ]+ ]+ , [ [ ESub (EIdentifier "\945") (EIdentifier "m") ]+ , [ ESubsup+ (EIdentifier "\945") (EIdentifier "m") (EIdentifier "q")+ ]+ , [ ESymbol Ord "\8943" ]+ , [ ESubsup+ (EIdentifier "\945")+ (EIdentifier "m")+ (ESuper+ (EIdentifier "q")+ (EGrouped [ EIdentifier "n" , ESymbol Bin "\8722" , ENumber "1" ]))+ ]+ ]+ ])+ ]+]+>>> typst+M eq mat(delim: "[", alpha_1, alpha_1^q, dots.h.c, alpha_1^q^(n minus 1); alpha_2, alpha_2^q, dots.h.c, alpha_2^q^(n minus 1); dots.v, dots.v, dots.down, dots.v; alpha_m, alpha_m^q, dots.h.c, alpha_m^q^(n minus 1))
+ test/writer/typst/nestFrac1.test view
@@ -0,0 +1,37 @@+<<< native+[ EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESqrt (ENumber "2")+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESqrt (ENumber "3")+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESqrt (ENumber "4")+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESqrt (ENumber "5")+ , ESymbol Bin "+"+ , EFraction+ NormalFrac+ (ENumber "1")+ (EGrouped+ [ ESqrt (ENumber "6") , ESymbol Bin "+" , EIdentifier "\8230" ])+ ])+ ])+ ])+ ])+]+>>> typst+frac(1, sqrt(2) plus frac(1, sqrt(3) plus frac(1, sqrt(4) plus frac(1, sqrt(5) plus frac(1, sqrt(6) plus dots.h)))))
+ test/writer/typst/nestScript.test view
@@ -0,0 +1,10 @@+<<< native+[ ESuper+ (EIdentifier "v")+ (ESuper+ (EIdentifier "w")+ (ESuper+ (EIdentifier "x") (ESuper (EIdentifier "y") (EIdentifier "z"))))+]+>>> typst+v^w^x^y^z
+ test/writer/typst/nestedAwidth1.test view
@@ -0,0 +1,33 @@+<<< native+[ EArray+ [ AlignCenter ]+ [ [ [ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ EIdentifier "x" ] , [ EIdentifier "y" ] ]+ ]+ ]+ ]+ , [ [ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ EIdentifier "x" ] , [ EIdentifier "y" ] ]+ ]+ ]+ ]+ , [ [ EArray+ [ AlignCenter , AlignCenter ]+ [ [ [ ENumber "1" ] , [ ENumber "2" ] ]+ , [ [ EIdentifier "x" ] , [ EIdentifier "y" ] ]+ ]+ ]+ ]+ ]+]+>>> typst+1 & 2\+x & y\+1 & 2\+x & y\+1 & 2\+x & y
+ test/writer/typst/notin.test view
@@ -0,0 +1,11 @@+<<< native+[ EIdentifier "x"+, ESymbol Rel "\8712"+, EIdentifier "y"+, ESymbol Bin "\8743"+, EIdentifier "x"+, ESymbol Rel "\8713"+, EIdentifier "y"+]+>>> typst+x in y and x in.not y
+ test/writer/typst/oint1.test view
@@ -0,0 +1,10 @@+<<< native+[ ESubsup (ESymbol Op "\8750") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+]+>>> typst+integral.cont_0^1 f lr((x)) #h(0em) ⅆ x
+ test/writer/typst/operatorname.test view
@@ -0,0 +1,71 @@+<<< native+[ EDelimited+ "{"+ ""+ [ Right+ (EArray+ [ AlignLeft , AlignLeft ]+ [ [ [ ESub (EMathOperator "div") (EIdentifier "x")+ , EIdentifier "u"+ , ESuper (EMathOperator "div") (EIdentifier "x")+ , EIdentifier "u"+ , ESubsup (EMathOperator "div") (EIdentifier "x") (EIdentifier "y")+ , EIdentifier "u"+ , ESubsup (EMathOperator "div") (EIdentifier "x") (EIdentifier "y")+ , EIdentifier "u"+ ]+ , [ EText TextNormal "operatorname" ]+ ]+ , [ [ EUnder+ True+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ , EIdentifier "u"+ , EOver True (EMathOperator "\8902-lim'sup") (EIdentifier "w")+ , EIdentifier "u"+ , EUnderover+ True+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ (EIdentifier "w")+ , EIdentifier "u"+ , EUnderover+ True+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ (EIdentifier "w")+ , EIdentifier "u"+ ]+ , [ EText TextNormal "operatorname*" ]+ ]+ , [ [ ESub+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ , EIdentifier "u"+ , ESuper (EMathOperator "\8902-lim'sup") (EIdentifier "w")+ , EIdentifier "u"+ , ESubsup+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ (EIdentifier "w")+ , EIdentifier "u"+ , ESubsup+ (EMathOperator "\8902-lim'sup")+ (EGrouped [ EIdentifier "x" , ESymbol Rel "\8594" , ENumber "0" ])+ (EIdentifier "w")+ , EIdentifier "u"+ ]+ , [ EText TextNormal "operatorname*:nolimits" ]+ ]+ , [ [ ESub (EMathOperator "curl") (EIdentifier "x")+ , EIdentifier "v"+ , EUnder True (EMathOperator "argmax") (EIdentifier "K")+ , EIdentifier "u"+ ]+ , [ EText TextNormal "DeclareMathOperator" ]+ ]+ ])+ ]+]+>>> typst+cases(delim: "{", "div"_x u "div"^x u "div"_x^y u "div"_x^y u & upright("operatorname"), "⋆-lim'sup"_(x arrow.r 0) u "⋆-lim'sup"^w u "⋆-lim'sup"_(x arrow.r 0)^w u "⋆-lim'sup"_(x arrow.r 0)^w u & upright("operatorname*"), "⋆-lim'sup"_(x arrow.r 0) u "⋆-lim'sup"^w u "⋆-lim'sup"_(x arrow.r 0)^w u "⋆-lim'sup"_(x arrow.r 0)^w u & upright("operatorname*:nolimits"), "curl"_x v "argmax"_K u & upright("DeclareMathOperator"))
+ test/writer/typst/phantom.test view
@@ -0,0 +1,10 @@+<<< native+[ EDelimited+ "("+ ")"+ [ Right+ (EPhantom (EFraction NormalFrac (ENumber "1") (ENumber "2")))+ ]+]+>>> typst+lr((#hide[1 / 2]))
+ test/writer/typst/primes1.test view
@@ -0,0 +1,40 @@+<<< native+[ ESuper (EIdentifier "x") (ENumber "2")+, ESymbol Bin "+"+, ESuper (ENumber "2") (ENumber "2")+, ESymbol Bin "+"+, ESuper (EIdentifier "x") (ESymbol Ord "\8242")+, ESymbol Bin "+"+, ESuper (EIdentifier "x") (ESymbol Accent "'")+, ESymbol Bin "+"+, ESuper (EIdentifier "x") (EMathOperator "''")+, ESymbol Bin "+"+, EIdentifier "x"+, EIdentifier "\8242"+, ESymbol Bin "+"+, ESuper+ (ESuper (EIdentifier "x") (ESymbol Accent "'"))+ (ESymbol Accent "'")+, ESymbol Bin "+"+, ESuper+ (ESuper (EIdentifier "x") (ESymbol Accent "'")) (ENumber "2")+, ESymbol Bin "+"+, ESuper+ (EIdentifier "x")+ (EGrouped+ [ ESymbol Accent "'" , ESymbol Bin "+" , ESymbol Accent "'" ])+, ESymbol Bin "+"+, ESuper+ (ESuper (EIdentifier "x") (ESymbol Accent "'"))+ (ESymbol Accent "'")+, ESymbol Bin "+"+, ESuper+ (EIdentifier "x")+ (ESuper (ESymbol Accent "'") (ESymbol Accent "'"))+, ESymbol Bin "+"+, ESuper (ESymbol Accent "'") (ESymbol Accent "'")+, ESymbol Bin "+"+, ESuper (ESymbol Accent "'") (ESymbol Accent "'")+]+>>> typst+x^2 plus 2^2 plus x^prime plus x^quote.single plus x^"''" plus x prime plus x^quote.single^quote.single plus x^quote.single^2 plus x^(quote.single plus quote.single) plus x^quote.single^quote.single plus x^quote.single^quote.single plus quote.single^quote.single plus quote.single^quote.single
+ test/writer/typst/primes2.test view
@@ -0,0 +1,30 @@+<<< native+[ ESuper (EIdentifier "H") (ESymbol Accent "\"")+, ESuper (EIdentifier "H") (ESymbol Accent "'")+, ESuper (EIdentifier "H") (ESymbol Ord "*")+, ESuper (EIdentifier "H") (ESymbol Accent "`")+, ESuper (EIdentifier "H") (ESymbol Accent "\170")+, ESuper (EIdentifier "H") (ESymbol Ord "\176")+, ESuper (EIdentifier "H") (ESymbol Accent "\178")+, ESuper (EIdentifier "H") (ESymbol Accent "\179")+, ESuper (EIdentifier "H") (ESymbol Accent "\180")+, ESuper (EIdentifier "H") (ESymbol Accent "\185")+, ESuper (EIdentifier "H") (ESymbol Accent "\186")+, ESuper (EIdentifier "H") (ESymbol Open "\8216")+, ESuper (EIdentifier "H") (ESymbol Close "\8217")+, ESuper (EIdentifier "H") (ESymbol Accent "\8218")+, ESuper (EIdentifier "H") (ESymbol Accent "\8219")+, ESuper (EIdentifier "H") (ESymbol Open "\8220")+, ESuper (EIdentifier "H") (ESymbol Close "\8221")+, ESuper (EIdentifier "H") (ESymbol Accent "\8222")+, ESuper (EIdentifier "H") (ESymbol Accent "\8223")+, ESuper (EIdentifier "H") (ESymbol Ord "\8242")+, ESuper (EIdentifier "H") (ESymbol Accent "\8243")+, ESuper (EIdentifier "H") (ESymbol Accent "\8244")+, ESuper (EIdentifier "H") (ESymbol Accent "\8245")+, ESuper (EIdentifier "H") (ESymbol Accent "\8246")+, ESuper (EIdentifier "H") (ESymbol Accent "\8247")+, ESuper (EIdentifier "H") (ESymbol Accent "\8279")+]+>>> typst+H^quote.double H^quote.single H^ast H^grave H^ª H^degree H^² H^³ H^acute H^¹ H^º H^quote.l.single H^quote.r.single H^quote.low.single H^quote.high.single H^quote.l.double H^quote.r.double H^quote.low.double H^quote.high.double H^prime H^prime.double H^prime.triple H^prime.rev H^prime.double.rev H^prime.triple.rev H^prime.quad
+ test/writer/typst/prod2.test view
@@ -0,0 +1,10 @@+<<< native+[ EUnderover+ False+ (ESymbol Op "\8719")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+]+>>> typst+product_(i eq 0)^oo x_i
+ test/writer/typst/schwinger_dyson.test view
@@ -0,0 +1,57 @@+<<< native+[ EDelimited+ "\10216"+ "\10217"+ [ Right (EIdentifier "\968")+ , Right+ (EDelimited+ "|"+ "|"+ [ Right (EStyled TextScript [ EIdentifier "T" ])+ , Right+ (EDelimited+ "{"+ "}"+ [ Right+ (EFraction+ NormalFrac+ (EIdentifier "\948")+ (EGrouped [ EIdentifier "\948" , EIdentifier "\981" ]))+ , Right (EIdentifier "F")+ , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+ ])+ ])+ , Right (EIdentifier "\968")+ ]+, ESymbol Rel "="+, ESymbol Bin "\8722"+, EStyled TextNormal [ EIdentifier "i" ]+, EDelimited+ "\10216"+ "\10217"+ [ Right (EIdentifier "\968")+ , Right+ (EDelimited+ "|"+ "|"+ [ Right (EStyled TextScript [ EIdentifier "T" ])+ , Right+ (EDelimited+ "{"+ "}"+ [ Right (EIdentifier "F")+ , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+ , Right+ (EFraction+ NormalFrac+ (EIdentifier "\948")+ (EGrouped [ EIdentifier "\948" , EIdentifier "\981" ]))+ , Right (EIdentifier "S")+ , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+ ])+ ])+ , Right (EIdentifier "\968")+ ]+]+>>> typst+⟨psi lr(|cal(T) lr({frac(delta, delta phi.alt) F lr([phi.alt])})|) psi⟩ eq minus upright(i) ⟨psi lr(|cal(T) lr({F lr([phi.alt]) frac(delta, delta phi.alt) S lr([phi.alt])})|) psi⟩
+ test/writer/typst/simple_sum_formula.test view
@@ -0,0 +1,15 @@+<<< native+[ EUnderover+ True+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "1" ])+ (ENumber "100")+, EIdentifier "x"+, ESymbol Rel "="+, EFraction+ NormalFrac+ (EGrouped [ ENumber "100" , ESymbol Bin "*" , ENumber "101" ])+ (ENumber "2")+]+>>> typst+sum_(i eq 1)^100 x eq frac(100 ast 101, 2)
+ test/writer/typst/sophomores_dream.test view
@@ -0,0 +1,25 @@+<<< native+[ ESubsup (ESymbol Op "\8747") (ENumber "0") (ENumber "1")+, ESuper (EIdentifier "x") (EIdentifier "x")+, ESpace (1 % 6)+, EStyled TextNormal [ EIdentifier "d" ]+, EIdentifier "x"+, ESymbol Rel "="+, EUnderover+ True+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "n" , ESymbol Rel "=" , ENumber "1" ])+ (ESymbol Ord "\8734")+, EGrouped+ [ ESuper+ (EDelimited+ "(" ")" [ Right (ESymbol Op "\8722") , Right (ENumber "1") ])+ (EGrouped [ EIdentifier "n" , ESymbol Bin "+" , ENumber "1" ])+ , ESpace (1 % 6)+ , ESuper+ (EIdentifier "n")+ (EGrouped [ ESymbol Op "\8722" , EIdentifier "n" ])+ ]+]+>>> typst+integral_0^1 x^x thin upright(d) x eq sum_(n eq 1)^oo lr((minus 1))^(n plus 1) thin n^(minus n)
+ test/writer/typst/span.test view
@@ -0,0 +1,9 @@+<<< native+[ EIdentifier "Y"+, EOver False (ESymbol Op "\8592") (EIdentifier "f")+, EIdentifier "X"+, EOver False (ESymbol Op "\8594") (EIdentifier "g")+, EIdentifier "Z"+]+>>> typst+Y arrow.l^f X arrow.r^g Z
+ test/writer/typst/sphere_volume.test view
@@ -0,0 +1,133 @@+<<< native+[ EIdentifier "S"+, ESymbol Rel "="+, ESymbol Open "{"+, ENumber "0"+, ESymbol Rel "\8804"+, EIdentifier "\981"+, ESymbol Rel "\8804"+, ENumber "2"+, EIdentifier "\960"+, ESymbol Pun ","+, ESpace (2 % 9)+, ENumber "0"+, ESymbol Rel "\8804"+, EIdentifier "\952"+, ESymbol Rel "\8804"+, EIdentifier "\960"+, ESymbol Pun ","+, ESpace (2 % 9)+, ENumber "0"+, ESymbol Rel "\8804"+, EIdentifier "\961"+, ESymbol Rel "\8804"+, EIdentifier "R"+, ESymbol Close "}"+, EArray+ [ AlignRight , AlignLeft ]+ [ [ [ EStyled+ TextNormal+ [ EIdentifier "V"+ , EIdentifier "o"+ , EIdentifier "l"+ , EIdentifier "u"+ , EIdentifier "m"+ , EIdentifier "e"+ ]+ ]+ , [ ESymbol Rel "="+ , EUnder False (ESymbol Op "\8749") (EIdentifier "S")+ , ESpace ((-1) % 6)+ , ESuper (EIdentifier "\961") (ENumber "2")+ , EMathOperator "sin"+ , EIdentifier "\952"+ , ESpace (1 % 6)+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\961"+ , ESpace (1 % 6)+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\952"+ , ESpace (1 % 6)+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\981"+ ]+ ]+ , [ []+ , [ ESymbol Rel "="+ , ESubsup+ (ESymbol Op "\8747")+ (ENumber "0")+ (EGrouped [ ENumber "2" , EIdentifier "\960" ])+ , ESpace ((-1) % 6)+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\981"+ , ESpace (1 % 6)+ , ESubsup (ESymbol Op "\8747") (ENumber "0") (EIdentifier "\960")+ , ESpace ((-1) % 6)+ , EMathOperator "sin"+ , EIdentifier "\952"+ , ESpace (1 % 6)+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\952"+ , ESpace (1 % 6)+ , ESubsup (ESymbol Op "\8747") (ENumber "0") (EIdentifier "R")+ , ESpace ((-1) % 6)+ , ESuper (EIdentifier "\961") (ENumber "2")+ , EStyled TextNormal [ EIdentifier "d" ]+ , EIdentifier "\961"+ ]+ ]+ , [ []+ , [ ESymbol Rel "="+ , EIdentifier "\981"+ , ESubsup+ (EScaled (9 % 5) (ESymbol Open "|"))+ (ENumber "0")+ (EGrouped [ ENumber "2" , EIdentifier "\960" ])+ , ESpace (2 % 9)+ , EDelimited+ "("+ ")"+ [ Right (ESymbol Op "\8722")+ , Right (EMathOperator "cos")+ , Right (EIdentifier "\952")+ ]+ , ESubsup+ (EScaled (9 % 5) (ESymbol Open "|"))+ (ENumber "0")+ (EIdentifier "\960")+ , ESpace (2 % 9)+ , EFraction InlineFrac (ENumber "1") (ENumber "3")+ , ESuper (EIdentifier "\961") (ENumber "3")+ , ESubsup+ (EScaled (9 % 5) (ESymbol Open "|"))+ (ENumber "0")+ (EIdentifier "R")+ ]+ ]+ , [ []+ , [ ESymbol Rel "="+ , ENumber "2"+ , EIdentifier "\960"+ , ESymbol Bin "\215"+ , ENumber "2"+ , ESymbol Bin "\215"+ , EFraction InlineFrac (ENumber "1") (ENumber "3")+ , ESuper (EIdentifier "R") (ENumber "3")+ ]+ ]+ , [ []+ , [ ESymbol Rel "="+ , EFraction InlineFrac (ENumber "4") (ENumber "3")+ , EIdentifier "\960"+ , ESuper (EIdentifier "R") (ENumber "3")+ ]+ ]+ ]+]+>>> typst+S eq brace.l 0 lt.eq phi.alt lt.eq 2 pi comma med 0 lt.eq theta lt.eq pi comma med 0 lt.eq rho lt.eq R brace.r upright(V o l u m e) & eq integral.triple_S #h(-1em) rho^2 sin theta thin upright(d) rho thin upright(d) theta thin upright(d) phi.alt\+ & eq integral_0^(2 pi) #h(-1em) upright(d) phi.alt thin integral_0^pi #h(-1em) sin theta thin upright(d) theta thin integral_0^R #h(-1em) rho^2 upright(d) rho\+ & eq phi.alt #scale(x: 180%, y: 180%)[bar.v]_0^(2 pi) med lr((minus cos theta)) #scale(x: 180%, y: 180%)[bar.v]_0^pi med 1 / 3 rho^3 #scale(x: 180%, y: 180%)[bar.v]_0^R\+ & eq 2 pi times 2 times 1 / 3 R^3\+ & eq 4 / 3 pi R^3
+ test/writer/typst/stackrel.test view
@@ -0,0 +1,7 @@+<<< native+[ ESub (EIdentifier "u") (EIdentifier "n")+, EOver False (ESymbol Rel "\8594") (EIdentifier "w")+, EIdentifier "u"+]+>>> typst+u_n arrow.r^w u
+ test/writer/typst/substack.test view
@@ -0,0 +1,37 @@+<<< native+[ EUnder+ True+ (ESymbol Op "\8721")+ (EArray+ [ AlignCenter ]+ [ [ [ EGrouped+ [ ENumber "0"+ , ESymbol Rel "<"+ , EIdentifier "i"+ , ESymbol Rel "<"+ , EIdentifier "m"+ ]+ ]+ ]+ , [ [ EGrouped+ [ ENumber "0"+ , ESymbol Rel "<"+ , EIdentifier "j"+ , ESymbol Rel "<"+ , EIdentifier "n"+ ]+ ]+ ]+ ])+, EIdentifier "P"+, EDelimited+ "("+ ")"+ [ Right (EIdentifier "i")+ , Right (ESymbol Pun ",")+ , Right (EIdentifier "j")+ ]+]+>>> typst+sum_0 lt i lt m\+0 lt j lt n P lr((i comma j))
+ test/writer/typst/subsup.test view
@@ -0,0 +1,68 @@+<<< native+[ ESubsup (EIdentifier "x") (EIdentifier "b") (EIdentifier "a")+, ESpace (1 % 1)+, ESubsup (EIdentifier "x") (EIdentifier "b") (EIdentifier "a")+, ESpace (1 % 1)+, EUnder True (EMathOperator "min") (EIdentifier "A")+, ESpace (1 % 1)+, EUnder True (EMathOperator "max") (EIdentifier "B")+, ESpace (1 % 1)+, EUnder True (EMathOperator "det") (EIdentifier "C")+, ESpace (1 % 1)+, EUnder True (EMathOperator "Pr") (EIdentifier "A")+, ESpace (1 % 1)+, EUnder True (EMathOperator "gcd") (EIdentifier "A")+, ESpace (1 % 1)+, ESuper+ (EOver False (EIdentifier "u") (ESymbol Accent "\775"))+ (ENumber "2")+, ESpace (1 % 1)+, ESub+ (EOver False (EIdentifier "u") (ESymbol TOver "\175"))+ (EIdentifier "\949")+, ESpace (1 % 1)+, ESubsup+ (EUnder False (EIdentifier "u") (ESymbol TUnder "_"))+ (EIdentifier "b")+ (EIdentifier "a")+, ESpace (1 % 1)+, EOver+ False+ (EOver+ False+ (EGrouped [ EIdentifier "a" , ESymbol Bin "+" , EIdentifier "b" ])+ (ESymbol TOver "\9182"))+ (EText TextNormal "term")+, ESpace (1 % 1)+, EOver+ False+ (EOver+ False+ (EGrouped [ EIdentifier "a" , ESymbol Bin "+" , EIdentifier "b" ])+ (ESymbol TOver "\9140"))+ (EIdentifier "c")+, ESpace (1 % 1)+, EUnder+ False+ (EUnder+ False+ (EGrouped [ EIdentifier "a" , ESymbol Bin "+" , EIdentifier "b" ])+ (ESymbol TUnder "\9183"))+ (EIdentifier "c")+, ESpace (1 % 1)+, EUnder+ False+ (EUnder+ False+ (EGrouped [ EIdentifier "a" , ESymbol Bin "+" , EIdentifier "b" ])+ (ESymbol TUnder "\9141"))+ (EIdentifier "c")+, ESuper (ESpace (1 % 1)) (EIdentifier "H")+, EIdentifier "e"+, ENumber "3"+, ESub (ESpace (1 % 1)) (EIdentifier "x")+, EIdentifier "A"+, ESubsup (ESpace (1 % 1)) (EIdentifier "x") (ENumber "3")+]+>>> typst+x_b^a quad x_b^a quad min_A quad max_B quad det_C quad Pr_A quad gcd_A quad u^̇^2 quad u^macron_epsilon quad underline(u)_b^a quad overbrace(a plus b)^upright("term") quad overbracket(a plus b)^c quad (a plus b)_brace.b_c quad (a plus b)_bracket.b_c quad^H e 3 quad_x A quad_x^3
+ test/writer/typst/sum1.test view
@@ -0,0 +1,10 @@+<<< native+[ EUnderover+ False+ (ESymbol Op "\8721")+ (EGrouped [ EIdentifier "i" , ESymbol Rel "=" , ENumber "0" ])+ (EIdentifier "\8734")+, ESub (EIdentifier "x") (EIdentifier "i")+]+>>> typst+sum_(i eq 0)^oo x_i
+ test/writer/typst/text.test view
@@ -0,0 +1,8 @@+<<< native+[ EText TextNormal "(\321ukasiewicz, G\246del, and G\246del)"+, EText+ TextItalic+ "\8230\8211\8220double quotes\8221\8212\8216single quotes\8217"+]+>>> typst+upright("(Łukasiewicz, Gödel, and Gödel)") italic("…–“double quotes”—‘single quotes’")
+ test/writer/typst/tripleint2.test view
@@ -0,0 +1,10 @@+<<< native+[ ESubsup (ESymbol Op "\8749") (ENumber "0") (ENumber "1")+, EIdentifier "f"+, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESpace (1 % 9)+, ESymbol Ord "\8518"+, EIdentifier "x"+]+>>> typst+integral.triple_0^1 f lr((x)) #h(0em) ⅆ x
+ test/writer/typst/unicode.test view
@@ -0,0 +1,9 @@+<<< native+[ EIdentifier "f"+, ESymbol Rel ":"+, EIdentifier "X"+, ESymbol Rel "\8594"+, EIdentifier "Y"+]+>>> typst+f colon X arrow.r Y
+ test/writer/typst/verbar2.test view
@@ -0,0 +1,9 @@+<<< native+[ EDelimited+ "|"+ "|"+ [ Right (EFraction NormalFrac (EIdentifier "H") (EIdentifier "K"))+ ]+]+>>> typst+lr(|H / K|)
texmath.cabal view
@@ -1,12 +1,12 @@ Name: texmath-Version: 0.12.6+Version: 0.12.7 Cabal-Version: >= 1.10 Build-type: Simple Synopsis: Conversion between math formats. Description: The texmath library provides functions to read and write TeX math, presentation MathML, and OMML (Office Math Markup Language, used in Microsoft Office). Support is also- included for converting math formats to Gnu eqn and to pandoc's+ included for converting math formats to Gnu eqn, typst, and pandoc's native format (allowing conversion, via pandoc, to a variety of different markup formats). The TeX reader supports basic LaTeX and AMS extensions, and it can parse and apply LaTeX macros.@@ -43,6 +43,7 @@ test/writer/mml/*.test test/writer/omml/*.test test/writer/tex/*.test+ test/writer/typst/*.test test/writer/eqn/*.test test/reader/mml/*.test test/reader/tex/*.test@@ -94,6 +95,7 @@ Text.TeXMath.Writers.OMML, Text.TeXMath.Writers.Pandoc, Text.TeXMath.Writers.TeX,+ Text.TeXMath.Writers.Typst, Text.TeXMath.Writers.Eqn, Text.TeXMath.Unicode.ToUnicode, Text.TeXMath.Unicode.ToTeX,