diff options
| author | John MacFarlane <[email protected]> | 2023-07-06 12:20:01 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2023-07-06 12:20:20 -0700 |
| commit | a2be4ac62bfd95ce8007af0de925a675bd782fa2 (patch) | |
| tree | e7c5fa1e5bfed448ca558461263425104c7817a2 | |
| parent | 001531e604873f43ac41d7729f6fa6c0a86c0bbf (diff) | |
Add typst reader tests.
Closes #8942.
| -rw-r--r-- | cabal.project | 2 | ||||
| -rw-r--r-- | pandoc.cabal | 2 | ||||
| -rw-r--r-- | stack.yaml | 2 | ||||
| -rw-r--r-- | test/Tests/Old.hs | 5 | ||||
| -rw-r--r-- | test/typst-reader.native | 5394 | ||||
| -rw-r--r-- | test/typst-reader.typ | 28 | ||||
| -rw-r--r-- | test/undergradmath.typ | 510 |
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] +) |
