summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-04-30 22:33:13 +0000
committerKarl Berry <karl@freefriends.org>2019-04-30 22:33:13 +0000
commitb6d364c734eb81b15eae8ff489cf3291cb6ecc9b (patch)
treeb40de735c59f5c01af64f9c5f14ab16fa7965105 /Master/texmf-dist/source/generic
parentf654f58447a9158157316c77873b4c2b85ae1456 (diff)
markdown (30apr19)
git-svn-id: svn://tug.org/texlive/trunk@50906 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic')
-rw-r--r--Master/texmf-dist/source/generic/markdown/markdown.dtx3181
1 files changed, 2893 insertions, 288 deletions
diff --git a/Master/texmf-dist/source/generic/markdown/markdown.dtx b/Master/texmf-dist/source/generic/markdown/markdown.dtx
index 3897b1f0b6f..71c06b81544 100644
--- a/Master/texmf-dist/source/generic/markdown/markdown.dtx
+++ b/Master/texmf-dist/source/generic/markdown/markdown.dtx
@@ -1,10 +1,10 @@
% \iffalse
%<*driver>
\documentclass{ltxdockit}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{amsmath,btxdockit,doc,fancyvrb,hologo,microtype,minted,xcolor}
+\usepackage{fontspec}
+\defaultfontfeatures[\rmfamily,\sffamily,\ttfamily]{}
% Set up the style.
\emergencystretch=1em
@@ -46,7 +46,7 @@
\newcommand\Opt[1]{% An option / value item reference
\hyperref[opt:#1]{\t`#1`}}
\newcommand\acro[1]{% An acronym
- \textsc{#1}}
+ \textsc{\MakeLowercase{#1}}}
% Set up markdown.
\usepackage[
@@ -74,7 +74,8 @@
}
% Set up the catcodes.
-\catcode`\_=12 % We won't be typesetting math and Lua contains lots of `_`.
+\catcode`\_=12 % We won't be typesetting much math and Lua contains lots of `_`.
+\catcode`\^^B=8 % When we occasionally need subscripts , we will use `^^B` (STX).
% Set up the title page.
\titlepage{%
@@ -509,6 +510,7 @@ table td {
}
abbr {
+ text-transform: lowercase;
font-variant: small-caps;
}
@@ -567,7 +569,7 @@ documentation][techdoc].
% \fi
% \begin{macrocode}
local metadata = {
- version = "2.7.0",
+ version = "2.8.1",
comment = "A module for the conversion from markdown to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Novotný",
copyright = {"2009-2016 John MacFarlane, Hans Hagen",
@@ -3772,13 +3774,6 @@ defaultOptions.headerAttributes = false
% \end{markdown}
% \iffalse
-When the option is enabled, HTML entities are currently incorrectly parsed.
-See [the corresponding issue][issue-38] in the package repository.
-
- [issue-36]: https://github.com/Witiko/markdown/issues/36
- (HTML entities with the `html` Lua option enabled produce a Lua
- parser error)
-
##### Lua Module Example {.unnumbered}
Using a text editor, create a text document named `document.tex` with the
@@ -4294,6 +4289,105 @@ defaultOptions.inlineFootnotes = false
%</lua,lua-cli>
%<*manual-options>
+#### Option `pipeTables` {#pipe-tables}
+
+`pipeTables` (default value: `false`)
+
+% \fi
+% \begin{markdown}
+%
+% \Optitem[false]{pipeTables}{\opt{true}, \opt{false}}
+%
+: true
+
+ : Enable the \acro{PHP} Markdown table syntax extension:
+
+ ``` md
+ | Right | Left | Default | Center |
+ |------:|:-----|---------|:------:|
+ | 12 | 12 | 12 | 12 |
+ | 123 | 123 | 123 | 123 |
+ | 1 | 1 | 1 | 1 |
+ ``````
+
+: false
+
+ : Disable the \acro{PHP} Markdown table syntax extension.
+
+% \end{markdown}
+% \iffalse
+
+##### \LaTeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\documentclass{article}
+\usepackage[pipeTables]{markdown}
+\begin{document}
+\begin{markdown}
+| Right | Left | Default | Center |
+|------:|:-----|---------|:------:|
+| 12 | 12 | 12 | 12 |
+| 123 | 123 | 123 | 123 |
+| 1 | 1 | 1 | 1 |
+\end{markdown}
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> | Right | Left | Default | Center |
+> |------:|:-----|---------|:------:|
+> | 12 | 12 | 12 | 12 |
+> | 123 | 123 | 123 | 123 |
+> | 1 | 1 | 1 | 1 |
+
+##### \Hologo{ConTeXt} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\usemodule[t][markdown]
+\def\markdownOptionPipeTables{true}
+\starttext
+\startmarkdown
+| Right | Left | Default | Center |
+|------:|:-----|---------|:------:|
+| 12 | 12 | 12 | 12 |
+| 123 | 123 | 123 | 123 |
+| 1 | 1 | 1 | 1 |
+\stopmarkdown
+\stoptext
+````````
+Next, invoke LuaTeX from the terminal:
+``` sh
+context document.tex
+`````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> | Right | Left | Default | Center |
+> |------:|:-----|---------|:------:|
+> | 12 | 12 | 12 | 12 |
+> | 123 | 123 | 123 | 123 |
+> | 1 | 1 | 1 | 1 |
+
+%</manual-options>
+%<*lua,lua-cli>
+% \fi
+% \begin{macrocode}
+defaultOptions.pipeTables = false
+% \end{macrocode}
+% \par
+% \iffalse
+%</lua,lua-cli>
+%<*manual-options>
+
#### Option `preserveTabs`
`preserveTabs` (default value: `false`)
@@ -4305,7 +4399,7 @@ defaultOptions.inlineFootnotes = false
%
: true
- : Preserve all tabs in the input.
+ : Preserve tabs in code block and fenced code blocks.
: false
@@ -4313,19 +4407,147 @@ defaultOptions.inlineFootnotes = false
% \end{markdown}
% \iffalse
+%</manual-options>
+%<*lua,lua-cli>
+% \fi
+% \begin{macrocode}
+defaultOptions.preserveTabs = false
+% \end{macrocode}
+% \par
+% \iffalse
+%</lua,lua-cli>
+%<*manual-options>
+
+#### Option `shiftHeadings`
+
+`shiftHeadings` (default value: `0`)
+
+% \fi
+% \begin{markdown}
+%
+% \Valitem[0]{shiftHeadings}{shift amount}
+%
+: All headings will be shifted by \meta{shift amount}, which can be both
+ positive and negative. Headings will not be shifted beyond level 6 or
+ below level 1. Instead, those headings will be shifted to level 6, when
+ \meta{shift amount} is positive, and to level 1, when \meta{shift amount}
+ is negative.
+
+% \end{markdown}
+% \iffalse
+
+##### Plain \TeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `example.md` with the
+following content:
+
+``` md
+## A section
+```
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\input markdown
-This option is currently non-functional. See [the corresponding
-issue][issue-38] in the package repository.
+\font\normal=cmr10\normal
+\font\big=cmr10 at 12pt
+\def\markdownRendererHeadingTwo#1{{\big #1\par}}
+\font\bigger=cmr10 scaled 1440
+\def\markdownRendererHeadingOne#1{{\bigger #1\par}}
+
+\def\markdownOptionShiftHeadings{-1}
+\markdownInput{example.md}
+
+\def\markdownOptionShiftHeadings{0}
+\markdownInput{example.md}
+
+\def\markdownOptionShiftHeadings{+1}
+\markdownInput{example.md}
+
+\bye
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+luatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
- [issue-38]: https://github.com/Witiko/markdown/issues/38
- (Tabs are stripped even with the `preserveTabs=true`
- Lua option enabled)
+> # A section
+> ## A section
+> ### A section
+
+##### \LaTeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\documentclass{article}
+\usepackage{markdown}
+\usepackage{filecontents}
+\begin{filecontents*}{example.md}
+## A section
+\end{filecontents*}
+\begin{document}
+\markdownInput[shiftHeadings=-1]{example.md}
+\markdownInput{example.md}
+\markdownInput[shiftHeadings=+1]{example.md}
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> # A section
+> ## A section
+> ### A section
+
+##### \Hologo{ConTeXt} Example {.unnumbered}
+
+Using a text editor, create a text document named `example.md` with the
+following content:
+
+``` md
+## A section
+```
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\usemodule[t][markdown]
+\starttext
+
+\def\markdownOptionShiftHeadings{-1}
+\markdownInput{example.md}
+
+\def\markdownOptionShiftHeadings{0}
+\markdownInput{example.md}
+
+\def\markdownOptionShiftHeadings{+1}
+\markdownInput{example.md}
+
+\stoptext
+````````
+Next, invoke LuaTeX from the terminal:
+``` sh
+context document.tex
+`````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> # A section
+> ## A section
+> ### A section
%</manual-options>
%<*lua,lua-cli>
% \fi
% \begin{macrocode}
-defaultOptions.preserveTabs = false
+defaultOptions.shiftHeadings = 0
% \end{macrocode}
% \par
% \iffalse
@@ -4348,19 +4570,21 @@ defaultOptions.preserveTabs = false
- The circumflex (`^`) selects the beginning of a document.
- The dollar sign (`$`) selects the end of a document.
- `^`\meta{identifier} selects the beginning of a section with the
-% HTML attribute `#`\meta{identifier} (see the
+% \acro{HTML} attribute `#`\meta{identifier} (see the
% \Opt{headerAttributes} option).
- \iffalse
- [HTML attribute](#header-attributes) `#`\meta{identifier}.
+% \iffalse
+ [\acro{HTML} attribute](#header-attributes) `#`\meta{identifier}.
% \fi
- - `$`\meta{identifier} selects the end of a section with the HTML
+ - `$`\meta{identifier} selects the end of a section with the \acro{HTML}
attribute `#`\meta{identifier}.
- \meta{identifier} corresponds to `^`\meta{identifier} for the first
selector and to `$`\meta{identifier} for the second selector.
Specifying only a single selector, \meta{identifier}, is equivalent
to specifying the two selectors \meta{identifier} \meta{identifier},
- which is equivalent to `^`\meta{identifier} `$`\meta{identifier}.
+ which is equivalent to `^`\meta{identifier} `$`\meta{identifier}, i.e.
+ the entire section with the \acro{HTML} attribute `#`\meta{identifier} will be
+ selected.
% \end{markdown}
% \iffalse
@@ -4861,6 +5085,121 @@ defaultOptions.startNumber = true
%</lua,lua-cli>
%<*manual-options>
+#### Option `tableCaptions`
+
+`tableCaptions` (default value: `false`)
+
+% \fi
+% \begin{markdown}
+%
+% \Optitem[false]{tableCaptions}{\opt{true}, \opt{false}}
+%
+: true
+
+ : Enable the Pandoc `table_captions` syntax extension for
+% pipe tables (see the \Opt{pipeTables} option).
+% \iffalse
+ [pipe tables](#pipe-tables).
+% \fi
+
+ ``` md
+ | Right | Left | Default | Center |
+ |------:|:-----|---------|:------:|
+ | 12 | 12 | 12 | 12 |
+ | 123 | 123 | 123 | 123 |
+ | 1 | 1 | 1 | 1 |
+
+ : Demonstration of pipe table syntax.
+ ``````
+
+: false
+
+ : Enable the Pandoc `table_captions` syntax extension.
+
+% \end{markdown}
+% \iffalse
+
+##### \LaTeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\documentclass{article}
+\usepackage[pipeTables, tableCaptions]{markdown}
+\begin{document}
+\begin{markdown}
+| Right | Left | Default | Center |
+|------:|:-----|---------|:------:|
+| 12 | 12 | 12 | 12 |
+| 123 | 123 | 123 | 123 |
+| 1 | 1 | 1 | 1 |
+
+ : Demonstration of pipe table syntax.
+\end{markdown}
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> | Right | Left | Default | Center |
+> |------:|:-----|---------|:------:|
+> | 12 | 12 | 12 | 12 |
+> | 123 | 123 | 123 | 123 |
+> | 1 | 1 | 1 | 1 |
+>
+> : Demonstration of pipe table syntax.
+
+##### \Hologo{ConTeXt} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\usemodule[t][markdown]
+\def\markdownOptionPipeTables{true}
+\def\markdownOptionTableCaptions{true}
+\starttext
+\startmarkdown
+| Right | Left | Default | Center |
+|------:|:-----|---------|:------:|
+| 12 | 12 | 12 | 12 |
+| 123 | 123 | 123 | 123 |
+| 1 | 1 | 1 | 1 |
+
+ : Demonstration of pipe table syntax.
+\stopmarkdown
+\stoptext
+````````
+Next, invoke LuaTeX from the terminal:
+``` sh
+context document.tex
+`````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> | Right | Left | Default | Center |
+> |------:|:-----|---------|:------:|
+> | 12 | 12 | 12 | 12 |
+> | 123 | 123 | 123 | 123 |
+> | 1 | 1 | 1 | 1 |
+>
+> : Demonstration of pipe table syntax.
+
+%</manual-options>
+%<*lua,lua-cli>
+% \fi
+% \begin{macrocode}
+defaultOptions.tableCaptions = false
+% \end{macrocode}
+% \par
+% \iffalse
+%</lua,lua-cli>
+%<*manual-options>
+
+
#### Option `tightLists`
`tightLists` (default value: `true`)
@@ -5320,8 +5659,8 @@ pdftex --shell-escape document.tex
%
% \end{markdown}
% \begin{macrocode}
-\def\markdownLastModified{2019/04/04}%
-\def\markdownVersion{2.7.0}%
+\def\markdownLastModified{2019/04/30}%
+\def\markdownVersion{2.8.1}%
% \end{macrocode}
% \par
% \begin{markdown}
@@ -5629,10 +5968,13 @@ bug](https://github.com/witiko/markdown/issues).
\let\markdownOptionHtml\undefined
\let\markdownOptionHybrid\undefined
\let\markdownOptionInlineFootnotes\undefined
+\let\markdownOptionPipeTables\undefined
\let\markdownOptionPreserveTabs\undefined
+\let\markdownOptionShiftHeadings\undefined
\let\markdownOptionSlice\undefined
\let\markdownOptionSmartEllipses\undefined
\let\markdownOptionStartNumber\undefined
+\let\markdownOptionTableCaptions\undefined
\let\markdownOptionTightLists\undefined
% \end{macrocode}
% \par
@@ -9265,6 +9607,126 @@ following text:
%
% \begin{markdown}
+#### Table Renderer
+The \mdef{markdownRendererTable} macro represents a table. This macro will only
+be produced, when the \Opt{pipeTables} option is `true`. The macro receives the
+parameters `{`\meta{caption}`}{`\meta{number of rows}`}{`\meta{number of columns}`}`
+followed by `{`\meta{alignments}`}` and then by `{`\meta{row}`}` repeated
+\meta{number of rows} times, where \meta{row} is `{`\meta{column}`}` repeated
+\meta{number of columns} times, \meta{alignments} is \meta{alignment} repeated
+\meta{number of columns} times, and \meta{alignment} is one of the following:
+
+- `d` -- The corresponding column has an unspecified (default) alignment.
+- `l` -- The corresponding column is left-aligned.
+- `c` -- The corresponding column is centered.
+- `r` -- The corresponding column is right-aligned.
+
+% \end{markdown}
+%
+% \iffalse
+
+##### \LaTeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\documentclass{article}
+\usepackage[pipeTables, tableCaptions]{markdown}
+\newcount\rowCounter
+\newcount\columnCounter
+\makeatletter
+\def\processRow#1{%
+ \columnCounter=1%
+ \ifnum\rowCounter=0\relax
+ As for the alignment,
+ \else
+ In row \the\rowCounter,
+ \fi
+ \processColumn#1
+ \advance\rowCounter by 1\relax
+ \ifnum\rowCounter>\rowTotal\relax
+ \expandafter\@gobble
+ \fi\processRow}%
+\def\processColumn#1{%
+ column number \the\columnCounter{}
+ \ifnum\rowCounter=0\relax
+ \if#1d{}has default alignment\fi
+ \if#1l{}is left-aligned\fi
+ \if#1c{}is centered\fi
+ \if#1r{}is right-aligned\fi
+ \else
+ says \emph{#1}%
+ \fi
+ \advance\columnCounter by 1\relax
+ \ifnum\columnCounter<\columnTotal\relax, \fi
+ \ifnum\columnCounter=\columnTotal\relax, and \fi
+ \ifnum\columnCounter>\columnTotal\relax
+ .\expandafter\@gobble
+ \fi\processColumn}%
+\makeatother
+\markdownSetup{
+ renderers = {
+ table = {%
+ This is a table with caption \emph{#1} that is #3 colums wide
+ and #2 rows long.
+ \rowCounter=0%
+ \def\rowTotal{#2}%
+ \def\columnTotal{#3}%
+ \processRow
+ },
+ },
+}
+\begin{document}
+\begin{markdown}
+| Right | Left | Default | Center |
+|------:|:-----|---------|:------:|
+| 12 | 12 | 12 | 12 |
+| 123 | 123 | 123 | 123 |
+| 1 | 1 | 1 | 1 |
+
+ : Demonstration of pipe table syntax
+\end{markdown}
+\end{document}
+\end{markdown}
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> This is a table with caption *Demonstration of pipe table syntax* that is 4
+> colums wide and 4 rows long. As for the alignment, column number 1 is
+> right-aligned, column number 2 is left-aligned, column number 3 has default
+> alignment, and column number 4 is centered. In row 1, column number 1 says
+> *Right*, column number 2 says *Left*, column number 3 says *Default*, and
+> column number 4 says *Center*. In row 2, column number 1 says *12*, column
+> number 2 says *12*, column number 3 says *12*, and column number 4 says *12*.
+> In row 3, column number 1 says *123*, column number 2 says *123*, column
+> number 3 says *123*, and column number 4 says *123*. In row 4, column number
+> 1 says *1*, column number 2 says *1*, column number 3 says *1*, and column
+> number 4 says *1*.
+
+
+%</manual-tokens>
+%<*tex>
+% \fi
+%
+% \begin{macrocode}
+\def\markdownRendererTable{%
+ \markdownRendererTablePrototype}%
+% \end{macrocode}
+% \par
+%
+% \iffalse
+%</tex>
+%<*manual-tokens>
+% \fi
+%
+% \begin{markdown}
+
### Token Renderer Prototypes
% \label{sec:texrendererprototypes}
@@ -9454,6 +9916,7 @@ following text:
\def\markdownRendererFootnotePrototype#1{}%
\def\markdownRendererCitePrototype#1{}%
\def\markdownRendererTextCitePrototype#1{}%
+\def\markdownRendererTablePrototype#1#2#3{}%
% \end{macrocode}
% \par
% \begin{markdown}
@@ -9793,14 +10256,20 @@ pdflatex --shell-escape document.tex
\def\markdownOptionHybrid{#1}}%
\define@key{markdownOptions}{inlineFootnotes}[true]{%
\def\markdownOptionInlineFootnotes{#1}}%
+\define@key{markdownOptions}{pipeTables}[true]{%
+ \def\markdownOptionPipeTables{#1}}%
\define@key{markdownOptions}{preserveTabs}[true]{%
\def\markdownOptionPreserveTabs{#1}}%
\define@key{markdownOptions}{smartEllipses}[true]{%
\def\markdownOptionSmartEllipses{#1}}%
-\define@key{markdownOptions}{slice}[true]{%
+\define@key{markdownOptions}{shiftHeadings}{%
+ \def\markdownOptionShiftHeadings{#1}}%
+\define@key{markdownOptions}{slice}{%
\def\markdownOptionSlice{#1}}%
\define@key{markdownOptions}{startNumber}[true]{%
\def\markdownOptionStartNumber{#1}}%
+\define@key{markdownOptions}{tableCaptions}[true]{%
+ \def\markdownOptionTableCaptions{#1}}%
\define@key{markdownOptions}{tightLists}[true]{%
\def\markdownOptionTightLists{#1}}%
\define@key{markdownOptions}{underscores}[true]{%
@@ -9948,6 +10417,8 @@ pdflatex --shell-escape document.tex
\renewcommand\markdownRendererCite[1]{#1}}%
\define@key{markdownRenderers}{textCite}{%
\renewcommand\markdownRendererTextCite[1]{#1}}%
+\define@key{markdownRenderers}{table}{%
+ \renewcommand\markdownRendererTable[3]{#1}}%
% \end{macrocode}
% \par
% \begin{markdown}
@@ -10089,6 +10560,8 @@ pdflatex --shell-escape document.tex
\renewcommand\markdownRendererCitePrototype[1]{#1}}%
\define@key{markdownRendererPrototypes}{textCite}{%
\renewcommand\markdownRendererTextCitePrototype[1]{#1}}%
+\define@key{markdownRendererPrototypes}{table}{%
+ \renewcommand\markdownRendererTablePrototype[3]{#1}}%
% \end{macrocode}
% \par
% \begin{markdown}
@@ -10500,7 +10973,7 @@ function util.escaper(char_escapes, string_escapes)
% \end{macrocode}
% \begin{markdown}
% If `string_escapes` is provided, turn `escapable` into the
-% $$\sum_{(`k`,`v`)\in`string_escapes`}`P(k) / v` + `escapable`$$
+% $$\sum^^B{(`k`, `v`)\in`string_escapes`}`P(k) / v` + `escapable`$$
% capture that replaces any occurance of the string `k` with the string
% `v` for each $(`k`, `v`)\in`string_escapes`$. Note that the pattern
% summation is not commutative and its operands are inspected in the
@@ -10551,8 +11024,8 @@ end
% \par
% \begin{markdown}
%
-%### \textsc{html} Entities
-% This section documents the \textsc{html} entities recognized by the
+%### HTML Entities
+% This section documents the \acro{HTML} entities recognized by the
% markdown reader. These functions are encapsulated in the `entities`
% object. The functions were originally located in the
% `lunamark/entities.lua` file in the Lunamark Lua module.
@@ -10562,262 +11035,2044 @@ end
local entities = {}
local character_entities = {
- ["quot"] = 0x0022,
- ["amp"] = 0x0026,
- ["apos"] = 0x0027,
- ["lt"] = 0x003C,
- ["gt"] = 0x003E,
+ ["Tab"] = 9,
+ ["NewLine"] = 10,
+ ["excl"] = 33,
+ ["quot"] = 34,
+ ["QUOT"] = 34,
+ ["num"] = 35,
+ ["dollar"] = 36,
+ ["percnt"] = 37,
+ ["amp"] = 38,
+ ["AMP"] = 38,
+ ["apos"] = 39,
+ ["lpar"] = 40,
+ ["rpar"] = 41,
+ ["ast"] = 42,
+ ["midast"] = 42,
+ ["plus"] = 43,
+ ["comma"] = 44,
+ ["period"] = 46,
+ ["sol"] = 47,
+ ["colon"] = 58,
+ ["semi"] = 59,
+ ["lt"] = 60,
+ ["LT"] = 60,
+ ["equals"] = 61,
+ ["gt"] = 62,
+ ["GT"] = 62,
+ ["quest"] = 63,
+ ["commat"] = 64,
+ ["lsqb"] = 91,
+ ["lbrack"] = 91,
+ ["bsol"] = 92,
+ ["rsqb"] = 93,
+ ["rbrack"] = 93,
+ ["Hat"] = 94,
+ ["lowbar"] = 95,
+ ["grave"] = 96,
+ ["DiacriticalGrave"] = 96,
+ ["lcub"] = 123,
+ ["lbrace"] = 123,
+ ["verbar"] = 124,
+ ["vert"] = 124,
+ ["VerticalLine"] = 124,
+ ["rcub"] = 125,
+ ["rbrace"] = 125,
["nbsp"] = 160,
- ["iexcl"] = 0x00A1,
- ["cent"] = 0x00A2,
- ["pound"] = 0x00A3,
- ["curren"] = 0x00A4,
- ["yen"] = 0x00A5,
- ["brvbar"] = 0x00A6,
- ["sect"] = 0x00A7,
- ["uml"] = 0x00A8,
- ["copy"] = 0x00A9,
- ["ordf"] = 0x00AA,
- ["laquo"] = 0x00AB,
- ["not"] = 0x00AC,
+ ["NonBreakingSpace"] = 160,
+ ["iexcl"] = 161,
+ ["cent"] = 162,
+ ["pound"] = 163,
+ ["curren"] = 164,
+ ["yen"] = 165,
+ ["brvbar"] = 166,
+ ["sect"] = 167,
+ ["Dot"] = 168,
+ ["die"] = 168,
+ ["DoubleDot"] = 168,
+ ["uml"] = 168,
+ ["copy"] = 169,
+ ["COPY"] = 169,
+ ["ordf"] = 170,
+ ["laquo"] = 171,
+ ["not"] = 172,
["shy"] = 173,
- ["reg"] = 0x00AE,
- ["macr"] = 0x00AF,
- ["deg"] = 0x00B0,
- ["plusmn"] = 0x00B1,
- ["sup2"] = 0x00B2,
- ["sup3"] = 0x00B3,
- ["acute"] = 0x00B4,
- ["micro"] = 0x00B5,
- ["para"] = 0x00B6,
- ["middot"] = 0x00B7,
- ["cedil"] = 0x00B8,
- ["sup1"] = 0x00B9,
- ["ordm"] = 0x00BA,
- ["raquo"] = 0x00BB,
- ["frac14"] = 0x00BC,
- ["frac12"] = 0x00BD,
- ["frac34"] = 0x00BE,
- ["iquest"] = 0x00BF,
- ["Agrave"] = 0x00C0,
- ["Aacute"] = 0x00C1,
- ["Acirc"] = 0x00C2,
- ["Atilde"] = 0x00C3,
- ["Auml"] = 0x00C4,
- ["Aring"] = 0x00C5,
- ["AElig"] = 0x00C6,
- ["Ccedil"] = 0x00C7,
- ["Egrave"] = 0x00C8,
- ["Eacute"] = 0x00C9,
- ["Ecirc"] = 0x00CA,
- ["Euml"] = 0x00CB,
- ["Igrave"] = 0x00CC,
- ["Iacute"] = 0x00CD,
- ["Icirc"] = 0x00CE,
- ["Iuml"] = 0x00CF,
- ["ETH"] = 0x00D0,
- ["Ntilde"] = 0x00D1,
- ["Ograve"] = 0x00D2,
- ["Oacute"] = 0x00D3,
- ["Ocirc"] = 0x00D4,
- ["Otilde"] = 0x00D5,
- ["Ouml"] = 0x00D6,
- ["times"] = 0x00D7,
- ["Oslash"] = 0x00D8,
- ["Ugrave"] = 0x00D9,
- ["Uacute"] = 0x00DA,
- ["Ucirc"] = 0x00DB,
- ["Uuml"] = 0x00DC,
- ["Yacute"] = 0x00DD,
- ["THORN"] = 0x00DE,
- ["szlig"] = 0x00DF,
- ["agrave"] = 0x00E0,
- ["aacute"] = 0x00E1,
- ["acirc"] = 0x00E2,
- ["atilde"] = 0x00E3,
- ["auml"] = 0x00E4,
- ["aring"] = 0x00E5,
- ["aelig"] = 0x00E6,
- ["ccedil"] = 0x00E7,
- ["egrave"] = 0x00E8,
- ["eacute"] = 0x00E9,
- ["ecirc"] = 0x00EA,
- ["euml"] = 0x00EB,
- ["igrave"] = 0x00EC,
- ["iacute"] = 0x00ED,
- ["icirc"] = 0x00EE,
- ["iuml"] = 0x00EF,
- ["eth"] = 0x00F0,
- ["ntilde"] = 0x00F1,
- ["ograve"] = 0x00F2,
- ["oacute"] = 0x00F3,
- ["ocirc"] = 0x00F4,
- ["otilde"] = 0x00F5,
- ["ouml"] = 0x00F6,
- ["divide"] = 0x00F7,
- ["oslash"] = 0x00F8,
- ["ugrave"] = 0x00F9,
- ["uacute"] = 0x00FA,
- ["ucirc"] = 0x00FB,
- ["uuml"] = 0x00FC,
- ["yacute"] = 0x00FD,
- ["thorn"] = 0x00FE,
- ["yuml"] = 0x00FF,
- ["OElig"] = 0x0152,
- ["oelig"] = 0x0153,
- ["Scaron"] = 0x0160,
- ["scaron"] = 0x0161,
- ["Yuml"] = 0x0178,
- ["fnof"] = 0x0192,
- ["circ"] = 0x02C6,
- ["tilde"] = 0x02DC,
- ["Alpha"] = 0x0391,
- ["Beta"] = 0x0392,
- ["Gamma"] = 0x0393,
- ["Delta"] = 0x0394,
- ["Epsilon"] = 0x0395,
- ["Zeta"] = 0x0396,
- ["Eta"] = 0x0397,
- ["Theta"] = 0x0398,
- ["Iota"] = 0x0399,
- ["Kappa"] = 0x039A,
- ["Lambda"] = 0x039B,
- ["Mu"] = 0x039C,
- ["Nu"] = 0x039D,
- ["Xi"] = 0x039E,
- ["Omicron"] = 0x039F,
- ["Pi"] = 0x03A0,
- ["Rho"] = 0x03A1,
- ["Sigma"] = 0x03A3,
- ["Tau"] = 0x03A4,
- ["Upsilon"] = 0x03A5,
- ["Phi"] = 0x03A6,
- ["Chi"] = 0x03A7,
- ["Psi"] = 0x03A8,
- ["Omega"] = 0x03A9,
- ["alpha"] = 0x03B1,
- ["beta"] = 0x03B2,
- ["gamma"] = 0x03B3,
- ["delta"] = 0x03B4,
- ["epsilon"] = 0x03B5,
- ["zeta"] = 0x03B6,
- ["eta"] = 0x03B7,
- ["theta"] = 0x03B8,
- ["iota"] = 0x03B9,
- ["kappa"] = 0x03BA,
- ["lambda"] = 0x03BB,
- ["mu"] = 0x03BC,
- ["nu"] = 0x03BD,
- ["xi"] = 0x03BE,
- ["omicron"] = 0x03BF,
- ["pi"] = 0x03C0,
- ["rho"] = 0x03C1,
- ["sigmaf"] = 0x03C2,
- ["sigma"] = 0x03C3,
- ["tau"] = 0x03C4,
- ["upsilon"] = 0x03C5,
- ["phi"] = 0x03C6,
- ["chi"] = 0x03C7,
- ["psi"] = 0x03C8,
- ["omega"] = 0x03C9,
- ["thetasym"] = 0x03D1,
- ["upsih"] = 0x03D2,
- ["piv"] = 0x03D6,
- ["ensp"] = 0x2002,
- ["emsp"] = 0x2003,
- ["thinsp"] = 0x2009,
- ["ndash"] = 0x2013,
- ["mdash"] = 0x2014,
- ["lsquo"] = 0x2018,
- ["rsquo"] = 0x2019,
- ["sbquo"] = 0x201A,
- ["ldquo"] = 0x201C,
- ["rdquo"] = 0x201D,
- ["bdquo"] = 0x201E,
- ["dagger"] = 0x2020,
- ["Dagger"] = 0x2021,
- ["bull"] = 0x2022,
- ["hellip"] = 0x2026,
- ["permil"] = 0x2030,
- ["prime"] = 0x2032,
- ["Prime"] = 0x2033,
- ["lsaquo"] = 0x2039,
- ["rsaquo"] = 0x203A,
- ["oline"] = 0x203E,
- ["frasl"] = 0x2044,
- ["euro"] = 0x20AC,
- ["image"] = 0x2111,
- ["weierp"] = 0x2118,
- ["real"] = 0x211C,
- ["trade"] = 0x2122,
- ["alefsym"] = 0x2135,
- ["larr"] = 0x2190,
- ["uarr"] = 0x2191,
- ["rarr"] = 0x2192,
- ["darr"] = 0x2193,
- ["harr"] = 0x2194,
- ["crarr"] = 0x21B5,
- ["lArr"] = 0x21D0,
- ["uArr"] = 0x21D1,
- ["rArr"] = 0x21D2,
- ["dArr"] = 0x21D3,
- ["hArr"] = 0x21D4,
- ["forall"] = 0x2200,
- ["part"] = 0x2202,
- ["exist"] = 0x2203,
- ["empty"] = 0x2205,
- ["nabla"] = 0x2207,
- ["isin"] = 0x2208,
- ["notin"] = 0x2209,
- ["ni"] = 0x220B,
- ["prod"] = 0x220F,
- ["sum"] = 0x2211,
- ["minus"] = 0x2212,
- ["lowast"] = 0x2217,
- ["radic"] = 0x221A,
- ["prop"] = 0x221D,
- ["infin"] = 0x221E,
- ["ang"] = 0x2220,
- ["and"] = 0x2227,
- ["or"] = 0x2228,
- ["cap"] = 0x2229,
- ["cup"] = 0x222A,
- ["int"] = 0x222B,
- ["there4"] = 0x2234,
- ["sim"] = 0x223C,
- ["cong"] = 0x2245,
- ["asymp"] = 0x2248,
- ["ne"] = 0x2260,
- ["equiv"] = 0x2261,
- ["le"] = 0x2264,
- ["ge"] = 0x2265,
- ["sub"] = 0x2282,
- ["sup"] = 0x2283,
- ["nsub"] = 0x2284,
- ["sube"] = 0x2286,
- ["supe"] = 0x2287,
- ["oplus"] = 0x2295,
- ["otimes"] = 0x2297,
- ["perp"] = 0x22A5,
- ["sdot"] = 0x22C5,
- ["lceil"] = 0x2308,
- ["rceil"] = 0x2309,
- ["lfloor"] = 0x230A,
- ["rfloor"] = 0x230B,
- ["lang"] = 0x27E8,
- ["rang"] = 0x27E9,
- ["loz"] = 0x25CA,
- ["spades"] = 0x2660,
- ["clubs"] = 0x2663,
- ["hearts"] = 0x2665,
- ["diams"] = 0x2666,
+ ["reg"] = 174,
+ ["circledR"] = 174,
+ ["REG"] = 174,
+ ["macr"] = 175,
+ ["OverBar"] = 175,
+ ["strns"] = 175,
+ ["deg"] = 176,
+ ["plusmn"] = 177,
+ ["pm"] = 177,
+ ["PlusMinus"] = 177,
+ ["sup2"] = 178,
+ ["sup3"] = 179,
+ ["acute"] = 180,
+ ["DiacriticalAcute"] = 180,
+ ["micro"] = 181,
+ ["para"] = 182,
+ ["middot"] = 183,
+ ["centerdot"] = 183,
+ ["CenterDot"] = 183,
+ ["cedil"] = 184,
+ ["Cedilla"] = 184,
+ ["sup1"] = 185,
+ ["ordm"] = 186,
+ ["raquo"] = 187,
+ ["frac14"] = 188,
+ ["frac12"] = 189,
+ ["half"] = 189,
+ ["frac34"] = 190,
+ ["iquest"] = 191,
+ ["Agrave"] = 192,
+ ["Aacute"] = 193,
+ ["Acirc"] = 194,
+ ["Atilde"] = 195,
+ ["Auml"] = 196,
+ ["Aring"] = 197,
+ ["AElig"] = 198,
+ ["Ccedil"] = 199,
+ ["Egrave"] = 200,
+ ["Eacute"] = 201,
+ ["Ecirc"] = 202,
+ ["Euml"] = 203,
+ ["Igrave"] = 204,
+ ["Iacute"] = 205,
+ ["Icirc"] = 206,
+ ["Iuml"] = 207,
+ ["ETH"] = 208,
+ ["Ntilde"] = 209,
+ ["Ograve"] = 210,
+ ["Oacute"] = 211,
+ ["Ocirc"] = 212,
+ ["Otilde"] = 213,
+ ["Ouml"] = 214,
+ ["times"] = 215,
+ ["Oslash"] = 216,
+ ["Ugrave"] = 217,
+ ["Uacute"] = 218,
+ ["Ucirc"] = 219,
+ ["Uuml"] = 220,
+ ["Yacute"] = 221,
+ ["THORN"] = 222,
+ ["szlig"] = 223,
+ ["agrave"] = 224,
+ ["aacute"] = 225,
+ ["acirc"] = 226,
+ ["atilde"] = 227,
+ ["auml"] = 228,
+ ["aring"] = 229,
+ ["aelig"] = 230,
+ ["ccedil"] = 231,
+ ["egrave"] = 232,
+ ["eacute"] = 233,
+ ["ecirc"] = 234,
+ ["euml"] = 235,
+ ["igrave"] = 236,
+ ["iacute"] = 237,
+ ["icirc"] = 238,
+ ["iuml"] = 239,
+ ["eth"] = 240,
+ ["ntilde"] = 241,
+ ["ograve"] = 242,
+ ["oacute"] = 243,
+ ["ocirc"] = 244,
+ ["otilde"] = 245,
+ ["ouml"] = 246,
+ ["divide"] = 247,
+ ["div"] = 247,
+ ["oslash"] = 248,
+ ["ugrave"] = 249,
+ ["uacute"] = 250,
+ ["ucirc"] = 251,
+ ["uuml"] = 252,
+ ["yacute"] = 253,
+ ["thorn"] = 254,
+ ["yuml"] = 255,
+ ["Amacr"] = 256,
+ ["amacr"] = 257,
+ ["Abreve"] = 258,
+ ["abreve"] = 259,
+ ["Aogon"] = 260,
+ ["aogon"] = 261,
+ ["Cacute"] = 262,
+ ["cacute"] = 263,
+ ["Ccirc"] = 264,
+ ["ccirc"] = 265,
+ ["Cdot"] = 266,
+ ["cdot"] = 267,
+ ["Ccaron"] = 268,
+ ["ccaron"] = 269,
+ ["Dcaron"] = 270,
+ ["dcaron"] = 271,
+ ["Dstrok"] = 272,
+ ["dstrok"] = 273,
+ ["Emacr"] = 274,
+ ["emacr"] = 275,
+ ["Edot"] = 278,
+ ["edot"] = 279,
+ ["Eogon"] = 280,
+ ["eogon"] = 281,
+ ["Ecaron"] = 282,
+ ["ecaron"] = 283,
+ ["Gcirc"] = 284,
+ ["gcirc"] = 285,
+ ["Gbreve"] = 286,
+ ["gbreve"] = 287,
+ ["Gdot"] = 288,
+ ["gdot"] = 289,
+ ["Gcedil"] = 290,
+ ["Hcirc"] = 292,
+ ["hcirc"] = 293,
+ ["Hstrok"] = 294,
+ ["hstrok"] = 295,
+ ["Itilde"] = 296,
+ ["itilde"] = 297,
+ ["Imacr"] = 298,
+ ["imacr"] = 299,
+ ["Iogon"] = 302,
+ ["iogon"] = 303,
+ ["Idot"] = 304,
+ ["imath"] = 305,
+ ["inodot"] = 305,
+ ["IJlig"] = 306,
+ ["ijlig"] = 307,
+ ["Jcirc"] = 308,
+ ["jcirc"] = 309,
+ ["Kcedil"] = 310,
+ ["kcedil"] = 311,
+ ["kgreen"] = 312,
+ ["Lacute"] = 313,
+ ["lacute"] = 314,
+ ["Lcedil"] = 315,
+ ["lcedil"] = 316,
+ ["Lcaron"] = 317,
+ ["lcaron"] = 318,
+ ["Lmidot"] = 319,
+ ["lmidot"] = 320,
+ ["Lstrok"] = 321,
+ ["lstrok"] = 322,
+ ["Nacute"] = 323,
+ ["nacute"] = 324,
+ ["Ncedil"] = 325,
+ ["ncedil"] = 326,
+ ["Ncaron"] = 327,
+ ["ncaron"] = 328,
+ ["napos"] = 329,
+ ["ENG"] = 330,
+ ["eng"] = 331,
+ ["Omacr"] = 332,
+ ["omacr"] = 333,
+ ["Odblac"] = 336,
+ ["odblac"] = 337,
+ ["OElig"] = 338,
+ ["oelig"] = 339,
+ ["Racute"] = 340,
+ ["racute"] = 341,
+ ["Rcedil"] = 342,
+ ["rcedil"] = 343,
+ ["Rcaron"] = 344,
+ ["rcaron"] = 345,
+ ["Sacute"] = 346,
+ ["sacute"] = 347,
+ ["Scirc"] = 348,
+ ["scirc"] = 349,
+ ["Scedil"] = 350,
+ ["scedil"] = 351,
+ ["Scaron"] = 352,
+ ["scaron"] = 353,
+ ["Tcedil"] = 354,
+ ["tcedil"] = 355,
+ ["Tcaron"] = 356,
+ ["tcaron"] = 357,
+ ["Tstrok"] = 358,
+ ["tstrok"] = 359,
+ ["Utilde"] = 360,
+ ["utilde"] = 361,
+ ["Umacr"] = 362,
+ ["umacr"] = 363,
+ ["Ubreve"] = 364,
+ ["ubreve"] = 365,
+ ["Uring"] = 366,
+ ["uring"] = 367,
+ ["Udblac"] = 368,
+ ["udblac"] = 369,
+ ["Uogon"] = 370,
+ ["uogon"] = 371,
+ ["Wcirc"] = 372,
+ ["wcirc"] = 373,
+ ["Ycirc"] = 374,
+ ["ycirc"] = 375,
+ ["Yuml"] = 376,
+ ["Zacute"] = 377,
+ ["zacute"] = 378,
+ ["Zdot"] = 379,
+ ["zdot"] = 380,
+ ["Zcaron"] = 381,
+ ["zcaron"] = 382,
+ ["fnof"] = 402,
+ ["imped"] = 437,
+ ["gacute"] = 501,
+ ["jmath"] = 567,
+ ["circ"] = 710,
+ ["caron"] = 711,
+ ["Hacek"] = 711,
+ ["breve"] = 728,
+ ["Breve"] = 728,
+ ["dot"] = 729,
+ ["DiacriticalDot"] = 729,
+ ["ring"] = 730,
+ ["ogon"] = 731,
+ ["tilde"] = 732,
+ ["DiacriticalTilde"] = 732,
+ ["dblac"] = 733,
+ ["DiacriticalDoubleAcute"] = 733,
+ ["DownBreve"] = 785,
+ ["UnderBar"] = 818,
+ ["Alpha"] = 913,
+ ["Beta"] = 914,
+ ["Gamma"] = 915,
+ ["Delta"] = 916,
+ ["Epsilon"] = 917,
+ ["Zeta"] = 918,
+ ["Eta"] = 919,
+ ["Theta"] = 920,
+ ["Iota"] = 921,
+ ["Kappa"] = 922,
+ ["Lambda"] = 923,
+ ["Mu"] = 924,
+ ["Nu"] = 925,
+ ["Xi"] = 926,
+ ["Omicron"] = 927,
+ ["Pi"] = 928,
+ ["Rho"] = 929,
+ ["Sigma"] = 931,
+ ["Tau"] = 932,
+ ["Upsilon"] = 933,
+ ["Phi"] = 934,
+ ["Chi"] = 935,
+ ["Psi"] = 936,
+ ["Omega"] = 937,
+ ["alpha"] = 945,
+ ["beta"] = 946,
+ ["gamma"] = 947,
+ ["delta"] = 948,
+ ["epsiv"] = 949,
+ ["varepsilon"] = 949,
+ ["epsilon"] = 949,
+ ["zeta"] = 950,
+ ["eta"] = 951,
+ ["theta"] = 952,
+ ["iota"] = 953,
+ ["kappa"] = 954,
+ ["lambda"] = 955,
+ ["mu"] = 956,
+ ["nu"] = 957,
+ ["xi"] = 958,
+ ["omicron"] = 959,
+ ["pi"] = 960,
+ ["rho"] = 961,
+ ["sigmav"] = 962,
+ ["varsigma"] = 962,
+ ["sigmaf"] = 962,
+ ["sigma"] = 963,
+ ["tau"] = 964,
+ ["upsi"] = 965,
+ ["upsilon"] = 965,
+ ["phi"] = 966,
+ ["phiv"] = 966,
+ ["varphi"] = 966,
+ ["chi"] = 967,
+ ["psi"] = 968,
+ ["omega"] = 969,
+ ["thetav"] = 977,
+ ["vartheta"] = 977,
+ ["thetasym"] = 977,
+ ["Upsi"] = 978,
+ ["upsih"] = 978,
+ ["straightphi"] = 981,
+ ["piv"] = 982,
+ ["varpi"] = 982,
+ ["Gammad"] = 988,
+ ["gammad"] = 989,
+ ["digamma"] = 989,
+ ["kappav"] = 1008,
+ ["varkappa"] = 1008,
+ ["rhov"] = 1009,
+ ["varrho"] = 1009,
+ ["epsi"] = 1013,
+ ["straightepsilon"] = 1013,
+ ["bepsi"] = 1014,
+ ["backepsilon"] = 1014,
+ ["IOcy"] = 1025,
+ ["DJcy"] = 1026,
+ ["GJcy"] = 1027,
+ ["Jukcy"] = 1028,
+ ["DScy"] = 1029,
+ ["Iukcy"] = 1030,
+ ["YIcy"] = 1031,
+ ["Jsercy"] = 1032,
+ ["LJcy"] = 1033,
+ ["NJcy"] = 1034,
+ ["TSHcy"] = 1035,
+ ["KJcy"] = 1036,
+ ["Ubrcy"] = 1038,
+ ["DZcy"] = 1039,
+ ["Acy"] = 1040,
+ ["Bcy"] = 1041,
+ ["Vcy"] = 1042,
+ ["Gcy"] = 1043,
+ ["Dcy"] = 1044,
+ ["IEcy"] = 1045,
+ ["ZHcy"] = 1046,
+ ["Zcy"] = 1047,
+ ["Icy"] = 1048,
+ ["Jcy"] = 1049,
+ ["Kcy"] = 1050,
+ ["Lcy"] = 1051,
+ ["Mcy"] = 1052,
+ ["Ncy"] = 1053,
+ ["Ocy"] = 1054,
+ ["Pcy"] = 1055,
+ ["Rcy"] = 1056,
+ ["Scy"] = 1057,
+ ["Tcy"] = 1058,
+ ["Ucy"] = 1059,
+ ["Fcy"] = 1060,
+ ["KHcy"] = 1061,
+ ["TScy"] = 1062,
+ ["CHcy"] = 1063,
+ ["SHcy"] = 1064,
+ ["SHCHcy"] = 1065,
+ ["HARDcy"] = 1066,
+ ["Ycy"] = 1067,
+ ["SOFTcy"] = 1068,
+ ["Ecy"] = 1069,
+ ["YUcy"] = 1070,
+ ["YAcy"] = 1071,
+ ["acy"] = 1072,
+ ["bcy"] = 1073,
+ ["vcy"] = 1074,
+ ["gcy"] = 1075,
+ ["dcy"] = 1076,
+ ["iecy"] = 1077,
+ ["zhcy"] = 1078,
+ ["zcy"] = 1079,
+ ["icy"] = 1080,
+ ["jcy"] = 1081,
+ ["kcy"] = 1082,
+ ["lcy"] = 1083,
+ ["mcy"] = 1084,
+ ["ncy"] = 1085,
+ ["ocy"] = 1086,
+ ["pcy"] = 1087,
+ ["rcy"] = 1088,
+ ["scy"] = 1089,
+ ["tcy"] = 1090,
+ ["ucy"] = 1091,
+ ["fcy"] = 1092,
+ ["khcy"] = 1093,
+ ["tscy"] = 1094,
+ ["chcy"] = 1095,
+ ["shcy"] = 1096,
+ ["shchcy"] = 1097,
+ ["hardcy"] = 1098,
+ ["ycy"] = 1099,
+ ["softcy"] = 1100,
+ ["ecy"] = 1101,
+ ["yucy"] = 1102,
+ ["yacy"] = 1103,
+ ["iocy"] = 1105,
+ ["djcy"] = 1106,
+ ["gjcy"] = 1107,
+ ["jukcy"] = 1108,
+ ["dscy"] = 1109,
+ ["iukcy"] = 1110,
+ ["yicy"] = 1111,
+ ["jsercy"] = 1112,
+ ["ljcy"] = 1113,
+ ["njcy"] = 1114,
+ ["tshcy"] = 1115,
+ ["kjcy"] = 1116,
+ ["ubrcy"] = 1118,
+ ["dzcy"] = 1119,
+ ["ensp"] = 8194,
+ ["emsp"] = 8195,
+ ["emsp13"] = 8196,
+ ["emsp14"] = 8197,
+ ["numsp"] = 8199,
+ ["puncsp"] = 8200,
+ ["thinsp"] = 8201,
+ ["ThinSpace"] = 8201,
+ ["hairsp"] = 8202,
+ ["VeryThinSpace"] = 8202,
+ ["ZeroWidthSpace"] = 8203,
+ ["NegativeVeryThinSpace"] = 8203,
+ ["NegativeThinSpace"] = 8203,
+ ["NegativeMediumSpace"] = 8203,
+ ["NegativeThickSpace"] = 8203,
+ ["zwnj"] = 8204,
+ ["zwj"] = 8205,
+ ["lrm"] = 8206,
+ ["rlm"] = 8207,
+ ["hyphen"] = 8208,
+ ["dash"] = 8208,
+ ["ndash"] = 8211,
+ ["mdash"] = 8212,
+ ["horbar"] = 8213,
+ ["Verbar"] = 8214,
+ ["Vert"] = 8214,
+ ["lsquo"] = 8216,
+ ["OpenCurlyQuote"] = 8216,
+ ["rsquo"] = 8217,
+ ["rsquor"] = 8217,
+ ["CloseCurlyQuote"] = 8217,
+ ["lsquor"] = 8218,
+ ["sbquo"] = 8218,
+ ["ldquo"] = 8220,
+ ["OpenCurlyDoubleQuote"] = 8220,
+ ["rdquo"] = 8221,
+ ["rdquor"] = 8221,
+ ["CloseCurlyDoubleQuote"] = 8221,
+ ["ldquor"] = 8222,
+ ["bdquo"] = 8222,
+ ["dagger"] = 8224,
+ ["Dagger"] = 8225,
+ ["ddagger"] = 8225,
+ ["bull"] = 8226,
+ ["bullet"] = 8226,
+ ["nldr"] = 8229,
+ ["hellip"] = 8230,
+ ["mldr"] = 8230,
+ ["permil"] = 8240,
+ ["pertenk"] = 8241,
+ ["prime"] = 8242,
+ ["Prime"] = 8243,
+ ["tprime"] = 8244,
+ ["bprime"] = 8245,
+ ["backprime"] = 8245,
+ ["lsaquo"] = 8249,
+ ["rsaquo"] = 8250,
+ ["oline"] = 8254,
+ ["caret"] = 8257,
+ ["hybull"] = 8259,
+ ["frasl"] = 8260,
+ ["bsemi"] = 8271,
+ ["qprime"] = 8279,
+ ["MediumSpace"] = 8287,
+ ["NoBreak"] = 8288,
+ ["ApplyFunction"] = 8289,
+ ["af"] = 8289,
+ ["InvisibleTimes"] = 8290,
+ ["it"] = 8290,
+ ["InvisibleComma"] = 8291,
+ ["ic"] = 8291,
+ ["euro"] = 8364,
+ ["tdot"] = 8411,
+ ["TripleDot"] = 8411,
+ ["DotDot"] = 8412,
+ ["Copf"] = 8450,
+ ["complexes"] = 8450,
+ ["incare"] = 8453,
+ ["gscr"] = 8458,
+ ["hamilt"] = 8459,
+ ["HilbertSpace"] = 8459,
+ ["Hscr"] = 8459,
+ ["Hfr"] = 8460,
+ ["Poincareplane"] = 8460,
+ ["quaternions"] = 8461,
+ ["Hopf"] = 8461,
+ ["planckh"] = 8462,
+ ["planck"] = 8463,
+ ["hbar"] = 8463,
+ ["plankv"] = 8463,
+ ["hslash"] = 8463,
+ ["Iscr"] = 8464,
+ ["imagline"] = 8464,
+ ["image"] = 8465,
+ ["Im"] = 8465,
+ ["imagpart"] = 8465,
+ ["Ifr"] = 8465,
+ ["Lscr"] = 8466,
+ ["lagran"] = 8466,
+ ["Laplacetrf"] = 8466,
+ ["ell"] = 8467,
+ ["Nopf"] = 8469,
+ ["naturals"] = 8469,
+ ["numero"] = 8470,
+ ["copysr"] = 8471,
+ ["weierp"] = 8472,
+ ["wp"] = 8472,
+ ["Popf"] = 8473,
+ ["primes"] = 8473,
+ ["rationals"] = 8474,
+ ["Qopf"] = 8474,
+ ["Rscr"] = 8475,
+ ["realine"] = 8475,
+ ["real"] = 8476,
+ ["Re"] = 8476,
+ ["realpart"] = 8476,
+ ["Rfr"] = 8476,
+ ["reals"] = 8477,
+ ["Ropf"] = 8477,
+ ["rx"] = 8478,
+ ["trade"] = 8482,
+ ["TRADE"] = 8482,
+ ["integers"] = 8484,
+ ["Zopf"] = 8484,
+ ["ohm"] = 8486,
+ ["mho"] = 8487,
+ ["Zfr"] = 8488,
+ ["zeetrf"] = 8488,
+ ["iiota"] = 8489,
+ ["angst"] = 8491,
+ ["bernou"] = 8492,
+ ["Bernoullis"] = 8492,
+ ["Bscr"] = 8492,
+ ["Cfr"] = 8493,
+ ["Cayleys"] = 8493,
+ ["escr"] = 8495,
+ ["Escr"] = 8496,
+ ["expectation"] = 8496,
+ ["Fscr"] = 8497,
+ ["Fouriertrf"] = 8497,
+ ["phmmat"] = 8499,
+ ["Mellintrf"] = 8499,
+ ["Mscr"] = 8499,
+ ["order"] = 8500,
+ ["orderof"] = 8500,
+ ["oscr"] = 8500,
+ ["alefsym"] = 8501,
+ ["aleph"] = 8501,
+ ["beth"] = 8502,
+ ["gimel"] = 8503,
+ ["daleth"] = 8504,
+ ["CapitalDifferentialD"] = 8517,
+ ["DD"] = 8517,
+ ["DifferentialD"] = 8518,
+ ["dd"] = 8518,
+ ["ExponentialE"] = 8519,
+ ["exponentiale"] = 8519,
+ ["ee"] = 8519,
+ ["ImaginaryI"] = 8520,
+ ["ii"] = 8520,
+ ["frac13"] = 8531,
+ ["frac23"] = 8532,
+ ["frac15"] = 8533,
+ ["frac25"] = 8534,
+ ["frac35"] = 8535,
+ ["frac45"] = 8536,
+ ["frac16"] = 8537,
+ ["frac56"] = 8538,
+ ["frac18"] = 8539,
+ ["frac38"] = 8540,
+ ["frac58"] = 8541,
+ ["frac78"] = 8542,
+ ["larr"] = 8592,
+ ["leftarrow"] = 8592,
+ ["LeftArrow"] = 8592,
+ ["slarr"] = 8592,
+ ["ShortLeftArrow"] = 8592,
+ ["uarr"] = 8593,
+ ["uparrow"] = 8593,
+ ["UpArrow"] = 8593,
+ ["ShortUpArrow"] = 8593,
+ ["rarr"] = 8594,
+ ["rightarrow"] = 8594,
+ ["RightArrow"] = 8594,
+ ["srarr"] = 8594,
+ ["ShortRightArrow"] = 8594,
+ ["darr"] = 8595,
+ ["downarrow"] = 8595,
+ ["DownArrow"] = 8595,
+ ["ShortDownArrow"] = 8595,
+ ["harr"] = 8596,
+ ["leftrightarrow"] = 8596,
+ ["LeftRightArrow"] = 8596,
+ ["varr"] = 8597,
+ ["updownarrow"] = 8597,
+ ["UpDownArrow"] = 8597,
+ ["nwarr"] = 8598,
+ ["UpperLeftArrow"] = 8598,
+ ["nwarrow"] = 8598,
+ ["nearr"] = 8599,
+ ["UpperRightArrow"] = 8599,
+ ["nearrow"] = 8599,
+ ["searr"] = 8600,
+ ["searrow"] = 8600,
+ ["LowerRightArrow"] = 8600,
+ ["swarr"] = 8601,
+ ["swarrow"] = 8601,
+ ["LowerLeftArrow"] = 8601,
+ ["nlarr"] = 8602,
+ ["nleftarrow"] = 8602,
+ ["nrarr"] = 8603,
+ ["nrightarrow"] = 8603,
+ ["rarrw"] = 8605,
+ ["rightsquigarrow"] = 8605,
+ ["Larr"] = 8606,
+ ["twoheadleftarrow"] = 8606,
+ ["Uarr"] = 8607,
+ ["Rarr"] = 8608,
+ ["twoheadrightarrow"] = 8608,
+ ["Darr"] = 8609,
+ ["larrtl"] = 8610,
+ ["leftarrowtail"] = 8610,
+ ["rarrtl"] = 8611,
+ ["rightarrowtail"] = 8611,
+ ["LeftTeeArrow"] = 8612,
+ ["mapstoleft"] = 8612,
+ ["UpTeeArrow"] = 8613,
+ ["mapstoup"] = 8613,
+ ["map"] = 8614,
+ ["RightTeeArrow"] = 8614,
+ ["mapsto"] = 8614,
+ ["DownTeeArrow"] = 8615,
+ ["mapstodown"] = 8615,
+ ["larrhk"] = 8617,
+ ["hookleftarrow"] = 8617,
+ ["rarrhk"] = 8618,
+ ["hookrightarrow"] = 8618,
+ ["larrlp"] = 8619,
+ ["looparrowleft"] = 8619,
+ ["rarrlp"] = 8620,
+ ["looparrowright"] = 8620,
+ ["harrw"] = 8621,
+ ["leftrightsquigarrow"] = 8621,
+ ["nharr"] = 8622,
+ ["nleftrightarrow"] = 8622,
+ ["lsh"] = 8624,
+ ["Lsh"] = 8624,
+ ["rsh"] = 8625,
+ ["Rsh"] = 8625,
+ ["ldsh"] = 8626,
+ ["rdsh"] = 8627,
+ ["crarr"] = 8629,
+ ["cularr"] = 8630,
+ ["curvearrowleft"] = 8630,
+ ["curarr"] = 8631,
+ ["curvearrowright"] = 8631,
+ ["olarr"] = 8634,
+ ["circlearrowleft"] = 8634,
+ ["orarr"] = 8635,
+ ["circlearrowright"] = 8635,
+ ["lharu"] = 8636,
+ ["LeftVector"] = 8636,
+ ["leftharpoonup"] = 8636,
+ ["lhard"] = 8637,
+ ["leftharpoondown"] = 8637,
+ ["DownLeftVector"] = 8637,
+ ["uharr"] = 8638,
+ ["upharpoonright"] = 8638,
+ ["RightUpVector"] = 8638,
+ ["uharl"] = 8639,
+ ["upharpoonleft"] = 8639,
+ ["LeftUpVector"] = 8639,
+ ["rharu"] = 8640,
+ ["RightVector"] = 8640,
+ ["rightharpoonup"] = 8640,
+ ["rhard"] = 8641,
+ ["rightharpoondown"] = 8641,
+ ["DownRightVector"] = 8641,
+ ["dharr"] = 8642,
+ ["RightDownVector"] = 8642,
+ ["downharpoonright"] = 8642,
+ ["dharl"] = 8643,
+ ["LeftDownVector"] = 8643,
+ ["downharpoonleft"] = 8643,
+ ["rlarr"] = 8644,
+ ["rightleftarrows"] = 8644,
+ ["RightArrowLeftArrow"] = 8644,
+ ["udarr"] = 8645,
+ ["UpArrowDownArrow"] = 8645,
+ ["lrarr"] = 8646,
+ ["leftrightarrows"] = 8646,
+ ["LeftArrowRightArrow"] = 8646,
+ ["llarr"] = 8647,
+ ["leftleftarrows"] = 8647,
+ ["uuarr"] = 8648,
+ ["upuparrows"] = 8648,
+ ["rrarr"] = 8649,
+ ["rightrightarrows"] = 8649,
+ ["ddarr"] = 8650,
+ ["downdownarrows"] = 8650,
+ ["lrhar"] = 8651,
+ ["ReverseEquilibrium"] = 8651,
+ ["leftrightharpoons"] = 8651,
+ ["rlhar"] = 8652,
+ ["rightleftharpoons"] = 8652,
+ ["Equilibrium"] = 8652,
+ ["nlArr"] = 8653,
+ ["nLeftarrow"] = 8653,
+ ["nhArr"] = 8654,
+ ["nLeftrightarrow"] = 8654,
+ ["nrArr"] = 8655,
+ ["nRightarrow"] = 8655,
+ ["lArr"] = 8656,
+ ["Leftarrow"] = 8656,
+ ["DoubleLeftArrow"] = 8656,
+ ["uArr"] = 8657,
+ ["Uparrow"] = 8657,
+ ["DoubleUpArrow"] = 8657,
+ ["rArr"] = 8658,
+ ["Rightarrow"] = 8658,
+ ["Implies"] = 8658,
+ ["DoubleRightArrow"] = 8658,
+ ["dArr"] = 8659,
+ ["Downarrow"] = 8659,
+ ["DoubleDownArrow"] = 8659,
+ ["hArr"] = 8660,
+ ["Leftrightarrow"] = 8660,
+ ["DoubleLeftRightArrow"] = 8660,
+ ["iff"] = 8660,
+ ["vArr"] = 8661,
+ ["Updownarrow"] = 8661,
+ ["DoubleUpDownArrow"] = 8661,
+ ["nwArr"] = 8662,
+ ["neArr"] = 8663,
+ ["seArr"] = 8664,
+ ["swArr"] = 8665,
+ ["lAarr"] = 8666,
+ ["Lleftarrow"] = 8666,
+ ["rAarr"] = 8667,
+ ["Rrightarrow"] = 8667,
+ ["zigrarr"] = 8669,
+ ["larrb"] = 8676,
+ ["LeftArrowBar"] = 8676,
+ ["rarrb"] = 8677,
+ ["RightArrowBar"] = 8677,
+ ["duarr"] = 8693,
+ ["DownArrowUpArrow"] = 8693,
+ ["loarr"] = 8701,
+ ["roarr"] = 8702,
+ ["hoarr"] = 8703,
+ ["forall"] = 8704,
+ ["ForAll"] = 8704,
+ ["comp"] = 8705,
+ ["complement"] = 8705,
+ ["part"] = 8706,
+ ["PartialD"] = 8706,
+ ["exist"] = 8707,
+ ["Exists"] = 8707,
+ ["nexist"] = 8708,
+ ["NotExists"] = 8708,
+ ["nexists"] = 8708,
+ ["empty"] = 8709,
+ ["emptyset"] = 8709,
+ ["emptyv"] = 8709,
+ ["varnothing"] = 8709,
+ ["nabla"] = 8711,
+ ["Del"] = 8711,
+ ["isin"] = 8712,
+ ["isinv"] = 8712,
+ ["Element"] = 8712,
+ ["in"] = 8712,
+ ["notin"] = 8713,
+ ["NotElement"] = 8713,
+ ["notinva"] = 8713,
+ ["niv"] = 8715,
+ ["ReverseElement"] = 8715,
+ ["ni"] = 8715,
+ ["SuchThat"] = 8715,
+ ["notni"] = 8716,
+ ["notniva"] = 8716,
+ ["NotReverseElement"] = 8716,
+ ["prod"] = 8719,
+ ["Product"] = 8719,
+ ["coprod"] = 8720,
+ ["Coproduct"] = 8720,
+ ["sum"] = 8721,
+ ["Sum"] = 8721,
+ ["minus"] = 8722,
+ ["mnplus"] = 8723,
+ ["mp"] = 8723,
+ ["MinusPlus"] = 8723,
+ ["plusdo"] = 8724,
+ ["dotplus"] = 8724,
+ ["setmn"] = 8726,
+ ["setminus"] = 8726,
+ ["Backslash"] = 8726,
+ ["ssetmn"] = 8726,
+ ["smallsetminus"] = 8726,
+ ["lowast"] = 8727,
+ ["compfn"] = 8728,
+ ["SmallCircle"] = 8728,
+ ["radic"] = 8730,
+ ["Sqrt"] = 8730,
+ ["prop"] = 8733,
+ ["propto"] = 8733,
+ ["Proportional"] = 8733,
+ ["vprop"] = 8733,
+ ["varpropto"] = 8733,
+ ["infin"] = 8734,
+ ["angrt"] = 8735,
+ ["ang"] = 8736,
+ ["angle"] = 8736,
+ ["angmsd"] = 8737,
+ ["measuredangle"] = 8737,
+ ["angsph"] = 8738,
+ ["mid"] = 8739,
+ ["VerticalBar"] = 8739,
+ ["smid"] = 8739,
+ ["shortmid"] = 8739,
+ ["nmid"] = 8740,
+ ["NotVerticalBar"] = 8740,
+ ["nsmid"] = 8740,
+ ["nshortmid"] = 8740,
+ ["par"] = 8741,
+ ["parallel"] = 8741,
+ ["DoubleVerticalBar"] = 8741,
+ ["spar"] = 8741,
+ ["shortparallel"] = 8741,
+ ["npar"] = 8742,
+ ["nparallel"] = 8742,
+ ["NotDoubleVerticalBar"] = 8742,
+ ["nspar"] = 8742,
+ ["nshortparallel"] = 8742,
+ ["and"] = 8743,
+ ["wedge"] = 8743,
+ ["or"] = 8744,
+ ["vee"] = 8744,
+ ["cap"] = 8745,
+ ["cup"] = 8746,
+ ["int"] = 8747,
+ ["Integral"] = 8747,
+ ["Int"] = 8748,
+ ["tint"] = 8749,
+ ["iiint"] = 8749,
+ ["conint"] = 8750,
+ ["oint"] = 8750,
+ ["ContourIntegral"] = 8750,
+ ["Conint"] = 8751,
+ ["DoubleContourIntegral"] = 8751,
+ ["Cconint"] = 8752,
+ ["cwint"] = 8753,
+ ["cwconint"] = 8754,
+ ["ClockwiseContourIntegral"] = 8754,
+ ["awconint"] = 8755,
+ ["CounterClockwiseContourIntegral"] = 8755,
+ ["there4"] = 8756,
+ ["therefore"] = 8756,
+ ["Therefore"] = 8756,
+ ["becaus"] = 8757,
+ ["because"] = 8757,
+ ["Because"] = 8757,
+ ["ratio"] = 8758,
+ ["Colon"] = 8759,
+ ["Proportion"] = 8759,
+ ["minusd"] = 8760,
+ ["dotminus"] = 8760,
+ ["mDDot"] = 8762,
+ ["homtht"] = 8763,
+ ["sim"] = 8764,
+ ["Tilde"] = 8764,
+ ["thksim"] = 8764,
+ ["thicksim"] = 8764,
+ ["bsim"] = 8765,
+ ["backsim"] = 8765,
+ ["ac"] = 8766,
+ ["mstpos"] = 8766,
+ ["acd"] = 8767,
+ ["wreath"] = 8768,
+ ["VerticalTilde"] = 8768,
+ ["wr"] = 8768,
+ ["nsim"] = 8769,
+ ["NotTilde"] = 8769,
+ ["esim"] = 8770,
+ ["EqualTilde"] = 8770,
+ ["eqsim"] = 8770,
+ ["sime"] = 8771,
+ ["TildeEqual"] = 8771,
+ ["simeq"] = 8771,
+ ["nsime"] = 8772,
+ ["nsimeq"] = 8772,
+ ["NotTildeEqual"] = 8772,
+ ["cong"] = 8773,
+ ["TildeFullEqual"] = 8773,
+ ["simne"] = 8774,
+ ["ncong"] = 8775,
+ ["NotTildeFullEqual"] = 8775,
+ ["asymp"] = 8776,
+ ["ap"] = 8776,
+ ["TildeTilde"] = 8776,
+ ["approx"] = 8776,
+ ["thkap"] = 8776,
+ ["thickapprox"] = 8776,
+ ["nap"] = 8777,
+ ["NotTildeTilde"] = 8777,
+ ["napprox"] = 8777,
+ ["ape"] = 8778,
+ ["approxeq"] = 8778,
+ ["apid"] = 8779,
+ ["bcong"] = 8780,
+ ["backcong"] = 8780,
+ ["asympeq"] = 8781,
+ ["CupCap"] = 8781,
+ ["bump"] = 8782,
+ ["HumpDownHump"] = 8782,
+ ["Bumpeq"] = 8782,
+ ["bumpe"] = 8783,
+ ["HumpEqual"] = 8783,
+ ["bumpeq"] = 8783,
+ ["esdot"] = 8784,
+ ["DotEqual"] = 8784,
+ ["doteq"] = 8784,
+ ["eDot"] = 8785,
+ ["doteqdot"] = 8785,
+ ["efDot"] = 8786,
+ ["fallingdotseq"] = 8786,
+ ["erDot"] = 8787,
+ ["risingdotseq"] = 8787,
+ ["colone"] = 8788,
+ ["coloneq"] = 8788,
+ ["Assign"] = 8788,
+ ["ecolon"] = 8789,
+ ["eqcolon"] = 8789,
+ ["ecir"] = 8790,
+ ["eqcirc"] = 8790,
+ ["cire"] = 8791,
+ ["circeq"] = 8791,
+ ["wedgeq"] = 8793,
+ ["veeeq"] = 8794,
+ ["trie"] = 8796,
+ ["triangleq"] = 8796,
+ ["equest"] = 8799,
+ ["questeq"] = 8799,
+ ["ne"] = 8800,
+ ["NotEqual"] = 8800,
+ ["equiv"] = 8801,
+ ["Congruent"] = 8801,
+ ["nequiv"] = 8802,
+ ["NotCongruent"] = 8802,
+ ["le"] = 8804,
+ ["leq"] = 8804,
+ ["ge"] = 8805,
+ ["GreaterEqual"] = 8805,
+ ["geq"] = 8805,
+ ["lE"] = 8806,
+ ["LessFullEqual"] = 8806,
+ ["leqq"] = 8806,
+ ["gE"] = 8807,
+ ["GreaterFullEqual"] = 8807,
+ ["geqq"] = 8807,
+ ["lnE"] = 8808,
+ ["lneqq"] = 8808,
+ ["gnE"] = 8809,
+ ["gneqq"] = 8809,
+ ["Lt"] = 8810,
+ ["NestedLessLess"] = 8810,
+ ["ll"] = 8810,
+ ["Gt"] = 8811,
+ ["NestedGreaterGreater"] = 8811,
+ ["gg"] = 8811,
+ ["twixt"] = 8812,
+ ["between"] = 8812,
+ ["NotCupCap"] = 8813,
+ ["nlt"] = 8814,
+ ["NotLess"] = 8814,
+ ["nless"] = 8814,
+ ["ngt"] = 8815,
+ ["NotGreater"] = 8815,
+ ["ngtr"] = 8815,
+ ["nle"] = 8816,
+ ["NotLessEqual"] = 8816,
+ ["nleq"] = 8816,
+ ["nge"] = 8817,
+ ["NotGreaterEqual"] = 8817,
+ ["ngeq"] = 8817,
+ ["lsim"] = 8818,
+ ["LessTilde"] = 8818,
+ ["lesssim"] = 8818,
+ ["gsim"] = 8819,
+ ["gtrsim"] = 8819,
+ ["GreaterTilde"] = 8819,
+ ["nlsim"] = 8820,
+ ["NotLessTilde"] = 8820,
+ ["ngsim"] = 8821,
+ ["NotGreaterTilde"] = 8821,
+ ["lg"] = 8822,
+ ["lessgtr"] = 8822,
+ ["LessGreater"] = 8822,
+ ["gl"] = 8823,
+ ["gtrless"] = 8823,
+ ["GreaterLess"] = 8823,
+ ["ntlg"] = 8824,
+ ["NotLessGreater"] = 8824,
+ ["ntgl"] = 8825,
+ ["NotGreaterLess"] = 8825,
+ ["pr"] = 8826,
+ ["Precedes"] = 8826,
+ ["prec"] = 8826,
+ ["sc"] = 8827,
+ ["Succeeds"] = 8827,
+ ["succ"] = 8827,
+ ["prcue"] = 8828,
+ ["PrecedesSlantEqual"] = 8828,
+ ["preccurlyeq"] = 8828,
+ ["sccue"] = 8829,
+ ["SucceedsSlantEqual"] = 8829,
+ ["succcurlyeq"] = 8829,
+ ["prsim"] = 8830,
+ ["precsim"] = 8830,
+ ["PrecedesTilde"] = 8830,
+ ["scsim"] = 8831,
+ ["succsim"] = 8831,
+ ["SucceedsTilde"] = 8831,
+ ["npr"] = 8832,
+ ["nprec"] = 8832,
+ ["NotPrecedes"] = 8832,
+ ["nsc"] = 8833,
+ ["nsucc"] = 8833,
+ ["NotSucceeds"] = 8833,
+ ["sub"] = 8834,
+ ["subset"] = 8834,
+ ["sup"] = 8835,
+ ["supset"] = 8835,
+ ["Superset"] = 8835,
+ ["nsub"] = 8836,
+ ["nsup"] = 8837,
+ ["sube"] = 8838,
+ ["SubsetEqual"] = 8838,
+ ["subseteq"] = 8838,
+ ["supe"] = 8839,
+ ["supseteq"] = 8839,
+ ["SupersetEqual"] = 8839,
+ ["nsube"] = 8840,
+ ["nsubseteq"] = 8840,
+ ["NotSubsetEqual"] = 8840,
+ ["nsupe"] = 8841,
+ ["nsupseteq"] = 8841,
+ ["NotSupersetEqual"] = 8841,
+ ["subne"] = 8842,
+ ["subsetneq"] = 8842,
+ ["supne"] = 8843,
+ ["supsetneq"] = 8843,
+ ["cupdot"] = 8845,
+ ["uplus"] = 8846,
+ ["UnionPlus"] = 8846,
+ ["sqsub"] = 8847,
+ ["SquareSubset"] = 8847,
+ ["sqsubset"] = 8847,
+ ["sqsup"] = 8848,
+ ["SquareSuperset"] = 8848,
+ ["sqsupset"] = 8848,
+ ["sqsube"] = 8849,
+ ["SquareSubsetEqual"] = 8849,
+ ["sqsubseteq"] = 8849,
+ ["sqsupe"] = 8850,
+ ["SquareSupersetEqual"] = 8850,
+ ["sqsupseteq"] = 8850,
+ ["sqcap"] = 8851,
+ ["SquareIntersection"] = 8851,
+ ["sqcup"] = 8852,
+ ["SquareUnion"] = 8852,
+ ["oplus"] = 8853,
+ ["CirclePlus"] = 8853,
+ ["ominus"] = 8854,
+ ["CircleMinus"] = 8854,
+ ["otimes"] = 8855,
+ ["CircleTimes"] = 8855,
+ ["osol"] = 8856,
+ ["odot"] = 8857,
+ ["CircleDot"] = 8857,
+ ["ocir"] = 8858,
+ ["circledcirc"] = 8858,
+ ["oast"] = 8859,
+ ["circledast"] = 8859,
+ ["odash"] = 8861,
+ ["circleddash"] = 8861,
+ ["plusb"] = 8862,
+ ["boxplus"] = 8862,
+ ["minusb"] = 8863,
+ ["boxminus"] = 8863,
+ ["timesb"] = 8864,
+ ["boxtimes"] = 8864,
+ ["sdotb"] = 8865,
+ ["dotsquare"] = 8865,
+ ["vdash"] = 8866,
+ ["RightTee"] = 8866,
+ ["dashv"] = 8867,
+ ["LeftTee"] = 8867,
+ ["top"] = 8868,
+ ["DownTee"] = 8868,
+ ["bottom"] = 8869,
+ ["bot"] = 8869,
+ ["perp"] = 8869,
+ ["UpTee"] = 8869,
+ ["models"] = 8871,
+ ["vDash"] = 8872,
+ ["DoubleRightTee"] = 8872,
+ ["Vdash"] = 8873,
+ ["Vvdash"] = 8874,
+ ["VDash"] = 8875,
+ ["nvdash"] = 8876,
+ ["nvDash"] = 8877,
+ ["nVdash"] = 8878,
+ ["nVDash"] = 8879,
+ ["prurel"] = 8880,
+ ["vltri"] = 8882,
+ ["vartriangleleft"] = 8882,
+ ["LeftTriangle"] = 8882,
+ ["vrtri"] = 8883,
+ ["vartriangleright"] = 8883,
+ ["RightTriangle"] = 8883,
+ ["ltrie"] = 8884,
+ ["trianglelefteq"] = 8884,
+ ["LeftTriangleEqual"] = 8884,
+ ["rtrie"] = 8885,
+ ["trianglerighteq"] = 8885,
+ ["RightTriangleEqual"] = 8885,
+ ["origof"] = 8886,
+ ["imof"] = 8887,
+ ["mumap"] = 8888,
+ ["multimap"] = 8888,
+ ["hercon"] = 8889,
+ ["intcal"] = 8890,
+ ["intercal"] = 8890,
+ ["veebar"] = 8891,
+ ["barvee"] = 8893,
+ ["angrtvb"] = 8894,
+ ["lrtri"] = 8895,
+ ["xwedge"] = 8896,
+ ["Wedge"] = 8896,
+ ["bigwedge"] = 8896,
+ ["xvee"] = 8897,
+ ["Vee"] = 8897,
+ ["bigvee"] = 8897,
+ ["xcap"] = 8898,
+ ["Intersection"] = 8898,
+ ["bigcap"] = 8898,
+ ["xcup"] = 8899,
+ ["Union"] = 8899,
+ ["bigcup"] = 8899,
+ ["diam"] = 8900,
+ ["diamond"] = 8900,
+ ["Diamond"] = 8900,
+ ["sdot"] = 8901,
+ ["sstarf"] = 8902,
+ ["Star"] = 8902,
+ ["divonx"] = 8903,
+ ["divideontimes"] = 8903,
+ ["bowtie"] = 8904,
+ ["ltimes"] = 8905,
+ ["rtimes"] = 8906,
+ ["lthree"] = 8907,
+ ["leftthreetimes"] = 8907,
+ ["rthree"] = 8908,
+ ["rightthreetimes"] = 8908,
+ ["bsime"] = 8909,
+ ["backsimeq"] = 8909,
+ ["cuvee"] = 8910,
+ ["curlyvee"] = 8910,
+ ["cuwed"] = 8911,
+ ["curlywedge"] = 8911,
+ ["Sub"] = 8912,
+ ["Subset"] = 8912,
+ ["Sup"] = 8913,
+ ["Supset"] = 8913,
+ ["Cap"] = 8914,
+ ["Cup"] = 8915,
+ ["fork"] = 8916,
+ ["pitchfork"] = 8916,
+ ["epar"] = 8917,
+ ["ltdot"] = 8918,
+ ["lessdot"] = 8918,
+ ["gtdot"] = 8919,
+ ["gtrdot"] = 8919,
+ ["Ll"] = 8920,
+ ["Gg"] = 8921,
+ ["ggg"] = 8921,
+ ["leg"] = 8922,
+ ["LessEqualGreater"] = 8922,
+ ["lesseqgtr"] = 8922,
+ ["gel"] = 8923,
+ ["gtreqless"] = 8923,
+ ["GreaterEqualLess"] = 8923,
+ ["cuepr"] = 8926,
+ ["curlyeqprec"] = 8926,
+ ["cuesc"] = 8927,
+ ["curlyeqsucc"] = 8927,
+ ["nprcue"] = 8928,
+ ["NotPrecedesSlantEqual"] = 8928,
+ ["nsccue"] = 8929,
+ ["NotSucceedsSlantEqual"] = 8929,
+ ["nsqsube"] = 8930,
+ ["NotSquareSubsetEqual"] = 8930,
+ ["nsqsupe"] = 8931,
+ ["NotSquareSupersetEqual"] = 8931,
+ ["lnsim"] = 8934,
+ ["gnsim"] = 8935,
+ ["prnsim"] = 8936,
+ ["precnsim"] = 8936,
+ ["scnsim"] = 8937,
+ ["succnsim"] = 8937,
+ ["nltri"] = 8938,
+ ["ntriangleleft"] = 8938,
+ ["NotLeftTriangle"] = 8938,
+ ["nrtri"] = 8939,
+ ["ntriangleright"] = 8939,
+ ["NotRightTriangle"] = 8939,
+ ["nltrie"] = 8940,
+ ["ntrianglelefteq"] = 8940,
+ ["NotLeftTriangleEqual"] = 8940,
+ ["nrtrie"] = 8941,
+ ["ntrianglerighteq"] = 8941,
+ ["NotRightTriangleEqual"] = 8941,
+ ["vellip"] = 8942,
+ ["ctdot"] = 8943,
+ ["utdot"] = 8944,
+ ["dtdot"] = 8945,
+ ["disin"] = 8946,
+ ["isinsv"] = 8947,
+ ["isins"] = 8948,
+ ["isindot"] = 8949,
+ ["notinvc"] = 8950,
+ ["notinvb"] = 8951,
+ ["isinE"] = 8953,
+ ["nisd"] = 8954,
+ ["xnis"] = 8955,
+ ["nis"] = 8956,
+ ["notnivc"] = 8957,
+ ["notnivb"] = 8958,
+ ["barwed"] = 8965,
+ ["barwedge"] = 8965,
+ ["Barwed"] = 8966,
+ ["doublebarwedge"] = 8966,
+ ["lceil"] = 8968,
+ ["LeftCeiling"] = 8968,
+ ["rceil"] = 8969,
+ ["RightCeiling"] = 8969,
+ ["lfloor"] = 8970,
+ ["LeftFloor"] = 8970,
+ ["rfloor"] = 8971,
+ ["RightFloor"] = 8971,
+ ["drcrop"] = 8972,
+ ["dlcrop"] = 8973,
+ ["urcrop"] = 8974,
+ ["ulcrop"] = 8975,
+ ["bnot"] = 8976,
+ ["profline"] = 8978,
+ ["profsurf"] = 8979,
+ ["telrec"] = 8981,
+ ["target"] = 8982,
+ ["ulcorn"] = 8988,
+ ["ulcorner"] = 8988,
+ ["urcorn"] = 8989,
+ ["urcorner"] = 8989,
+ ["dlcorn"] = 8990,
+ ["llcorner"] = 8990,
+ ["drcorn"] = 8991,
+ ["lrcorner"] = 8991,
+ ["frown"] = 8994,
+ ["sfrown"] = 8994,
+ ["smile"] = 8995,
+ ["ssmile"] = 8995,
+ ["cylcty"] = 9005,
+ ["profalar"] = 9006,
+ ["topbot"] = 9014,
+ ["ovbar"] = 9021,
+ ["solbar"] = 9023,
+ ["angzarr"] = 9084,
+ ["lmoust"] = 9136,
+ ["lmoustache"] = 9136,
+ ["rmoust"] = 9137,
+ ["rmoustache"] = 9137,
+ ["tbrk"] = 9140,
+ ["OverBracket"] = 9140,
+ ["bbrk"] = 9141,
+ ["UnderBracket"] = 9141,
+ ["bbrktbrk"] = 9142,
+ ["OverParenthesis"] = 9180,
+ ["UnderParenthesis"] = 9181,
+ ["OverBrace"] = 9182,
+ ["UnderBrace"] = 9183,
+ ["trpezium"] = 9186,
+ ["elinters"] = 9191,
+ ["blank"] = 9251,
+ ["oS"] = 9416,
+ ["circledS"] = 9416,
+ ["boxh"] = 9472,
+ ["HorizontalLine"] = 9472,
+ ["boxv"] = 9474,
+ ["boxdr"] = 9484,
+ ["boxdl"] = 9488,
+ ["boxur"] = 9492,
+ ["boxul"] = 9496,
+ ["boxvr"] = 9500,
+ ["boxvl"] = 9508,
+ ["boxhd"] = 9516,
+ ["boxhu"] = 9524,
+ ["boxvh"] = 9532,
+ ["boxH"] = 9552,
+ ["boxV"] = 9553,
+ ["boxdR"] = 9554,
+ ["boxDr"] = 9555,
+ ["boxDR"] = 9556,
+ ["boxdL"] = 9557,
+ ["boxDl"] = 9558,
+ ["boxDL"] = 9559,
+ ["boxuR"] = 9560,
+ ["boxUr"] = 9561,
+ ["boxUR"] = 9562,
+ ["boxuL"] = 9563,
+ ["boxUl"] = 9564,
+ ["boxUL"] = 9565,
+ ["boxvR"] = 9566,
+ ["boxVr"] = 9567,
+ ["boxVR"] = 9568,
+ ["boxvL"] = 9569,
+ ["boxVl"] = 9570,
+ ["boxVL"] = 9571,
+ ["boxHd"] = 9572,
+ ["boxhD"] = 9573,
+ ["boxHD"] = 9574,
+ ["boxHu"] = 9575,
+ ["boxhU"] = 9576,
+ ["boxHU"] = 9577,
+ ["boxvH"] = 9578,
+ ["boxVh"] = 9579,
+ ["boxVH"] = 9580,
+ ["uhblk"] = 9600,
+ ["lhblk"] = 9604,
+ ["block"] = 9608,
+ ["blk14"] = 9617,
+ ["blk12"] = 9618,
+ ["blk34"] = 9619,
+ ["squ"] = 9633,
+ ["square"] = 9633,
+ ["Square"] = 9633,
+ ["squf"] = 9642,
+ ["squarf"] = 9642,
+ ["blacksquare"] = 9642,
+ ["FilledVerySmallSquare"] = 9642,
+ ["EmptyVerySmallSquare"] = 9643,
+ ["rect"] = 9645,
+ ["marker"] = 9646,
+ ["fltns"] = 9649,
+ ["xutri"] = 9651,
+ ["bigtriangleup"] = 9651,
+ ["utrif"] = 9652,
+ ["blacktriangle"] = 9652,
+ ["utri"] = 9653,
+ ["triangle"] = 9653,
+ ["rtrif"] = 9656,
+ ["blacktriangleright"] = 9656,
+ ["rtri"] = 9657,
+ ["triangleright"] = 9657,
+ ["xdtri"] = 9661,
+ ["bigtriangledown"] = 9661,
+ ["dtrif"] = 9662,
+ ["blacktriangledown"] = 9662,
+ ["dtri"] = 9663,
+ ["triangledown"] = 9663,
+ ["ltrif"] = 9666,
+ ["blacktriangleleft"] = 9666,
+ ["ltri"] = 9667,
+ ["triangleleft"] = 9667,
+ ["loz"] = 9674,
+ ["lozenge"] = 9674,
+ ["cir"] = 9675,
+ ["tridot"] = 9708,
+ ["xcirc"] = 9711,
+ ["bigcirc"] = 9711,
+ ["ultri"] = 9720,
+ ["urtri"] = 9721,
+ ["lltri"] = 9722,
+ ["EmptySmallSquare"] = 9723,
+ ["FilledSmallSquare"] = 9724,
+ ["starf"] = 9733,
+ ["bigstar"] = 9733,
+ ["star"] = 9734,
+ ["phone"] = 9742,
+ ["female"] = 9792,
+ ["male"] = 9794,
+ ["spades"] = 9824,
+ ["spadesuit"] = 9824,
+ ["clubs"] = 9827,
+ ["clubsuit"] = 9827,
+ ["hearts"] = 9829,
+ ["heartsuit"] = 9829,
+ ["diams"] = 9830,
+ ["diamondsuit"] = 9830,
+ ["sung"] = 9834,
+ ["flat"] = 9837,
+ ["natur"] = 9838,
+ ["natural"] = 9838,
+ ["sharp"] = 9839,
+ ["check"] = 10003,
+ ["checkmark"] = 10003,
+ ["cross"] = 10007,
+ ["malt"] = 10016,
+ ["maltese"] = 10016,
+ ["sext"] = 10038,
+ ["VerticalSeparator"] = 10072,
+ ["lbbrk"] = 10098,
+ ["rbbrk"] = 10099,
+ ["lobrk"] = 10214,
+ ["LeftDoubleBracket"] = 10214,
+ ["robrk"] = 10215,
+ ["RightDoubleBracket"] = 10215,
+ ["lang"] = 10216,
+ ["LeftAngleBracket"] = 10216,
+ ["langle"] = 10216,
+ ["rang"] = 10217,
+ ["RightAngleBracket"] = 10217,
+ ["rangle"] = 10217,
+ ["Lang"] = 10218,
+ ["Rang"] = 10219,
+ ["loang"] = 10220,
+ ["roang"] = 10221,
+ ["xlarr"] = 10229,
+ ["longleftarrow"] = 10229,
+ ["LongLeftArrow"] = 10229,
+ ["xrarr"] = 10230,
+ ["longrightarrow"] = 10230,
+ ["LongRightArrow"] = 10230,
+ ["xharr"] = 10231,
+ ["longleftrightarrow"] = 10231,
+ ["LongLeftRightArrow"] = 10231,
+ ["xlArr"] = 10232,
+ ["Longleftarrow"] = 10232,
+ ["DoubleLongLeftArrow"] = 10232,
+ ["xrArr"] = 10233,
+ ["Longrightarrow"] = 10233,
+ ["DoubleLongRightArrow"] = 10233,
+ ["xhArr"] = 10234,
+ ["Longleftrightarrow"] = 10234,
+ ["DoubleLongLeftRightArrow"] = 10234,
+ ["xmap"] = 10236,
+ ["longmapsto"] = 10236,
+ ["dzigrarr"] = 10239,
+ ["nvlArr"] = 10498,
+ ["nvrArr"] = 10499,
+ ["nvHarr"] = 10500,
+ ["Map"] = 10501,
+ ["lbarr"] = 10508,
+ ["rbarr"] = 10509,
+ ["bkarow"] = 10509,
+ ["lBarr"] = 10510,
+ ["rBarr"] = 10511,
+ ["dbkarow"] = 10511,
+ ["RBarr"] = 10512,
+ ["drbkarow"] = 10512,
+ ["DDotrahd"] = 10513,
+ ["UpArrowBar"] = 10514,
+ ["DownArrowBar"] = 10515,
+ ["Rarrtl"] = 10518,
+ ["latail"] = 10521,
+ ["ratail"] = 10522,
+ ["lAtail"] = 10523,
+ ["rAtail"] = 10524,
+ ["larrfs"] = 10525,
+ ["rarrfs"] = 10526,
+ ["larrbfs"] = 10527,
+ ["rarrbfs"] = 10528,
+ ["nwarhk"] = 10531,
+ ["nearhk"] = 10532,
+ ["searhk"] = 10533,
+ ["hksearow"] = 10533,
+ ["swarhk"] = 10534,
+ ["hkswarow"] = 10534,
+ ["nwnear"] = 10535,
+ ["nesear"] = 10536,
+ ["toea"] = 10536,
+ ["seswar"] = 10537,
+ ["tosa"] = 10537,
+ ["swnwar"] = 10538,
+ ["rarrc"] = 10547,
+ ["cudarrr"] = 10549,
+ ["ldca"] = 10550,
+ ["rdca"] = 10551,
+ ["cudarrl"] = 10552,
+ ["larrpl"] = 10553,
+ ["curarrm"] = 10556,
+ ["cularrp"] = 10557,
+ ["rarrpl"] = 10565,
+ ["harrcir"] = 10568,
+ ["Uarrocir"] = 10569,
+ ["lurdshar"] = 10570,
+ ["ldrushar"] = 10571,
+ ["LeftRightVector"] = 10574,
+ ["RightUpDownVector"] = 10575,
+ ["DownLeftRightVector"] = 10576,
+ ["LeftUpDownVector"] = 10577,
+ ["LeftVectorBar"] = 10578,
+ ["RightVectorBar"] = 10579,
+ ["RightUpVectorBar"] = 10580,
+ ["RightDownVectorBar"] = 10581,
+ ["DownLeftVectorBar"] = 10582,
+ ["DownRightVectorBar"] = 10583,
+ ["LeftUpVectorBar"] = 10584,
+ ["LeftDownVectorBar"] = 10585,
+ ["LeftTeeVector"] = 10586,
+ ["RightTeeVector"] = 10587,
+ ["RightUpTeeVector"] = 10588,
+ ["RightDownTeeVector"] = 10589,
+ ["DownLeftTeeVector"] = 10590,
+ ["DownRightTeeVector"] = 10591,
+ ["LeftUpTeeVector"] = 10592,
+ ["LeftDownTeeVector"] = 10593,
+ ["lHar"] = 10594,
+ ["uHar"] = 10595,
+ ["rHar"] = 10596,
+ ["dHar"] = 10597,
+ ["luruhar"] = 10598,
+ ["ldrdhar"] = 10599,
+ ["ruluhar"] = 10600,
+ ["rdldhar"] = 10601,
+ ["lharul"] = 10602,
+ ["llhard"] = 10603,
+ ["rharul"] = 10604,
+ ["lrhard"] = 10605,
+ ["udhar"] = 10606,
+ ["UpEquilibrium"] = 10606,
+ ["duhar"] = 10607,
+ ["ReverseUpEquilibrium"] = 10607,
+ ["RoundImplies"] = 10608,
+ ["erarr"] = 10609,
+ ["simrarr"] = 10610,
+ ["larrsim"] = 10611,
+ ["rarrsim"] = 10612,
+ ["rarrap"] = 10613,
+ ["ltlarr"] = 10614,
+ ["gtrarr"] = 10616,
+ ["subrarr"] = 10617,
+ ["suplarr"] = 10619,
+ ["lfisht"] = 10620,
+ ["rfisht"] = 10621,
+ ["ufisht"] = 10622,
+ ["dfisht"] = 10623,
+ ["lopar"] = 10629,
+ ["ropar"] = 10630,
+ ["lbrke"] = 10635,
+ ["rbrke"] = 10636,
+ ["lbrkslu"] = 10637,
+ ["rbrksld"] = 10638,
+ ["lbrksld"] = 10639,
+ ["rbrkslu"] = 10640,
+ ["langd"] = 10641,
+ ["rangd"] = 10642,
+ ["lparlt"] = 10643,
+ ["rpargt"] = 10644,
+ ["gtlPar"] = 10645,
+ ["ltrPar"] = 10646,
+ ["vzigzag"] = 10650,
+ ["vangrt"] = 10652,
+ ["angrtvbd"] = 10653,
+ ["ange"] = 10660,
+ ["range"] = 10661,
+ ["dwangle"] = 10662,
+ ["uwangle"] = 10663,
+ ["angmsdaa"] = 10664,
+ ["angmsdab"] = 10665,
+ ["angmsdac"] = 10666,
+ ["angmsdad"] = 10667,
+ ["angmsdae"] = 10668,
+ ["angmsdaf"] = 10669,
+ ["angmsdag"] = 10670,
+ ["angmsdah"] = 10671,
+ ["bemptyv"] = 10672,
+ ["demptyv"] = 10673,
+ ["cemptyv"] = 10674,
+ ["raemptyv"] = 10675,
+ ["laemptyv"] = 10676,
+ ["ohbar"] = 10677,
+ ["omid"] = 10678,
+ ["opar"] = 10679,
+ ["operp"] = 10681,
+ ["olcross"] = 10683,
+ ["odsold"] = 10684,
+ ["olcir"] = 10686,
+ ["ofcir"] = 10687,
+ ["olt"] = 10688,
+ ["ogt"] = 10689,
+ ["cirscir"] = 10690,
+ ["cirE"] = 10691,
+ ["solb"] = 10692,
+ ["bsolb"] = 10693,
+ ["boxbox"] = 10697,
+ ["trisb"] = 10701,
+ ["rtriltri"] = 10702,
+ ["LeftTriangleBar"] = 10703,
+ ["RightTriangleBar"] = 10704,
+ ["race"] = 10714,
+ ["iinfin"] = 10716,
+ ["infintie"] = 10717,
+ ["nvinfin"] = 10718,
+ ["eparsl"] = 10723,
+ ["smeparsl"] = 10724,
+ ["eqvparsl"] = 10725,
+ ["lozf"] = 10731,
+ ["blacklozenge"] = 10731,
+ ["RuleDelayed"] = 10740,
+ ["dsol"] = 10742,
+ ["xodot"] = 10752,
+ ["bigodot"] = 10752,
+ ["xoplus"] = 10753,
+ ["bigoplus"] = 10753,
+ ["xotime"] = 10754,
+ ["bigotimes"] = 10754,
+ ["xuplus"] = 10756,
+ ["biguplus"] = 10756,
+ ["xsqcup"] = 10758,
+ ["bigsqcup"] = 10758,
+ ["qint"] = 10764,
+ ["iiiint"] = 10764,
+ ["fpartint"] = 10765,
+ ["cirfnint"] = 10768,
+ ["awint"] = 10769,
+ ["rppolint"] = 10770,
+ ["scpolint"] = 10771,
+ ["npolint"] = 10772,
+ ["pointint"] = 10773,
+ ["quatint"] = 10774,
+ ["intlarhk"] = 10775,
+ ["pluscir"] = 10786,
+ ["plusacir"] = 10787,
+ ["simplus"] = 10788,
+ ["plusdu"] = 10789,
+ ["plussim"] = 10790,
+ ["plustwo"] = 10791,
+ ["mcomma"] = 10793,
+ ["minusdu"] = 10794,
+ ["loplus"] = 10797,
+ ["roplus"] = 10798,
+ ["Cross"] = 10799,
+ ["timesd"] = 10800,
+ ["timesbar"] = 10801,
+ ["smashp"] = 10803,
+ ["lotimes"] = 10804,
+ ["rotimes"] = 10805,
+ ["otimesas"] = 10806,
+ ["Otimes"] = 10807,
+ ["odiv"] = 10808,
+ ["triplus"] = 10809,
+ ["triminus"] = 10810,
+ ["tritime"] = 10811,
+ ["iprod"] = 10812,
+ ["intprod"] = 10812,
+ ["amalg"] = 10815,
+ ["capdot"] = 10816,
+ ["ncup"] = 10818,
+ ["ncap"] = 10819,
+ ["capand"] = 10820,
+ ["cupor"] = 10821,
+ ["cupcap"] = 10822,
+ ["capcup"] = 10823,
+ ["cupbrcap"] = 10824,
+ ["capbrcup"] = 10825,
+ ["cupcup"] = 10826,
+ ["capcap"] = 10827,
+ ["ccups"] = 10828,
+ ["ccaps"] = 10829,
+ ["ccupssm"] = 10832,
+ ["And"] = 10835,
+ ["Or"] = 10836,
+ ["andand"] = 10837,
+ ["oror"] = 10838,
+ ["orslope"] = 10839,
+ ["andslope"] = 10840,
+ ["andv"] = 10842,
+ ["orv"] = 10843,
+ ["andd"] = 10844,
+ ["ord"] = 10845,
+ ["wedbar"] = 10847,
+ ["sdote"] = 10854,
+ ["simdot"] = 10858,
+ ["congdot"] = 10861,
+ ["easter"] = 10862,
+ ["apacir"] = 10863,
+ ["apE"] = 10864,
+ ["eplus"] = 10865,
+ ["pluse"] = 10866,
+ ["Esim"] = 10867,
+ ["Colone"] = 10868,
+ ["Equal"] = 10869,
+ ["eDDot"] = 10871,
+ ["ddotseq"] = 10871,
+ ["equivDD"] = 10872,
+ ["ltcir"] = 10873,
+ ["gtcir"] = 10874,
+ ["ltquest"] = 10875,
+ ["gtquest"] = 10876,
+ ["les"] = 10877,
+ ["LessSlantEqual"] = 10877,
+ ["leqslant"] = 10877,
+ ["ges"] = 10878,
+ ["GreaterSlantEqual"] = 10878,
+ ["geqslant"] = 10878,
+ ["lesdot"] = 10879,
+ ["gesdot"] = 10880,
+ ["lesdoto"] = 10881,
+ ["gesdoto"] = 10882,
+ ["lesdotor"] = 10883,
+ ["gesdotol"] = 10884,
+ ["lap"] = 10885,
+ ["lessapprox"] = 10885,
+ ["gap"] = 10886,
+ ["gtrapprox"] = 10886,
+ ["lne"] = 10887,
+ ["lneq"] = 10887,
+ ["gne"] = 10888,
+ ["gneq"] = 10888,
+ ["lnap"] = 10889,
+ ["lnapprox"] = 10889,
+ ["gnap"] = 10890,
+ ["gnapprox"] = 10890,
+ ["lEg"] = 10891,
+ ["lesseqqgtr"] = 10891,
+ ["gEl"] = 10892,
+ ["gtreqqless"] = 10892,
+ ["lsime"] = 10893,
+ ["gsime"] = 10894,
+ ["lsimg"] = 10895,
+ ["gsiml"] = 10896,
+ ["lgE"] = 10897,
+ ["glE"] = 10898,
+ ["lesges"] = 10899,
+ ["gesles"] = 10900,
+ ["els"] = 10901,
+ ["eqslantless"] = 10901,
+ ["egs"] = 10902,
+ ["eqslantgtr"] = 10902,
+ ["elsdot"] = 10903,
+ ["egsdot"] = 10904,
+ ["el"] = 10905,
+ ["eg"] = 10906,
+ ["siml"] = 10909,
+ ["simg"] = 10910,
+ ["simlE"] = 10911,
+ ["simgE"] = 10912,
+ ["LessLess"] = 10913,
+ ["GreaterGreater"] = 10914,
+ ["glj"] = 10916,
+ ["gla"] = 10917,
+ ["ltcc"] = 10918,
+ ["gtcc"] = 10919,
+ ["lescc"] = 10920,
+ ["gescc"] = 10921,
+ ["smt"] = 10922,
+ ["lat"] = 10923,
+ ["smte"] = 10924,
+ ["late"] = 10925,
+ ["bumpE"] = 10926,
+ ["pre"] = 10927,
+ ["preceq"] = 10927,
+ ["PrecedesEqual"] = 10927,
+ ["sce"] = 10928,
+ ["succeq"] = 10928,
+ ["SucceedsEqual"] = 10928,
+ ["prE"] = 10931,
+ ["scE"] = 10932,
+ ["prnE"] = 10933,
+ ["precneqq"] = 10933,
+ ["scnE"] = 10934,
+ ["succneqq"] = 10934,
+ ["prap"] = 10935,
+ ["precapprox"] = 10935,
+ ["scap"] = 10936,
+ ["succapprox"] = 10936,
+ ["prnap"] = 10937,
+ ["precnapprox"] = 10937,
+ ["scnap"] = 10938,
+ ["succnapprox"] = 10938,
+ ["Pr"] = 10939,
+ ["Sc"] = 10940,
+ ["subdot"] = 10941,
+ ["supdot"] = 10942,
+ ["subplus"] = 10943,
+ ["supplus"] = 10944,
+ ["submult"] = 10945,
+ ["supmult"] = 10946,
+ ["subedot"] = 10947,
+ ["supedot"] = 10948,
+ ["subE"] = 10949,
+ ["subseteqq"] = 10949,
+ ["supE"] = 10950,
+ ["supseteqq"] = 10950,
+ ["subsim"] = 10951,
+ ["supsim"] = 10952,
+ ["subnE"] = 10955,
+ ["subsetneqq"] = 10955,
+ ["supnE"] = 10956,
+ ["supsetneqq"] = 10956,
+ ["csub"] = 10959,
+ ["csup"] = 10960,
+ ["csube"] = 10961,
+ ["csupe"] = 10962,
+ ["subsup"] = 10963,
+ ["supsub"] = 10964,
+ ["subsub"] = 10965,
+ ["supsup"] = 10966,
+ ["suphsub"] = 10967,
+ ["supdsub"] = 10968,
+ ["forkv"] = 10969,
+ ["topfork"] = 10970,
+ ["mlcp"] = 10971,
+ ["Dashv"] = 10980,
+ ["DoubleLeftTee"] = 10980,
+ ["Vdashl"] = 10982,
+ ["Barv"] = 10983,
+ ["vBar"] = 10984,
+ ["vBarv"] = 10985,
+ ["Vbar"] = 10987,
+ ["Not"] = 10988,
+ ["bNot"] = 10989,
+ ["rnmid"] = 10990,
+ ["cirmid"] = 10991,
+ ["midcir"] = 10992,
+ ["topcir"] = 10993,
+ ["nhpar"] = 10994,
+ ["parsim"] = 10995,
+ ["parsl"] = 11005,
+ ["fflig"] = 64256,
+ ["filig"] = 64257,
+ ["fllig"] = 64258,
+ ["ffilig"] = 64259,
+ ["ffllig"] = 64260,
+ ["Ascr"] = 119964,
+ ["Cscr"] = 119966,
+ ["Dscr"] = 119967,
+ ["Gscr"] = 119970,
+ ["Jscr"] = 119973,
+ ["Kscr"] = 119974,
+ ["Nscr"] = 119977,
+ ["Oscr"] = 119978,
+ ["Pscr"] = 119979,
+ ["Qscr"] = 119980,
+ ["Sscr"] = 119982,
+ ["Tscr"] = 119983,
+ ["Uscr"] = 119984,
+ ["Vscr"] = 119985,
+ ["Wscr"] = 119986,
+ ["Xscr"] = 119987,
+ ["Yscr"] = 119988,
+ ["Zscr"] = 119989,
+ ["ascr"] = 119990,
+ ["bscr"] = 119991,
+ ["cscr"] = 119992,
+ ["dscr"] = 119993,
+ ["fscr"] = 119995,
+ ["hscr"] = 119997,
+ ["iscr"] = 119998,
+ ["jscr"] = 119999,
+ ["kscr"] = 120000,
+ ["lscr"] = 120001,
+ ["mscr"] = 120002,
+ ["nscr"] = 120003,
+ ["pscr"] = 120005,
+ ["qscr"] = 120006,
+ ["rscr"] = 120007,
+ ["sscr"] = 120008,
+ ["tscr"] = 120009,
+ ["uscr"] = 120010,
+ ["vscr"] = 120011,
+ ["wscr"] = 120012,
+ ["xscr"] = 120013,
+ ["yscr"] = 120014,
+ ["zscr"] = 120015,
+ ["Afr"] = 120068,
+ ["Bfr"] = 120069,
+ ["Dfr"] = 120071,
+ ["Efr"] = 120072,
+ ["Ffr"] = 120073,
+ ["Gfr"] = 120074,
+ ["Jfr"] = 120077,
+ ["Kfr"] = 120078,
+ ["Lfr"] = 120079,
+ ["Mfr"] = 120080,
+ ["Nfr"] = 120081,
+ ["Ofr"] = 120082,
+ ["Pfr"] = 120083,
+ ["Qfr"] = 120084,
+ ["Sfr"] = 120086,
+ ["Tfr"] = 120087,
+ ["Ufr"] = 120088,
+ ["Vfr"] = 120089,
+ ["Wfr"] = 120090,
+ ["Xfr"] = 120091,
+ ["Yfr"] = 120092,
+ ["afr"] = 120094,
+ ["bfr"] = 120095,
+ ["cfr"] = 120096,
+ ["dfr"] = 120097,
+ ["efr"] = 120098,
+ ["ffr"] = 120099,
+ ["gfr"] = 120100,
+ ["hfr"] = 120101,
+ ["ifr"] = 120102,
+ ["jfr"] = 120103,
+ ["kfr"] = 120104,
+ ["lfr"] = 120105,
+ ["mfr"] = 120106,
+ ["nfr"] = 120107,
+ ["ofr"] = 120108,
+ ["pfr"] = 120109,
+ ["qfr"] = 120110,
+ ["rfr"] = 120111,
+ ["sfr"] = 120112,
+ ["tfr"] = 120113,
+ ["ufr"] = 120114,
+ ["vfr"] = 120115,
+ ["wfr"] = 120116,
+ ["xfr"] = 120117,
+ ["yfr"] = 120118,
+ ["zfr"] = 120119,
+ ["Aopf"] = 120120,
+ ["Bopf"] = 120121,
+ ["Dopf"] = 120123,
+ ["Eopf"] = 120124,
+ ["Fopf"] = 120125,
+ ["Gopf"] = 120126,
+ ["Iopf"] = 120128,
+ ["Jopf"] = 120129,
+ ["Kopf"] = 120130,
+ ["Lopf"] = 120131,
+ ["Mopf"] = 120132,
+ ["Oopf"] = 120134,
+ ["Sopf"] = 120138,
+ ["Topf"] = 120139,
+ ["Uopf"] = 120140,
+ ["Vopf"] = 120141,
+ ["Wopf"] = 120142,
+ ["Xopf"] = 120143,
+ ["Yopf"] = 120144,
+ ["aopf"] = 120146,
+ ["bopf"] = 120147,
+ ["copf"] = 120148,
+ ["dopf"] = 120149,
+ ["eopf"] = 120150,
+ ["fopf"] = 120151,
+ ["gopf"] = 120152,
+ ["hopf"] = 120153,
+ ["iopf"] = 120154,
+ ["jopf"] = 120155,
+ ["kopf"] = 120156,
+ ["lopf"] = 120157,
+ ["mopf"] = 120158,
+ ["nopf"] = 120159,
+ ["oopf"] = 120160,
+ ["popf"] = 120161,
+ ["qopf"] = 120162,
+ ["ropf"] = 120163,
+ ["sopf"] = 120164,
+ ["topf"] = 120165,
+ ["uopf"] = 120166,
+ ["vopf"] = 120167,
+ ["wopf"] = 120168,
+ ["xopf"] = 120169,
+ ["yopf"] = 120170,
+ ["zopf"] = 120171,
}
% \end{macrocode}
% \par
% \begin{markdown}
%
% Given a string `s` of decimal digits, the \luamdef{entities.dec_entity}
-% returns the corresponding \textsc{utf}8-encoded Unicode codepoint.
+% returns the corresponding \acro{utf}8-encoded Unicode codepoint.
%
% \end{markdown}
% \begin{macrocode}
@@ -10830,7 +13085,7 @@ end
%
% Given a string `s` of hexadecimal digits, the
% \luamdef{entities.hex_entity} returns the corresponding
-% \textsc{utf}8-encoded Unicode codepoint.
+% \acro{utf}8-encoded Unicode codepoint.
%
% \end{markdown}
% \begin{macrocode}
@@ -10843,12 +13098,15 @@ end
%
% Given a character entity name `s` (like `ouml`), the
% \luamdef{entities.char_entity} returns the corresponding
-% \textsc{utf}8-encoded Unicode codepoint.
+% \acro{utf}8-encoded Unicode codepoint.
%
% \end{markdown}
% \begin{macrocode}
function entities.char_entity(s)
local n = character_entities[s]
+ if n == nil then
+ return "&" .. s .. ";"
+ end
return unicode.utf8.char(n)
end
% \end{macrocode}
@@ -11162,6 +13420,37 @@ function M.writer.new(options)
% \par
% \begin{markdown}
%
+% Define \luamdef{writer->table} as a function that will transform an input
+% table to the output format, where `rows` is a sequence of columns and a
+% column is a sequence of cell texts.
+%
+% \end{markdown}
+% \begin{macrocode}
+ function self.table(rows, caption)
+ local buffer = {"\\markdownRendererTable{",
+ caption or "", "}{", #rows - 1, "}{", #rows[1], "}"}
+ local temp = rows[2] -- put alignments on the first row
+ rows[2] = rows[1]
+ rows[1] = temp
+ for i, row in ipairs(rows) do
+ table.insert(buffer, "{")
+ for _, column in ipairs(row) do
+ if i > 1 then -- do not use braces for alignments
+ table.insert(buffer, "{")
+ end
+ table.insert(buffer, column)
+ if i > 1 then
+ table.insert(buffer, "}%\n")
+ end
+ end
+ table.insert(buffer, "}%\n")
+ end
+ return buffer
+ end
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
% Define \luamdef{writer->image} as a function that will transform an input
% image to the output format, where `lab` corresponds to the label, `src`
% to the \acro{url}, and `tit` to the title of the image.
@@ -11319,8 +13608,8 @@ function M.writer.new(options)
% \begin{markdown}
%
% Define \luamdef{writer->inline_html} and \luamdef{writer->display_html}
-% as functions that will transform an inline or block \textsc{html} element
-% respectively to the output format, where `html` is the \textsc{html}
+% as functions that will transform an inline or block \acro{html} element
+% respectively to the output format, where `html` is the \acro{html}
% input.
%
% \end{markdown}
@@ -11496,7 +13785,8 @@ function M.writer.new(options)
if not self.is_writing then return "" end
local cmd
- if level == 1 then
+ level = level + options.shiftHeadings
+ if level <= 1 then
cmd = "\\markdownRendererHeadingOne"
elseif level == 2 then
cmd = "\\markdownRendererHeadingTwo"
@@ -11506,7 +13796,7 @@ function M.writer.new(options)
cmd = "\\markdownRendererHeadingFour"
elseif level == 5 then
cmd = "\\markdownRendererHeadingFive"
- elseif level == 6 then
+ elseif level >= 6 then
cmd = "\\markdownRendererHeadingSix"
else
cmd = ""
@@ -11604,6 +13894,7 @@ parsers.equal = P("=")
parsers.colon = P(":")
parsers.semicolon = P(";")
parsers.exclamation = P("!")
+parsers.pipe = P("|")
parsers.tilde = P("~")
parsers.tab = P("\t")
parsers.newline = P("\n")
@@ -11658,7 +13949,6 @@ parsers.sp = parsers.spacing^0
parsers.spnl = parsers.optionalspace
* (parsers.newline * parsers.optionalspace)^-1
parsers.line = parsers.linechar^0 * parsers.newline
- + parsers.linechar^1 * parsers.eof
parsers.nonemptyline = parsers.line - parsers.blankline
parsers.chunk = parsers.line * (parsers.optionallyindentedline
@@ -12003,7 +14293,92 @@ parsers.RawNoteRef = #(parsers.lbracket * parsers.circumflex)
% \par
% \begin{markdown}
%
-%#### Parsers Used for \textsc{html}
+%#### Parsers Used for Tables
+%
+% \end{markdown}
+% \begin{macrocode}
+local function make_pipe_table_rectangular(rows)
+ local num_columns = #rows[2]
+ local rectangular_rows = {}
+ for i = 1, #rows do
+ local row = rows[i]
+ local rectangular_row = {}
+ for j = 1, num_columns do
+ rectangular_row[j] = row[j] or ""
+ end
+ table.insert(rectangular_rows, rectangular_row)
+ end
+ return rectangular_rows
+end
+
+local function pipe_table_row(allow_empty_first_column
+ , nonempty_column
+ , column_separator
+ , column)
+ local row_beginning
+ if allow_empty_first_column then
+ row_beginning = -- empty first column
+ #(parsers.spacechar^4
+ * column_separator)
+ * parsers.optionalspace
+ * column
+ * parsers.optionalspace
+ -- non-empty first column
+ + parsers.nonindentspace
+ * nonempty_column^-1
+ * parsers.optionalspace
+ else
+ row_beginning = parsers.nonindentspace
+ * nonempty_column^-1
+ * parsers.optionalspace
+ end
+
+ return Ct(row_beginning
+ * (-- single column with no leading pipes
+ #(column_separator
+ * parsers.optionalspace
+ * parsers.newline)
+ * column_separator
+ * parsers.optionalspace
+ -- single column with leading pipes or
+ -- more than a single column
+ + (column_separator
+ * parsers.optionalspace
+ * column
+ * parsers.optionalspace)^1
+ * (column_separator
+ * parsers.optionalspace)^-1))
+end
+
+parsers.table_hline_separator = parsers.pipe + parsers.plus
+parsers.table_hline_column = (parsers.dash
+ - #(parsers.dash
+ * (parsers.spacechar
+ + parsers.table_hline_separator
+ + parsers.newline)))^1
+ * (parsers.colon * Cc("r")
+ + parsers.dash * Cc("d"))
+ + parsers.colon
+ * (parsers.dash
+ - #(parsers.dash
+ * (parsers.spacechar
+ + parsers.table_hline_separator
+ + parsers.newline)))^1
+ * (parsers.colon * Cc("c")
+ + parsers.dash * Cc("l"))
+parsers.table_hline = pipe_table_row(false
+ , parsers.table_hline_column
+ , parsers.table_hline_separator
+ , parsers.table_hline_column)
+parsers.table_caption_beginning = parsers.skipblanklines
+ * parsers.nonindentspace
+ * (P("Table")^-1 * parsers.colon)
+ * parsers.optionalspace
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+%#### Parsers Used for HTML
%
% \end{markdown}
% \begin{macrocode}
@@ -12116,7 +14491,7 @@ parsers.inlinehtml = parsers.emptyelt_any
% \par
% \begin{markdown}
%
-%#### Parsers Used for \textsc{html} Entities
+%#### Parsers Used for HTML Entities
%
% \end{markdown}
% \begin{macrocode}
@@ -12146,7 +14521,8 @@ parsers.define_reference_parser = parsers.leader * parsers.tag * parsers.colon
%
% \end{markdown}
% \begin{macrocode}
-parsers.Inline = V("Inline")
+parsers.Inline = V("Inline")
+parsers.IndentedInline = V("IndentedInline")
-- parse many p between starter and ender
parsers.between = function(p, starter, ender)
@@ -12502,6 +14878,36 @@ function M.reader.new(writer, options)
% \par
% \begin{markdown}
%
+%#### Parsers Used for Tables (local)
+%
+% \end{markdown}
+% \begin{macrocode}
+larsers.table_row = pipe_table_row(true
+ , (C((parsers.linechar - parsers.pipe)^1)
+ / parse_inlines)
+ , parsers.pipe
+ , (C((parsers.linechar - parsers.pipe)^0)
+ / parse_inlines))
+
+if options.tableCaptions then
+ larsers.table_caption = #parsers.table_caption_beginning
+ * parsers.table_caption_beginning
+ * Ct(parsers.IndentedInline^1)
+ * parsers.newline
+else
+ larsers.table_caption = parsers.fail
+end
+
+larsers.PipeTable = Ct(larsers.table_row * parsers.newline
+ * parsers.table_hline
+ * (parsers.newline * larsers.table_row)^0)
+ / make_pipe_table_rectangular
+ * larsers.table_caption^-1
+ / writer.table
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
%#### Helpers for Links and References (local)
%
% \end{markdown}
@@ -12613,6 +15019,9 @@ function M.reader.new(writer, options)
+ larsers.fencestart
) * parsers.spacechar^0 / writer.space
+ larsers.OptionalIndent
+ = parsers.spacechar^1 / writer.space
+
larsers.Space = parsers.spacechar^2 * larsers.Endline / writer.linebreak
+ parsers.spacechar^1 * larsers.Endline^-1 * parsers.eof / ""
+ parsers.spacechar^1 * larsers.Endline^-1
@@ -12976,6 +15385,7 @@ function M.reader.new(writer, options)
Block = V("ContentBlock")
+ V("Blockquote")
+ + V("PipeTable")
+ V("Verbatim")
+ V("FencedCode")
+ V("HorizontalRule")
@@ -12998,6 +15408,7 @@ function M.reader.new(writer, options)
DefinitionList = larsers.DefinitionList,
DisplayHtml = larsers.DisplayHtml,
Paragraph = larsers.Paragraph,
+ PipeTable = larsers.PipeTable,
Plain = larsers.Plain,
Inline = V("Str")
@@ -13020,8 +15431,29 @@ function M.reader.new(writer, options)
+ V("Smart")
+ V("Symbol"),
+ IndentedInline = V("Str")
+ + V("OptionalIndent")
+ + V("Endline")
+ + V("UlOrStarLine")
+ + V("Strong")
+ + V("Emph")
+ + V("InlineNote")
+ + V("NoteRef")
+ + V("Citations")
+ + V("Link")
+ + V("Image")
+ + V("Code")
+ + V("AutoLinkUrl")
+ + V("AutoLinkEmail")
+ + V("InlineHtml")
+ + V("HtmlEntity")
+ + V("EscapedChar")
+ + V("Smart")
+ + V("Symbol"),
+
Str = larsers.Str,
Space = larsers.Space,
+ OptionalIndent = larsers.OptionalIndent,
Endline = larsers.Endline,
UlOrStarLine = larsers.UlOrStarLine,
Strong = larsers.Strong,
@@ -13079,6 +15511,10 @@ function M.reader.new(writer, options)
syntax.Smart = parsers.fail
end
+ if not options.pipeTables then
+ syntax.PipeTable = parsers.fail
+ end
+
local blocks_toplevel_t = util.table_copy(syntax)
blocks_toplevel_t.Paragraph = larsers.ToplevelParagraph
larsers.blocks_toplevel = Ct(blocks_toplevel_t)
@@ -13388,9 +15824,15 @@ end
\ifx\markdownOptionInlineFootnotes\undefined\else
inlineFootnotes = \markdownOptionInlineFootnotes,
\fi
+\ifx\markdownOptionPipeTables\undefined\else
+ pipeTables = \markdownOptionPipeTables,
+\fi
\ifx\markdownOptionPreserveTabs\undefined\else
preserveTabs = \markdownOptionPreserveTabs,
\fi
+\ifx\markdownOptionShiftHeadings\undefined\else
+ shiftHeadings = "\markdownOptionShiftHeadings",
+\fi
\ifx\markdownOptionSlice\undefined\else
slice = "\markdownOptionSlice",
\fi
@@ -13400,6 +15842,9 @@ end
\ifx\markdownOptionStartNumber\undefined\else
startNumber = \markdownOptionStartNumber,
\fi
+\ifx\markdownOptionTableCaptions\undefined\else
+ tableCaptions = \markdownOptionTableCaptions,
+\fi
\ifx\markdownOptionTightLists\undefined\else
tightLists = \markdownOptionTightLists,
\fi
@@ -14389,6 +16834,93 @@ local convert = md.new(\markdownLuaOptions)
% \par
% \begin{markdown}
%
+% There is a basic implementation of tables. If the \pkg{booktabs} package is
+% loaded, then it is used to produce horizontal lines.
+%
+% \end{markdown}
+% \begin{macrocode}
+\newcount\markdownLaTeXRowCounter
+\newcount\markdownLaTeXRowTotal
+\newcount\markdownLaTeXColumnCounter
+\newcount\markdownLaTeXColumnTotal
+\newtoks\markdownLaTeXTable
+\newtoks\markdownLaTeXTableAlignment
+\newtoks\markdownLaTeXTableEnd
+\@ifpackageloaded{booktabs}{
+ \let\markdownLaTeXTopRule\toprule
+ \let\markdownLaTeXMidRule\midrule
+ \let\markdownLaTeXBottomRule\bottomrule
+}{
+ \let\markdownLaTeXTopRule\hline
+ \let\markdownLaTeXMidRule\hline
+ \let\markdownLaTeXBottomRule\hline
+}
+\markdownSetup{rendererPrototypes={
+ table = {%
+ \markdownLaTeXTable={}%
+ \markdownLaTeXTableAlignment={}%
+ \markdownLaTeXTableEnd={%
+ \markdownLaTeXBottomRule
+ \end{tabular}}%
+ \ifx\empty#1\empty\else
+ \addto@hook\markdownLaTeXTable{%
+ \begin{table}
+ \centering}%
+ \addto@hook\markdownLaTeXTableEnd{%
+ \caption{#1}
+ \end{table}}%
+ \fi
+ \addto@hook\markdownLaTeXTable{\begin{tabular}}%
+ \markdownLaTeXRowCounter=0%
+ \markdownLaTeXRowTotal=#2%
+ \markdownLaTeXColumnTotal=#3%
+ \markdownLaTeXRenderTableRow
+ }
+}}
+\def\markdownLaTeXRenderTableRow#1{%
+ \markdownLaTeXColumnCounter=0%
+ \ifnum\markdownLaTeXRowCounter=0\relax
+ \markdownLaTeXReadAlignments#1%
+ \markdownLaTeXTable=\expandafter\expandafter\expandafter{%
+ \expandafter\the\expandafter\markdownLaTeXTable\expandafter{%
+ \the\markdownLaTeXTableAlignment}}%
+ \addto@hook\markdownLaTeXTable{\markdownLaTeXTopRule}%
+ \else
+ \markdownLaTeXRenderTableCell#1%
+ \fi
+ \ifnum\markdownLaTeXRowCounter=1\relax
+ \addto@hook\markdownLaTeXTable\markdownLaTeXMidRule
+ \fi
+ \advance\markdownLaTeXRowCounter by 1\relax
+ \ifnum\markdownLaTeXRowCounter>\markdownLaTeXRowTotal\relax
+ \markdownInfo{\the\markdownLaTeXTable}
+ \markdownInfo{\the\markdownLaTeXTableEnd}
+ \the\markdownLaTeXTable
+ \the\markdownLaTeXTableEnd
+ \expandafter\@gobble
+ \fi\markdownLaTeXRenderTableRow}
+\def\markdownLaTeXReadAlignments#1{%
+ \advance\markdownLaTeXColumnCounter by 1\relax
+ \if#1d%
+ \addto@hook\markdownLaTeXTableAlignment{l}%
+ \else
+ \addto@hook\markdownLaTeXTableAlignment{#1}%
+ \fi
+ \ifnum\markdownLaTeXColumnCounter<\markdownLaTeXColumnTotal\relax\else
+ \expandafter\@gobble
+ \fi\markdownLaTeXReadAlignments}
+\def\markdownLaTeXRenderTableCell#1{%
+ \advance\markdownLaTeXColumnCounter by 1\relax
+ \ifnum\markdownLaTeXColumnCounter<\markdownLaTeXColumnTotal\relax
+ \addto@hook\markdownLaTeXTable{#1&}%
+ \else
+ \addto@hook\markdownLaTeXTable{#1\\}%
+ \expandafter\@gobble
+ \fi\markdownLaTeXRenderTableCell}
+% \end{macrocode}
+% \par
+% \begin{markdown}
+%
%### Miscellanea
% When buffering user input, we should disable the bytes with the high bit set,
% since these are made active by the \pkg{inputenc} package. We will do this by
@@ -14616,6 +17148,79 @@ local convert = md.new(\markdownLuaOptions)
\def\markdownRendererFootnotePrototype#1{\footnote{#1}}%
\stopmodule\protect
% \end{macrocode}
+% \par
+% \begin{markdown}
+%
+% There is a basic implementation of tables.
+%
+% \end{markdown}
+% \begin{macrocode}
+\newcount\markdownConTeXtRowCounter
+\newcount\markdownConTeXtRowTotal
+\newcount\markdownConTeXtColumnCounter
+\newcount\markdownConTeXtColumnTotal
+\newtoks\markdownConTeXtTable
+\newtoks\markdownConTeXtTableFloat
+\def\markdownRendererTablePrototype#1#2#3{%
+ \markdownConTeXtTable={}%
+ \ifx\empty#1\empty
+ \markdownConTeXtTableFloat={%
+ \the\markdownConTeXtTable}%
+ \else
+ \markdownConTeXtTableFloat={%
+ \placetable{#1}{\the\markdownConTeXtTable}}%
+ \fi
+ \begingroup
+ \setupTABLE[r][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off]
+ \setupTABLE[c][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off]
+ \setupTABLE[r][1][topframe=on, bottomframe=on]
+ \setupTABLE[r][#1][bottomframe=on]
+ \markdownConTeXtRowCounter=0%
+ \markdownConTeXtRowTotal=#2%
+ \markdownConTeXtColumnTotal=#3%
+ \markdownConTeXtRenderTableRow}
+\def\markdownConTeXtRenderTableRow#1{%
+ \markdownConTeXtColumnCounter=0%
+ \ifnum\markdownConTeXtRowCounter=0\relax
+ \markdownConTeXtReadAlignments#1%
+ \markdownConTeXtTable={\bTABLE}%
+ \else
+ \markdownConTeXtTable=\expandafter{%
+ \the\markdownConTeXtTable\bTR}%
+ \markdownConTeXtRenderTableCell#1%
+ \markdownConTeXtTable=\expandafter{%
+ \the\markdownConTeXtTable\eTR}%
+ \fi
+ \advance\markdownConTeXtRowCounter by 1\relax
+ \ifnum\markdownConTeXtRowCounter>\markdownConTeXtRowTotal\relax
+ \markdownConTeXtTable=\expandafter{%
+ \the\markdownConTeXtTable\eTABLE}%
+ \the\markdownConTeXtTableFloat
+ \endgroup
+ \expandafter\gobbleoneargument
+ \fi\markdownConTeXtRenderTableRow}
+\def\markdownConTeXtReadAlignments#1{%
+ \advance\markdownConTeXtColumnCounter by 1\relax
+ \if#1d%
+ \setupTABLE[c][\the\markdownConTeXtColumnCounter][align=right]
+ \fi\if#1l%
+ \setupTABLE[c][\the\markdownConTeXtColumnCounter][align=right]
+ \fi\if#1c%
+ \setupTABLE[c][\the\markdownConTeXtColumnCounter][align=middle]
+ \fi\if#1r%
+ \setupTABLE[c][\the\markdownConTeXtColumnCounter][align=left]
+ \fi
+ \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else
+ \expandafter\gobbleoneargument
+ \fi\markdownConTeXtReadAlignments}
+\def\markdownConTeXtRenderTableCell#1{%
+ \advance\markdownConTeXtColumnCounter by 1\relax
+ \markdownConTeXtTable=\expandafter{%
+ \the\markdownConTeXtTable\bTD#1\eTD}%
+ \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else
+ \expandafter\gobbleoneargument
+ \fi\markdownConTeXtRenderTableCell}
+% \end{macrocode}
% \iffalse
%</context>
% \fi