aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <[email protected]>2023-07-06 12:20:01 -0700
committerJohn MacFarlane <[email protected]>2023-07-06 12:20:20 -0700
commita2be4ac62bfd95ce8007af0de925a675bd782fa2 (patch)
treee7c5fa1e5bfed448ca558461263425104c7817a2
parent001531e604873f43ac41d7729f6fa6c0a86c0bbf (diff)
Add typst reader tests.
Closes #8942.
-rw-r--r--cabal.project2
-rw-r--r--pandoc.cabal2
-rw-r--r--stack.yaml2
-rw-r--r--test/Tests/Old.hs5
-rw-r--r--test/typst-reader.native5394
-rw-r--r--test/typst-reader.typ28
-rw-r--r--test/undergradmath.typ510
7 files changed, 5941 insertions, 2 deletions
diff --git a/cabal.project b/cabal.project
index d9254c9e3..f62bdd24e 100644
--- a/cabal.project
+++ b/cabal.project
@@ -15,6 +15,6 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/jgm/typst-hs
- tag: b495c1bdd3d06cf4e9bc89fa92f480a640b99735
+ tag: a6de1c30f163be0f5cb9e3543fdf5977217da0ae
-- when time for a release:
-- Release new skylighting, skylighting-core and depend on them
diff --git a/pandoc.cabal b/pandoc.cabal
index 25ff252cf..9b330f437 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -273,6 +273,8 @@ extra-source-files:
test/media/rId25.jpg
test/media/rId26.jpg
test/media/rId27.jpg
+ test/typst-reader.typ
+ test/undergradmath.typ
test/latex-reader.latex
test/textile-reader.textile
test/markdown-reader-more.txt
diff --git a/stack.yaml b/stack.yaml
index 4309d54e9..c74ac1333 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -25,7 +25,7 @@ extra-deps:
- typst-symbols-0.1.2
- toml-parser-1.1.1.0
- git: https://github.com/jgm/typst-hs
- commit: b495c1bdd3d06cf4e9bc89fa92f480a640b99735
+ commit: a6de1c30f163be0f5cb9e3543fdf5977217da0ae
- git: https://github.com/jgm/pandoc-types
commit: 2b68c905e75c65e66eaa4635e4c1bd6aabd6302f
diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs
index 35ab18686..49a09e596 100644
--- a/test/Tests/Old.hs
+++ b/test/Tests/Old.hs
@@ -195,7 +195,12 @@ tests pandocPath =
]
, testGroup "typst"
[ testGroup "writer" $ writerTests' "typst"
+ , testGroup "reader"
+ [ test' "typst-reader" ["-r", "typst", "-w", "native", "-s"]
+ "typst-reader.typ" "typst-reader.native"
+ ]
]
+
, testGroup "creole"
[ test' "reader" ["-r", "creole", "-w", "native", "-s"]
"creole-reader.txt" "creole-reader.native"
diff --git a/test/typst-reader.native b/test/typst-reader.native
new file mode 100644
index 000000000..4c9f38015
--- /dev/null
+++ b/test/typst-reader.native
@@ -0,0 +1,5394 @@
+Pandoc
+ Meta { unMeta = fromList [] }
+ [ Para []
+ , Header
+ 1
+ ( "" , [] , [] )
+ [ Str "Fibonacci" , Space , Str "sequence" ]
+ , Para
+ [ Str "The"
+ , Space
+ , Str "Fibonacci"
+ , Space
+ , Str "sequence"
+ , Space
+ , Str "is"
+ , Space
+ , Str "defined"
+ , Space
+ , Str "through"
+ , Space
+ , Str "the"
+ , SoftBreak
+ , Str "recurrence"
+ , Space
+ , Str "relation"
+ , Space
+ , Math InlineMath "F_{n} = F_{n - 1} + F_{n - 2}"
+ , Str "."
+ , SoftBreak
+ , Str "It"
+ , Space
+ , Str "can"
+ , Space
+ , Str "also"
+ , Space
+ , Str "be"
+ , Space
+ , Str "expressed"
+ , Space
+ , Str "in"
+ , Space
+ , Emph [ Str "closed" , Space , Str "form:" ]
+ ]
+ , Para
+ [ Math
+ InlineMath
+ "F_{n} = \\left\\lfloor {\\frac{1}{\\sqrt{5}}\\phi^{n}} \\right\\rceil,\\quad\\phi = \\frac{1 + \\sqrt{5}}{2}"
+ ]
+ , Para []
+ , Para
+ [ Str "The"
+ , Space
+ , Str "first"
+ , Space
+ , Str "8"
+ , Space
+ , Str "numbers"
+ , Space
+ , Str "of"
+ , Space
+ , Str "the"
+ , Space
+ , Str "sequence"
+ , Space
+ , Str "are:"
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{1}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{2}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{3}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{4}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{5}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{6}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{7}" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Math InlineMath "F_{8}" ] ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "1" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "1" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "2" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "3" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "5" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "8" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "13" ] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [ Str "21" ] ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para []
+ , Para []
+ , Para []
+ , Para []
+ , Para []
+ , Para []
+ , Div
+ ( "" , [ "columns-flow" ] , [ ( "count" , "2" ) ] )
+ [ Para
+ [ Span
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Strong
+ [ Str "Typst"
+ , Space
+ , Str "Math"
+ , Space
+ , Str "for"
+ , Space
+ , Str "Undergrads"
+ ]
+ ]
+ ( "https://github.com/johanvx/typst-undergradmath"
+ , ""
+ )
+ ]
+ ]
+ ]
+ , Para
+ [ Str "This"
+ , Space
+ , Str "is"
+ , Space
+ , Str "a"
+ , Space
+ , Str "Typst"
+ , Space
+ , Str "port"
+ , Space
+ , Str "of"
+ , Space
+ , Emph
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Str "L\8202A\8202"
+ , Span ( "" , [ "box" ] , [] ) [ Str "T\8202E\8202X" ]
+ ]
+ , Space
+ , Str "Math"
+ , Space
+ , Str "for"
+ , Space
+ , Str "Undergrads"
+ ]
+ , Space
+ , Str "by"
+ , Space
+ , Str "Jim"
+ , Space
+ , Str "Hefferon."
+ , SoftBreak
+ , Str "The"
+ , Space
+ , Str "original"
+ , Space
+ , Str "version"
+ , Space
+ , Str "is"
+ , Space
+ , Str "available"
+ , Space
+ , Str "at"
+ , Space
+ , Underline
+ [ Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Str
+ "https://gitlab.com/jim.hefferon/undergradmath"
+ ]
+ ( "https://gitlab.com/jim.hefferon/undergradmath"
+ , ""
+ )
+ ]
+ ]
+ , Str "."
+ ]
+ , Para
+ [ Strong
+ [ Str "Meaning"
+ , Space
+ , Str "of"
+ , Space
+ , Str "annotations\8192\160"
+ ]
+ ]
+ , Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidth 0.3333333333333333 )
+ , ( AlignLeft , ColWidth 0.6666666666666666 )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Str "2023-05-22"
+ , Space
+ , Str "\10060"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Str "This"
+ , Space
+ , Str "is"
+ , Space
+ , Str "unavailable."
+ , Space
+ , Str "Last"
+ , Space
+ , Str "check"
+ , Space
+ , Str "date"
+ , Space
+ , Str "is"
+ , Space
+ , Str "2023-05-22."
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ , Para [ Span ( "unavailable" , [] , [] ) [] ]
+ , Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidth 0.3333333333333333 )
+ , ( AlignLeft , ColWidth 0.6666666666666666 )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] ) [ Str "\128166" ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Str "Get"
+ , Space
+ , Str "this"
+ , Space
+ , Str "in"
+ , Space
+ , Str "a"
+ , Space
+ , Str "tricky"
+ , Space
+ , Str "way."
+ , Space
+ , Str "Need"
+ , Space
+ , Str "a"
+ , Space
+ , Str "simpler"
+ , Space
+ , Str "method."
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ , Para [ Span ( "tricky" , [] , [] ) [] ]
+ , Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidth 0.3333333333333333 )
+ , ( AlignLeft , ColWidth 0.6666666666666666 )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Str "No"
+ , Space
+ , Str "idea"
+ , Space
+ , Str "\128533"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Str "Don\8217t"
+ , Space
+ , Str "know"
+ , Space
+ , Str "how"
+ , Space
+ , Str "to"
+ , Space
+ , Str "get"
+ , Space
+ , Str "this."
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ , Para [ Span ( "noidea" , [] , [] ) [] ]
+ , Para
+ [ Strong [ Str "Rule" , Space , Str "One\8192\160" ]
+ , Str "Any"
+ , Space
+ , Str "mathematics"
+ , Space
+ , Str "at"
+ , Space
+ , Str "all,"
+ , Space
+ , Str "even"
+ , Space
+ , Str "a"
+ , Space
+ , Str "single"
+ , Space
+ , Str "character,"
+ , Space
+ , Str "gets"
+ , Space
+ , Str "a"
+ , Space
+ , Str "mathematical"
+ , Space
+ , Str "setting."
+ , SoftBreak
+ , Str "Thus,"
+ , Space
+ , Str "for"
+ , Space
+ , Str "\8220the"
+ , Space
+ , Str "value"
+ , Space
+ , Str "of"
+ , Space
+ , Math InlineMath "x"
+ , Space
+ , Str "is"
+ , Space
+ , Math InlineMath "7"
+ , Str "\8221"
+ , Space
+ , Str "enter"
+ , Space
+ , Code ( "" , [] , [] ) "the value of $x$ is $7$"
+ , Str "."
+ ]
+ , Para
+ [ Strong [ Str "Template\8192\160" ]
+ , Str "Your"
+ , Space
+ , Str "document"
+ , Space
+ , Str "should"
+ , Space
+ , Str "contain"
+ , Space
+ , Str "at"
+ , Space
+ , Str "least"
+ , Space
+ , Str "this."
+ ]
+ , Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "-- document body here --\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ , Para
+ [ Strong
+ [ Str "Common" , Space , Str "constructs\8192\160" ]
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "x^{2}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "x^2"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sqrt{2}"
+ , Str ","
+ , Space
+ , Math InlineMath "\\sqrt[n]{3}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sqrt(2)"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "root(n, 3)"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "x_{i,j}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "x_(i, j)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\frac{2}{3}"
+ , Str ","
+ , Space
+ , Math InlineMath "2/3"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "2 / 3"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "2 \\/ 3"
+ , Space
+ , Str "or"
+ , Space
+ , Code ( "" , [] , [] ) "2 slash 3"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong
+ [ Str "Calligraphic" , Space , Str "letters\8192\160" ]
+ , Str "Use"
+ , Space
+ , Str "as"
+ , Space
+ , Str "in"
+ , Space
+ , Code ( "" , [] , [] ) "$cal(A)$"
+ , Str "."
+ ]
+ , Para
+ [ Math InlineMath "\\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}" ]
+ , Para
+ [ Str "Getting"
+ , Space
+ , Str "script"
+ , Space
+ , Str "letters"
+ , Space
+ , Str "is"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[unavailable]" ]
+ ( "#unavailable" , "" )
+ , Str "."
+ ]
+ , Para [ Strong [ Str "Greek\8192\160" ] ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\alpha"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "alpha"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\xi"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Xi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "xi"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Xi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\beta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "beta"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\959"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "omicron"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\gamma"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Gamma"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "gamma"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Gamma"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\pi"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Pi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "pi"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Pi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\delta"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Delta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "delta"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Delta"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varpi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "pi.alt"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\epsilon"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "epsilon.alt"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\rho"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "rho"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varepsilon"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "epsilon"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varrho"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "rho.alt"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\zeta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "zeta"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sigma"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Sigma"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sigma"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Sigma"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\eta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "eta"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varsigma"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "\\u{03C2}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\theta"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Theta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "theta"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Theta"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\tau"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tau"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\vartheta"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "theta.alt"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\upsilon"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Upsilon"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "upsilon"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Upsilon"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\iota"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "iota"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\phi"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Phi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "phi.alt"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Phi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\kappa"
+ , Str "\8192"
+ , Math InlineMath "\922"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varphi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "phi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\lambda"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Lambda"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "lambda"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Lambda"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\chi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "chi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mu"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "mu"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\psi"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Psi"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "psi"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Psi"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nu"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "nu"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\omega"
+ , Str ","
+ , Space
+ , Math InlineMath "\\Omega"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "omega"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "Omega"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong
+ [ Str "Sets"
+ , Space
+ , Str "and"
+ , Space
+ , Str "logic\8192\160"
+ ]
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cup"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "union"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mathbb{R}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "RR"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "bb(R)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\forall"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "forall"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cap"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sect"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mathbb{Z}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ZZ"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "bb(Z)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\exists"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "exists"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\subset"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "subset"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mathbb{Q}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "QQ"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "bb(Q)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\neg"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "not"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\subseteq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "subset.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mathbb{N}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "NN"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "bb(N)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\vee"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "or"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\supset"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "supset"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mathbb{C}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "CC"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "bb(C)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\land"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "and"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\supseteq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "supset.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varnothing"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "diameter"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\vdash"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tack.r"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\in"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "in"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\varnothing"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "nothing"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\models"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "models"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\notin"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "in.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\1488"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "alef"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\smallsetminus"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "without"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "Negate"
+ , Space
+ , Str "an"
+ , Space
+ , Str "operator,"
+ , Space
+ , Str "as"
+ , Space
+ , Str "in"
+ , Space
+ , Math InlineMath "\8836"
+ , Str ","
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "subset.not"
+ , Str "."
+ , SoftBreak
+ , Str "Get"
+ , Space
+ , Str "the"
+ , Space
+ , Str "set"
+ , Space
+ , Str "complement"
+ , Space
+ , Math InlineMath "A^{\\mathsf{c}}"
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "A^(sans(c))"
+ , Space
+ , Str "(or"
+ , Space
+ , Math InlineMath "A^{\\complement}"
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "A^(complement)"
+ , Str ","
+ , Space
+ , Str "or"
+ , Space
+ , Math InlineMath "\\underset{\175}{A}"
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "overline(A)"
+ , Str ")."
+ ]
+ , Para []
+ , DefinitionList
+ [ ( [ Str "Remark" ]
+ , [ [ Para
+ [ Str "Using"
+ , Space
+ , Code ( "" , [] , [] ) "diameter"
+ , Space
+ , Str "for"
+ , Space
+ , Code ( "" , [] , [] ) "\\varnothing"
+ , Space
+ , Str "may"
+ , Space
+ , Str "cause"
+ , Space
+ , Str "some"
+ , Space
+ , Str "confusion."
+ , Space
+ , Str "However,"
+ , Space
+ , Span
+ ( "" , [ "box" ] , [] )
+ [ Str "L\8202A\8202"
+ , Span
+ ( "" , [ "box" ] , [] )
+ [ Str "T\8202E\8202X" ]
+ ]
+ , Space
+ , Str "also"
+ , Space
+ , Str "uses"
+ , Space
+ , Math InlineMath "\\varnothing"
+ , Space
+ , Str "("
+ , Code ( "" , [] , [] ) "\\u{2300}"
+ , Str ")"
+ , Space
+ , Str "instead"
+ , Space
+ , Str "of"
+ , Space
+ , Math InlineMath "\\varnothing"
+ , Space
+ , Str "("
+ , Code ( "" , [] , [] ) "\\u{2205}"
+ , Str "),"
+ , Space
+ , Str "see"
+ , Space
+ , Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Str "newcm"
+ , Space
+ , Math InlineMath "\167"
+ , Str "13.3"
+ ]
+ ( "https://mirrors.sustech.edu.cn/CTAN/fonts/newcomputermodern/doc/newcm-doc.pdf"
+ , ""
+ )
+ ]
+ , Str "."
+ , SoftBreak
+ , Str "Another"
+ , Space
+ , Str "solution"
+ , Space
+ , Str "is"
+ , Space
+ , Str "to"
+ , Space
+ , Str "use"
+ , Space
+ , Code
+ ( "" , [] , [] )
+ "text(font: \"Fira Sans\", nothing)"
+ , Str ","
+ , Space
+ , Str "but"
+ , Space
+ , Str "the"
+ , Space
+ , Str "resultant"
+ , Space
+ , Str "glyph"
+ , Space
+ , Math InlineMath "\\varnothing"
+ , Space
+ , Str "is"
+ , Space
+ , Str "subtly"
+ , Space
+ , Str "different"
+ , Space
+ , Str "from"
+ , Space
+ , Str "the"
+ , Space
+ , Str "widely"
+ , Space
+ , Str "used"
+ , Space
+ , Str "one."
+ , SoftBreak
+ , Str "Ultimately,"
+ , Space
+ , Str "the"
+ , Space
+ , Str "choice"
+ , Space
+ , Str "is"
+ , Space
+ , Str "always"
+ , Space
+ , Strong [ Str "your" , Space , Str "decision" ]
+ , Str "."
+ ]
+ ]
+ ]
+ )
+ ]
+ , Para [ Strong [ Str "Decorations\8192\160" ] ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "f\\prime"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "f'"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "f prime"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath "\\overset{\\cdot}{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "dot(a)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath "\\overset{\\sim}{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tilde(a)"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "f''"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "f prime.double"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\overset{\168}{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "diaer(a)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\overline{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "macron(a)"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\Sigma^{*}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "Sigma^*"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\hat{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "hat(a)"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath
+ "\\overset{\\rightarrow}{a}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow(a)"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "If"
+ , Space
+ , Str "the"
+ , Space
+ , Str "decorated"
+ , Space
+ , Str "letter"
+ , Space
+ , Str "is"
+ , Space
+ , Math InlineMath "i"
+ , Space
+ , Str "or"
+ , Space
+ , Math InlineMath "j"
+ , Space
+ , Str "then"
+ , Space
+ , Str "some"
+ , Space
+ , Str "decorations"
+ , Space
+ , Str "need"
+ , Space
+ , Code ( "" , [] , [] ) "\\u{1D6A4}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ , Space
+ , Str "and"
+ , Space
+ , Code ( "" , [] , [] ) "\\u{1D6A5}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ , Str ","
+ , Space
+ , Str "as"
+ , Space
+ , Str "in"
+ , Space
+ , Math InlineMath "\\overset{\\rightarrow}{\\imath}"
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "arrow(\\u{1D6A4})"
+ , Str "."
+ , SoftBreak
+ , Str "Some"
+ , Space
+ , Str "authors"
+ , Space
+ , Str "use"
+ , Space
+ , Str "boldface"
+ , Space
+ , Str "for"
+ , Space
+ , Str "vectors:"
+ , Space
+ , Code ( "" , [] , [] ) "bold(x)"
+ , Str "."
+ ]
+ , Para
+ [ Str "Entering"
+ , Space
+ , Code ( "" , [] , [] ) "overline(x + y)"
+ , Space
+ , Str "produces"
+ , Space
+ , Math InlineMath "\\underset{\175}{x + y}"
+ , Str ","
+ , Space
+ , Str "and"
+ , Space
+ , Code ( "" , [] , [] ) "hat(x + y)"
+ , Space
+ , Str "gives"
+ , Space
+ , Math InlineMath "\\hat{x + y}"
+ , Str "."
+ , SoftBreak
+ , Str "Comment"
+ , Space
+ , Str "on"
+ , Space
+ , Str "an"
+ , Space
+ , Str "expression"
+ , Space
+ , Str "as"
+ , Space
+ , Str "here"
+ , Space
+ , Str "(there"
+ , Space
+ , Str "is"
+ , Space
+ , Str "also"
+ , Space
+ , Code ( "" , [] , [] ) "overbrace(..)"
+ , Str ")."
+ ]
+ , Para
+ [ Span
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath "\\underset{|A|}{\\underbrace{x + y}}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "underbrace(x + y, |A|)"
+ ]
+ ]
+ ]
+ , Para
+ [ Strong [ Str "Dots\8192\160" ]
+ , Str "Use"
+ , Space
+ , Str "low"
+ , Space
+ , Str "dots"
+ , Space
+ , Str "in"
+ , Space
+ , Str "a"
+ , Space
+ , Str "list"
+ , Space
+ , Math InlineMath "\\left\\{ 0,1,2,\\ldots \\right\\}"
+ , Str ","
+ , Space
+ , Str "entered"
+ , Space
+ , Str "as"
+ , Space
+ , Code ( "" , [] , [] ) "{0, 1, 2, ...}"
+ , Str "."
+ , SoftBreak
+ , Str "Use"
+ , Space
+ , Str "centered"
+ , Space
+ , Str "dots"
+ , Space
+ , Str "in"
+ , Space
+ , Str "a"
+ , Space
+ , Str "sum"
+ , Space
+ , Str "or"
+ , Space
+ , Str "product"
+ , Space
+ , Math InlineMath "1 + \\cdots + 100"
+ , Str ","
+ , Space
+ , Str "entered"
+ , Space
+ , Str "as"
+ , Space
+ , Code ( "" , [] , [] ) "1 + dots.h.c + 100"
+ , Str "."
+ , SoftBreak
+ , Str "You"
+ , Space
+ , Str "can"
+ , Space
+ , Str "also"
+ , Space
+ , Str "get"
+ , Space
+ , Str "vertical"
+ , Space
+ , Str "dots"
+ , Space
+ , Code ( "" , [] , [] ) "dots.v"
+ , Str ","
+ , Space
+ , Str "diagonal"
+ , Space
+ , Str "dots"
+ , Space
+ , Code ( "" , [] , [] ) "dots.down"
+ , Space
+ , Str "and"
+ , Space
+ , Str "anti-diagonal"
+ , Space
+ , Str "dots"
+ , Space
+ , Code ( "" , [] , [] ) "dots.up"
+ , Str "."
+ ]
+ , Para
+ [ Strong [ Str "Roman" , Space , Str "names\8192\160" ]
+ , Str "Just"
+ , Space
+ , Str "type"
+ , Space
+ , Str "them!"
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sin"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sin"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sinh"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sinh"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\arcsin"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arcsin"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cos"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "cos"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cosh"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "cosh"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\arccos"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arccos"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\tan"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tan"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\tanh"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tanh"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\arctan"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arctan"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sec"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sec"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\coth"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "coth"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\min"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "min"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\csc"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "csc"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\det"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "det"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\max"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "max"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cot"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "cot"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\dim"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "dim"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\inf"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "inf"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\exp"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "exp"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\ker"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ker"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sup"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sup"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\log"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "log"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\deg"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "deg"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\liminf"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "liminf"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\ln"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ln"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\arg"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arg"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\limsup"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "limsup"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\lg"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "lg"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\gcd"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "gcd"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\lim"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "lim"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong [ Str "Other" , Space , Str "symbols\8192\160" ] ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "<"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "<"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "lt"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\angle"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "angle"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cdot"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "dot"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\leq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "<="
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "lt.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\measuredangle"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "angle.arc"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\pm"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "plus.minus"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath ">"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) ">"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "gt"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\ell"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ell"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mp"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "minus.plus"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\geq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) ">="
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "gt.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\parallel"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "parallel"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\times"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "times"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\neq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "!="
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "eq.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "45{^\\circ}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "45 degree"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\div"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "div"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "< <"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "<<"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "lt.double"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\cong"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tilde.eqq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "*"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "*"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "ast"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "> >"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) ">>"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "gt.double"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\ncong"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "tilde.eqq.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\mid"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "divides"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\approx"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "approx"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sim"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tilde"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nmid"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "divides.not"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\asymp"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "\\u{224D}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\simeq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tilde.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "n!"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "n!"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\equiv"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ident"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nsim"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "tilde.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\partial"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "diff"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\prec"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "prec"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\oplus"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "plus.circle"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nabla"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "nabla"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\preccurlyeq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "prec.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\ominus"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "minus.cirle"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\hslash"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "planck.reduce"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\succ"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "succ"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\odot"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "dot.circle"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\circ"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] )
+ "circle.stroked.tiny"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\succcurlyeq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "succ.eq"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\otimes"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "times.circle"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\star"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "star"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\propto"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "prop"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\oslash"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "\\u{2298}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\sqrt{}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sqrt(\"\")"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\doteq"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "\\u{2250}"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\upharpoonright"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "harpoon.tr"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\10003"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "checkmark"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "Use"
+ , Space
+ , Code ( "" , [] , [] ) "a divides b"
+ , Space
+ , Str "for"
+ , Space
+ , Str "the"
+ , Space
+ , Str "divides"
+ , Space
+ , Str "relation,"
+ , Space
+ , Math InlineMath "a \\mid b"
+ , Str ","
+ , Space
+ , Str "and"
+ , Space
+ , Code ( "" , [] , [] ) "a divides.not b"
+ , Space
+ , Str "for"
+ , Space
+ , Str "the"
+ , Space
+ , Str "negation,"
+ , Space
+ , Math InlineMath "a \\nmid b"
+ , Str "."
+ , SoftBreak
+ , Str "Use"
+ , Space
+ , Code ( "" , [] , [] ) "|"
+ , Space
+ , Str "to"
+ , Space
+ , Str "get"
+ , Space
+ , Str "set"
+ , Space
+ , Str "builder"
+ , Space
+ , Str "notation"
+ , Space
+ , Math
+ InlineMath
+ "\\left\\{ a \\in S~|~a\\text{ is odd} \\right\\}"
+ , Space
+ , Str "with"
+ , Space
+ , Code ( "" , [] , [] ) "{a in S | a \"is odd\"}"
+ , Str "."
+ ]
+ , Para [ Strong [ Str "Arrows\8192\160" ] ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\rightarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "->"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "arrow.r"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "| \\rightarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "|->"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "arrow.r.bar"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nrightarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow.r.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\longmapsto"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] )
+ "arrow.r.long.bar"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\longrightarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow.r.long"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\leftarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "<-"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "arrow.l"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\Rightarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "=>"
+ , Str ","
+ , Space
+ , Code
+ ( "" , [] , [] ) "arrow.r.double"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\leftarrow >"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "<->"
+ , Str ","
+ , Space
+ , Code ( "" , [] , [] ) "arrow.l.r"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\nRightarrow"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] )
+ "arrow.r.double.not"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\downarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow.b"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\Longrightarrow"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] )
+ "arrow.r.double.long"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\uparrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow.t"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\8668"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "arrow.squiggly"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\updownarrow"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "arrow.t.b"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "The"
+ , Space
+ , Str "right"
+ , Space
+ , Str "arrows"
+ , Space
+ , Str "in"
+ , Space
+ , Str "the"
+ , Space
+ , Str "first"
+ , Space
+ , Str "column"
+ , Space
+ , Str "have"
+ , Space
+ , Str "matching"
+ , Space
+ , Str "left"
+ , Space
+ , Str "arrows,"
+ , Space
+ , Str "such"
+ , Space
+ , Str "as"
+ , Space
+ , Code ( "" , [] , [] ) "arrow.l.not"
+ , Str ","
+ , Space
+ , Str "and"
+ , Space
+ , Str "there"
+ , Space
+ , Str "are"
+ , Space
+ , Str "some"
+ , Space
+ , Str "other"
+ , Space
+ , Str "matches"
+ , Space
+ , Str "for"
+ , Space
+ , Str "down"
+ , Space
+ , Str "arrows,"
+ , Space
+ , Str "etc."
+ ]
+ , Para
+ [ Strong
+ [ Str "Variable-sized"
+ , Space
+ , Str "operators\8192\160"
+ ]
+ , Str "The"
+ , Space
+ , Str "summation"
+ , Space
+ , Math InlineMath "\\sum_{j = 0}^{3}j^{2}"
+ , Space
+ , Code ( "" , [] , [] ) "sum_(j = 0)^3 j^2"
+ , Space
+ , Str "and"
+ , Space
+ , Str "the"
+ , Space
+ , Str "integral"
+ , Space
+ , Math InlineMath "\\int_{x = 0}^{3}x^{2}dx"
+ , Space
+ , Code ( "" , [] , [] ) "integral_(x = 0)^3 x^2 dif x"
+ , Space
+ , Str "expand"
+ , Space
+ , Str "when"
+ , Space
+ , Str "displayed."
+ ]
+ , Para
+ [ Math
+ InlineMath
+ "\\sum_{j = 0}^{3}j^{2}\\qquad\\int_{x = 0}^{3}x^{2}dx"
+ ]
+ , Para
+ [ Str "These"
+ , Space
+ , Str "do"
+ , Space
+ , Str "the"
+ , Space
+ , Str "same."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\int"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "integral"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\iiint"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "integral.triple"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\bigcup"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "union.big"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\iint"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "integral.double"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\oint"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "integral.cont"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\bigcap"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "sect.big"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para [ Strong [ Str "Fences\8192\160" ] ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "()"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "()"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\langle\\rangle"
+ , Str "\8192"
+ , Code
+ ( "" , [] , [] ) "angle.l angle.r"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath "\\left| {} \\right|"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "abs(\"\")"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math InlineMath "\\lbrack\\rbrack"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "[]"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath
+ "\\left\\lfloor {} \\right\\rfloor"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "floor(\"\")"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath
+ "\\left. \\parallel{} \\right.\\parallel"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "norm(\"\")"
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath "\\left\\{ \\right\\}"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "{}"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Span
+ ( "" , [ "box" ] , [] )
+ [ Math
+ InlineMath
+ "\\left\\lceil {} \\right\\rceil"
+ , Str "\8192"
+ , Code ( "" , [] , [] ) "ceil(\"\")"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ []
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "Fix"
+ , Space
+ , Str "the"
+ , Space
+ , Str "size"
+ , Space
+ , Str "with"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "lr"
+ , Space
+ , Str "function."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\left. \\left\\lbrack \\sum_{k = 0}^{n}e^{k^{2}} \\right\\rbrack \\right."
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "lr([sum_(k = 0)^n e^(k^2)], size: #50%)\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "To"
+ , Space
+ , Str "have"
+ , Space
+ , Str "them"
+ , Space
+ , Str "grow"
+ , Space
+ , Str "with"
+ , Space
+ , Str "the"
+ , Space
+ , Str "enclosed"
+ , Space
+ , Str "formula,"
+ , Space
+ , Str "also"
+ , Space
+ , Str "use"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "lr"
+ , Space
+ , Str "function."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\left\\langle i,2^{2^{i}} \\right\\rangle"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "lr(angle.l i, 2^(2^i) angle.r)\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "Fences"
+ , Space
+ , Str "scale"
+ , Space
+ , Str "by"
+ , Space
+ , Str "default"
+ , Space
+ , Str "if"
+ , Space
+ , Str "entered"
+ , Space
+ , Str "directly"
+ , Space
+ , Str "as"
+ , Space
+ , Str "codepoints,"
+ , Space
+ , Str "and"
+ , Space
+ , Str "don\8217t"
+ , Space
+ , Str "scale"
+ , Space
+ , Str "automatically"
+ , Space
+ , Str "if"
+ , Space
+ , Str "entered"
+ , Space
+ , Str "as"
+ , Space
+ , Str "symbol"
+ , Space
+ , Str "notation."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\left( \\frac{1}{n^{\\alpha}} \\right)"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] ) "(1 / n^(alpha))\n "
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath "(\\frac{1}{n^{\\alpha}})"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "paren.l 1 / n^(alpha) paren.r\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "The"
+ , Space
+ , Code ( "" , [] , [] ) "lr"
+ , Space
+ , Str "function"
+ , Space
+ , Str "also"
+ , Space
+ , Str "allows"
+ , Space
+ , Str "to"
+ , Space
+ , Str "scale"
+ , Space
+ , Str "unmatched"
+ , Space
+ , Str "delimiters"
+ , Space
+ , Str "and"
+ , Space
+ , Str "one-side"
+ , Space
+ , Str "fences."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\left. \\frac{df}{dx} \\right|_{x_{0}}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "lr(frac(dif f, dif x) |)_(x_0)\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong [ Str "Arrays," , Space , Str "Matrices\8192\160" ]
+ , Str "Get"
+ , Space
+ , Str "a"
+ , Space
+ , Str "matrix"
+ , Space
+ , Str "with"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "mat"
+ , Space
+ , Str "function."
+ , Space
+ , Str "You"
+ , Space
+ , Str "can"
+ , Space
+ , Str "pass"
+ , Space
+ , Str "an"
+ , Space
+ , Str "array"
+ , Space
+ , Str "to"
+ , Space
+ , Str "it."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\begin{pmatrix}\na & b \\\\\nc & d\n\\end{pmatrix}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] ) "$ mat(a, b; c, d) $\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "In"
+ , Space
+ , Str "Typst,"
+ , Space
+ , Underline
+ [ Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Str "array" ]
+ ( "https://typst.app/docs/reference/typst/array"
+ , ""
+ )
+ ]
+ ]
+ , Space
+ , Str "is"
+ , Space
+ , Str "a"
+ , Space
+ , Str "sequence"
+ , Space
+ , Str "of"
+ , Space
+ , Str "values,"
+ , SoftBreak
+ , Str "while"
+ , Space
+ , Str "in"
+ , Space
+ , Span
+ ( "" , [ "box" ] , [] )
+ [ Str "L\8202A\8202"
+ , Span ( "" , [ "box" ] , [] ) [ Str "T\8202E\8202X" ]
+ ]
+ , Str ","
+ , Space
+ , Str "array"
+ , Space
+ , Str "is"
+ , Space
+ , Str "a"
+ , Space
+ , Str "matrix"
+ , Space
+ , Str "without"
+ , Space
+ , Str "fences,"
+ , Space
+ , Str "which"
+ , Space
+ , Str "is"
+ , Space
+ , Code ( "" , [] , [] ) "$mat(delim: #none, ..)$"
+ , Space
+ , Str "in"
+ , Space
+ , Str "Typst."
+ ]
+ , Para
+ [ Str "For"
+ , Space
+ , Str "the"
+ , Space
+ , Str "determinant"
+ , Space
+ , Str "use"
+ , Space
+ , Code ( "" , [] , [] ) "|A|"
+ , Str ","
+ , Space
+ , Str "text"
+ , Space
+ , Str "operator"
+ , Space
+ , Math InlineMath "\\det"
+ , Space
+ , Code ( "" , [] , [] ) "det"
+ , Space
+ , Str "or"
+ , Space
+ , Code ( "" , [] , [] ) "mat(delim: \"|\", ..)"
+ , Str "."
+ ]
+ , Para
+ [ Str "Definition"
+ , Space
+ , Str "by"
+ , Space
+ , Str "cases"
+ , Space
+ , Str "can"
+ , Space
+ , Str "be"
+ , Space
+ , Str "easily"
+ , Space
+ , Str "obtained"
+ , Space
+ , Str "with"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "cases"
+ , Space
+ , Str "function."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "f_{n} = \\begin{cases}\na & \\text{if }n = 0 \\\\\nr \\cdot f_{n - 1} & \\text{else }\n\\end{cases}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "$ f_n = cases(\n a &\"if\" n = 0,\n r dot f_(n - 1) &\"else\"\n ) $\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong
+ [ Str "Spacing"
+ , Space
+ , Str "in"
+ , Space
+ , Str "mathematics\8192\160"
+ ]
+ , Str "Improve"
+ , Space
+ , Math InlineMath "\\sqrt{2}x"
+ , Space
+ , Str "to"
+ , Space
+ , Math InlineMath "\\sqrt{2}\\, x"
+ , Space
+ , Str "with"
+ , Space
+ , Str "a"
+ , Space
+ , Str "thin"
+ , Space
+ , Str "space,"
+ , Space
+ , Str "as"
+ , Space
+ , Str "in"
+ , Space
+ , Code ( "" , [] , [] ) "sqrt(2) thin x"
+ , Str "."
+ , SoftBreak
+ , Str "Slightly"
+ , Space
+ , Str "wider"
+ , Space
+ , Str "are"
+ , Space
+ , Code ( "" , [] , [] ) "medium"
+ , Space
+ , Str "and"
+ , Space
+ , Code ( "" , [] , [] ) "thick"
+ , Space
+ , Str "(the"
+ , Space
+ , Str "three"
+ , Space
+ , Str "are"
+ , Space
+ , Str "in"
+ , Space
+ , Str "ratio"
+ , Space
+ , Math InlineMath "3:4:5"
+ , Str ")."
+ , SoftBreak
+ , Str "Bigger"
+ , Space
+ , Str "space"
+ , Space
+ , Str "is"
+ , Space
+ , Code ( "" , [] , [] ) "quad"
+ , Space
+ , Str "for"
+ , Space
+ , Math InlineMath "\\rightarrow \\quad \\leftarrow"
+ , Str ","
+ , Space
+ , Str "which"
+ , Space
+ , Str "is"
+ , Space
+ , Str "useful"
+ , Space
+ , Str "between"
+ , Space
+ , Str "parts"
+ , Space
+ , Str "of"
+ , Space
+ , Str "a"
+ , Space
+ , Str "display."
+ , SoftBreak
+ , Str "Get"
+ , Space
+ , Str "arbitrary"
+ , Space
+ , Str "space"
+ , Space
+ , Str "with"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "h"
+ , Space
+ , Str "function."
+ , SoftBreak
+ , Str "For"
+ , Space
+ , Str "example,"
+ , Space
+ , Str "use"
+ , Space
+ , Code ( "" , [] , [] ) "#h(2em)"
+ , Space
+ , Str "for"
+ , Space
+ , Code ( "" , [] , [] ) "\\qquad"
+ , Space
+ , Str "in"
+ , Space
+ , Span
+ ( "" , [ "box" ] , [] )
+ [ Str "L\8202A\8202"
+ , Span ( "" , [ "box" ] , [] ) [ Str "T\8202E\8202X" ]
+ ]
+ , Space
+ , Str "and"
+ , Space
+ , Code ( "" , [] , [] ) "#h(-0.1667em)"
+ , Space
+ , Str "for"
+ , Space
+ , Code ( "" , [] , [] ) "\\!"
+ , Str "."
+ ]
+ , Para
+ [ Strong
+ [ Str "Displayed" , Space , Str "equations\8192\160" ]
+ , Str "Display"
+ , Space
+ , Str "equations"
+ , Space
+ , Str "in"
+ , Space
+ , Str "a"
+ , Space
+ , Str "block"
+ , Space
+ , Str "level"
+ , Space
+ , Str "using"
+ , Space
+ , Code ( "" , [] , [] ) "$ ... $"
+ , Space
+ , Str "with"
+ , Space
+ , Str "at"
+ , Space
+ , Str "least"
+ , Space
+ , Str "one"
+ , Space
+ , Str "space"
+ , Space
+ , Str "separating"
+ , Space
+ , Str "the"
+ , Space
+ , Str "math"
+ , Space
+ , Str "content"
+ , Space
+ , Str "and"
+ , Space
+ , Str "the"
+ , Space
+ , Code ( "" , [] , [] ) "$"
+ , Str "."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math InlineMath "S = k \\cdot \\lg W" ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] ) "$ S = k dot lg W $\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "You"
+ , Space
+ , Str "can"
+ , Space
+ , Str "break"
+ , Space
+ , Str "into"
+ , Space
+ , Str "multiple"
+ , Space
+ , Str "lines."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\begin{array}{r}\n\\sin(x) = x - \\frac{x^{3}}{3!} \\\\\n + \\frac{x^{5}}{5!} - \\cdots\n\\end{array}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "$ sin(x) = x - x^3 / 3! \\\n + x^5 / 5! - dots.h.c $\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "Align"
+ , Space
+ , Str "equations"
+ , Space
+ , Str "using"
+ , Space
+ , Code ( "" , [] , [] ) "&"
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignLeft , ColWidthDefault )
+ , ( AlignLeft , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\begin{aligned}\n\\nabla \\cdot \\mathbf{D} & = \\rho \\\\\n\\nabla \\cdot \\mathbf{B} & = 0\n\\end{aligned}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "$ nabla dot bold(D) &= rho \\\n nabla dot bold(B) &= 0 $\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "(the"
+ , Space
+ , Str "left"
+ , Space
+ , Str "or"
+ , Space
+ , Str "right"
+ , Space
+ , Str "side"
+ , Space
+ , Str "of"
+ , Space
+ , Str "an"
+ , Space
+ , Str "alignment"
+ , Space
+ , Str "can"
+ , Space
+ , Str "be"
+ , Space
+ , Str "empty)."
+ , SoftBreak
+ , Str "Get"
+ , Space
+ , Str "a"
+ , Space
+ , Str "numbered"
+ , Space
+ , Str "version"
+ , Space
+ , Str "by"
+ , Space
+ , Code ( "" , [] , [] ) "#set math.equation(numbering: ..)"
+ , Str "."
+ ]
+ , Para
+ [ Strong
+ [ Str "Calculus" , Space , Str "examples\8192\160" ]
+ , Str "The"
+ , Space
+ , Str "last"
+ , Space
+ , Str "three"
+ , Space
+ , Str "here"
+ , Space
+ , Str "are"
+ , Space
+ , Str "display"
+ , Space
+ , Str "style."
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Div
+ ( "" , [] , [] )
+ [ Para
+ [ Math
+ InlineMath
+ "f:{\\mathbb{R}} \\rightarrow {\\mathbb{R}}"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock ( "" , [] , [] ) "f: RR -> RR\n "
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Div
+ ( "" , [] , [] )
+ [ Para
+ [ Math
+ InlineMath
+ "9.8\\ \\text{ m/s}^{2}"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Div
+ ( "" , [] , [] )
+ [ Para
+ [ Code
+ ( "" , [] , [] )
+ "\"9.8\" \"m/s\"^2"
+ , Space
+ , Link
+ ( "" , [ "ref" ] , [] )
+ [ Str "[tricky]" ]
+ ( "#tricky" , "" )
+ ]
+ ]
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\lim\\limits_{h \\rightarrow 0}\\frac{f(x + h) - f(x)}{h}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "lim_(h -> 0) (f(x + h) - f(x)) / h\n "
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\int x^{2}dx = x^{3}/3 + C"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "integral x^2 dif x = x^3 \\/ 3 + C\n "
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para
+ [ Math
+ InlineMath
+ "\\nabla = \\mathbf{i}\\frac{d}{dx} + \\mathbf{j}\\frac{d}{dy} + \\mathbf{k}\\frac{d}{dz}"
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "nabla = bold(i) dif / (dif x) + bold(j) dif / (dif y) + bold(k) dif / (dif z)\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Strong
+ [ Str "Discrete"
+ , Space
+ , Str "mathematics"
+ , Space
+ , Str "examples\8192\160"
+ ]
+ , Str "For"
+ , Space
+ , Str "modulo,"
+ , Space
+ , Str "there"
+ , Space
+ , Str "is"
+ , Space
+ , Str "a"
+ , Space
+ , Str "symbol"
+ , Space
+ , Math InlineMath "\\equiv"
+ , Space
+ , Str "from"
+ , Space
+ , Code ( "" , [] , [] ) "ident"
+ , Space
+ , Str "and"
+ , Space
+ , Str "a"
+ , Space
+ , Str "text"
+ , Space
+ , Str "operator"
+ , Space
+ , Math InlineMath "\\operatorname{mod}"
+ , Space
+ , Str "from"
+ , Space
+ , Code ( "" , [] , [] ) "mod"
+ , Str "."
+ ]
+ , Para
+ [ Str "For"
+ , Space
+ , Str "combinations"
+ , Space
+ , Str "the"
+ , Space
+ , Str "binomial"
+ , Space
+ , Str "symbol"
+ , Space
+ , Math InlineMath "\\binom{n}{k}"
+ , Space
+ , Str "is"
+ , Space
+ , Str "from"
+ , Space
+ , Code ( "" , [] , [] ) "binom(n, k)"
+ , Str "."
+ , SoftBreak
+ , Str "This"
+ , Space
+ , Str "resizes"
+ , Space
+ , Str "to"
+ , Space
+ , Str "be"
+ , Space
+ , Str "bigger"
+ , Space
+ , Str "in"
+ , Space
+ , Str "a"
+ , Space
+ , Str "display."
+ ]
+ , Para
+ [ Str "For"
+ , Space
+ , Str "permutations"
+ , Space
+ , Str "use"
+ , Space
+ , Math InlineMath "n^{\\underline{r}}"
+ , Space
+ , Str "from"
+ , Space
+ , Code ( "" , [] , [] ) "n^(underline(r))"
+ , Space
+ , Str "(some"
+ , Space
+ , Str "authors"
+ , Space
+ , Str "use"
+ , Space
+ , Math InlineMath "P(n,r)"
+ , Str ","
+ , Space
+ , Str "or"
+ , Space
+ , Math InlineMath "{}_{n}P_{r}"
+ , Space
+ , Str "from"
+ , Space
+ , Code ( "" , [] , [] ) "\"\"_n P_r"
+ , Str ")."
+ ]
+ , Para
+ [ Strong
+ [ Str "Statistics" , Space , Str "examples\8192\160" ]
+ ]
+ , Div
+ ( "" , [] , [ ( "align" , "center" ) ] )
+ [ Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Div
+ ( "" , [] , [] )
+ [ Para
+ [ Math
+ InlineMath
+ "\\sigma^{2} = \\sqrt{{\\sum(x_{i} - \\mu)}^{2}/N}"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "sigma^2 = sqrt(sum(x_i - mu)^2 \\/ N)\n "
+ ]
+ ]
+ , Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Div
+ ( "" , [] , [] )
+ [ Para
+ [ Math
+ InlineMath
+ "E(X) = \\mu_{X} = \\sum(x_{i} - P\\left( x_{i} \\right))"
+ ]
+ ]
+ ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "E(X) = mu_X = sum(x_i - P(x_i))\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ ]
+ , Para
+ [ Str "The"
+ , Space
+ , Str "probability"
+ , Space
+ , Str "density"
+ , Space
+ , Str "of"
+ , Space
+ , Str "the"
+ , Space
+ , Str "normal"
+ , Space
+ , Str "distribution"
+ ]
+ , Para
+ [ Math
+ InlineMath
+ "\\frac{1}{\\sqrt{2\\sigma^{2}\\pi}}e^{- \\frac{(x - \\mu)^{2}}{2\\sigma^{2}}}"
+ ]
+ , Para
+ [ Str "comes" , Space , Str "from" , Space , Str "this." ]
+ , Table
+ ( "" , [] , [] )
+ (Caption Nothing [])
+ [ ( AlignDefault , ColWidthDefault )
+ , ( AlignDefault , ColWidthDefault )
+ ]
+ (TableHead ( "" , [] , [] ) [])
+ [ TableBody
+ ( "" , [] , [] )
+ (RowHeadColumns 0)
+ []
+ [ Row
+ ( "" , [] , [] )
+ [ Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ Para [] ]
+ , Cell
+ ( "" , [] , [] )
+ AlignDefault
+ (RowSpan 1)
+ (ColSpan 1)
+ [ CodeBlock
+ ( "" , [] , [] )
+ "1 / sqrt(2 sigma^2 pi)\n e^(- (x - mu)^2 / (2 sigma^2))\n "
+ ]
+ ]
+ ]
+ ]
+ (TableFoot ( "" , [] , [] ) [])
+ , Para
+ [ Strong [ Str "For" , Space , Str "more\8192\160" ]
+ , Str "See"
+ , Space
+ , Str "also"
+ , Space
+ , Str "the"
+ , Space
+ , Str "Typst"
+ , Space
+ , Str "Documentation"
+ , Space
+ , Str "at"
+ , Space
+ , Underline
+ [ Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Str "https://typst.app/docs" ]
+ ( "https://typst.app/docs" , "" )
+ ]
+ ]
+ , Str "."
+ ]
+ , Para []
+ , Div
+ ( "" , [] , [] )
+ [ HorizontalRule
+ , Para
+ [ Str "johanvx"
+ , Space
+ , Str "("
+ , Underline
+ [ Underline
+ [ Underline
+ [ Link
+ ( "" , [] , [] )
+ [ Str "https://github.com/johanvx" ]
+ ( "https://github.com/johanvx" , "" )
+ ]
+ ]
+ ]
+ , Str ")"
+ , Space
+ , Str "\8202\8193"
+ , Space
+ , Str "2023-05-22"
+ ]
+ ]
+ ]
+ ]
diff --git a/test/typst-reader.typ b/test/typst-reader.typ
new file mode 100644
index 000000000..3b7541be1
--- /dev/null
+++ b/test/typst-reader.typ
@@ -0,0 +1,28 @@
+#set page(width: 10cm, height: auto)
+#set heading(numbering: "1.")
+
+= Fibonacci sequence
+The Fibonacci sequence is defined through the
+recurrence relation $F_n = F_(n-1) + F_(n-2)$.
+It can also be expressed in _closed form:_
+
+$ F_n = round(1 / sqrt(5) phi.alt^n), quad
+ phi.alt = (1 + sqrt(5)) / 2 $
+
+#let count = 8
+#let nums = range(1, count + 1)
+#let fib(n) = (
+ if n <= 2 { 1 }
+ else { fib(n - 1) + fib(n - 2) }
+)
+
+The first #count numbers of the sequence are:
+
+#align(center, table(
+ columns: count,
+ ..nums.map(n => $F_#n$),
+ ..nums.map(n => str(fib(n))),
+))
+
+#include "undergradmath.typ"
+
diff --git a/test/undergradmath.typ b/test/undergradmath.typ
new file mode 100644
index 000000000..388e12723
--- /dev/null
+++ b/test/undergradmath.typ
@@ -0,0 +1,510 @@
+// Licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
+// https://creativecommons.org/licenses/by-sa/4.0/
+
+// Meta data
+#set document(title: "Typst Math for Undergrads", author: "johanvx")
+
+// Margin
+#set page(margin: 0.5in)
+
+// Font size
+#let scriptsize = 7pt
+#let normalsize = 10pt
+#let large = 12pt
+#set text(size: normalsize, lang: "en")
+
+// Some horizontal spacing
+#let kern(length) = h(length, weak: true)
+#let enspace = kern(0.5em)
+#let qquad = h(2em)
+
+// For table/grid, something like "lhs \enspace rhs"
+#let cell(lhs, rhs) = box(lhs + enspace + rhs)
+// Grid for code blocks
+#set grid(columns: (2em, auto))
+// Table for math-code listing
+#set table(stroke: none, align: horizon + left, inset: 0pt, row-gutter: 0.45em)
+
+// LaTeX and TeX logos
+#let TeX = style(styles => {
+ let e = measure(text(normalsize, "E"), styles)
+ let T = "T"
+ let E = text(normalsize, baseline: e.height / 2, "E")
+ let X = "X"
+ box(T + kern(-0.1667em) + E + kern(-0.125em) + X)
+})
+#let LaTeX = style(styles => {
+ let l = measure(text(10pt, "L"), styles)
+ let a = measure(text(7pt, "A"), styles)
+ let L = "L"
+ let A = text(7pt, baseline: a.height - l.height, "A")
+ box(L + kern(-0.36em) + A + kern(-0.15em) + TeX)
+})
+
+// Update date
+#let date = "2023-05-22"
+
+// Unavailable (last check date)
+#show "??": box(text(red, [#date #emoji.crossmark]))
+// Tricky
+#show "!!": box(text(blue, emoji.drops))
+// No idea
+#show "?!": box(text(orange, [No idea #emoji.face.unhappy]))
+// Tricky figure numbering
+#set figure(numbering: n => {
+ ([??], [!!], [?!]).at(n - 1)
+})
+// No prefix
+#set ref(supplement: "")
+
+// Justified paragraphs
+#set par(justify: true)
+
+// Two-column body
+#show: rest => columns(2, rest)
+
+// headcolor
+#let headcolor = rgb("004225")
+
+// Run-in sections, like LaTeX \paragraph
+#show heading.where(
+ level: 1
+): it => text(
+ size: normalsize,
+ weight: "bold",
+ fill: headcolor,
+ it.body + h(0.67em)
+)
+
+// Black raw code
+// #show raw.where(block: false): it => { it.text }
+
+// Title
+#align(center, link("https://github.com/johanvx/typst-undergradmath")[
+ #text(large, headcolor)[*Typst Math for Undergrads*]
+])
+
+// Put this here to avoid affecting the title
+#show link: underline
+
+This is a Typst port of _#LaTeX Math for Undergrads_ by Jim Hefferon.
+The original version is available at #link("https://gitlab.com/jim.hefferon/undergradmath").
+
+= Meaning of annotations
+#figure(
+ table(
+ columns: (1fr, 2fr),
+ [??], [This is unavailable. Last check date is #date.],
+ )
+) <unavailable>
+#figure(
+ table(
+ columns: (1fr, 2fr),
+ [!!], [Get this in a tricky way. Need a simpler method.],
+ )
+) <tricky>
+#figure(
+ table(
+ columns: (1fr, 2fr),
+ [?!], [Don't know how to get this.],
+ )
+) <noidea>
+
+= Rule One
+Any mathematics at all, even a single character, gets a mathematical setting.
+Thus, for "the value of $x$ is $7$" enter `the value of $x$ is $7$`.
+
+= Template
+Your document should contain at least this.
+
+#grid(
+ "",
+ ```
+ -- document body here --
+ ```
+)
+
+= Common constructs
+#align(center, table(
+ columns: 2,
+ column-gutter: 1.5em,
+ cell($x^2$, `x^2`),
+ cell([$sqrt(2)$, $root(n, 3)$], [`sqrt(2)`, `root(n, 3)`]),
+ cell($x_(i, j)$, `x_(i, j)`),
+ cell([$2 / 3$, $2 \/ 3$], [`2 / 3`, `2 \/ 3` or `2 slash 3`]), // Maybe use `slash`?
+))
+
+= Calligraphic letters
+Use as in `$cal(A)$`.
+
+$ cal(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) $
+
+Getting script letters is @unavailable.
+
+= Greek
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ cell($alpha$, `alpha`), cell([$xi$, $Xi$], [`xi`, `Xi`]),
+ cell($beta$, `beta`), cell($omicron$, `omicron`),
+ cell([$gamma$, $Gamma$], [`gamma`, `Gamma`]), cell([$pi$, $Pi$], [`pi`, `Pi`]),
+ cell([$delta$, $Delta$], [`delta`, `Delta`]), cell($pi.alt$, `pi.alt`),
+ cell($epsilon.alt$, `epsilon.alt`), cell($rho$, `rho`),
+ cell($epsilon$, `epsilon`), cell($rho.alt$, `rho.alt`),
+ cell($zeta$, `zeta`), cell([$sigma$, $Sigma$], [`sigma`, `Sigma`]),
+ cell($eta$, `eta`), cell($\u{03C2}$, [`\u{03C2}` @tricky]),
+ cell([$theta$, $Theta$], [`theta`, `Theta`]), cell($tau$, `tau`),
+ cell($theta.alt$, `theta.alt`), cell([$upsilon$, $Upsilon$], [`upsilon`, `Upsilon`]),
+ cell($iota$, `iota`), cell([$phi.alt$, $Phi$], [`phi.alt`, `Phi`]),
+ cell($kappa$, $Kappa$), cell($phi$, `phi`),
+ cell([$lambda$, $Lambda$], [`lambda`, `Lambda`]), cell($chi$, `chi`),
+ cell($mu$, `mu`), cell([$psi$, $Psi$], [`psi`, `Psi`]),
+ cell($nu$, `nu`), cell([$omega$, $Omega$], [`omega`, `Omega`]),
+))
+
+= Sets and logic
+#align(center, table(
+ columns: 3,
+ column-gutter: 1em,
+ cell($union$, `union`), cell($RR$, [`RR`, `bb(R)`]), cell($forall$, `forall`),
+ cell($sect$, `sect`), cell($bb(Z)$, [`ZZ`, `bb(Z)`]), cell($exists$, `exists`),
+ cell($subset$, `subset`), cell($bb(Q)$, [`QQ`, `bb(Q)`]), cell($not$, `not`),
+ cell($subset.eq$, `subset.eq`), cell($bb(N)$, [`NN`, `bb(N)`]), cell($or$, `or`),
+ cell($supset$, `supset`), cell($bb(C)$, [`CC`, `bb(C)`]), cell($and$, `and`),
+ cell($supset.eq$, `supset.eq`), cell($diameter$, [`diameter`]), cell($tack.r$, `tack.r`),
+ cell($in$, `in`), cell($nothing$, `nothing`), cell($models$, `models`),
+ cell($in.not$, `in.not`), cell($alef$, `alef`), cell($without$, `without`),
+))
+
+Negate an operator, as in $subset.not$, with `subset.not`.
+Get the set complement $A^(sans(c))$ with `A^(sans(c))` (or $A^(complement)$ with `A^(complement)`, or $overline(A)$ with `overline(A)`).
+
+// https://www.ctan.org/tex-archive/fonts/newcomputermodern
+//
+// README
+//
+// Version 3.93
+//
+// Provides access to Russian and Greek guillemotleft and guillemotright
+// using the character variant tables cv3 and cv4 respectively.
+//
+// The Math fonts provide the character \varnothing, an alternative to \emptyset,
+// through Character Variant cv01. The fontsetup package provides the option
+// 'varnothing' to easily switch to the alternative character.
+
+// https://mirrors.sustech.edu.cn/CTAN/fonts/newcomputermodern/doc/newcm-doc.pdf
+// The NewComputerModern FontFamily §13.3
+// The Math fonts provide the character \varnothing (⌀, U+2300), as an alternative to \emptyset (a slashed zero), through Character Variant cv01.
+// The fontsetup package provides the option ‘varnothing’ to easily switch to the alternative character.
+
+/ Remark: Using `diameter` for `\varnothing` may cause some confusion. However, #LaTeX also uses $diameter$ (`\u{2300}`) instead of $\u{2205}$ (`\u{2205}`), see #link("https://mirrors.sustech.edu.cn/CTAN/fonts/newcomputermodern/doc/newcm-doc.pdf")[newcm $section$13.3].
+ Another solution is to use `text(font: "Fira Sans", nothing)`, but the resultant glyph $text(font: "Fira Sans", nothing)$ is subtly different from the widely used one.
+ Ultimately, the choice is always *your decision*.
+
+= Decorations
+#align(center, table(
+ columns: 3,
+ column-gutter: 1em,
+ cell($f'$, [`f'`, `f prime`]), cell($dot(a)$, `dot(a)`), cell($tilde(a)$, `tilde(a)`),
+ cell($f prime.double$, `f prime.double`), cell($diaer(a)$, `diaer(a)`), cell($macron(a)$, `macron(a)`),
+ cell($Sigma^*$, `Sigma^*`), cell($hat(a)$, `hat(a)`), cell($arrow(a)$, `arrow(a)`),
+))
+
+If the decorated letter is $i$ or $j$ then some decorations need `\u{1D6A4}` @tricky and `\u{1D6A5}` @tricky, as in $arrow(\u{1D6A4})$ with `arrow(\u{1D6A4})`.
+Some authors use boldface for vectors: `bold(x)`.
+
+Entering `overline(x + y)` produces $overline(x + y)$, and `hat(x + y)` gives $hat(x + y)$.
+Comment on an expression as here (there is also `overbrace(..)`).
+
+#align(center, cell(
+ $underbrace(x + y, |A|)$,
+ `underbrace(x + y, |A|)`,
+))
+
+= Dots
+Use low dots in a list ${0, 1, 2, ...}$, entered as `{0, 1, 2, ...}`.
+Use centered dots in a sum or product $1 + dots.h.c + 100$, entered as `1 + dots.h.c + 100`.
+You can also get vertical dots `dots.v`, diagonal dots `dots.down` and anti-diagonal dots `dots.up`.
+
+= Roman names
+Just type them!
+
+#align(center, table(
+ columns: 3,
+ column-gutter: 1.5em,
+ cell($sin$, `sin`), cell($sinh$, `sinh`), cell($arcsin$, `arcsin`),
+ cell($cos$, `cos`), cell($cosh$, `cosh`), cell($arccos$, `arccos`),
+ cell($tan$, `tan`), cell($tanh$, `tanh`), cell($arctan$, `arctan`),
+ cell($sec$, `sec`), cell($coth$, `coth`), cell($min$, `min`),
+ cell($csc$, `csc`), cell($det$, `det`), cell($max$, `max`),
+ cell($cot$, `cot`), cell($dim$, `dim`), cell($inf$, `inf`),
+ cell($exp$, `exp`), cell($ker$, `ker`), cell($sup$, `sup`),
+ cell($log$, `log`), cell($deg$, `deg`), cell($liminf$, `liminf`),
+ cell($ln$, `ln`), cell($arg$, `arg`), cell($limsup$, `limsup`),
+ cell($lg$, `lg`), cell($gcd$, `gcd`), cell($lim$, `lim`),
+))
+
+= Other symbols
+#align(center, table(
+ columns: 3,
+ column-gutter: 1.2em,
+ cell($<$, [`<`, `lt`]), cell($angle$, `angle`), cell($dot$, [`dot`]),
+ cell($<=$, [`<=`, `lt.eq`]), cell($angle.arc$, `angle.arc`), cell($plus.minus$, `plus.minus`),
+ cell($>$, [`>`, `gt`]), cell($ell$, `ell`), cell($minus.plus$, `minus.plus`),
+ cell($>=$, [`>=`, `gt.eq`]), cell($parallel$, `parallel`), cell($times$, `times`),
+ cell($!=$, [`!=`, `eq.not`]), cell($45 degree$, `45 degree`), cell($div$, `div`),
+ cell($<<$, [`<<`, `lt.double`]), cell($tilde.eqq$, `tilde.eqq`), cell($*$, [`*`, `ast`]),
+ cell($>>$, [`>>`, `gt.double`]), cell($tilde.eqq.not$, `tilde.eqq.not`), cell($divides$, `divides`),
+ cell($approx$, `approx`), cell($tilde$, `tilde`), cell($divides.not$, `divides.not`),
+ cell($\u{224D}$, [`\u{224D}` @tricky]), cell($tilde.eq$, `tilde.eq`), cell($n!$, `n!`),
+ cell($ident$, `ident`), cell($tilde.not$, `tilde.not`), cell($diff$, `diff`),
+ cell($prec$, `prec`), cell($plus.circle$, `plus.circle`), cell($nabla$, `nabla`),
+ cell($prec.eq$, `prec.eq`), cell($minus.circle$, `minus.cirle`), cell($planck.reduce$, `planck.reduce`),
+ cell($succ$, `succ`), cell($dot.circle$, `dot.circle`), cell($circle.stroked.tiny$, `circle.stroked.tiny`),
+ cell($succ.eq$, `succ.eq`), cell($times.circle$, `times.circle`), cell($star$, `star`),
+ cell($prop$, `prop`), cell($\u{2298}$, [`\u{2298}` @tricky]), cell($sqrt("")$, `sqrt("")`),
+ cell($\u{2250}$, [`\u{2250}` @tricky]), cell($harpoon.tr$, `harpoon.tr`), cell($checkmark$, `checkmark`),
+))
+
+Use `a divides b` for the divides relation, $a divides b$, and `a divides.not b` for the negation, $a divides.not b$.
+Use `|` to get set builder notation ${a in S | a "is odd"}$ with `{a in S | a "is odd"}`.
+
+= Arrows
+#align(center, table(
+ columns: 2,
+ column-gutter: 1.5em,
+ cell($->$, [`->`, `arrow.r`]), cell($|->$, [`|->`, `arrow.r.bar`]),
+ cell($arrow.r.not$, `arrow.r.not`), cell($arrow.r.long.bar$, `arrow.r.long.bar`),
+ cell($arrow.r.long$, `arrow.r.long`), cell($<-$, [`<-`, `arrow.l`]),
+ cell($=>$, [`=>`, `arrow.r.double`]), cell($<->$, [`<->`, `arrow.l.r`]),
+ cell($arrow.r.double.not$, `arrow.r.double.not`), cell($arrow.b$, `arrow.b`),
+ cell($arrow.r.double.long$, `arrow.r.double.long`), cell($arrow.t$, `arrow.t`),
+ cell($arrow.squiggly$, `arrow.squiggly`), cell($arrow.t.b$, `arrow.t.b`),
+))
+
+The right arrows in the first column have matching left arrows, such as `arrow.l.not`, and there are some other matches for down arrows, etc.
+
+= Variable-sized operators
+The summation $sum_(j = 0)^3 j^2$ `sum_(j = 0)^3 j^2` and the integral $integral_(x = 0)^3 x^2 dif x$ `integral_(x = 0)^3 x^2 dif x` expand when displayed.
+
+$ sum_(j = 0)^3 j^2 qquad integral_(x = 0)^3 x^2 dif x $
+
+These do the same.
+
+#align(center, table(
+ columns: 3,
+ cell($integral$, `integral`), cell($integral.triple$, `integral.triple`), cell($union.big$, `union.big`),
+ cell($integral.double$, `integral.double`), cell($integral.cont$, `integral.cont`), cell($sect.big$, `sect.big`),
+))
+
+= Fences
+#align(center, table(
+ columns: 3,
+ column-gutter: 1.5em,
+ cell($()$, `()`), cell($angle.l angle.r$, `angle.l angle.r`), cell($abs("")$, `abs("")`),
+ cell($[]$, `[]`), cell($floor("")$, `floor("")`), cell($norm("")$, `norm("")`),
+ cell(${}$, `{}`), cell($ceil("")$, `ceil("")`),
+))
+
+Fix the size with the `lr` function.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 0.5em,
+ $ lr([sum_(k = 0)^n e^(k^2)], size: #50%) $,
+ ```
+ lr([sum_(k = 0)^n e^(k^2)], size: #50%)
+ ```,
+))
+
+To have them grow with the enclosed formula, also use the `lr` function.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ lr(angle.l i, 2^(2^i) angle.r) $,
+ ```
+ lr(angle.l i, 2^(2^i) angle.r)
+ ```,
+))
+
+Fences scale by default if entered directly as codepoints, and don't scale automatically if entered as symbol notation.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ (1 / n^(alpha)) $,
+ ```
+ (1 / n^(alpha))
+ ```,
+ $ paren.l 1 / n^(alpha) paren.r $,
+ ```
+ paren.l 1 / n^(alpha) paren.r
+ ```,
+))
+
+The `lr` function also allows to scale unmatched delimiters and one-side fences.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ lr(frac(dif f, dif x) |)_(x_0) $,
+ ```
+ lr(frac(dif f, dif x) |)_(x_0)
+ ```,
+))
+
+= Arrays, Matrices
+Get a matrix with the `mat` function. You can pass an array to it.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ mat(a, b; c, d) $,
+ ```
+ $ mat(a, b; c, d) $
+ ```
+))
+
+In Typst, #link("https://typst.app/docs/reference/typst/array")[array] is a sequence of values,
+while in #LaTeX, array is a matrix without fences, which is `$mat(delim: #none, ..)$` in Typst.
+
+For the determinant use `|A|`, text operator $det$ `det` or `mat(delim: "|", ..)`.
+
+Definition by cases can be easily obtained with the `cases` function.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ f_n = cases(
+ a &"if" n = 0,
+ r dot f_(n - 1) &"else"
+ ) $,
+ ```
+ $ f_n = cases(
+ a &"if" n = 0,
+ r dot f_(n - 1) &"else"
+ ) $
+ ```
+))
+
+= Spacing in mathematics
+Improve $sqrt(2) x$ to $sqrt(2) thin x$ with a thin space, as in `sqrt(2) thin x`.
+Slightly wider are `medium` and `thick` (the three are in ratio $3 : 4 : 5$).
+Bigger space is `quad` for $arrow.r quad arrow.l$, which is useful between parts of a display.
+Get arbitrary space with the `h` function.
+For example, use `#h(2em)` for `\qquad` in #LaTeX and `#h(-0.1667em)` for `\!`.
+
+= Displayed equations
+Display equations in a block level using `$ ... $` with at least one space separating the math content and the `$`.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ S = k dot lg W $,
+ ```
+ $ S = k dot lg W $
+ ```,
+))
+
+You can break into multiple lines.
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ sin(x) = x - x^3 / 3! \
+ + x^5 / 5! - dots.h.c $,
+ ```
+ $ sin(x) = x - x^3 / 3! \
+ + x^5 / 5! - dots.h.c $
+ ```,
+))
+
+Align equations using `&`
+
+#align(center, table(
+ columns: 2,
+ column-gutter: 1em,
+ $ nabla dot bold(D) &= rho \
+ nabla dot bold(B) &= 0 $,
+ ```
+ $ nabla dot bold(D) &= rho \
+ nabla dot bold(B) &= 0 $
+ ```,
+))
+
+(the left or right side of an alignment can be empty).
+Get a numbered version by `#set math.equation(numbering: ..)`.
+
+= Calculus examples
+The last three here are display style.
+
+#align(center, table(
+ align: horizon,
+ columns: 2,
+ column-gutter: 1em,
+ block($f: RR -> RR$),
+ ```
+ f: RR -> RR
+ ```,
+ block($"9.8" "m/s"^2$),
+ block([`"9.8" "m/s"^2` @tricky]),
+ $ lim_(h->0) (f(x+h)-f(x))/h $,
+ ```
+ lim_(h -> 0) (f(x + h) - f(x)) / h
+ ```,
+ $ integral x^2 dif x = x^3 \/ 3 + C $,
+ ```
+ integral x^2 dif x = x^3 \/ 3 + C
+ ```,
+ $ nabla = bold(i) dif / (dif x) + bold(j) dif / (dif y) + bold(k) dif / (dif z) $,
+ ```
+ nabla = bold(i) dif / (dif x) + bold(j) dif / (dif y) + bold(k) dif / (dif z)
+ ```,
+))
+
+= Discrete mathematics examples
+For modulo, there is a symbol $ident$ from `ident` and a text operator $mod$ from `mod`.
+
+For combinations the binomial symbol $binom(n, k)$ is from `binom(n, k)`.
+This resizes to be bigger in a display.
+
+For permutations use $n^(underline(r))$ from `n^(underline(r))` (some authors use $P(n, r)$, or $""_n P_r$ from `""_n P_r`).
+
+= Statistics examples
+#align(center, table(
+ align: horizon,
+ columns: 2,
+ block($sigma^2 = sqrt(sum(x_i - mu)^2 \/ N)$),
+ ```
+ sigma^2 = sqrt(sum(x_i - mu)^2 \/ N)
+ ```,
+ block($E(X) = mu_X = sum(x_i - P(x_i))$),
+ ```
+ E(X) = mu_X = sum(x_i - P(x_i))
+ ```,
+))
+
+The probability density of the normal distribution
+
+$ 1 / sqrt(2 sigma^2 pi) e^(- (x - mu)^2 / (2 sigma^2)) $
+
+comes from this.
+
+#grid(
+ "",
+ ```
+ 1 / sqrt(2 sigma^2 pi)
+ e^(- (x - mu)^2 / (2 sigma^2))
+ ```
+)
+
+= For more
+See also the Typst Documentation at #link("https://typst.app/docs").
+
+#v(1fr)
+
+#block(
+ line(length: 100%, stroke: headcolor) +
+ text(headcolor)[johanvx (https://github.com/johanvx) #h(1fr) #date]
+)