5using System.Threading.Tasks;
32 private bool inAbstract =
false;
33 private bool abstractOutput =
false;
61 bool MakeTitle =
false;
63 this.
Output.Append(
"\\documentclass[");
64 this.
Output.Append(this.LatexSettings.DefaultFontSize.ToString());
65 this.
Output.Append(
"pt, ");
67 switch (this.LatexSettings.PaperFormat)
71 this.
Output.Append(
"a4paper");
75 this.
Output.Append(
"letterpaper");
80 switch (this.LatexSettings.DocumentClass)
84 this.
Output.Append(
"article");
88 this.
Output.Append(
"report");
92 this.
Output.Append(
"book");
96 this.
Output.Append(
"standalone");
99 this.
Output.AppendLine(
"}");
102 this.
Output.AppendLine(
"\\newlength{\\wdth}");
103 this.
Output.AppendLine(
"\\newcommand{\\strike}[1]{\\settowidth{\\wdth}{#1}\\rlap{\\rule[.5ex]{\\wdth}{.4pt}}#1}");
109 foreach (KeyValuePair<string, bool> P
in Values)
111 this.
Output.Append(
"\\title{");
112 this.
Output.Append(P.Key);
113 this.
Output.AppendLine(
"}");
118 foreach (KeyValuePair<string, bool> P2
in Values)
120 this.
Output.Append(
"\\subtitle{");
121 this.
Output.Append(P2.Key);
122 this.
Output.AppendLine(
"}");
133 foreach (KeyValuePair<string, bool> P
in Values)
137 this.
Output.AppendLine(
"\\author{");
141 this.
Output.AppendLine(
"\\and");
143 this.
Output.AppendLine(P.Key);
146 this.
Output.AppendLine(
"}");
153 foreach (KeyValuePair<string, bool> P
in Values)
155 this.
Output.Append(
"\\date{");
156 this.
Output.Append(P.Key);
157 this.
Output.AppendLine(
"}");
163 this.
Output.AppendLine(
"\\usepackage[utf8]{inputenc}");
164 this.
Output.AppendLine(
"\\usepackage[T1]{fontenc}");
165 this.
Output.AppendLine(
"\\usepackage{enumitem}");
166 this.
Output.AppendLine(
"\\usepackage{amsmath}");
167 this.
Output.AppendLine(
"\\usepackage{amssymb}");
169 this.
Output.Append(
"\\usepackage");
170 if (!
string.IsNullOrEmpty(this.LatexSettings.Language))
176 this.
Output.AppendLine(
"{babel}");
178 this.
Output.AppendLine(
"\\usepackage{graphicx}");
179 this.
Output.AppendLine(
"\\usepackage{pifont}");
180 this.
Output.AppendLine(
"\\usepackage{multirow}");
181 this.
Output.AppendLine(
"\\usepackage{ragged2e}");
182 this.
Output.AppendLine(
"\\usepackage{textcomp}");
183 this.
Output.AppendLine(
"\\usepackage{spverbatim}");
184 this.
Output.AppendLine(
"\\newlist{tasklist}{itemize}{2}");
185 this.
Output.AppendLine(
"\\setlist[tasklist]{label=$\\square$}");
186 this.
Output.AppendLine(
"\\newcommand{\\checkmarksymbol}{\\ding{51}}");
187 this.
Output.AppendLine(
"\\newcommand{\\checked}{\\rlap{$\\square$}{\\raisebox{2pt}{\\large\\hspace{1pt}\\checkmarksymbol}}\\hspace{-2.5pt}}");
188 this.
Output.AppendLine(
"\\begin{document}");
191 this.
Output.AppendLine(
"\\maketitle");
193 this.inAbstract =
false;
194 this.abstractOutput =
false;
196 return Task.CompletedTask;
206 this.
Output.AppendLine(
"\\end{abstract}");
207 this.inAbstract =
false;
210 this.
Output.AppendLine(
"\\end{document}");
212 return Task.CompletedTask;
225 private static readonly
char[] latexCharactersToEscape =
new char[]
239 private static readonly
string[] latexCharacterEscapes =
new string[]
253 #region Span Elements
272 return Task.CompletedTask;
283 return Task.CompletedTask;
292 this.
Output.Append(
"\\strike{");
317 return Task.CompletedTask;
326 this.
Output.Append(
"\\emph{");
340 await this.
Render(Footnote);
343 this.
Output.Append(
"\\footnote");
345 if (this.
Document?.TryGetFootnoteNumber(Element.
Key, out
int Nr) ??
false)
348 this.
Output.Append(Nr.ToString());
353 await this.
Render(Footnote);
365 this.
Output.Append(
"\\#");
368 return Task.CompletedTask;
377 string s = GetLaTeXEscapeCommand(Element.
Entity);
378 if (
string.IsNullOrEmpty(s))
380 else if (IsEquationCommand(s))
386 else if (AllSymbols(s))
395 return Task.CompletedTask;
398 private static bool AllSymbols(
string Command)
400 foreach (
char ch
in Command)
402 if (!
char.IsLetter(ch) ||
char.IsDigit(ch))
409 private static bool IsEquationCommand(
string Command)
529 case "\\Leftrightarrow":
532 case "\\leftrightarrow":
535 case "\\updownarrow":
538 case "\\Updownarrow":
540 case "\\blacksquare":
542 case "\\blacktriangle":
544 case "\\blacklozenge":
547 case "\\measuredangle":
548 case "\\sphericalangle":
549 case "\\perthousand":
552 case "\\doubleprime":
583 case "\\textasciicircum":
584 case "\\textasciitilde":
585 case "\\textbackslash":
587 case "\\textbraceleft":
588 case "\\textbraceright":
591 case "\\textdaggerdbl":
592 case "\\textellipsis":
595 case "\\textgreater":
597 case "\\textquotedblleft":
598 case "\\textquotedblright":
599 case "\\textquoteleft":
600 case "\\textquoteright":
601 case "\\textsection":
602 case "\\textsterling":
603 case "\\textunderscore":
604 case "\\textvisiblespace":
606 case "\\textcurrency":
609 case "\\textcircledP":
610 case "\\textregistered":
611 case "\\texttrademark":
612 case "\\textcopyright":
613 case "\\textordfeminine":
614 case "\\textordmasculine":
615 case "\\textparagraph":
623 private static string GetLaTeXEscapeCommand(
string Entity)
629 case "cups":
return "\\cup";
630 case "boxplus":
return "\\boxplus";
631 case "DoubleLongLeftRightArrow":
return "\\Longleftrightarrow";
632 case "szlig":
return "\\ssharp";
633 case "xoplus":
return "\\bigoplus";
634 case "ensp":
return "\\space";
635 case "upharpoonleft":
return "\\upharpoonleft";
636 case "ClockwiseContourIntegral":
return "\\ointclockwise";
637 case "THgr":
return "\\greekTheta";
638 case "nbsp":
return "\\breakspace";
639 case "YUcy":
return "\\ cyrillicYU";
640 case "excl":
return "\\ot defined";
641 case "GreaterLess":
return "\\gtrless";
642 case "PHgr":
return "\\greekPhi";
643 case "OHgr":
return "\\ greekOmega";
644 case "KHgr":
return "\\ greekChi";
645 case "NotExists":
return "\\nexists";
646 case "lne":
return "\\lneq";
647 case "prnE":
return "\\precneqq";
648 case "eqsim":
return "\\eqsim";
649 case "bne":
return "\\eq";
650 case "prE":
return "\\preceqq";
651 case "gne":
return "\\rneq";
652 case "Vdash":
return "\\Vdash";
653 case "plusmn":
return "\\textpm";
654 case "nexist":
return "\\nexists";
655 case "succneqq":
return "\\succneqq";
656 case "nsubseteq":
return "\\nsubseteq";
657 case "leftarrow":
return "\\leftarrow";
658 case "nges":
return "\\geqslant";
659 case "TScy":
return "\\cyrillicC";
660 case "NotLeftTriangleEqual":
return "\\ntrianglelefteq";
661 case "lowast":
return "\\ast";
662 case "gneqq":
return "\\gneqq";
663 case "rang":
return "\\rangle";
664 case "plusdo":
return "\\dotplus";
665 case "lneqq":
return "\\lneqq";
666 case "nang":
return "\\angle";
667 case "lang":
return "\\langle";
668 case "NotLessGreater":
return "\\nlessgtr";
669 case "ngeqslant":
return "\\geqslant";
670 case "Leftarrow":
return "\\Leftarrow";
671 case "DoubleLongRightArrow":
return "\\Longrightarrow";
672 case "gtreqqless":
return "\\gtreqqless";
673 case "npre":
return "\\preceq";
674 case "Rang":
return "\\rrangle";
675 case "DScy":
return "\\ cyrillicDZE";
676 case "Lang":
return "\\llangle";
677 case "emsp":
return "\\space";
678 case "infin":
return "\\infty";
679 case "leqq":
return "\\leqq";
680 case "cent":
return "\\textcent";
681 case "PlusMinus":
return "\\textpm";
682 case "nleqq":
return "\\leqq";
683 case "dotplus":
return "\\dotplus";
684 case "PrecedesSlantEqual":
return "\\preccurlyeq";
685 case "gtrsim":
return "\\gtrsim";
686 case "lvnE":
return "\\lneqq";
687 case "TRADE":
return "\\trademark";
688 case "brvbar":
return "\\textbrokenbar";
689 case "rightsquigarrow":
return "\\rightwavearrow";
690 case "DownArrow":
return "\\downarrow";
691 case "nVDash":
return "\\nVDash";
692 case "Hat":
return "\\textasciicircum";
693 case "sup3":
return "\\threesuperior";
694 case "EEgr":
return "\\greekEta";
695 case "bepsi":
return "\\backepsilon";
696 case "gnsim":
return "\\gnsim";
697 case "upharpoonright":
return "\\upharpoonright";
698 case "lnsim":
return "\\lnsim";
699 case "Sum":
return "\\sum";
700 case "gvnE":
return "\\gneqq";
701 case "prnsim":
return "\\precnsim";
702 case "fork":
return "\\pitchfork";
703 case "Vee":
return "\\bigvee";
704 case "NotPrecedes":
return "\\nprec";
705 case "Wedge":
return "\\bigwedge";
706 case "rightharpoondown":
return "\\rightharpoondown";
707 case "ETH":
return "\\Eth";
708 case "eqslantgtr":
return "\\eqslantgtr";
709 case "vee":
return "\\vee";
710 case "supsetneqq":
return "\\supsetneqq";
711 case "PrecedesTilde":
return "\\precsim";
712 case "UpperRightArrow":
return "\\nearrow";
713 case "ngE":
return "\\geqq";
714 case "Downarrow":
return "\\Downarrow";
715 case "NegativeVeryThinSpace":
return "\\zerowidthspace";
716 case "isinv":
return "\\in";
717 case "Sqrt":
return "\\surd";
718 case "xuplus":
return "\\biguplus";
719 case "sum":
return "\\sum";
720 case "ngeqq":
return "\\geqq";
721 case "lAarr":
return "\\Lleftarrow";
722 case "Phi":
return "\\greekPhi";
723 case "downarrow":
return "\\downarrow";
724 case "prsim":
return "\\precsim";
725 case "cap":
return "\\cap";
726 case "rAarr":
return "\\Rrightarrow";
727 case "ring":
return "\\textring";
728 case "map":
return "\\mapsto";
729 case "nap":
return "\\napprox";
730 case "lap":
return "\\lessapprox";
731 case "vdash":
return "\\vdash";
732 case "gap":
return "\\gtrapprox";
733 case "Chi":
return "\\greekChi";
734 case "hksearow":
return "\\lhooksearrow";
735 case "Idigr":
return "\\greekIotadialytika";
736 case "trade":
return "\\trademark";
737 case "mdash":
return "\\emdash";
738 case "ndash":
return "\\endash";
739 case "odash":
return "\\circleddash";
740 case "mapstoleft":
return "\\mapsfrom";
741 case "DD":
return "\\differentialD";
742 case "Bumpeq":
return "\\Bumpeq";
743 case "Cap":
return "\\Cap";
744 case "curlyvee":
return "\\curlyvee";
745 case "coloneq":
return "\\colonequals";
746 case "kappa":
return "\\ greekkappa";
747 case "mapsto":
return "\\mapsto";
748 case "chi":
return "\\greekchi";
749 case "nlE":
return "\\leqq";
750 case "nlsim":
return "\\nlesssim";
751 case "inodot":
return "\\dotlessi";
752 case "sharp":
return "\\sharp";
753 case "Omicron":
return "\\ greekOmicron";
754 case "therefore":
return "\\therefore";
755 case "udigr":
return "\\greekupsilondiaeresis";
756 case "mnplus":
return "\\mp";
757 case "wedge":
return "\\wedge";
758 case "Kappa":
return "\\greekKappa";
759 case "supset":
return "\\supset";
760 case "lessdot":
return "\\lessdot";
761 case "CounterClockwiseContourIntegral":
return "\\ointctrclockwise";
762 case "bigwedge":
return "\\bigwedge";
763 case "eeacgr":
return "\\greeketatonos";
764 case "NotSubsetEqual":
return "\\nsubseteq";
765 case "lE":
return "\\leqq";
766 case "Therefore":
return "\\therefore";
767 case "Udigr":
return "\\greekUpsilondialytika";
768 case "gE":
return "\\geqq";
769 case "gnE":
return "\\gneqq";
770 case "vnsup":
return "\\supset";
771 case "Supset":
return "\\Supset";
772 case "lnE":
return "\\lneqq";
773 case "idigr":
return "\\greekiotadialytika";
774 case "hkswarow":
return "\\rhookswarrow";
775 case "Copf":
return "\\ complexes";
776 case "Nopf":
return "\\ naturalnumbers";
777 case "Ropf":
return "\\ reals";
778 case "Popf":
return "\\ primes";
779 case "Qopf":
return "\\rationals";
780 case "Otilde":
return "\\ Otilde";
781 case "oS":
return "\\circledS";
782 case "para":
return "\\paragraphmark";
783 case "utilde":
return "\\ utilde";
784 case "NotPrecedesSlantEqual":
return "\\npreccurlyeq";
785 case "bigotimes":
return "\\bigotimes";
786 case "LeftVector":
return "\\leftharpoonup";
787 case "geq":
return "\\geq";
788 case "checkmark":
return "\\checkmark";
789 case "leq":
return "\\leq";
790 case "scnE":
return "\\succneqq";
791 case "Conint":
return "\\oiint";
792 case "RightVector":
return "\\rightharpoonup";
793 case "ffllig":
return "\\fflligature";
794 case "bowtie":
return "\\bowtie";
795 case "nrightarrow":
return "\\nrightarrow";
796 case "UpArrowDownArrow":
return "\\updownarrows";
797 case "veeeq":
return "\\veeeq";
798 case "Zopf":
return "\\integers";
799 case "Itilde":
return "\\Itilde";
800 case "nearhk":
return "\\rhooknearrow";
801 case "PartialD":
return "\\partial";
802 case "Atilde":
return "\\Atilde";
803 case "Rrightarrow":
return "\\Rrightarrow";
804 case "Succeeds":
return "\\succ";
805 case "Auml":
return "\\Adiaeresis";
806 case "nhArr":
return "\\nLeftrightarrow";
807 case "upsi":
return "\\greekupsilon";
808 case "xhArr":
return "\\Longleftrightarrow";
809 case "Ouml":
return "\\Odiaeresis";
810 case "quot":
return "\\quotedbl";
811 case "epsi":
return "\\greekepsilon";
812 case "Iuml":
return "\\Idiaeresis";
813 case "Euml":
return "\\Ediaeresis";
814 case "precsim":
return "\\precsim";
815 case "notni":
return "\\nni";
816 case "nvdash":
return "\\nvdash";
817 case "notinva":
return "\\nin";
818 case "backepsilon":
return "\\backepsilon";
819 case "Rightarrow":
return "\\Rightarrow";
820 case "LeftTeeArrow":
return "\\mapsfrom";
821 case "OverParenthesis":
return "\\overparent";
822 case "NotCongruent":
return "\\nequiv";
823 case "ohacgr":
return "\\greekomegatonos";
824 case "Assign":
return "\\colonequals";
825 case "rhov":
return "\\greekrhoalt";
826 case "yuml":
return "\\ydiaeresis";
827 case "cuepr":
return "\\curlyeqprec";
828 case "uuml":
return "\\udiaeresis";
829 case "lsqb":
return "\\lbrack";
830 case "rsqb":
return "\\rbrack";
831 case "rbrack":
return "\\rbrack";
832 case "lbrack":
return "\\lbrack";
833 case "efDot":
return "\\fallingdotseq";
834 case "pre":
return "\\preceq";
835 case "auml":
return "\\adiaeresis";
836 case "Intersection":
return "\\bigcap";
837 case "DoubleRightArrow":
return "\\Rightarrow";
838 case "Yuml":
return "\\Ydiaeresis";
839 case "Uuml":
return "\\Udiaeresis";
840 case "ouml":
return "\\odiaeresis";
841 case "leftrightharpoons":
return "\\leftrightharpoons";
842 case "iuml":
return "\\idiaeresis";
843 case "euml":
return "\\ediaeresis";
844 case "LongLeftRightArrow":
return "\\longleftrightarrow";
845 case "DoubleVerticalBar":
return "\\parallel";
846 case "vsubnE":
return "\\subsetneqq";
847 case "abreve":
return "\\abreve";
848 case "NotLessLess":
return "\\ll";
849 case "eta":
return "\\greeketa";
850 case "gvertneqq":
return "\\gneqq";
851 case "UpArrow":
return "\\uparrow";
852 case "nge":
return "\\ngeq";
853 case "NotSucceeds":
return "\\nsucc";
854 case "Ubreve":
return "\\Ubreve";
855 case "VerticalBar":
return "\\divides";
856 case "Updownarrow":
return "\\Updownarrow";
857 case "gbreve":
return "\\gbreve";
858 case "Abreve":
return "\\Abreve";
859 case "part":
return "\\partial";
860 case "oint":
return "\\oint";
861 case "Eta":
return "\\greekEta";
862 case "RightTeeArrow":
return "\\mapsto";
863 case "NotRightTriangle":
return "\\ntriangleleft";
864 case "updownarrow":
return "\\updownarrow";
865 case "Gbreve":
return "\\Gbreve";
866 case "LeftFloor":
return "\\lfloor";
867 case "sqcup":
return "\\sqcup";
868 case "zwnj":
return "\\zwnj";
869 case "subseteqq":
return "\\subseteqq";
870 case "circledast":
return "\\circledast";
871 case "dblac":
return "\\texthungarumlaut";
872 case "VeryThinSpace ":
return "\\irspace";
873 case "thicksim":
return "\\sim";
874 case "SquareUnion":
return "\\sqcup";
875 case "ubreve":
return "\\ubreve";
876 case "zigrarr":
return "\\rightsquigarrow";
877 case "NonBreakingSpace ":
return "\\breakspace";
878 case "gEl":
return "\\gtreqqless";
879 case "npart":
return "\\partial";
880 case "ShortRightArrow":
return "\\rightarrow";
881 case "nLl":
return "\\lll";
882 case "npr":
return "\\nprec";
883 case "ulcorn":
return "\\ulcorner";
884 case "period":
return "\\mathperiod";
885 case "SuchThat":
return "\\ni";
886 case "MinusPlus":
return "\\mp";
887 case "NotLessTilde":
return "\\nlesssim";
888 case "Element":
return "\\in";
889 case "precapprox":
return "\\precapprox";
890 case "ShortDownArrow":
return "\\downarrow";
891 case "THORN":
return "\\Thorn";
892 case "omacr":
return "\\omacron";
893 case "LT":
return "\\lt";
894 case "vartheta":
return "\\greekthetaalt";
895 case "nle":
return "\\nleq";
896 case "PSgr":
return "\\greekPsi";
897 case "GT":
return "\\gt";
898 case "dlcorn":
return "\\llcorner";
899 case "DoubleLongLeftArrow":
return "\\Longleftarrow";
900 case "CircleTimes":
return "\\otimes";
901 case "QUOT":
return "\\quotedbl";
902 case "Imacr":
return "\\Imacron";
903 case "Omacr":
return "\\Omacron";
904 case "DDotrahd":
return "\\dottedrightarrow";
905 case "angle":
return "\\angle";
906 case "Umacr":
return "\\Umacron";
907 case "xvee":
return "\\bigvee";
908 case "die":
return "\\textdiaeresis";
909 case "Vert":
return "\\Vert";
910 case "emacr":
return "\\emacron";
911 case "nparallel":
return "\\nparallel";
912 case "nsccue":
return "\\nsucccurlyeq";
913 case "Amacr":
return "\\Amacron";
914 case "Emacr":
return "\\Emacron";
915 case "ThickSpace ":
return "\\dspace";
916 case "Iota":
return "\\greekIota";
917 case "blacktriangleright":
return "\\blacktriangleleft";
918 case "scnsim":
return "\\succnsim";
919 case "nlArr":
return "\\nLeftarrow";
920 case "circeq":
return "\\circeq";
921 case "acute":
return "\\textacute";
922 case "Backslash":
return "\\setminus";
923 case "ncong":
return "\\approxnEq";
924 case "leftleftarrows":
return "\\leftleftarrows";
925 case "varkappa":
return "\\varkappa";
926 case "LongRightArrow":
return "\\longrightarrow";
927 case "plusb":
return "\\boxplus";
928 case "longmapsto":
return "\\longmapsto";
929 case "circlearrowleft":
return "\\circlearrowright";
930 case "CloseCurlyQuote":
return "\\textquoteright";
931 case "bnequiv":
return "\\equiv";
932 case "iota":
return "\\greekiota";
933 case "compfn":
return "\\circ";
934 case "nrarrw":
return "\\rightwavearrow";
935 case "and":
return "\\wedge";
936 case "ntriangleleft":
return "\\ntriangleright";
937 case "varsubsetneq":
return "\\subsetneq";
938 case "Gdot":
return "\\Gdotaccent";
939 case "middot":
return "\\periodcentered";
940 case "Idot":
return "\\Idotaccent";
941 case "lEg":
return "\\lesseqqgtr";
942 case "bigcirc":
return "\\bigcirc";
943 case "Cdot":
return "\\Cdotaccent";
944 case "CloseCurlyDoubleQuote":
return "\\quotedblright";
945 case "Edot":
return "\\Edotaccent";
946 case "langle":
return "\\langle";
947 case "pitchfork":
return "\\pitchfork";
948 case "rationals":
return "\\rationals";
949 case "numsp ":
return "\\gurespace";
950 case "mapstoup":
return "\\mapsup";
951 case "Square":
return "\\square";
952 case "omega":
return "\\greekomega";
953 case "rangle":
return "\\rangle";
954 case "cdot":
return "\\cdotaccent";
955 case "edot":
return "\\edotaccent";
956 case "zdot":
return "\\zdotaccent";
957 case "odot":
return "\\odot";
958 case "eqslantless":
return "\\eqslantless";
959 case "DiacriticalTilde":
return "\\texttilde";
960 case "Omega":
return "\\greekOmega";
961 case "TildeEqual":
return "\\simeq";
962 case "bullet":
return "\\textbullet";
963 case "ubrcy":
return "\\cyrillicushrt";
964 case "PrecedesEqual":
return "\\preceq";
965 case "equals":
return "\\eq";
966 case "nsqsube":
return "\\nsqsubseteq";
967 case "VerticalTilde":
return "\\wr";
968 case "nvDash":
return "\\nvDash";
969 case "Leftrightarrow":
return "\\Leftrightarrow";
970 case "planck":
return "\\hslash";
971 case "comma":
return "\\textcomma";
972 case "GreaterSlantEqual":
return "\\geqslant";
973 case "permil":
return "\\perthousand";
974 case "Ubrcy":
return "\\cyrillicUSHRT";
975 case "DoubleUpArrow":
return "\\Uparrow";
976 case "NotGreaterGreater":
return "\\gg";
977 case "harrw":
return "\\leftrightsquigarrow";
978 case "bigoplus":
return "\\bigoplus";
979 case "rarrw":
return "\\rightwavearrow";
980 case "nshortparallel":
return "\\nparallel";
981 case "SmallCircle":
return "\\circ";
982 case "bigcup":
return "\\bigcup";
983 case "Integral":
return "\\intop";
984 case "ntrianglerighteq":
return "\\ntrianglerighteq";
985 case "Exists":
return "\\exists";
986 case "angsph":
return "\\sphericalangle";
987 case "NotLessSlantEqual":
return "\\leqslant";
988 case "Xi":
return "\\greekXi";
989 case "COPY":
return "\\copyright";
990 case "oplus":
return "\\oplus";
991 case "nsupseteq":
return "\\nsupseteq";
992 case "Jsercy":
return "\\cyrillicJE";
993 case "pi":
return "\\greekpi";
994 case "Psi":
return "\\greekPsi";
995 case "uplus":
return "\\uplus";
996 case "ii":
return "\\imaginaryi";
997 case "lesseqqgtr":
return "\\lesseqqgtr";
998 case "approx":
return "\\approx";
999 case "NegativeThinSpace":
return "\\zerowidthspace";
1000 case "Superset":
return "\\supset";
1001 case "nwArr":
return "\\Nwarrow";
1002 case "daleth":
return "\\daleth";
1003 case "NotGreaterTilde":
return "\\ngtrsim";
1004 case "NotReverseElement":
return "\\nni";
1005 case "jsercy":
return "\\cyrillicje";
1006 case "OpenCurlyDoubleQuote":
return "\\quotedblleft";
1007 case "euro":
return "\\texteuro";
1008 case "leftharpoondown":
return "\\leftharpoondown";
1009 case "ZeroWidthSpace":
return "\\zerowidthspace";
1010 case "frown":
return "\\frown";
1011 case "Dcaron":
return "\\Dcaron";
1012 case "Ecaron":
return "\\Ecaron";
1013 case "Ccaron":
return "\\Ccaron";
1014 case "Ncaron":
return "\\Ncaron";
1015 case "Tcaron":
return "\\Tcaron";
1016 case "gg":
return "\\gg";
1017 case "Rcaron":
return "\\Rcaron";
1018 case "Scaron":
return "\\Scaron";
1019 case "Lcaron":
return "\\Lcaron";
1020 case "leftrightarrows":
return "\\leftrightarrows";
1021 case "flat":
return "\\flat";
1022 case "kgreen":
return "\\kkra";
1023 case "nLt":
return "\\ll";
1024 case "af":
return "\\relax";
1025 case "psi":
return "\\greekpsi";
1026 case "Gg":
return "\\ggg";
1027 case "cire":
return "\\circeq";
1028 case "EEacgr":
return "\\greekEtatonos";
1029 case "simeq":
return "\\simeq";
1030 case "nGg":
return "\\ggg";
1031 case "ne":
return "\\neq";
1032 case "nsubseteqq":
return "\\subseteqq";
1033 case "le":
return "\\leq";
1034 case "succcurlyeq":
return "\\succcurlyeq";
1035 case "ge":
return "\\geq";
1036 case "xrArr":
return "\\Longrightarrow";
1037 case "vDash":
return "\\vDash";
1038 case "iexcl":
return "\\exclamdown";
1039 case "dcaron":
return "\\dcaron";
1040 case "UpTeeArrow":
return "\\mapsup";
1041 case "ccaron":
return "\\ccaron";
1042 case "lambda":
return "\\greeklambda";
1043 case "EqualTilde":
return "\\eqsim";
1044 case "Zcaron":
return "\\Zcaron";
1045 case "RightDoubleBracket":
return "\\rrbracket";
1046 case "ntriangleright":
return "\\ntriangleleft";
1047 case "NotTildeFullEqual":
return "\\approxnEq";
1048 case "commat":
return "\\textat";
1049 case "Re":
return "\\Re";
1050 case "VDash":
return "\\VDash";
1051 case "frac23":
return "\\twothirds";
1052 case "Breve":
return "\\textbreve";
1053 case "NotSucceedsEqual":
return "\\succeq";
1054 case "iukcy":
return "\\cyrillicii";
1055 case "Lambda":
return "\\greekLambda";
1056 case "CHcy":
return "\\cyrillicCH";
1057 case "jukcy":
return "\\cyrillicie";
1058 case "Dstrok":
return "\\Dstroke";
1059 case "Gamma":
return "\\greekGamma";
1060 case "Lstrok":
return "\\Lstroke";
1061 case "Hstrok":
return "\\Hstroke";
1062 case "Tstrok":
return "\\Tstroke";
1063 case "breve":
return "\\textbreve";
1064 case "Iukcy":
return "\\cyrillicII";
1065 case "napprox":
return "\\napprox";
1066 case "downharpoonleft":
return "\\downharpoonleft";
1067 case "Jukcy":
return "\\cyrillicIE";
1068 case "UpTee":
return "\\bot";
1069 case "dstrok":
return "\\dstroke";
1070 case "gamma":
return "\\greekgamma";
1071 case "lstrok":
return "\\lstroke";
1072 case "supsetneq":
return "\\supsetneq";
1073 case "nsucc":
return "\\nsucc";
1074 case "NotGreaterSlantEqual":
return "\\geqslant";
1075 case "nvap":
return "\\asymp";
1076 case "upuparrows":
return "\\upuparrows";
1077 case "wp":
return "\\wp";
1078 case "IEcy":
return "\\cyrillicE";
1079 case "reals":
return "\\reals";
1080 case "prcue":
return "\\preccurlyeq";
1081 case "Uogon":
return "\\Uogonek";
1082 case "apos":
return "\\quotesingle";
1083 case "rightrightarrows":
return "\\rightrightarrows";
1084 case "Aogon":
return "\\Aogonek";
1085 case "Eogon":
return "\\Eogonek";
1086 case "LessTilde":
return "\\lesssim";
1087 case "Iogon":
return "\\Iogonek";
1088 case "ap":
return "\\approx";
1089 case "RightArrow":
return "\\rightarrow";
1090 case "rbrace":
return "\\textbraceright";
1091 case "DownTee":
return "\\top";
1092 case "amalg":
return "\\amalg";
1093 case "Ll":
return "\\lll";
1094 case "rthree":
return "\\rightthreetimes";
1095 case "check":
return "\\checkmark";
1096 case "DownArrowUpArrow":
return "\\downuparrows";
1097 case "xi":
return "\\greekxi";
1098 case "ntlg":
return "\\nlessgtr";
1099 case "empty":
return "\\emptyset";
1100 case "SubsetEqual":
return "\\subseteq";
1101 case "emptyset":
return "\\emptyset";
1102 case "in":
return "\\in";
1103 case "frac14":
return "\\onequarter";
1104 case "LeftDoubleBracket":
return "\\llbracket";
1105 case "YAcy":
return "\\cyrillicYA";
1106 case "tstrok":
return "\\tstroke";
1107 case "scE":
return "\\succeqq";
1108 case "urcorn":
return "\\urcorner";
1109 case "CircleMinus":
return "\\ominus";
1110 case "OHacgr":
return "\\greekOmegatonos";
1111 case "DoubleUpDownArrow":
return "\\Updownarrow";
1112 case "clubs":
return "\\clubsuit";
1113 case "pm":
return "\\textpm";
1114 case "Lmidot":
return "\\Ldotmiddle";
1115 case "drcorn":
return "\\lrcorner";
1116 case "divonx":
return "\\divideontimes";
1117 case "ZHcy":
return "\\cyrillicZH";
1118 case "Cconint":
return "\\oiiint";
1119 case "GreaterTilde":
return "\\gtrsim";
1120 case "squ":
return "\\square";
1121 case "straightepsilon":
return "\\greekepsilonalt";
1122 case "KHcy":
return "\\cyrillicH";
1123 case "lmidot":
return "\\ldotmiddle";
1124 case "ll":
return "\\ll";
1125 case "Im":
return "\\Im";
1126 case "SHcy":
return "\\cyrillicSH";
1127 case "napos":
return "\\napostrophe";
1128 case "circlearrowright":
return "\\circlearrowleft";
1129 case "IOcy":
return "\\cyrillicYO";
1130 case "longleftrightarrow":
return "\\longleftrightarrow";
1131 case "ngt":
return "\\ngtr";
1132 case "larrlp":
return "\\looparrowleft";
1133 case "nleq":
return "\\nleq";
1134 case "SOFTcy":
return "\\cyrillicSFTSN";
1135 case "curlyeqprec":
return "\\curlyeqprec";
1136 case "midast":
return "\\ast";
1137 case "NotEqualTilde":
return "\\eqsim";
1138 case "sfrown":
return "\\frown";
1139 case "geqq":
return "\\geqq";
1140 case "Longleftrightarrow":
return "\\Longleftrightarrow";
1141 case "NotGreater":
return "\\ngtr";
1142 case "UpDownArrow":
return "\\updownarrow";
1143 case "NotSuperset":
return "\\supset";
1144 case "angmsd":
return "\\measuredangle";
1145 case "ReverseEquilibrium":
return "\\leftrightharpoons";
1146 case "gnap":
return "\\gnapprox";
1147 case "gel":
return "\\gtreqless";
1148 case "ImaginaryI":
return "\\imaginaryi";
1149 case "lnap":
return "\\lnapprox";
1150 case "nrtri":
return "\\ntriangleleft";
1151 case "thickapprox":
return "\\approx";
1152 case "igrave":
return "\\igrave";
1153 case "dzigrarr":
return "\\longrightsquigarrow";
1154 case "egrave":
return "\\egrave";
1155 case "rmoust":
return "\\rmoustache";
1156 case "nsupe":
return "\\nsupseteq";
1157 case "there4":
return "\\therefore";
1158 case "ugrave":
return "\\ugrave";
1159 case "lmoust":
return "\\lmoustache";
1160 case "wedgeq":
return "\\wedgeeq";
1161 case "Ograve":
return "\\Ograve";
1162 case "Igrave":
return "\\Igrave";
1163 case "Egrave":
return "\\Egrave";
1164 case "agrave":
return "\\agrave";
1165 case "supseteqq":
return "\\supseteqq";
1166 case "Ugrave":
return "\\Ugrave";
1167 case "Eacute":
return "\\Eacute";
1168 case "Cacute":
return "\\Cacute";
1169 case "Aacute":
return "\\Aacute";
1170 case "DoubleDot":
return "\\textdiaeresis";
1171 case "maltese":
return "\\maltese";
1172 case "Nacute":
return "\\Nacute";
1173 case "Lacute":
return "\\Lacute";
1174 case "Iacute":
return "\\Iacute";
1175 case "succnsim":
return "\\succnsim";
1176 case "Lt":
return "\\ll";
1177 case "Uacute":
return "\\Uacute";
1178 case "Tilde":
return "\\sim";
1179 case "Agrave":
return "\\Agrave";
1180 case "Racute":
return "\\Racute";
1181 case "Oacute":
return "\\Oacute";
1182 case "NotCupCap":
return "\\nasymp";
1183 case "Yacute":
return "\\Yacute";
1184 case "Zacute":
return "\\Zacute";
1185 case "eacute":
return "\\eacute";
1186 case "ell":
return "\\ell";
1187 case "cacute":
return "\\cacute";
1188 case "NJcy":
return "\\cyrillicNJE";
1189 case "nacute":
return "\\nacute";
1190 case "LJcy":
return "\\cyrillicLJE";
1191 case "KJcy":
return "\\cyrillicKJE";
1192 case "iacute":
return "\\iacute";
1193 case "GJcy":
return "\\cyrillicGJE";
1194 case "rarrb":
return "\\rightarrowbar";
1195 case "SucceedsEqual":
return "\\succeq";
1196 case "DifferentialD":
return "\\differentiald";
1197 case "racute":
return "\\racute";
1198 case "GreaterEqualLess":
return "\\gtreqless";
1199 case "lharu":
return "\\leftharpoonup";
1200 case "ApplyFunction":
return "\\relax";
1201 case "LessSlantEqual":
return "\\leqslant";
1202 case "smid":
return "\\divides";
1203 case "mid":
return "\\divides";
1204 case "nu":
return "\\greeknu";
1205 case "mu":
return "\\greekmu";
1206 case "xutri":
return "\\triangle";
1207 case "DJcy":
return "\\cyrillicDJE";
1208 case "delta":
return "\\greekdelta";
1209 case "YIcy":
return "\\cyrillicYI";
1210 case "vprop":
return "\\propto";
1211 case "lneq":
return "\\lneq";
1212 case "prap":
return "\\precapprox";
1213 case "twoheadleftarrow":
return "\\twoheadleftarrow";
1214 case "backsim":
return "\\backsim";
1215 case "comp":
return "\\complement";
1216 case "frac35":
return "\\threefifths";
1217 case "DoubleLeftRightArrow":
return "\\Leftrightarrow";
1218 case "Mu":
return "\\greekMu";
1219 case "osol":
return "\\oslash";
1220 case "diams":
return "\\blacklozenge";
1221 case "geqslant":
return "\\geqslant";
1222 case "bsol":
return "\\textbackslash";
1223 case "Delta":
return "\\greekDelta";
1224 case "Longleftarrow":
return "\\Longleftarrow";
1225 case "forall":
return "\\forall";
1226 case "leqslant":
return "\\leqslant";
1227 case "frac78":
return "\\seveneighths";
1228 case "frac58":
return "\\fiveeighths";
1229 case "prod":
return "\\prod";
1230 case "Alpha":
return "\\greekAlpha";
1231 case "sstarf":
return "\\star";
1232 case "CircleDot":
return "\\odot";
1233 case "CupCap":
return "\\asymp";
1234 case "ReverseElement":
return "\\ni";
1235 case "NotSquareSuperset":
return "\\sqsupset";
1236 case "asymp":
return "\\approx";
1237 case "ldsh":
return "\\Ldsh";
1238 case "gtreqless":
return "\\gtreqless";
1239 case "alpha":
return "\\greekalpha";
1240 case "bump":
return "\\Bumpeq";
1241 case "realpart":
return "\\Re";
1242 case "natural":
return "\\natural";
1243 case "ordf":
return "\\ordfeminine";
1244 case "ast":
return "\\ast";
1245 case "copysr":
return "\\textcircledP";
1246 case "circledR":
return "\\registered";
1247 case "subset":
return "\\subset";
1248 case "rarrhk":
return "\\hookrightarrow";
1249 case "TSHcy":
return "\\cyrillicTSHE";
1250 case "larrhk":
return "\\hookleftarrow";
1251 case "frac34":
return "\\threequarter";
1252 case "straightphi":
return "\\greekphialt";
1253 case "eDot":
return "\\doteqdot";
1254 case "Verbar":
return "\\Vert";
1255 case "rhard":
return "\\rightharpoondown";
1256 case "VerticalLine":
return "\\textbar";
1257 case "nltri":
return "\\ntriangleright";
1258 case "LeftArrow":
return "\\leftarrow";
1259 case "dashv":
return "\\dashv";
1260 case "NotSucceedsSlantEqual":
return "\\nsucccurlyeq";
1261 case "TripleDot":
return "\\dddot";
1262 case "intcal":
return "\\intercal";
1263 case "Congruent":
return "\\equiv";
1264 case "biguplus":
return "\\biguplus";
1265 case "uharl":
return "\\upharpoonleft";
1266 case "rmoustache":
return "\\rmoustache";
1267 case "gnapprox":
return "\\gnapprox";
1268 case "deg":
return "\\textdegree";
1269 case "lnapprox":
return "\\lnapprox";
1270 case "rho":
return "\\greekrho";
1271 case "mho":
return "\\textmho";
1272 case "DoubleDownArrow":
return "\\Downarrow";
1273 case "xmap":
return "\\longmapsto";
1274 case "sbquo":
return "\\quotesinglebase";
1275 case "micro":
return "\\textmu";
1276 case "rcub":
return "\\textbraceright";
1277 case "lcub":
return "\\textbraceleft";
1278 case "Theta":
return "\\greekTheta";
1279 case "leg":
return "\\lesseqgtr";
1280 case "reg":
return "\\registered";
1281 case "nleftarrow":
return "\\nleftarrow";
1282 case "lhard":
return "\\leftharpoondown";
1283 case "ForAll":
return "\\forall";
1284 case "curlywedge":
return "\\curlywedge";
1285 case "looparrowleft":
return "\\looparrowleft";
1286 case "cuvee":
return "\\curlyvee";
1287 case "copy":
return "\\copyright";
1288 case "vsubne":
return "\\subsetneq";
1289 case "NotRightTriangleEqual":
return "\\ntrianglerighteq";
1290 case "Lleftarrow":
return "\\Lleftarrow";
1291 case "lesseqgtr":
return "\\lesseqgtr";
1292 case "NotLess":
return "\\nless";
1293 case "gtrdot":
return "\\gtrdot";
1294 case "shortmid":
return "\\divides";
1295 case "cup":
return "\\cup";
1296 case "setmn":
return "\\setminus";
1297 case "thetav":
return "\\greekthetaalt";
1298 case "DiacriticalAcute":
return "\\textacute";
1299 case "Sup":
return "\\Supset";
1300 case "ocir":
return "\\circledcirc";
1301 case "nlt":
return "\\nless";
1302 case "bigodot":
return "\\bigodot";
1303 case "ecir":
return "\\eqcirc";
1304 case "LeftArrowRightArrow":
return "\\leftrightarrows";
1305 case "race":
return "\\backsim";
1306 case "ltimes":
return "\\ltimes";
1307 case "sup":
return "\\supset";
1308 case "rtimes":
return "\\rtimes";
1309 case "otimes":
return "\\otimes";
1310 case "supne":
return "\\supsetneq";
1311 case "SquareSupersetEqual":
return "\\sqsupseteq";
1312 case "ShortUpArrow":
return "\\uparrow";
1313 case "preceq":
return "\\preceq";
1314 case "Uacgr":
return "\\greekUpsilontonos";
1315 case "aacgr":
return "\\greekalphatonos";
1316 case "Prime":
return "\\doubleprime";
1317 case "Iacgr":
return "\\greekIotatonos";
1318 case "Eacgr":
return "\\greekEpsilontonos";
1319 case "Oacgr":
return "\\greekOmicrontonos";
1320 case "ntrianglelefteq":
return "\\ntrianglelefteq";
1321 case "cedil":
return "\\textcedilla";
1322 case "Cup":
return "\\Cup";
1323 case "idiagr":
return "\\greekiotadialytikatonos";
1324 case "nsmid":
return "\\ndivides";
1325 case "xcap":
return "\\bigcap";
1326 case "Aacgr":
return "\\greekAlphatonos";
1327 case "Colon":
return "\\squaredots";
1328 case "scap":
return "\\succapprox";
1329 case "between":
return "\\between";
1330 case "bigcap":
return "\\bigcap";
1331 case "diamondsuit":
return "\\blacklozenge";
1332 case "shchcy":
return "\\cyrillicshch";
1333 case "crarr":
return "\\carriagereturn";
1334 case "ominus":
return "\\ominus";
1335 case "rdsh":
return "\\Rdsh";
1336 case "nsime":
return "\\nsimeq";
1337 case "nrarr":
return "\\nrightarrow";
1338 case "NotHumpDownHump":
return "\\Bumpeq";
1339 case "srarr":
return "\\rightarrow";
1340 case "plankv":
return "\\hslash";
1341 case "phiv":
return "\\greekphialt";
1342 case "angrt":
return "\\rightangle";
1343 case "xdtri":
return "\\bigtriangledown";
1344 case "NegativeMediumSpace":
return "\\zerowidthspace";
1345 case "par":
return "\\parallel";
1346 case "diam":
return "\\diamond";
1347 case "laquo":
return "\\leftguillemot";
1348 case "sigmav":
return "\\greekfinalsigma";
1349 case "supe":
return "\\supseteq";
1350 case "SucceedsTilde":
return "\\succsim";
1351 case "ffilig":
return "\\ffiligature";
1352 case "IJlig":
return "\\IJligature";
1353 case "Rsh":
return "\\Rsh";
1354 case "lsh":
return "\\Lsh";
1355 case "DiacriticalGrave":
return "\\textgrave";
1356 case "Equilibrium":
return "\\rightleftharpoons";
1357 case "downdownarrows":
return "\\downdownarrows";
1358 case "egs":
return "\\eqslantgtr";
1359 case "cwint":
return "\\intclockwise";
1360 case "Dot":
return "\\textdiaeresis";
1361 case "Beta":
return "\\greekBeta";
1362 case "malt":
return "\\maltese";
1363 case "ges":
return "\\geqslant";
1364 case "lobrk":
return "\\llbracket";
1365 case "Product":
return "\\prod";
1366 case "trie":
return "\\triangleq";
1367 case "sqsupset":
return "\\sqsupset";
1368 case "aleph":
return "\\aleph";
1369 case "DiacriticalDoubleAcute":
return "\\texthungarumlaut";
1370 case "supE":
return "\\supseteqq";
1371 case "uacgr":
return "\\greekupsilontonos";
1372 case "approxeq":
return "\\approxeq";
1373 case "robrk":
return "\\rrbracket";
1374 case "UnionPlus":
return "\\uplus";
1375 case "Lsh":
return "\\Lsh";
1376 case "iacgr":
return "\\greekiotatonos";
1377 case "eth":
return "\\eth";
1378 case "eacgr":
return "\\greekepsilontonos";
1379 case "intercal":
return "\\intercal";
1380 case "imagpart":
return "\\Im";
1381 case "ctdot":
return "\\cdots";
1382 case "dtdot":
return "\\ddots";
1383 case "gtdot":
return "\\gtrdot";
1384 case "lessapprox":
return "\\lessapprox";
1385 case "AElig":
return "\\AEligature";
1386 case "colone":
return "\\colonequals";
1387 case "circleddash":
return "\\circleddash";
1388 case "models":
return "\\models";
1389 case "NotDoubleVerticalBar":
return "\\nparallel";
1390 case "uml":
return "\\textdiaeresis";
1391 case "udblac":
return "\\uhungarumlaut";
1392 case "SucceedsSlantEqual":
return "\\succcurlyeq";
1393 case "utdot":
return "\\udots";
1394 case "LeftCeiling":
return "\\lceiling";
1395 case "top":
return "\\top";
1396 case "ltdot":
return "\\lessdot";
1397 case "LowerRightArrow":
return "\\searrow";
1398 case "gtrapprox":
return "\\gtrapprox";
1399 case "Udblac":
return "\\Uhungarumlaut";
1400 case "LessEqualGreater":
return "\\lesseqgtr";
1401 case "Int":
return "\\iintop";
1402 case "Odblac":
return "\\Ohungarumlaut";
1403 case "nsupset":
return "\\supset";
1404 case "nwarrow":
return "\\nwarrow";
1405 case "nsube":
return "\\nsubseteq";
1406 case "swarrow":
return "\\swarrow";
1407 case "int":
return "\\intop";
1408 case "sol":
return "\\textslash";
1409 case "REG":
return "\\registered";
1410 case "ShortLeftArrow":
return "\\leftarrow";
1411 case "alefsym":
return "\\aleph";
1412 case "Uarr":
return "\\twoheaduparrow";
1413 case "Rarr":
return "\\twoheadrightarrow";
1414 case "darr":
return "\\downarrow";
1415 case "percnt":
return "\\percent";
1416 case "harr":
return "\\leftrightarrow";
1417 case "RightArrowBar":
return "\\rightarrowbar";
1418 case "uarr":
return "\\uparrow";
1419 case "Uparrow":
return "\\Uparrow";
1420 case "eqcolon":
return "\\equalscolon";
1421 case "succapprox":
return "\\succapprox";
1422 case "notin":
return "\\nin";
1423 case "varphi":
return "\\greekphialt";
1424 case "Rho":
return "\\greekRho";
1425 case "bottom":
return "\\bot";
1426 case "curarr":
return "\\curvearrowright";
1427 case "exponentiale":
return "\\exponentiale";
1428 case "nrtrie":
return "\\ntrianglerighteq";
1429 case "SquareSuperset":
return "\\sqsupset";
1430 case "lmoustache":
return "\\lmoustache";
1431 case "propto":
return "\\propto";
1432 case "nsupseteqq":
return "\\supseteqq";
1433 case "dharl":
return "\\downharpoonleft";
1434 case "varnothing":
return "\\emptyset";
1435 case "GreaterFullEqual":
return "\\geqq";
1436 case "nLtv":
return "\\ll";
1437 case "fallingdotseq":
return "\\fallingdotseq";
1438 case "smile":
return "\\smile";
1439 case "bigsqcup":
return "\\bigsqcup";
1440 case "sime":
return "\\simeq";
1441 case "NotSucceedsTilde":
return "\\succsim";
1442 case "Darr":
return "\\twoheaddownarrow";
1443 case "Larr":
return "\\twoheadleftarrow";
1444 case "ggg":
return "\\ggg";
1445 case "SquareSubset":
return "\\sqsubset";
1446 case "Subset":
return "\\Subset";
1447 case "rightleftarrows":
return "\\rightleftarrows";
1448 case "dzcy":
return "\\cyrillicdzhe";
1449 case "HumpDownHump":
return "\\Bumpeq";
1450 case "hookrightarrow":
return "\\hookrightarrow";
1451 case "beta":
return "\\greekbeta";
1452 case "Zeta":
return "\\greekZeta";
1453 case "RightUpVector":
return "\\upharpoonright";
1454 case "HARDcy":
return "\\cyrillicHRDSN";
1455 case "MediumSpace ":
return "\\dspace";
1456 case "RightFloor":
return "\\rfloor";
1457 case "uparrow":
return "\\uparrow";
1458 case "image":
return "\\Im";
1459 case "dotsquare":
return "\\boxdot";
1460 case "scnap":
return "\\succnapprox";
1461 case "ssetmn":
return "\\setminus";
1462 case "CenterDot":
return "\\periodcentered";
1463 case "Coproduct":
return "\\coprod";
1464 case "eng":
return "\\neng";
1465 case "supseteq":
return "\\supseteq";
1466 case "NotGreaterFullEqual":
return "\\geqq";
1467 case "softcy":
return "\\cyrillicsftsn";
1468 case "iiota":
return "\\turnediota";
1469 case "NotVerticalBar":
return "\\ndivides";
1470 case "puncsp ":
return "\\nctuationspace";
1471 case "ENG":
return "\\Neng";
1472 case "ang":
return "\\angle";
1473 case "RightDownVector":
return "\\downharpoonright";
1474 case "natur":
return "\\natural";
1475 case "boxminus":
return "\\boxminus";
1476 case "Tab":
return "\\t defined";
1477 case "ogon":
return "\\textogonek";
1478 case "ddarr":
return "\\downdownarrows";
1479 case "beth":
return "\\beth";
1480 case "NotLeftTriangle":
return "\\ntriangleright";
1481 case "khgr":
return "\\greekchi";
1482 case "starf":
return "\\bigstar";
1483 case "thgr":
return "\\greektheta";
1484 case "imath":
return "\\dotlessi";
1485 case "jmath":
return "\\dotlessj";
1486 case "nvsim":
return "\\sim";
1487 case "rbarr":
return "\\dashedrightarrow";
1488 case "isin":
return "\\in";
1489 case "iocy":
return "\\cyrillicyo";
1490 case "circledcirc":
return "\\circledcirc";
1491 case "DoubleContourIntegral":
return "\\oiint";
1492 case "minusd":
return "\\dotminus";
1493 case "nearrow":
return "\\nearrow";
1494 case "CapitalDifferentialD":
return "\\differentialD";
1495 case "NestedLessLess":
return "\\ll";
1496 case "erDot":
return "\\risingdotseq";
1497 case "cdots":
return "\\textellipsis";
1498 case "minusplus":
return "\\mp";
1499 case "plusminus":
return "\\textpm";
1500 case "real":
return "\\Re";
1501 case "searr":
return "\\searrow";
1502 case "nltrie":
return "\\ntrianglelefteq";
1503 case "zgr":
return "\\greekzeta";
1504 case "ograve":
return "\\ograve";
1505 case "zeta":
return "\\greekzeta";
1506 case "xrarr":
return "\\longrightarrow";
1507 case "Bcy":
return "\\cyrillicB";
1508 case "Acy":
return "\\cyrillicA";
1509 case "zcaron":
return "\\zcaron";
1510 case "Gcy":
return "\\cyrillicG";
1511 case "Fcy":
return "\\cyrillicF";
1512 case "Ecy":
return "\\cyrillicEREV";
1513 case "Dcy":
return "\\cyrillicD";
1514 case "Kcy":
return "\\cyrillicK";
1515 case "Jcy":
return "\\cyrillicISHRT";
1516 case "Icy":
return "\\cyrillicI";
1517 case "zacute":
return "\\zacute";
1518 case "Ocy":
return "\\cyrillicO";
1519 case "Ncy":
return "\\cyrillicN";
1520 case "Mcy":
return "\\cyrillicM";
1521 case "Lcy":
return "\\cyrillicL";
1522 case "Scy":
return "\\cyrillicS";
1523 case "Rcy":
return "\\cyrillicR";
1524 case "yucy":
return "\\cyrillicyu";
1525 case "Pcy":
return "\\cyrillicP";
1526 case "Vcy":
return "\\cyrillicV";
1527 case "Ucy":
return "\\cyrillicU";
1528 case "Tcy":
return "\\cyrillicT";
1529 case "sacute":
return "\\sacute";
1530 case "Zcy":
return "\\cyrillicZ";
1531 case "Ycy":
return "\\cyrillicERY";
1532 case "yen":
return "\\textyen";
1533 case "xotime":
return "\\bigotimes";
1534 case "Longrightarrow":
return "\\Longrightarrow";
1535 case "bcy":
return "\\cyrillicb";
1536 case "acy":
return "\\cyrillica";
1537 case "nharr":
return "\\nleftrightarrow";
1538 case "gcy":
return "\\cyrillicg";
1539 case "bsim":
return "\\backsim";
1540 case "ecy":
return "\\cyrillicerev";
1541 case "dcy":
return "\\cyrillicd";
1542 case "kcy":
return "\\cyrillick";
1543 case "jcy":
return "\\cyrillicishrt";
1544 case "icy":
return "\\cyrillici";
1545 case "nprec":
return "\\nprec";
1546 case "ocy":
return "\\cyrillico";
1547 case "lcy":
return "\\cyrillicl";
1548 case "scy":
return "\\cyrillics";
1549 case "rcy":
return "\\cyrillicr";
1550 case "yacute":
return "\\yacute";
1551 case "xwedge":
return "\\bigwedge";
1552 case "vcy":
return "\\cyrillicv";
1553 case "ucy":
return "\\cyrillicu";
1554 case "tcy":
return "\\cyrillict";
1555 case "xsqcup":
return "\\bigsqcup";
1556 case "zcy":
return "\\cyrillicz";
1557 case "ycy":
return "\\cyrillicery";
1558 case "LeftAngleBracket":
return "\\langle";
1559 case "bkarow":
return "\\dashedrightarrow";
1560 case "xodot":
return "\\bigodot";
1561 case "xlarr":
return "\\longleftarrow";
1562 case "xlArr":
return "\\Longleftarrow";
1563 case "ugr":
return "\\greekupsilon";
1564 case "xgr":
return "\\greekxi";
1565 case "omicron":
return "\\greekomicron";
1566 case "xcup":
return "\\bigcup";
1567 case "xcirc":
return "\\bigcirc";
1568 case "wr":
return "\\wr";
1569 case "weierp":
return "\\wp";
1570 case "primes":
return "\\primes";
1571 case "shy":
return "\\softhyphen";
1572 case "amacr":
return "\\amacron";
1573 case "Tau":
return "\\greekTau";
1574 case "vsupne":
return "\\supsetneq";
1575 case "vsupnE":
return "\\supsetneqq";
1576 case "nsim":
return "\\nsim";
1577 case "vnsub":
return "\\subset";
1578 case "Cedilla":
return "\\textcedilla";
1579 case "lsim":
return "\\lesssim";
1580 case "vert":
return "\\textbar";
1581 case "NotElement":
return "\\nin";
1582 case "egr":
return "\\greekepsilon";
1583 case "dscy":
return "\\cyrillicdze";
1584 case "vellip":
return "\\vdots";
1585 case "parallel":
return "\\parallel";
1586 case "nequiv":
return "\\nequiv";
1587 case "varsupsetneqq":
return "\\supsetneqq";
1588 case "varsupsetneq":
return "\\supsetneq";
1589 case "eegr":
return "\\greeketa";
1590 case "square":
return "\\square";
1591 case "varsigma":
return "\\greekfinalsigma";
1592 case "varr":
return "\\updownarrow";
1593 case "varpropto":
return "\\propto";
1594 case "varpi":
return "\\greekpialt";
1595 case "tau":
return "\\greektau";
1596 case "sfgr":
return "\\greekfinalsigma";
1597 case "iff":
return "\\Leftrightarrow";
1598 case "vArr":
return "\\Updownarrow";
1599 case "dotminus":
return "\\dotminus";
1600 case "uuarr":
return "\\upuparrows";
1601 case "NotSquareSupersetEqual":
return "\\nsqsupseteq";
1602 case "lessgtr":
return "\\lessgtr";
1603 case "gesl":
return "\\gtreqless";
1604 case "OpenCurlyQuote":
return "\\textquoteleft";
1605 case "sqsubseteq":
return "\\sqsubseteq";
1606 case "lfloor":
return "\\lfloor";
1607 case "urcorner":
return "\\urcorner";
1608 case "NotSubset":
return "\\subset";
1609 case "LeftArrowBar":
return "\\barleftarrow";
1610 case "uogon":
return "\\uogonek";
1611 case "umacr":
return "\\umacron";
1612 case "TildeFullEqual":
return "\\approxEq";
1613 case "ulcorner":
return "\\ulcorner";
1614 case "dharr":
return "\\downharpoonright";
1615 case "naturals":
return "\\naturalnumbers";
1616 case "xharr":
return "\\longleftrightarrow";
1617 case "uharr":
return "\\upharpoonright";
1618 case "udiagr":
return "\\greekupsilondialytikatonos";
1619 case "NegativeThickSpace":
return "\\zerowidthspace";
1620 case "udarr":
return "\\updownarrows";
1621 case "ucirc":
return "\\ucircumflex";
1622 case "uacute":
return "\\uacute";
1623 case "uArr":
return "\\Uparrow";
1624 case "twoheadrightarrow":
return "\\twoheadrightarrow";
1625 case "twixt":
return "\\between";
1626 case "hardcy":
return "\\cyrillichrdsn";
1627 case "tshcy":
return "\\cyrillictshe";
1628 case "tscy":
return "\\cyrillicc";
1629 case "triangleq":
return "\\triangleq";
1630 case "tprime":
return "\\tripleprime";
1631 case "curren":
return "\\textcurrency";
1632 case "tint":
return "\\iiintop";
1633 case "timesb":
return "\\boxtimes";
1634 case "times":
return "\\textmultiply";
1635 case "RightArrowLeftArrow":
return "\\rightleftarrows";
1636 case "tilde":
return "\\texttilde";
1637 case "thorn":
return "\\thorn";
1638 case "thksim":
return "\\sim";
1639 case "kgr":
return "\\greekkappa";
1640 case "iecy":
return "\\cyrillice";
1641 case "thinsp ":
return "\\eakablethinspace";
1642 case "thetasym":
return "\\greekthetaalt";
1643 case "theta":
return "\\greektheta";
1644 case "tgr":
return "\\greektau";
1645 case "iiint":
return "\\iiintop";
1646 case "tdot":
return "\\dddot";
1647 case "lesssim":
return "\\lesssim";
1648 case "tcaron":
return "\\tcaron";
1649 case "nGt":
return "\\gg";
1650 case "swarhk":
return "\\rhookswarrow";
1651 case "swArr":
return "\\Swarrow";
1652 case "supnE":
return "\\supsetneqq";
1653 case "divideontimes":
return "\\divideontimes";
1654 case "awconint":
return "\\ointctrclockwise";
1655 case "conint":
return "\\oint";
1656 case "sup2":
return "\\twosuperior";
1657 case "succsim":
return "\\succsim";
1658 case "NotLessEqual":
return "\\nleq";
1659 case "succnapprox":
return "\\succnapprox";
1660 case "succeq":
return "\\succeq";
1661 case "succ":
return "\\succ";
1662 case "subsetneqq":
return "\\subsetneqq";
1663 case "subsetneq":
return "\\subsetneq";
1664 case "LongLeftArrow":
return "\\longleftarrow";
1665 case "subseteq":
return "\\subseteq";
1666 case "subne":
return "\\subsetneq";
1667 case "subnE":
return "\\subsetneqq";
1668 case "sube":
return "\\subseteq";
1669 case "subE":
return "\\subseteqq";
1670 case "DownTeeArrow":
return "\\mapsdown";
1671 case "coprod":
return "\\coprod";
1672 case "Ntilde":
return "\\Ntilde";
1673 case "ssmile":
return "\\smile";
1674 case "varsubsetneqq":
return "\\subsetneqq";
1675 case "circ":
return "\\textcircumflex";
1676 case "sqsupseteq":
return "\\sqsupseteq";
1677 case "sqsupe":
return "\\sqsupseteq";
1678 case "sqsup":
return "\\sqsupset";
1679 case "sqsubset":
return "\\sqsubset";
1680 case "LeftRightArrow":
return "\\leftrightarrow";
1681 case "DiacriticalDot":
return "\\textdotaccent";
1682 case "sqsube":
return "\\sqsubseteq";
1683 case "sqsub":
return "\\sqsubset";
1684 case "ngr":
return "\\greeknu";
1685 case "sqcaps":
return "\\sqcap";
1686 case "sqcap":
return "\\sqcap";
1687 case "ee":
return "\\exponentiale";
1688 case "leftthreetimes":
return "\\leftthreetimes";
1689 case "Precedes":
return "\\prec";
1690 case "spadesuit":
return "\\spadesuit";
1691 case "divide":
return "\\textdiv";
1692 case "spades":
return "\\spadesuit";
1693 case "boxtimes":
return "\\boxtimes";
1694 case "smallsetminus":
return "\\setminus";
1695 case "slarr":
return "\\leftarrow";
1696 case "zhcy":
return "\\cyrilliczh";
1697 case "simne":
return "\\napproxEq";
1698 case "sim":
return "\\sim";
1699 case "sigmaf":
return "\\greekfinalsigma";
1700 case "shortparallel":
return "\\parallel";
1701 case "chcy":
return "\\cyrillicch";
1702 case "SHCHcy":
return "\\cyrillicSHCH";
1703 case "shcy":
return "\\cyrillicsh";
1704 case "sgr":
return "\\greeksigma";
1705 case "otilde":
return "\\otilde";
1706 case "bigstar":
return "\\bigstar";
1707 case "khcy":
return "\\cyrillich";
1708 case "sect":
return "\\sectionmark";
1709 case "searrow":
return "\\searrow";
1710 case "searhk":
return "\\lhooksearrow";
1711 case "seArr":
return "\\Searrow";
1712 case "sdot":
return "\\cdot";
1713 case "DoubleRightTee":
return "\\vDash";
1714 case "scsim":
return "\\succsim";
1715 case "Proportion":
return "\\squaredots";
1716 case "hellip":
return "\\textellipsis";
1717 case "Zdot":
return "\\Zdotaccent";
1718 case "ExponentialE":
return "\\exponentiale";
1719 case "sce":
return "\\succeq";
1720 case "sccue":
return "\\succcurlyeq";
1721 case "scaron":
return "\\scaron";
1722 case "angst":
return "\\Aring";
1723 case "sc":
return "\\succ";
1724 case "yicy":
return "\\cyrillicyi";
1725 case "rtrif":
return "\\blacktriangleleft";
1726 case "notniva":
return "\\nni";
1727 case "rsquo":
return "'";
1728 case "rsh":
return "\\Rsh";
1729 case "ordm":
return "\\ordmasculine";
1730 case "OverBrace":
return "\\overbrace";
1731 case "rsaquo":
return "\\guilsingleright";
1732 case "rrarr":
return "\\rightrightarrows";
1733 case "rpar":
return "\\rparent";
1734 case "ngtr":
return "\\ngtr";
1735 case "ljcy":
return "\\cyrilliclje";
1736 case "kjcy":
return "\\cyrillickje";
1737 case "roarr":
return "\\rightarrowtriangle";
1738 case "gjcy":
return "\\cyrillicgje";
1739 case "rceil":
return "\\rceiling";
1740 case "djcy":
return "\\cyrillicdje";
1741 case "eogon":
return "\\eogonek";
1742 case "rlarr":
return "\\rightleftarrows";
1743 case "ecolon":
return "\\equalscolon";
1744 case "risingdotseq":
return "\\risingdotseq";
1745 case "rightthreetimes":
return "\\rightthreetimes";
1746 case "rightleftharpoons":
return "\\rightleftharpoons";
1747 case "nGtv":
return "\\gg";
1748 case "lceil":
return "\\lceiling";
1749 case "rightharpoonup":
return "\\rightharpoonup";
1750 case "rightarrowtail":
return "\\rightarrowtail";
1751 case "rightarrow":
return "\\rightarrow";
1752 case "wreath":
return "\\wr";
1753 case "rharu":
return "\\rightharpoonup";
1754 case "cuesc":
return "\\curlyeqsucc";
1755 case "bigtriangledown":
return "\\bigtriangledown";
1756 case "njcy":
return "\\cyrillicnje";
1757 case "rgr":
return "\\greekrho";
1758 case "oslash":
return "\\ostroke";
1759 case "rfloor":
return "\\rfloor";
1760 case "rdquo":
return "\"";
1761 case "lsquor":
return "\\quotesinglebase";
1762 case "veebar":
return "\\veebar";
1763 case "rcedil":
return "\\rcommaaccent";
1764 case "rcaron":
return "\\rcaron";
1765 case "rsquor":
return "\\textquoteright";
1766 case "prec":
return "\\prec";
1767 case "mgr":
return "\\greekmu";
1768 case "rarrtl":
return "\\rightarrowtail";
1769 case "rarrlp":
return "\\looparrowright";
1770 case "rarr":
return "\\rightarrow";
1771 case "becaus":
return "\\because";
1772 case "raquo":
return "\\rightguillemot";
1773 case "radic":
return "\\surd";
1774 case "sup1":
return "\\onesuperior";
1775 case "rArr":
return "\\Rightarrow";
1776 case "nles":
return "\\leqslant";
1777 case "ncy":
return "\\cyrillicn";
1778 case "leftharpoonup":
return "\\leftharpoonup";
1779 case "larr":
return "\\leftarrow";
1780 case "UnderBrace":
return "\\underbrace";
1781 case "prnap":
return "\\precnapprox";
1782 case "setminus":
return "\\setminus";
1783 case "prime":
return "\\prime";
1784 case "NotSquareSubset":
return "\\sqsubset";
1785 case "SquareIntersection":
return "\\sqcap";
1786 case "LeftDownVector":
return "\\downharpoonleft";
1787 case "precneqq":
return "\\precneqq";
1788 case "precnapprox":
return "\\precnapprox";
1789 case "pr":
return "\\prec";
1790 case "pound":
return "\\textsterling";
1791 case "planckh":
return "\\Plankconst";
1792 case "piv":
return "\\greekpialt";
1793 case "phi":
return "\\greekphi";
1794 case "phgr":
return "\\greekphi";
1795 case "pgr":
return "\\greekpi";
1796 case "NotSupersetEqual":
return "\\nsupseteq";
1797 case "perp":
return "\\bot";
1798 case "pcy":
return "\\cyrillicp";
1799 case "nLeftrightarrow":
return "\\nLeftrightarrow";
1800 case "ijlig":
return "\\ijligature";
1801 case "NotPrecedesEqual":
return "\\preceq";
1802 case "Because":
return "\\because";
1803 case "ogr":
return "\\greekomicron";
1804 case "orarr":
return "\\circlearrowleft";
1805 case "or":
return "\\vee";
1806 case "Rarrtl":
return "\\twoheadrightarrowtail";
1807 case "ohm":
return "\\greekOmega";
1808 case "ohgr":
return "\\greekomega";
1809 case "Rfr":
return "\\Re";
1810 case "Ifr":
return "\\Im";
1811 case "TildeTilde":
return "\\approx";
1812 case "Aring":
return "\\Aring";
1813 case "complexes":
return "\\complexes";
1814 case "Pgr":
return "\\greekPi";
1815 case "odblac":
return "\\ohungarumlaut";
1816 case "Ngr":
return "\\greekNu";
1817 case "Ogr":
return "\\greekOmicron";
1818 case "Tgr":
return "\\greekTau";
1819 case "Ugr":
return "\\greekUpsilon";
1820 case "Rgr":
return "\\greekRho";
1821 case "Sgr":
return "\\greekSigma";
1822 case "Igr":
return "\\greekIota";
1823 case "Ggr":
return "\\greekGamma";
1824 case "Lgr":
return "\\greekLambda";
1825 case "Mgr":
return "\\greekMu";
1826 case "oast":
return "\\circledast";
1827 case "Kgr":
return "\\greekKappa";
1828 case "agr":
return "\\greekalpha";
1829 case "oacute":
return "\\oacute";
1830 case "oacgr":
return "\\greekomicrontonos";
1831 case "Xgr":
return "\\greekXi";
1832 case "epsilon":
return "\\greekepsilon";
1833 case "mapstodown":
return "\\mapsdown";
1834 case "mumap":
return "\\multimap";
1835 case "nleqslant":
return "\\leqslant";
1836 case "nwarhk":
return "\\lhooknwarrow";
1837 case "Zgr":
return "\\greekZeta";
1838 case "bdquo":
return "\\quotedblbase";
1839 case "hslash":
return "\\hslash";
1840 case "llcorner":
return "\\llcorner";
1841 case "nvgt":
return "\\gt";
1842 case "nvge":
return "\\geq";
1843 case "frac13":
return "\\onethird";
1844 case "frac25":
return "\\twofifths";
1845 case "numero":
return "\\textnumero";
1846 case "ntilde":
return "\\ntilde";
1847 case "equest":
return "\\questionedeq";
1848 case "ntgl":
return "\\ngtrless";
1849 case "nsupE":
return "\\supseteqq";
1850 case "leftarrowtail":
return "\\leftarrowtail";
1851 case "nsucceq":
return "\\succeq";
1852 case "Agr":
return "\\greekAlpha";
1853 case "lacute":
return "\\lacute";
1854 case "nsubE":
return "\\subseteqq";
1855 case "Dgr":
return "\\greekDelta";
1856 case "Egr":
return "\\greekEpsilon";
1857 case "Bgr":
return "\\greekBeta";
1858 case "iquest":
return "\\questiondown";
1859 case "nsub":
return "\\nsubset";
1860 case "nsqsupe":
return "\\nsqsupseteq";
1861 case "nspar":
return "\\nparallel";
1862 case "Oslash":
return "\\Ostroke";
1863 case "asympeq":
return "\\asymp";
1864 case "nRightarrow":
return "\\nRightarrow";
1865 case "nsimeq":
return "\\nsimeq";
1866 case "nshortmid":
return "\\ndivides";
1867 case "frac38":
return "\\threeeighths";
1868 case "cong":
return "\\approxEq";
1869 case "nsce":
return "\\succeq";
1870 case "nsc":
return "\\nsucc";
1871 case "nrArr":
return "\\nRightarrow";
1872 case "npreceq":
return "\\preceq";
1873 case "yacy":
return "\\cyrillicya";
1874 case "dagger":
return "\\textdag";
1875 case "nprcue":
return "\\npreccurlyeq";
1876 case "Gammad":
return "\\digamma";
1877 case "dollar":
return "\\textdollar";
1878 case "NotGreaterEqual":
return "\\ngeq";
1879 case "not":
return "\\textlognot";
1880 case "nmid":
return "\\ndivides";
1881 case "nless":
return "\\nless";
1882 case "nleftrightarrow":
return "\\nleftrightarrow";
1883 case "DownLeftVector":
return "\\leftharpoondown";
1884 case "ni":
return "\\ni";
1885 case "ngsim":
return "\\ngtrsim";
1886 case "sqcups":
return "\\sqcup";
1887 case "ngeq":
return "\\ngeq";
1888 case "frac45":
return "\\fourfifths";
1889 case "nexists":
return "\\nexists";
1890 case "nesim":
return "\\eqsim";
1891 case "nearr":
return "\\nearrow";
1892 case "fnof":
return "\\fhook";
1893 case "neArr":
return "\\Nearrow";
1894 case "questeq":
return "\\questionedeq";
1895 case "ncaron":
return "\\ncaron";
1896 case "frasl":
return "\\textfraction";
1897 case "nbump":
return "\\Bumpeq";
1898 case "nVdash":
return "\\nVdash";
1899 case "nLeftarrow":
return "\\nLeftarrow";
1900 case "swarr":
return "\\swarrow";
1901 case "nwarr":
return "\\nwarrow";
1902 case "multimap":
return "\\multimap";
1903 case "gimel":
return "\\gimel";
1904 case "mp":
return "\\mp";
1905 case "mldr":
return "\\textellipsis";
1906 case "because":
return "\\because";
1907 case "ratio":
return "\\colon";
1908 case "measuredangle":
return "\\measuredangle";
1909 case "mcy":
return "\\cyrillicm";
1910 case "cwconint":
return "\\ointclockwise";
1911 case "Utilde":
return "\\Utilde";
1912 case "Uring":
return "\\Uring";
1913 case "lvertneqq":
return "\\lneqq";
1914 case "UnderParenthesis":
return "\\underparent";
1915 case "nsubset":
return "\\subset";
1916 case "lthree":
return "\\leftthreetimes";
1917 case "lt":
return "\\lt";
1918 case "lsquo":
return "'";
1919 case "strns":
return "\\textmacron";
1920 case "DownRightVector":
return "\\rightharpoondown";
1921 case "Sub":
return "\\Subset";
1922 case "lrarr":
return "\\leftrightarrows";
1923 case "lpar":
return "\\lparent";
1924 case "lozenge":
return "\\lozenge";
1925 case "loz":
return "\\lozenge";
1926 case "aring":
return "\\aring";
1927 case "lowbar":
return "\\textunderscore";
1928 case "looparrowright":
return "\\looparrowright";
1929 case "longrightarrow":
return "\\longrightarrow";
1930 case "longleftarrow":
return "\\longleftarrow";
1931 case "llarr":
return "\\leftleftarrows";
1932 case "lgr":
return "\\greeklambda";
1933 case "lg":
return "\\lessgtr";
1934 case "uring":
return "\\uring";
1935 case "lesg":
return "\\lesseqgtr";
1936 case "curlyeqsucc":
return "\\curlyeqsucc";
1937 case "sigma":
return "\\greeksigma";
1938 case "les":
return "\\leqslant";
1939 case "leftrightsquigarrow":
return "\\leftrightsquigarrow";
1940 case "bull":
return "\\textbullet";
1941 case "Dagger":
return "\\textddag";
1942 case "leftrightarrow":
return "\\leftrightarrow";
1943 case "gammad":
return "\\greekdigamma";
1944 case "nsup":
return "\\nsupset";
1945 case "sub":
return "\\subset";
1946 case "ldquo":
return "\"";
1947 case "aacute":
return "\\aacute";
1948 case "lcaron":
return "\\lcaron";
1949 case "LessFullEqual":
return "\\leqq";
1950 case "ContourIntegral":
return "\\oint";
1951 case "lbrace":
return "\\textbraceleft";
1952 case "lbarr":
return "\\dashedleftarrow";
1953 case "larrtl":
return "\\leftarrowtail";
1954 case "bigtriangleup":
return "\\triangle";
1955 case "varepsilon":
return "\\greekepsilonalt";
1956 case "lArr":
return "\\Leftarrow";
1957 case "larrb":
return "\\barleftarrow";
1958 case "sdotb":
return "\\boxdot";
1959 case "hArr":
return "\\Leftrightarrow";
1960 case "nlarr":
return "\\nleftarrow";
1961 case "olarr":
return "\\circlearrowright";
1962 case "thkap":
return "\\approx";
1963 case "Star":
return "\\star";
1964 case "aogon":
return "\\aogonek";
1965 case "CirclePlus":
return "\\oplus";
1966 case "kappav":
return "\\varkappa";
1967 case "itilde":
return "\\itilde";
1968 case "iogon":
return "\\iogonek";
1969 case "Ccedil":
return "\\Ccedilla";
1970 case "imped":
return "\\Zstroke";
1971 case "imacr":
return "\\imacron";
1972 case "Gcedil":
return "\\Gcommaaccent";
1973 case "gneq":
return "\\rneq";
1974 case "igr":
return "\\greekiota";
1975 case "icirc":
return "\\icircumflex";
1976 case "hstrok":
return "\\hstroke";
1977 case "lrhar":
return "\\leftrightharpoons";
1978 case "lrcorner":
return "\\lrcorner";
1979 case "niv":
return "\\ni";
1980 case "hoarr":
return "\\leftrightarrowtriangle";
1981 case "hcirc":
return "\\hcircumflex";
1982 case "hbar":
return "\\hslash";
1983 case "half":
return "\\onehalf";
1984 case "hairsp ":
return "\\irspace";
1985 case "ThinSpace ":
return "\\eakablethinspace";
1986 case "gtrless":
return "\\gtrless";
1987 case "gt":
return "\\gt";
1988 case "gsim":
return "\\gtrsim";
1989 case "grave":
return "\\textgrave";
1990 case "gl":
return "\\gtrless";
1991 case "caron":
return "\\textcaron";
1992 case "ggr":
return "\\greekgamma";
1993 case "dArr":
return "\\Downarrow";
1994 case "preccurlyeq":
return "\\preccurlyeq";
1995 case "gdot":
return "\\gdotaccent";
1996 case "frac15":
return "\\onefifth";
1997 case "gacute":
return "\\gacute";
1998 case "frac56":
return "\\fivesixths";
1999 case "frac18":
return "\\oneeighth";
2000 case "ecirc":
return "\\ecircumflex";
2001 case "frac16":
return "\\onesixth";
2002 case "gcirc":
return "\\gcircumflex";
2003 case "LessGreater":
return "\\lessgtr";
2004 case "jcirc":
return "\\jcircumflex";
2005 case "frac12":
return "\\onehalf";
2006 case "fllig":
return "\\flligature";
2007 case "filig":
return "\\filigature";
2008 case "ocirc":
return "\\ocircumflex";
2009 case "fcy":
return "\\cyrillicf";
2010 case "exist":
return "\\exists";
2011 case "esim":
return "\\eqsim";
2012 case "scirc":
return "\\scircumflex";
2013 case "Hacek":
return "\\textcaron";
2014 case "Ucirc":
return "\\Ucircumflex";
2015 case "Wcirc":
return "\\Wcircumflex";
2016 case "eqcirc":
return "\\eqcirc";
2017 case "Ycirc":
return "\\Ycircumflex";
2018 case "epsiv":
return "\\greekepsilonalt";
2019 case "emsp14 ":
return "\\urperemspace";
2020 case "rlhar":
return "\\rightleftharpoons";
2021 case "acirc":
return "\\acircumflex";
2022 case "emsp13 ":
return "\\reeperemspace";
2023 case "ccirc":
return "\\ccircumflex";
2024 case "emptyv":
return "\\emptyset";
2025 case "Ecirc":
return "\\Ecircumflex";
2026 case "Gcirc":
return "\\Gcircumflex";
2027 case "Hcirc":
return "\\Hcircumflex";
2028 case "Icirc":
return "\\Icircumflex";
2029 case "Jcirc":
return "\\Jcircumflex";
2030 case "NotTildeEqual":
return "\\nsimeq";
2031 case "verbar":
return "\\textbar";
2032 case "spar":
return "\\parallel";
2033 case "LeftTee":
return "\\dashv";
2034 case "ecaron":
return "\\ecaron";
2035 case "duarr":
return "\\downuparrows";
2036 case "Scirc":
return "\\Scircumflex";
2037 case "els":
return "\\eqslantless";
2038 case "downharpoonright":
return "\\downharpoonright";
2039 case "doteqdot":
return "\\doteqdot";
2040 case "dot":
return "\\textdotaccent";
2041 case "npar":
return "\\nparallel";
2042 case "div":
return "\\textdiv";
2043 case "digamma":
return "\\greekdigamma";
2044 case "UpperLeftArrow":
return "\\nwarrow";
2045 case "Acirc":
return "\\Acircumflex";
2046 case "dgr":
return "\\greekdelta";
2047 case "Ccirc":
return "\\Ccircumflex";
2048 case "ddagger":
return "\\textddag";
2049 case "dd":
return "\\differentiald";
2050 case "cuwed":
return "\\curlywedge";
2051 case "curvearrowright":
return "\\curvearrowright";
2052 case "cularr":
return "\\curvearrowleft";
2053 case "varrho":
return "\\greekrhoalt";
2054 case "ldquor":
return "\\quotedblbase";
2055 case "complement":
return "\\complement";
2056 case "clubsuit":
return "\\clubsuit";
2057 case "DZcy":
return "\\cyrillicDZHE";
2058 case "rdquor":
return "\\quotedblright";
2059 case "centerdot":
return "\\periodcentered";
2060 case "fflig":
return "\\ffligature";
2061 case "ccedil":
return "\\ccedilla";
2062 case "caps":
return "\\cap";
2063 case "circledS":
return "\\circledS";
2064 case "oelig":
return "\\oeligature";
2065 case "bot":
return "\\bot";
2066 case "bigvee":
return "\\bigvee";
2067 case "prop":
return "\\propto";
2068 case "bgr":
return "\\greekbeta";
2069 case "minusb":
return "\\boxminus";
2070 case "nvle":
return "\\leq";
2071 case "loarr":
return "\\leftarrowtriangle";
2072 case "horbar":
return "\\texthorizontalbar";
2073 case "Diamond":
return "\\diamond";
2074 case "wcirc":
return "\\wcircumflex";
2075 case "aelig":
return "\\aeligature";
2076 case "ycirc":
return "\\ycircumflex";
2077 case "SupersetEqual":
return "\\supseteq";
2078 case "curvearrowleft":
return "\\curvearrowleft";
2079 case "zwj":
return "\\zwj";
2080 case "psgr":
return "\\greekpsi";
2081 case "atilde":
return "\\atilde";
2082 case "ape":
return "\\approxeq";
2083 case "NotSquareSubsetEqual":
return "\\nsqsubseteq";
2084 case "kcedil":
return "\\kcommaaccent";
2085 case "upsilon":
return "\\greekupsilon";
2086 case "NotTildeTilde":
return "\\napprox";
2087 case "ncedil":
return "\\ncommaaccent";
2088 case "lcedil":
return "\\lcommaaccent";
2089 case "scedil":
return "\\scedilla";
2090 case "equiv":
return "\\equiv";
2091 case "Vvdash":
return "\\Vvdash";
2092 case "DoubleLeftArrow":
return "\\Leftarrow";
2093 case "macr":
return "\\textmacron";
2094 case "tcedil":
return "\\tcedilla";
2095 case "RightCeiling":
return "\\rceiling";
2096 case "diamond":
return "\\diamond";
2097 case "UnderBar":
return "\\textunderscore";
2098 case "Tcedil":
return "\\Tcedilla";
2099 case "Nu":
return "\\greekNu";
2100 case "precnsim":
return "\\precnsim";
2101 case "Sigma":
return "\\greekSigma";
2102 case "Proportional":
return "\\propto";
2103 case "Sacute":
return "\\Sacute";
2104 case "integers":
return "\\integers";
2105 case "RightTee":
return "\\vdash";
2106 case "Kcedil":
return "\\Kcommaaccent";
2107 case "Upsilon":
return "\\greekUpsilon";
2108 case "RightAngleBracket":
return "\\rangle";
2109 case "Pi":
return "\\greekPi";
2110 case "Ncedil":
return "\\Ncommaaccent";
2111 case "Lcedil":
return "\\Lcommaaccent";
2112 case "Scedil":
return "\\Scedilla";
2113 case "Rcedil":
return "\\Rcommaaccent";
2114 case "hookleftarrow":
return "\\hookleftarrow";
2115 case "NotGreaterLess":
return "\\ngtrless";
2116 case "Ocirc":
return "\\Ocircumflex";
2117 case "OElig":
return "\\OEligature";
2118 case "SquareSubsetEqual":
return "\\sqsubseteq";
2119 case "Epsilon":
return "\\greekEpsilon";
2120 case "lsaquo":
return "\\guilsingleleft";
2121 case "NotTilde":
return "\\nsim";
2122 case "LeftUpVector":
return "\\upharpoonleft";
2123 case "NestedGreaterGreater":
return "\\gg";
2124 case "Union":
return "\\bigcup";
2125 case "LowerLeftArrow":
return "\\swarrow";
2126 case "NotEqual":
return "\\neq";
2127 case "Implies":
return "\\Rightarrow";
2128 case "Gt":
return "\\gg";
2129 case "GreaterEqual":
return "\\geq";
2143 return Task.CompletedTask;
2152 this.
Output.Append(
"\\texttt{");
2156 return Task.CompletedTask;
2165 return Task.CompletedTask;
2190 if (Result is XmlDocument Xml)
2195 if (Result is
Graph G)
2201 if (AloneInParagraph)
2203 this.
Output.AppendLine(
"\\begin{figure}[!hb]");
2204 this.
Output.AppendLine(
"\\centering");
2207 this.
Output.Append(
"\\fbox{\\includegraphics[width=");
2208 this.
Output.Append(((GraphSettings.Width * 3) / 4).ToString());
2209 this.
Output.Append(
"pt, height=");
2210 this.
Output.Append(((GraphSettings.Height * 3) / 4).ToString());
2211 this.
Output.Append(
"pt]{");
2212 this.
Output.Append(FileName.Replace(
'\\',
'/'));
2213 this.
Output.Append(
"}}");
2215 if (AloneInParagraph)
2217 this.
Output.AppendLine();
2218 this.
Output.AppendLine(
"\\end{figure}");
2219 this.
Output.AppendLine();
2224 byte[] Bin = Pixels.EncodeAsPng();
2227 if (AloneInParagraph)
2229 this.
Output.AppendLine(
"\\begin{figure}[!hb]");
2230 this.
Output.AppendLine(
"\\centering");
2233 this.
Output.Append(
"\\fbox{\\includegraphics[width=");
2234 this.
Output.Append(((Pixels.Width * 3) / 4).ToString());
2235 this.
Output.Append(
"pt, height=");
2236 this.
Output.Append(((Pixels.Height * 3) / 4).ToString());
2237 this.
Output.Append(
"pt]{");
2238 this.
Output.Append(FileName.Replace(
'\\',
'/'));
2239 this.
Output.Append(
"}}");
2241 if (AloneInParagraph)
2243 this.
Output.AppendLine();
2244 this.
Output.AppendLine(
"\\end{figure}");
2245 this.
Output.AppendLine();
2248 else if (Result is SKImage Img)
2250 using (SKData Data = Img.Encode(SKEncodedImageFormat.Png, 100))
2252 byte[] Bin = Data.ToArray();
2255 if (AloneInParagraph)
2257 this.
Output.AppendLine(
"\\begin{figure}[!hb]");
2258 this.
Output.AppendLine(
"\\centering");
2261 this.
Output.Append(
"\\fbox{\\includegraphics[width=");
2262 this.
Output.Append(((Img.Width * 3) / 4).ToString());
2263 this.
Output.Append(
"pt, height=");
2264 this.
Output.Append(((Img.Height * 3) / 4).ToString());
2265 this.
Output.Append(
"pt]{");
2266 this.
Output.Append(FileName.Replace(
'\\',
'/'));
2267 this.
Output.Append(
"}}");
2269 if (AloneInParagraph)
2271 this.
Output.AppendLine();
2272 this.
Output.AppendLine(
"\\end{figure}");
2273 this.
Output.AppendLine();
2280 Doc.ProcessAsyncTasks();
2286 Doc.ProcessAsyncTasks();
2288 else if (Result is Exception ex)
2294 this.
Output.AppendLine(
"\\texttt{\\color{red}");
2296 if (ex is AggregateException ex2)
2298 foreach (Exception ex3
in ex2.InnerExceptions)
2300 foreach (
string Row
in ex3.Message.Replace(
"\r\n",
"\n").
2301 Replace(
'\r',
'\n').Split(
'\n'))
2306 this.
Output.AppendLine(
"\\\\");
2314 foreach (
string Row
in ex.Message.Replace(
"\r\n",
"\n").
2315 Replace(
'\r',
'\n').Split(
'\n'))
2320 this.
Output.AppendLine(
"\\\\");
2326 this.
Output.AppendLine(
"}");
2328 if (AloneInParagraph)
2330 this.
Output.AppendLine();
2331 this.
Output.AppendLine();
2334 else if (Result is
ObjectMatrix M && !(M.ColumnNames is
null))
2336 this.
Output.AppendLine(
"\\begin{table}[!hb]");
2337 this.
Output.AppendLine(
"\\centering");
2338 this.
Output.Append(
"\\begin{tabular}{");
2339 foreach (
string _ in M.ColumnNames)
2340 this.
Output.Append(
"|c");
2342 this.
Output.AppendLine(
"|}");
2343 this.
Output.AppendLine(
"\\hline");
2347 foreach (
string Name
in M.ColumnNames)
2352 this.
Output.Append(
" & ");
2357 this.
Output.AppendLine(
"\\\\");
2358 this.
Output.AppendLine(
"\\hline");
2362 for (y = 0; y < M.Rows; y++)
2364 for (x = 0; x < M.Columns; x++)
2367 this.
Output.Append(
" & ");
2369 object Item = M.GetElement(x, y).AssociatedObjectValue;
2370 if (!(Item is
null))
2372 if (Item is
string s2)
2377 await Element.Render(
this);
2388 this.
Output.Append(
"</td>");
2391 this.
Output.AppendLine(
"\\\\");
2394 this.
Output.AppendLine(
"\\hline");
2395 this.
Output.AppendLine(
"\\end{tabular}");
2396 this.
Output.AppendLine(
"\\end{table}");
2397 this.
Output.AppendLine();
2399 else if (Result is Array A)
2401 foreach (
object Item
in A)
2407 if (AloneInParagraph)
2409 this.
Output.AppendLine();
2410 this.
Output.AppendLine();
2421 return Task.CompletedTask;
2430 this.
Output.Append(
"\\emph{");
2441 this.
Output.AppendLine(
"\\newline");
2442 return Task.CompletedTask;
2469 bool FirstOnRow =
true;
2471 if (Element.
TryGetMetaData(out KeyValuePair<string, bool>[] Values))
2473 foreach (KeyValuePair<string, bool> P
in Values)
2484 this.
Output.AppendLine();
2490 return Task.CompletedTask;
2497 public override Task
Render(Model.SpanElements.Multimedia Element)
2503 return Renderer.RenderLatex(
this, Element.Items, Element.Children, Element.AloneInParagraph, Element.Document);
2530 this.
Output.Append(
"\\strike{");
2541 this.
Output.Append(
"\\textbf{");
2552 this.
Output.Append(
"\\textsubscript{");
2563 this.
Output.Append(
"\\textsuperscript{");
2574 this.
Output.Append(
"\\underline{");
2581 #region Block elements
2589 this.
Output.AppendLine(
"\\begin{quote}");
2593 this.
Output.AppendLine(
"\\end{quote}");
2594 this.
Output.AppendLine();
2603 this.
Output.AppendLine(
"\\begin{itemize}");
2607 this.
Output.AppendLine(
"\\end{itemize}");
2608 this.
Output.AppendLine();
2617 this.
Output.AppendLine(
"\\begin{center}");
2621 this.
Output.AppendLine(
"\\end{center}");
2622 this.
Output.AppendLine();
2640 catch (Exception ex)
2646 this.
Output.AppendLine(
"\\texttt{\\color{red}");
2648 if (ex is AggregateException ex2)
2650 foreach (Exception ex3
in ex2.InnerExceptions)
2652 foreach (
string Row
in ex3.Message.Replace(
"\r\n",
"\n").
2653 Replace(
'\r',
'\n').Split(
'\n'))
2658 this.
Output.AppendLine(
"\\\\");
2666 foreach (
string Row
in ex.Message.Replace(
"\r\n",
"\n").
2667 Replace(
'\r',
'\n').Split(
'\n'))
2672 this.
Output.AppendLine(
"\\\\");
2678 this.
Output.AppendLine(
"}");
2679 this.
Output.AppendLine();
2683 this.
Output.AppendLine(
"\\begin{spverbatim}");
2687 for (i = Element.
Start; i <= Element.
End; i++)
2693 this.
Output.AppendLine();
2694 this.
Output.AppendLine(
"\\end{spverbatim}");
2695 this.
Output.AppendLine();
2704 return Task.CompletedTask;
2727 this.
Output.AppendLine(
"\\begin{description}");
2729 while (!(Loop is
null))
2731 for (i = Loop.
Start, c = Loop.
Pos; i < c; i++)
2740 this.
Output.Append(
"\\item[");
2741 await Terms.Render(
this);
2746 this.
Output.Append(
", ");
2747 await Terms.Render(
this);
2751 this.
Output.AppendLine(
"}");
2752 this.
Output.Append(
"\\item[");
2754 await Terms.Render(
this);
2763 this.
Output.Append(
"\\item{");
2764 await Descriptions.Render(
this);
2769 this.
Output.Append(
"]{");
2770 await Descriptions.Render(
this);
2775 this.
Output.AppendLine();
2776 await Descriptions.Render(
this);
2788 this.
Output.AppendLine(
"]{}");
2792 this.
Output.AppendLine(
"}");
2796 this.
Output.AppendLine(
"\\end{description}");
2797 this.
Output.AppendLine();
2815 this.
Output.Append(
"\\strike{");
2837 if (!this.abstractOutput)
2841 string.Compare(Text.Value,
"abstract",
true) == 0)
2843 this.
Output.AppendLine(
"\\begin{abstract}");
2844 this.abstractOutput =
true;
2845 this.inAbstract =
true;
2852 this.
Output.AppendLine(
"\\begin{abstract}");
2854 foreach (KeyValuePair<string, bool> P
in Values)
2857 this.
Output.AppendLine(
"\\end{abstract}");
2858 this.abstractOutput =
true;
2863 switch (this.LatexSettings.DocumentClass)
2867 switch (Element.
Level)
2874 Command =
"chapter";
2878 Command =
"section";
2882 Command =
"subsection";
2886 Command =
"subsubsection";
2890 Command =
"paragraph";
2895 Command =
"subparagraph";
2903 switch (Element.
Level)
2906 Command =
"section";
2910 Command =
"subsection";
2914 Command =
"subsubsection";
2918 Command =
"paragraph";
2923 Command =
"subparagraph";
2929 if (this.inAbstract)
2931 this.
Output.AppendLine(
"\\end{abstract}");
2932 this.inAbstract =
false;
2935 this.
Output.Append(
'\\');
2936 this.
Output.Append(Command);
2937 this.
Output.Append(
"*{");
2941 this.
Output.AppendLine(
"}");
2942 this.
Output.AppendLine();
2951 this.
Output.AppendLine(
"\\hrulefill");
2952 return Task.CompletedTask;
2963 this.
Output.AppendLine();
2964 this.
Output.AppendLine();
2973 this.
Output.Append(
"\\emph{");
2984 return Task.CompletedTask;
2993 this.
Output.AppendLine(
"\\begin{flushleft}");
2997 this.
Output.AppendLine(
"\\end{flushleft}");
2998 this.
Output.AppendLine();
3007 this.
Output.AppendLine(
"\\begin{justify}");
3011 this.
Output.AppendLine(
"\\end{justify}");
3012 this.
Output.AppendLine();
3032 this.
Output.Append(
"\\item[");
3034 this.
Output.Append(
"]{");
3037 this.
Output.Append(
"\\item{");
3041 this.
Output.AppendLine(
"}");
3050 this.
Output.AppendLine(
"\\begin{enumerate}");
3054 this.
Output.AppendLine(
"\\end{enumerate}");
3055 this.
Output.AppendLine();
3066 this.
Output.AppendLine();
3067 this.
Output.AppendLine();
3076 this.
Output.AppendLine(
"\\begin{flushright}");
3080 this.
Output.AppendLine(
"\\end{flushright}");
3081 this.
Output.AppendLine();
3099 this.
Output.AppendLine();
3100 this.
Output.AppendLine(
"\\newpage");
3101 this.
Output.AppendLine();
3103 return Task.CompletedTask;
3115 int NrRows, RowIndex;
3116 int NrColumns = Element.
Columns;
3120 this.
Output.AppendLine(
"\\begin{table}[!hb]");
3121 this.
Output.AppendLine(
"\\centering");
3122 this.
Output.Append(
"\\begin{tabular}{");
3123 foreach (
TextAlignment Alignment
in Element.ColumnAlignments)
3126 this.RenderAlignment(Alignment);
3129 this.
Output.AppendLine(
"|}");
3130 this.
Output.AppendLine(
"\\hline");
3132 NrRows = Element.Headers.Length;
3133 for (RowIndex = 0; RowIndex < NrRows; RowIndex++)
3135 Row = Element.Headers[RowIndex];
3136 CellAlignments = Element.HeaderCellAlignments[RowIndex];
3138 for (i = 0; i < NrColumns; i++)
3141 this.
Output.Append(
" & ");
3145 while (j < NrColumns && Row[j++] is
null)
3150 this.
Output.Append(
"\\multicolumn{");
3151 this.
Output.Append(k.ToString());
3152 this.
Output.Append(
"}{|");
3153 this.RenderAlignment(CellAlignments[i] ?? Element.ColumnAlignments[i]);
3154 this.
Output.Append(
"|}{");
3159 await E.Render(
this);
3168 this.
Output.AppendLine(
"\\\\");
3171 this.
Output.AppendLine(
"\\hline");
3173 NrRows = Element.Rows.Length;
3174 for (RowIndex = 0; RowIndex < NrRows; RowIndex++)
3176 Row = Element.Rows[RowIndex];
3177 CellAlignments = Element.RowCellAlignments[RowIndex];
3179 for (i = 0; i < NrColumns; i++)
3182 this.
Output.Append(
" & ");
3186 while (j < NrColumns && Row[j++] is
null)
3191 this.
Output.Append(
"\\multicolumn{");
3192 this.
Output.Append(k.ToString());
3193 this.
Output.Append(
"}{|");
3194 this.RenderAlignment(CellAlignments[i] ?? Element.ColumnAlignments[i]);
3195 this.
Output.Append(
"|}{");
3200 await E.Render(
this);
3206 this.
Output.AppendLine(
"\\\\");
3209 this.
Output.AppendLine(
"\\hline");
3210 this.
Output.AppendLine(
"\\end{tabular}");
3212 if (!
string.IsNullOrEmpty(Element.Id))
3214 this.
Output.Append(
"\\caption{");
3216 s =
string.IsNullOrEmpty(Element.Caption) ? Element.Id : Element.Caption;
3220 this.
Output.AppendLine(
"}");
3221 this.
Output.Append(
"\\label{");
3225 this.
Output.AppendLine(
"}");
3228 this.
Output.AppendLine(
"\\end{table}");
3229 this.
Output.AppendLine();
3257 this.
Output.Append(
"\\item");
3260 this.
Output.Append(
"[\\checked]");
3264 this.
Output.AppendLine(
"}");
3273 this.
Output.AppendLine(
"\\begin{tasklist}");
3277 this.
Output.AppendLine(
"\\end{tasklist}");
3278 this.
Output.AppendLine();
3287 this.
Output.Append(
"\\item{");
3289 this.
Output.AppendLine(
"}");
Helps with parsing of commong data types.
static string Escape(string s, char[] CharactersToEscape, string EscapeSequence)
Escapes a set of characters in a string.
const string FileExtensionPng
png
Contains settings that the LaTeX export uses to customize LaTeX output.
Renders LaTeX from a Markdown document.
override Task Render(HtmlEntity Element)
Renders Element .
override async Task Render(SubScript Element)
Renders Element .
override async Task Render(BlockQuote Element)
Renders Element .
override Task Render(EmojiReference Element)
Renders Element .
override async Task Render(InsertBlocks Element)
Renders Element .
override async Task Render(Insert Element)
Renders Element .
override async Task Render(Strong Element)
Renders Element .
override Task Render(NestedBlock Element)
Renders Element .
LatexRenderer(LaTeXSettings LatexSettings)
Renders LaTeX from a Markdown document.
override async Task Render(CenterAligned Element)
Renders Element .
override Task Render(LinkReference Element)
Renders Element .
override Task Render(InlineText Element)
Renders Element .
override Task Render(HtmlEntityUnicode Element)
Renders Element .
override async Task Render(FootnoteReference Element)
Renders Element .
override async Task Render(InlineScript Element)
Renders Element .
override async Task Render(TaskItem Element)
Renders Element .
override Task Render(LineBreak Element)
Renders Element .
override Task Render(Footnote Element)
Renders Element .
override Task Render(Sections Element)
Renders Element .
override async Task Render(RightAligned Element)
Renders Element .
override Task Render(InlineCode Element)
Renders Element .
override async Task Render(StrikeThrough Element)
Renders Element .
override Task Render(Link Element)
Renders Element .
async Task RenderObject(object Result, bool AloneInParagraph, Variables Variables)
Generates HTML from Script output.
override async Task Render(BulletList Element)
Renders Element .
override Task Render(AutomaticLinkUrl Element)
Renders Element .
override Task Render(DefinitionTerms Element)
Renders Element .
override async Task Render(Table Element)
Renders Element .
override async Task Render(Emphasize Element)
Renders Element .
override async Task Render(MarginAligned Element)
Renders Element .
override Task Render(Model.SpanElements.Multimedia Element)
Renders Element .
override async Task Render(HtmlBlock Element)
Renders Element .
override Task Render(InvisibleBreak Element)
Renders Element .
override Task Render(Abbreviation Element)
Renders Element .
override async Task Render(DefinitionList Element)
Renders Element .
override Task Render(MetaReference Element)
Renders Element .
override async Task Render(TaskList Element)
Renders Element .
override Task RenderDocumentHeader()
Renders the document header.
LatexRenderer(StringBuilder Output, LaTeXSettings LatexSettings)
Renders LaTeX from a Markdown document.
override Task Render(MultimediaReference Element)
Renders Element .
override async Task Render(UnnumberedItem Element)
Renders Element .
override Task Render(DefinitionDescriptions Element)
Renders Element .
override Task Render(AutomaticLinkMail Element)
Renders Element .
static string EscapeLaTeX(string s)
Escapes text for output in a LaTeX document.
override Task Render(InlineHTML Element)
Renders Element .
override async Task Render(LeftAligned Element)
Renders Element .
override async Task Render(Delete Element)
Renders Element .
readonly LaTeXSettings LatexSettings
LaTeX settings.
override async Task Render(NumberedList Element)
Renders Element .
override async Task Render(DeleteBlocks Element)
Renders Element .
override async Task Render(Underline Element)
Renders Element .
override Task Render(HashTag Element)
Renders Element .
override Task RenderDocumentFooter()
Renders the document header.
override async Task Render(SuperScript Element)
Renders Element .
override async Task Render(Header Element)
Renders Element .
override async Task Render(Paragraph Element)
Renders Element .
override async Task Render(NumberedItem Element)
Renders Element .
override Task Render(CommentBlock Element)
Renders Element .
override Task Render(SectionSeparator Element)
Renders Element .
override Task Render(DetailsReference Element)
Renders Element .
override Task Render(HorizontalRule Element)
Renders Element .
override async Task Render(CodeBlock Element)
Renders Element .
Class that can be used to encapsulate Markdown to be returned from a Web Service, bypassing any encod...
Contains a markdown document. This markdown document class supports original markdown,...
static async Task< object > TransformXml(XmlDocument Xml, Variables Variables)
Transforms XML to an object that is easier to visualize.
bool TryGetMetaData(string Key, out KeyValuePair< string, bool >[] Value)
Tries to get a meta-data value given its key.
MarkdownDocument Detail
Detail document of a master document.
Multimedia GetReference(string Label)
Gets the multimedia information referenced by a label.
static Task< MarkdownDocument > CreateAsync(string MarkdownText, params Type[] TransparentExceptionTypes)
Contains a markdown document. This markdown document class supports original markdown,...
Contains settings that the Markdown parser uses to customize its behavior.
Represents a block quote in a markdown document.
Represents a bullet list in a markdown document.
Represents a center-aligned set of blocks in a markdown document.
Represents a code block in a markdown document.
string IndentString
String used for indentation.
int Indent
Code block indentation.
string[] Rows
Rows in code block
Represents a definition list in a markdown document.
Represents inserted blocks in a markdown document.
Represents a block of HTML in a markdown document.
Represents inserted blocks in a markdown document.
Represents a left-aligned set of blocks in a markdown document.
Represents a margin-aligned set of blocks in a markdown document.
Represents a nested block with no special formatting rules in a markdown document.
Represents a numbered item in an ordered list.
bool NumberExplicit
If number is explicitly provided (true) or inferred (false).
int Number
Number associated with item.
Represents a numbered list in a markdown document.
Represents a paragraph in a markdown document.
Represents a right-aligned set of blocks in a markdown document.
Represents a sequence of sections.
Represents a table in a markdown document.
int Columns
Number of columns.
Represents a task item in a task list.
bool IsChecked
If the item is checked or not.
Represents a task list in a markdown document.
Represents an unnumbered item in an ordered list.
override ChunkedList< MarkdownElement > Children
Any children of the element.
bool HasOneChild
If the element has only one child.
MarkdownElement FirstChild
First child, or null if none.
Abstract base class for all markdown elements.
MarkdownDocument Document
Markdown document.
static Task< string > GetTemporaryFile(byte[] BinaryImage)
Stores an image in binary form as a temporary file. Files will be deleted when application closes.
EmojiInfo Emoji
Emoji information.
Represents an HTML entity.
Represents an HTML entity in Unicode format.
int Code
Unicode character
bool AloneInParagraph
If the element is alone in a paragraph.
Variables Variables
Variables.
async Task< object > EvaluateExpression()
Evaluates the script expression.
string Value
Unformatted text.
bool TryGetMetaData(out KeyValuePair< string, bool >[] Values)
Tries to get meta-data from the document.
MultimediaItem[] Items
Multimedia items.
bool AloneInParagraph
If the element is alone in a paragraph.
Abstract base class for Markdown renderers.
readonly StringBuilder Output
Renderer output.
Task RenderChild(MarkdownElementSingleChild Element)
Renders the child of Element .
virtual async Task RenderDocument(MarkdownDocument Document, bool Inclusion)
Renders a document.
Task RenderChildren(MarkdownElementChildren Element)
Renders the children of Element .
override string ToString()
Returns the renderer output.
MarkdownDocument Document
Reference to Markdown document being processed.
Static class managing the application event log. Applications and services log events on this static ...
static Exception UnnestException(Exception Exception)
Unnests an exception, to extract the relevant inner exception.
Node referencing a chunk in a ChunkedList<T>
ChunkNode< T > Next
Next chunk
int Pos
Index after the last element in chunk.
int Start
Index of first element in chunk.
ChunkNode< T > FirstChunk
First chunk
Class managing a script expression.
static string ToExpressionString(object Value)
Converts an object to a string, that can be parsed as part of an expression.
ToMatrix(ScriptNode Operand, bool NullCheck, int Start, int Length, Expression Expression)
To-Matrix operator.
Interface for code content LaTeX renderers.
Interface for multimedia content LaTeX renderers.
Interface for objects that can be converted into matrices.
LaTeXDocumentClass
Document class of LaTeX output.
LaTeXPaper
LaTeX output paper format
TextAlignment
Text alignment of contents.