diff options
51 files changed, 8137 insertions, 520 deletions
diff --git a/Master/texmf-dist/doc/latex/optex/README b/Master/texmf-dist/doc/latex/optex/README index 066037a0f97..8cc02a11bf1 100644 --- a/Master/texmf-dist/doc/latex/optex/README +++ b/Master/texmf-dist/doc/latex/optex/README @@ -5,3 +5,15 @@ Author: Petr Olsak, <petr@olsak.net> This software is in public domain. See http://petr.olsak.net/optex + +History: + +<0.03> optex-doc optex.1 included, + verbatim.opm re-implmented, + math-unicode implemented, + usebib.opm + bib-style.opm included + \catcodetable stack implemented + bugfixing of macros. + catcodes.opl: removed, one can use \catcodetable, ... primitives, + pdfuni-string: lua code for lua5.3 fixed. +<0.02> Released. diff --git a/Master/texmf-dist/doc/latex/optex/demo.tex b/Master/texmf-dist/doc/latex/optex/op-demo.tex index 458f44257a7..f06bd2639b8 100644 --- a/Master/texmf-dist/doc/latex/optex/demo.tex +++ b/Master/texmf-dist/doc/latex/optex/op-demo.tex @@ -5,7 +5,8 @@ \parindent=10pt % typesetting parameters \hyperlinks \Blue\Blue % active hyperlinks \activettchar` % in-text verbatim by `...` -\def\intthook{\localcolor\Red} % in-text verbatim Red +\intthook={\localcolor\Red} % in-text verbatim Red +\enquotes % use \"text" for English quotation \tit Demonstration @@ -59,12 +60,12 @@ Internal links are activated too. \sec Tables The `\table` sequence can be used -instead of ``low level'' `\halign`. +instead of \"low level" `\halign`. The following table is framed by `\frame` sequence in order to get a double frame. \label[my-tab] -\medskip +\bigskip \caption/t Testing table. \smallskip\nobreak \centerline{% @@ -96,7 +97,7 @@ This is verbatim. \endtt or it can be included by `\verbinput` from external file. -\verbinput (95-97) demo.tex +\verbinput (98-100) op-demo.tex \sec Math @@ -108,10 +109,11 @@ $$ \frak M & \bbchar R }. $$ Hundreds of AMS symbols are available: -$\sphericalangle, \Finv, \boxplus, \Cup, \Cap, \ldots$ +$\sphericalangle, \boxplus, \Cup, \Cap, \ldots$ \sec Others +The `\fontfam` command selects a desired family of fonts. The `\typosize` or `\typoscale` sequences set the size and baselineskip of used fonts (including math fonts). The `\fnote` generates a footnote\fnote{Like this} and diff --git a/Master/texmf-dist/doc/latex/optex/optex-doc.pdf b/Master/texmf-dist/doc/latex/optex/optex-doc.pdf Binary files differnew file mode 100644 index 00000000000..93a6d13eb3a --- /dev/null +++ b/Master/texmf-dist/doc/latex/optex/optex-doc.pdf diff --git a/Master/texmf-dist/doc/latex/optex/optex-doc.tex b/Master/texmf-dist/doc/latex/optex/optex-doc.tex new file mode 100644 index 00000000000..514a322dd70 --- /dev/null +++ b/Master/texmf-dist/doc/latex/optex/optex-doc.tex @@ -0,0 +1,1546 @@ + +\fontfam[LMfonts] +\typosize[11/13] +\enlang + +\localcolor +\catcode`<=13 +\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}} +\intthook={\catcode`\<=13} +\tthook=\intthook +\chardef\"="201C + +\def\new{\mnote{\Red$\blacktriangleleft$}} +\fixmnotes\right + +\activettchar` + +\hyperlinks{\Blue}{\Green} +\insertoutline{CONTENTS} \outlines{0} + + +\tit \OpTeX/\nl Format Based on Plain \TeX/ and OPmac\fnotemark1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\hfill Version Alpha 0.03 + +\centerline{\it Petr Olšák, 2020} + +\bigskip +\centerline{\url{http://petr.olsak.net/optex}} + + +\fnotetext {The OPmac package is a set of simple additional macros to plain\TeX{}. It +enables users to take advantage of basic \LaTeX/ functionality but keeps +plain \TeX/ simplicity. See +\url{http://petr.olsak.net/opmac-e.html} for more information about it. +For OPmac users: the red triangle {\Red$\blacktriangleleft$} in the right margin +means that there is a difference from standard OPmac features.} + +\notoc\nonum \sec Contents +\maketoc + +\nonum \sec Introduction +%%%%%%%%%%%% + +\OpTeX/ is \LuaTeX/ format with plain \TeX/ and OPmac. Only \LuaTeX/ engine +is supported. The main goal of \OpTeX/ is: + +\begitems +* \OpTeX/ keeps the simplicity (like in plain \TeX/ and OPmac macros). +* There is no old obscurities concerning with various 8-bit encodings and + various engines. +* \OpTeX/ provides a powerful font selection system (for Unicode font + families, of course). +* \OpTeX/ supports hyphenations of all languages installed in your \TeX/ system. +* All features from OPmac macros are copied (for example, you can see + opmac-prospectus.pdf) +* Macros are documented in the same place where code is (macros for printing + this documentation will come in the future). +* User name space of control sequences is separated from internal name space + of OpTeX and primitives (`\foo` versus `\_foo`). +\enditems + +\OpTeX/ should be a modern plain \TeX/ with power from OPmac (fonts selection +system, colors, external graphics, references, hyperlinks...) with unicode +fonts. + +\OpTeX/ (like OPmac) offers a markup language for authors of texts (like \LaTeX), +i.e. the fixed set of tags to define the structure of the document. This +markup is different from the \LaTeX{} markup. It may offer to write the +source text of the document somewhat clearer and more attractive. + +\new +{\bf Disclaimer:} This software is under construction. +It is possible that some features documented here will be changed in future. + + +\sec Using \OpTeX/ +%%%%%%%%%%%%%%%%%% + +\new +\OpTeX/ is compiled as a format for \LuaTeX/. Maybe there is a command +`optex` in your \TeX/ distribution. Then you can write into command line + +\begtt +optex document +\endtt +% +You can try to process `optex demo` or `optex optex-doc`. + +If there is no `optex` command, see more information about installation +\OpTeX/ at \url{http://petr.olsak.net/optex}. + +A minimal document should be + +\begtt +\fontfam[LMfonts] +Hello World! \bye +\endtt + +The first line `\fontfam[LMfonts]` tells that Unicode Latin Modern +fonts (derived from Computer Modern) are used. If you omit this line then +preloaded Latin Modern fonts are used but preloaded fonts cannot be in +Unicode\fnote +{This is technical limitations of \LuaTeX/ for fonts in formats: +only 8bit fonts can be preloaded.}. +So the sentence `Hello World` will be OK without the first line, but you +cannot print such sentence in another languges (like `Ahoj světe!`) +where Unicode fonts are needed +because of the characters like `ě` are not mapped correctly in preloaded +font. + +A somewhat larger example with common settings shoud be: + +\begtt +\fontfam[Termes] % selecting Unicode font family Termes +\typosize[11/13] % setting the basic font size and the baselineskip +\margins/1 a4 (1,1,1,1)in % setting 1in margins for A4 paper +\cslang % Czech hyphenation patterns + +Tady je text. +\bye +\endtt +% +You can look at `demo.tex` file for more examples. + + +\sec Compatibility with Plain \TeX/ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +All macros of plain \TeX/ are re-written in \OpTeX/. Common macros should be +work in the same sense as in original plain \TeX. Internal control sequences +\new +like `\p@` or `\f@@t` are removed and mostly replaced by control sequences +prefixed by `_` (like `\_this`). All primitives and common macros have two +control sequences in prefixed and unprefixed form with the same +meaning. For example `\hbox` is equal to `\_hbox`. +Internal macros of \OpTeX/ have and use only prefixed form. User should use +unprefixed forms, but prefixed forms are accessibe too, bacause the `_` is +set as a letter globally (in macro files and in users document too). User +should re-define unprefixed forms of control sequences with no worries that +something internal will be broken (only the sequence `\par` cannot be +re-defined without internal change of \TeX/ behavior because it is +hard-coded in \TeX/s tokenization processor). + +\new +The Latin Modern 8bit fonts instead Computer Modern 7bit fonts are +preloaded in the format, but only few ones. The full family set is ready to +use after the command `\fontfam[LMfonts]` which reads the fonts in OTF +format. + +\new +The `\tenrm`, `\tenbf` etc. selectors are not defined. There are internal +selectors `\_tenrm`, `\_tenbf` etc. instead them. Don't use them directly +until you understand the \OpTeX/ font selection system from +internal point of view. + +\new +The accents macros like `\'`, `\v` are undefined in \OpTeX/. Use real +letters like ř, ž in your soucre document instead these old accents macros. +If you really want to use them, you can initialize them by `\oldaccents` +command. + +\new +The paper size is not set as letter with 1\,in margins but as a4 with 2\,cm +marins. You can change it by `\margins/1 letter (1,1,1,1)in` (this example +sets the classical plainTeX parameters). + +\new +The origin for typographical area is not at top left 1\,in 1\,in coordinates +but at top left paper corner exactly. For example, `\hoffset` includes directly left +margin. + + +\sec Selection of font family +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +You can select the font family by `\fontfam[<Family_name>]`. +The argument <Family_Name> is case insensitive and spaces are ignored. So, +`\fontfam[LM Fonts]` is equal to `\fontfam[LMfonts]` and it is equal +to `\fontfam[lmfonts]`. Several aliases are prepared, thus +`\fontfam[Latin Modern]` can be used for loading Latin Modern family too. + +If you write `\fontfam[?]` then all font families registered in \OpTeX/ +are listed on the terminal and in the log file. + +If you write `\fontfam[catalog]` then a catalogue of all fonts registered in +\OpTeX/ and available in your \TeX/ system is printed. And the instructions +how to register your own font family is appedned in such catalogue. + +If the family is loaded then {\em font modifiers} applicable in such font family +are listed on the terminal: (`\caps`, `\cond` for example). +And there are four basic {\em varinat selectors} (`\rm`, `\bf`, `\it`, `\bi`). +The font modifiers of basic variants (`\caps`, `\cond` for example) can +be used immediately before a basic variant selector and they +can be (independently) combined: `\caps\it` or `\cond\caps\bf`. The +modifiers keeps their internal setting until group ends or until another +modifier which negates the previous feature is used. So +`\caps \rm... \it...` uses normal and italics in Caps and SmallCaps. + +\new +There is one special variant selector `\currvar` which does not change the +selected variant but reloads the font in respect of tne (maybe newly +specified) font slector(s). + +\new Most declared font families are configured with recommended Unicode +Math font. This font is automaticlally loaded unless you specify +`\noloadmath` before first `\fontfam` command. See log file for more +information about loading Text font family and UnicodeMath fonts. If you +prefer another Unicode Math font, specify it by `\loadmath{[<font_file>]}` +or `\loadmath{font_name}` before first `\loadfam` command. + +The `\em` macro acts as `\it` if the current font is `\rm`, acts as `\rm` if +the current font is `\it`, acts as `\bi` if the current font is `\bf` and +acts as `\bf` if the current font is `\bi`. The `\/` spaces are inserted +automatically. Example: + +\begtt +This is {\em important} text. % = This is {\it important\/} text. +\it This is {\em important} text. % = This is\/ {\rm important} text. +\bf This is {\em important} text. % = This is {\bi important\/} text. +\bi This is {\em important} text. % = This is\/ {\bf important} text. +\endtt + +\new +More about the \OpTeX/ font selection system is written the file +`fonts-select.opm`. You can mix more font families in your document, you can +declare your variant selectors o modifiers etc. + +\new +The `\boldify` macro can be used for titles. It sets `\it` to `\bi` and +`\rm` to `\bf`. It means that user can write `{\it something}` in the title +and the result is the same as `{\bi something}`. Math formulae are in bold +variant too. The `\boldify` macro has local validity like others font +modifiers. Example: + +\begtt +{\boldify\typosize[14/16] Title in {\it bold}\par} +\endtt + + +\sec Font sizes +%%%%%%%%%%%%%%% + +The commands for font size setting described below, for variant selectors and +modifiers desribed above have local validity. If you put them into a group, +the font features are selected locally. + +The command `\typosize[<fontsize>/<baselineskip>]` sets the font size of text and +math fonts and baselineskip. If one of these two parameters is empty, the +corresponding feature stays unchanged. Don't write the unit of these +parameters. The unit is internally set to `\ptunit` which is 1pt by default. +You can change the unit by the command `\ptunit=<something-else>`, +for instance `\ptunit=1mm` enlages all font sizes declared by `\typosize`. +Examples: + +\begtt +\typosize[10/12] % default of plainTeX +\typosize[11/12.5] % font 11pt, baseline 12.5pt +\typosize[8/] % font 8pt, baseline unchanged +\endtt + +The command +`\typoscale[<font-factor>/<baselineskip-factor>]` +sets the text and math fonts +size and baselineskip as a multiple of the current fonts size and +baselineskip. The factor is written in \"scaled"-like way, it means that 1000 +means factor one. The empty parameter is equal to the parameter 1000, +i.e. the value stays unchanged. Examples: + +\begtt +\typoscale[800/800] % fonts and baselineskip re-size to 80 % +\typoscale[\magstep2/] % fonts bigger 1,44times +\endtt + +First usage of `\typosize` or `\typoscale` macro in your document sets so +called {\em main values}, i.\ e. main font size and main baselineskip. They are internally +saved in registers `\mainfosize` and `\mainbaselineskip`. + +\new +The `\typoscale` comand does scaling in respect to current values by default. +If you want to do it in respect to main values, type `\scalemain` immediately +before `\typoscale` command. + +\begtt +\typosize[12/14.4] % first usage in document, sets main values internally +\typosize[15/18] % bigger font +\scalemain \typoscale[800/800] % reduces from main values, no from current. +\endtt + +The size of the current font can be changed by the command +`\thefontsize[<font-size>]` or can be rescaled by +`\thefontscale[<factor>]`. These macros don't change math fonts sizes nor +baselineskip. + +\new +There is `\setfontsize{<size_spec>}` command which behaves like other +font modifiers. For example `\setfontsize{at15pt}\currvar`. + +More information about resizing of fonts is documented in `fonts-resize.opm` +file. + + +\sec Parts of the document +%%%%%%%%%%%%%%%%%%%%%%%%%% + +The document can be divided into chapters, sections and subsections and titled +by `\tit` command. The parameters are separed by the end of current line (no +braces are used): + +\begtt +\tit Document title <end of line> +\chap Chapter title <end of line> +\sec Section title <end of line> +\secc Subsection title <end of line> +\endtt + +The chapters are numbered by one number, sections by two numbers +(chapter.section) and subsections by three numbers. If there are no chapters +then section have only one number and subsection two. + +The implicit design of the titles of chapter etc.\ are implemented in the +macros `\printchap`, `\printsec` and `\printsecc`. User can simply change +these macros if he/she needs another behavior. + +The first paragraph after the title of chapter, section and subsection is +not indented but you can type `\let\firstnoindent=\relax` if you need all +paragraphs indented. + +If a title is so long then it breaks to more lines. It is better to hint the +breakpoints because \TeX/ does not interpret the meaning of the title. +User can put the `\nl` (it means newline) macro to the breakpoints. + +The chapter, section or subsection isn't numbered if the `\nonum` precedes. +And the chapter, section or subsection isn't delivered to the table of +contents if `\notoc` precedes. + + +\sec Another numbered objects +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Apart from chapters, sections and subsections, there are another +automatically numbered objects: equations and captions for tables and +figures. + +If user write the `\eqmark` as the last element of the display mode then +this equation is numbered. The format is one number in brackets. This number +is reset in each section. + +If the `\eqalignno` is used, then user can put `\eqmark` to the last column +before `\cr`. For example: + +\begtt +\eqalignno{ + a^2+b^2 &= c^2 \cr + c &= \sqrt{a^2+b^2} & \eqmark \cr} +\endtt + +The next numbered object is caption which is tagged by `\caption/t` for +tables and `\caption/f` for figures. Example: + +\begtt +\hfil\table{rl}{ + age & value \crl\noalign{\smallskip} + 0--1 & unmeasured \cr + 1--6 & observable \cr + 6--12 & significant \cr + 12--20 & extremal \cr + 20--40 & normal \cr + 40--60 & various \cr + 60--$\infty$ & moderate} +\par\nobreak\medskip +\caption/t The dependency of the computer-dependency on the age. +\endtt + +This example produces: + +\bigskip +{\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}} +\hfil\table{rl}{age & value \crl\noalign{\smallskip} + 0--1 & unmeasured \cr + 1--6 & observable \cr + 6--12 & significant \cr + 12--20 & extremal \cr + 20--40 & normal \cr + 40--60 & various \cr + 60--$\infty$ & moderate} +\par\nobreak\medskip +{ \leftskip=\parindent plus1fil + \rightskip=\parindent plus-1fil + \parfillskip=0pt plus2fil \noindent +{\bf Table 2.3} The dependency of the com\-puter-dependency on the age.\par} +} +\bigskip + +The word \"Table" followed by a number is added by the macro +`\caption/t`. + +The macro `\caption/f` creates the word figure. +The caption text is centered. If it occupies more lines then the +last line is centered. + +The added word (table, figure) depends on the actual number of the +`\language` register. \OpTeX/ implements the mapping from `\language` +numbers to the languages and the mapping from languages to the generated +words. + +If you wish to make the table or figure as floating object, you need to use +plain \TeX/ macros `\midinsert`, `\topinsert` and `\endinsert`. + +Each automatically numbered object can be referenced, if the +`\label[<label>]` command precedes. The reference commands are +`\ref[<label>]` and `\pgref[<label>]`. Example: + +\begtt +\label[beatle] \sec About Beatles + +\label[comp-dependence] +\hfil\table{rl}{...} % the table +\caption/t The dependency of the computer-dependency on the age. + +\label[pythagoras] +$$ a^2 + b^2 = c^2 \eqmark $$ + +Now we can point to the section~\ref[beatle] on the page~\pgref[beatle] +or write about the equation~\ref[pythagoras]. Finally there +is an interesting Table~\ref[comp-dependence]. +\endtt + +If there are forward referenced objects then user have to run \TeX{} twice. +During each pass, the working `*.ref` file (with refereces data) is created +and this file is used (if it exists) at the begin of the document. + +You can create a reference to whatever else by commands +`\label[<label>]\wlabel{<text>}`. The connection between <label> and +<text> is established. The `\ref[<label>]` will print <text>. + + +\sec Lists +%%%%%%%%%% + +The list of items is surrounded by `\begitems` and `\enditems` commands. +The asterisk (`*`) is active within this environment and it starts one item. +The item style can be chosen by `\style` parameter written after `\begitems`: + +\begtt +\style o % small bullet +\style O % big bullet (default) +\style - % hyphen char +\style n % numbered items 1., 2., 3., ... +\style N % numbered items 1), 2), 3), ... +\style i % numbered items (i), (ii), (iii), ... +\style I % numbered items I, II, III, IV, ... +\style a % items of type a), b), c), ... +\style A % items of type A), B), C), ... +\style x % small rectangle +\style X % big rectangle +\endtt + +Another style can be defined by the command `\sdef{_item:<style>}{<text>}`. +Default item can be redefined by `\def\normalitem{<text>}`. +The list environments can be nested. Each new level of item is indented by +next multiple of `\iindent` which is set to `\parindent` by default. +The vertical space at begin and end of the environment is inserted by the +macro `\iiskip`. + + +\sec Table of contents +%%%%%%%%%%%%%%%%%%%%%% + +The `\maketoc` command prints the table of contents of all `\chap`, `\sec` +and `\secc` used in the document. These data are read from external `*.ref` file, so +you have to run \TeX/ more than once (typically three times if the table of +contents is at the beginning of the document). + +The name of the section with table of contents is not printed. The direct usage +of `\chap` or `\sec` isn't recommended here because the table of contents +is typically not referenced to itself. You can print the unnumbered and unreferenced +title of the section by the code: + +\begtt +\nonum\notoc\sec Table of Contents +\endtt + + +\sec Making the index +%%%%%%%%%%%%%%%%%%%%% + +The index can be included into document by `\makeindex` macro. No external +program is needed, the alphabetical sorting are done inside \TeX/ at macro +level. + +The `\ii` command (insert to index) declares the word separated by the space +as the index item. This declaration is represented as invisible atom on the +page connected to the next visible word. The page number of the page where +this atom occurs is listed in the index entry. So you can type: + +\begtt +The \ii resistor resistor is a passive electrical component ... +\endtt + +You cannot double the word if you use the `\iid` instead `\ii`: + +\begtt +The \iid resistor is a passive electrical component ... +or: +Now we'll deal with the \iid resistor . +\endtt + +Note that the dot or comma have to be separated by space when `\iid` is +used. This space (before dot or comma) is removed by the macro in +the current text. + +The multiple-words entries are commonly organized in the index by the format +(for example): + +\medskip + +linear~dependency 11, 40--50 + +--- independency 12, 42--53 + +--- space 57, 76 + +--- subspace 58 + +\medskip + +To do this you have to declare the parts of the words by the `/` separator. +Example: + +\begtt +{\bf Definition.} +\ii linear/space,vector/space +{\em Linear space} (or {\em vector space}) is a nonempty set of... +\endtt + +The number of the parts of one index entry is unlimited. Note, that you can +spare your typing by the comma in the `\ii` parameter. The previous example +is equivalent to `\ii linear/space` `\ii vector/space`. + +Maybe you need to propagate to the index the similar entry to the +linear/space in the form space/linear. You can do this by the shorthand `,@` +at the end of the `\ii` parameter. Example: + +\begtt +\ii linear/space,vector/space,@ +is equivalent to: +\ii linear/space,vector/space \ii space/linear,space/vector +\endtt + +If you really need to insert the space into the index entry, write `~`. + +The `\makeindex` creates the list of alphabetically sorted index entries +without the title of the section and without creating more columns. \OpTeX/ +provides another macros for more columns: + +\begtt +\begmulti <number of columns> +<text> +\endmulti +\endtt + +The columns will be balanced. The Index can be printed by the following +code: + +\begtt +\sec Index\par +\begmulti 3 \makeindex \endmulti +\endtt + +Only {\em pure words} can be propagated to the index by the `\ii` command. It +means that there cannot be any macro, \TeX/ primitive, math selector etc. +But there is another possibility to create such complex index entry. Use +``pure equivalent'' in the `\ii` parameter and map this equivalent to the +real word which is printed in the index by `\iis` command. Example: + +\begtt +The \ii chiquadrat $\chi$-quadrat method is +... +If the \ii relax `\relax` command is used then \TeX/ is relaxing. +... +\iis chiquadrat {$\chi$-quadrat} +\iis relax {{\tt \char`\\relax}} +... +\endtt + +The `\iis <equivalent> {<text>}` creates one entry in the {\em dictionary +of the exceptions}. The sorting is done by the <equivalent> but the +<text> is printed in the index entry list. + +The special sorting by the Czech or Slovak standard of alphabetical sorting +can be activated by `\cssort`. Another languages should be implemented in +future. + + +\sec Colors +%%%%%%%%%%% + +\OpTeX/ provides a small number of color selectors: +{\localcolor\Blue `\Blue`}, +{\localcolor\Red `\Red`}, +{\localcolor\Brown `\Brown`}, +{\localcolor\Green `\Green`}, +{\localcolor\Yellow `\Yellow`}, +{\localcolor\Cyan `\Cyan`}, +{\localcolor\Magenta `\Magenta`}, +{`\White`}, +{\localcolor\Grey `\Grey`}, +{\localcolor\LightGrey `\LightGrey`} and +`\Black`. User can define more +such selectors by setting the CMYK components. For example + +\begtt +\def\Orange{\setcmykcolor{0 0.5 1 0}} +\endtt + +The current color in CMYK format is saved in the `\currentcolor` macro, thus you +can save it to your macro by `\let\yourmacro=\currentcolor` and you can return to +this color by the command `\setcmykcolor\yourmacro`. + +The color selectors work globally by default. It means that colors don't +respect the \TeX/ groups and you have to return back to the black +typesetting explicitly by the `\Black` selector. + +\OpTeX/ provides the macro `\localcolor`. If it is used then the +colors return back to the original value after \TeX/ groups automatically. +The macro has local validity. You can use it at begin of your document +(for all \TeX/ groups) or only in selected \TeX/ group (for this group +and nested goups). Example: + +\begtt +\Red The text is red +{\localcolor \Blue here is blue {\Green and green} + restored blue \Brown and brown} +now the text is red. +\endtt + +\def\coloron#1#2#3{% + \setbox0=\hbox{#3}\leavevmode + {\localcolor\rlap{#1\strut \vrule width\wd0}#2\box0}% +} +The more usable example follows. It defines a macro which creates the +\coloron\Yellow\Brown{colored text on the} +\coloron\Yellow\Brown{colored background}. Usage: +`\coloron<background><foreground>{<text>}` + +The `\coloron` can be defined as follows: + +\begtt +\def\coloron#1#2#3{% + \setbox0=\hbox{#3}\leavevmode + {\localcolor\rlap{#1\strut \vrule width\wd0}#2\box0}% +} +\coloron\Yellow\Brown{The brown text on the yellow backround} +\endtt + +{\bf The watermark} is grey text on the backrounf of the page. \OpTeX/ offers +an example: the macro `\draft` which creates grey scaled and rotated text +DRAFT on the background of every page. + + +\sec Hyperlinks, outlines +%%%%%%%%%%%%%%%%%%%%%%%%% + +If the command `\hyperlinks{<color-in>}{<color-out>}` is used at the beginning of +the file, then the following objects are hyperlinked when PDF output is used: + +\begitems +* numbers generated by `\ref` or `\pgref`, +* numbers of chapters, sections and subsections in the table of contents, +* numbers or marks generated by `\cite` command (bibliography references), +* texts printed by `\url` command. +\enditems + +The last object is an external link and it is colored by +`<color-out>`. Others links are internal and they are colored by +`<color-in>`. Example: + +\begtt +\hyperlinks \Blue \Green % internal links blue, URLs green. +\endtt + +You can use another marking of active links: by frames which are visible in +the PDF viewer but invisible when the document is printed. The way to do it +is to define the macros `\pgborder`, `\tocborder`, `\citeborder`, +`\refborder` and `\urlborder` as the triple of RGB components of the used +color. Example: + +\begtt +\def\tocborder {1 0 0} % links in table of contents: red frame +\def\pgborder {0 1 0} % links to pages: green frame +\def\citeborder {0 0 1} % links to references: blue frame +\endtt + +By default these macros are not defined. It means that no frames are created. + +There are {\em low level} commands to create the links. You can specify the +destination of the internal link by `\dest[<type>:<label>]`. The +active text linked to the `\dest` can be created by +`\link[<type>:<label>]{<color>}{<text>}`. The `<type>` parameter is one of +the `toc`, `pg`, `cite`, `ref` or another special for your purpose. + +The `\url` macro prints its parameter in `\tt` font and creates a potential +breakpoints in it (after slash or dot, for example). If `\hyperlinks` +declaration is used then the parameter of `\url` is treated as an external URL link. +An example: `\url{http://www.olsak.net}` creates \url{http://www.olsak.net}. +The charecters \code{\%}, `\`, `#`, `{` and `}` have to be protected by +backslash in the `\url` argument, the other special charecters `~`, +`^`, `&` can be written as single character\fnote +{More exactly, there is the same rules as for \code{\\code} command, see +section~\ref[verbatim].}. +You can insert the `\|` command +in the `\url` argument as a potential breakpoint. + +If the linked text have to be different than the URL, you can use +`\ulink[<url>]{text}` macro. For example: + +\begtt +\ulink[http://petr.olsak.net/optex]{\OpTeX/ page} +\endtt +creates +\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}. + +The PDF format provides {\em outlines} which are notes placed in the special frame of +the PDF viewer. These notes can be managed as structured and hyperlinked +table of contents of the document. The command `\outlines{<level>}` creates +such outlines from data used for table of contents in the document. The +<level> parameter gives the level of opened sub-outlines +in the default view. The deeper levels can be open by mouse click on the +triangle symbol after that. + +The command `\insertoutline{<text>}` inserts next entry into PDF outlines at +the main level~0. This entry can be placed before table of contents (created +by `\outlines`) or after it. + + +\label[verbatim]\sec Verbatim +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The display verbatim text have to be surrounded by the `\begtt` and +`\endtt` couple. +The in-line verbatim have to be tagged (before and after) +by a character which is declared by +`\activettchar<char>`. For example \code{\\activettchar`} +declares the character \code{`} +for in-line verbatim markup. +And you can use \code{`\\relax`} for +verbatim `\relax` (for example). +\new +Another alternative of printing in-line +verbatim text is `\code{<text>}` (see below). + +If the numerical register `\ttline` is set to the non-negative value then +display verbatim will number the lines. The first line has the number +`\ttline+1` and when the verbatim ends then the `\ttline` value is equal to the +number of last line printed. Next `\begtt...\endtt` environment will follow +the line numbering. \OpTeX/ sets `\ttline=-1` by default. + +The indentation of each line in display verbatim is controlled by +`\ttindent` register. This register is set to the `\parindent` by default. +User can change values of the `\parindent` and `\ttindent` independently. + +The `\begtt` command starts internal group in which the catcodes are changed. +\new +Then the `\tthook` string reister is run. It is empty by default and user can +control fine behavior by it. For example the cactodes can be reset here. If +you need to define active character in the `\tthook`, use `\adef` as in the +following example: + +\begtt \adef@{\string\endtt} +\tthook={\adef!{?}\adef?{!}} +\begtt +Each occurrence of the exclamation mark will be changed to +the question mark and vice versa. Really? You can try it! +@ +\endtt + +The `\adef` command sets its parameter as active {\it after\/} +the body of `\tthook` is read. So you can't worry about active +categories. + +The `\tthook` is applied to all `\begtt...\endtt` environments (if it is not +decared in a group). There are tips for such global `\tthook` definitions here: + +\begtt +\tthook={\typosize[9/11]} % setting font size for verbatim +\tthook={\ttline=0} % each listing will be numbered from one +\tthook={\adef{ }{\char9251 }} % visualisation of spaces (unicode fonts) +\endtt + +\new +If you want to apply a `\tthook` material only for one `\begtt...\endtt` +environment then don't set any `\tthook` but put desired material at the +same line where `\begtt` is. For example: + +\begtt \adef@{\string\endtt} +\begtt \adef!{?}\adef?{!} +Each occurrence of ? will be changed to ! and vice versa. +@ +\endtt + +The in-line verbatim surrounded by an `\activettchar` doesn't work in +parameter of macros and macro definitions, especially in titles declared by +`\chap`, `\sec` etc. +\new +You ca use more robust command `\code{<text>}` in such +situations, but you must escape following charaters in the <text>: +`\`, `#`, `%`, braces (if the braces are unmatched in the <text>), +and space or `^` (if there are more than one subsequent spaces or `^` in +the <text>). Examples: + +\begtt +\code{\\text, \%\#} ... prints \text, %# +\code{@{..}*&^$ $} ... prints @{..}*&^$ $ without escaping, but you can + escape these characters too, if you want. +\code{a \ b} ... two spaces between a b, the second one must be escaped +\code{xy\{z} ... xy{z ... unbalanced brace must be escaped +\code{^\^M} ... prints ^^M, the second ^ must be escaped +\endtt + +There is an alternative to `\tthook` named `\intthook` which is used for +in-line verbatim surrounded by an `\activettchar` or processed by the `\code` +command. + +You can print verbatim listing from external files by `\verbinput` command. +Examples: + +\begtt +\verbinput (12-42) program.c % listing from program.c, only lines 12-42 +\verbinput (-60) program.c % print from begin to the line 60 +\verbinput (61-) program.c % from line 61 to the end +\verbinput (-) program.c % whole file is printed +\verbinput (70+10) program.c % from line 70, only 10 lines printed +\verbinput (+10) program.c % from the last line read, print 10 lines +\vebrinput (-5+7) program.c % from the last line read, skip 5, print 7 +\verbinput (+) program.c % from the last line read to the end +\endtt + + +The `\ttline` influences the line numbering by the same way as in +`\begtt...\endtt` environment. If `\ttline=-1` then real line numbers are +printed (this is default). If \code{\\ttline<-1} then no line +numbers are printed. + +The `\verbinput` can be controlled by `\tthook`, `\ttindent` just like +in `\begtt...\endtt`. + + +\sec Tables +%%%%%%%%%%% + +The macro `\table{<declaration>}{<data>}` provides similar <declaration> +as in \LaTeX: you can use letters `l`, `r`, `c`, each letter declares +one column (aligned to left, right, center respectively). +These letters can be combined by the `|` character (vertical line). Example + +\begtt +\table{||lc|r||}{ \crl + Month & commodity & price \crli \tskip.2em + January & notebook & \$ 700 \cr + February & skateboard & \$ 100 \cr + July & yacht & k\$ 170 \crl} +\endtt +% +generates the following result: + +\bigskip +\hfil\table{||lc|r||}{ \crl + Month & commodity & price \crli + \tskip.2em + January & notebook & \$ 700 \cr + February & skateboard & \$ 100 \cr + July & yacht & k\$ 170 \crl} +\bigskip + +Apart from `l`, `r`, `c` declarators, you can use the `p{<size>}` declarator +which declares the column of given width. More preciselly, a long text in +the table cell is printed as an paragraph with given width. +To avoid the problems with narrow left-right aligned paragraphs you can write +`p{<size>\raggedright}`, then the paragraph will be only left aligned. + +You can use `(<text>)` in the <declaration>. Then this text is applied in +each line of table. For example `r(\kern10pt)l` adds more 10\,pt space +between `r` and `l` rows. + +An arbitrary part of the <declaration> can be repeated by a <number> +prefixed. For example `3c` means `ccc` or `c 3{|c}` means +`c|c|c|c`. Note that spaces in the <declaration> are ignored and you +can use them in order to more legibility. + +The command `\cr` used in the <data> part of the table (the end row +separator) is generally known. +Moreover \OpTeX/ defines following similar commands: + +\begitems +* `\crl` \dots\ the end of the row with a horizontal line after it. +* `\crli` \dots\ like `\crl` but the horizontal line doesn't intersect the + vertical double lines. +* `\crlli` \dots\ like `\crli` but horizontal line is doubled. +* `\crlp{<list>}` \dots\ like `\crli` but the lines are drawn only in the + columns mentioned in comma separated `<list>` of their numbers. + The <list> can include `<from>-<to>` declarators, for example + `\crlp{1-3,5}` is equal to `\crlp{1,2,3,5}`. +\enditems + +The `\tskip<dimen>` command works like the `\noalign{\vskip<dimen>}` +after `\cr*` commands but it doesn't interrupt the vertical lines. + +The configuration macros for `\table` are defined in the following listing +with their default values: + +\begtt +\def\tabiteml{\enspace} % left material in each column +\def\tabitemr{\enspace} % right material in each column +\def\tabstrut{\strut} % strut inserted in each line +\def\vvkern{1pt} % space between double vertical line +\def\hhkern{1pt} % space between double horizontal line +\endtt + +If you do `\def\tabiteml{$\enspace}\def\tabitemr{\enspace$}` then +the `\table` acts like \LaTeX's array environment. + +If there is an item which spans to more than one column in the table then +`\multispan{<number>}` macro from plain \TeX{} can help you or, you can use +`\mspan<number>[<declaration>]{<text>}` +which spans <number> columns and formats the <text> by the +<declaration>. The <declaration> must include a declaration of right one column +with the same syntax as comon `\table` <declaration>. +If your table includes vertical rules and you want to +create continuous vertical rules by `\mspan`, then use rules +only after `c`, `l` or `r` letter in `\mspan` <declaration>. The +exception is only in the case when `\mspan` includes first +column and the table have rules on the left side. The example of `\mspan` usage is below. + +The `\frame{<text>}` makes a frame around <text>. You can put the whole `\table` +into `\frame` if you need double-ruled border of the table. Example: + +\begtt +\frame{\table{|c||l||r|}{ \crl + \mspan3[|c|]{\bf Title} \crl \noalign{\kern\hhkern}\crli + first & second & third \crlli + seven & eight & nine \crli}} +\endtt +% +creates the following result: + +%\bigskip +\hfil\frame{\table{|c||l||r|}{\crl + \mspan3[|c|]{\bf Title} \crl \noalign{\kern\hhkern}\crli + first & second & third \crlli + seven & eight & nine \crli}} +\bigskip + +The `c`, `l`, `r` and `p` are default <declaration> letters but you can define +more such letters by `\def\tabdeclare<letter>{<left>##<right>}`. More about +it is in technical documentation in the file `table.opm`. + +The rule width of tables (and implicit width of all `\vrule`s and `\hrule`s) +can be set by the command `\rulewidth=<dimen>`. The default value given +by \TeX/ is 0.4\,pt. + +Many tips about tables can be seen on +\url{http://petr.olsak.net/opmac-tricks-e.html}. + + +\sec Images +%%%%%%%%%%% + +The `\inspic <filename>.<extension><space>` inserts the picture stored in +the graphics file with the name `<filename>.<extension>`. +You can set the picture width by `\picw=<dimen>` +before `\inspic` command which declares the width of the picture +The image files can be in the PNG, JPG, JBIG2 or PDF format. + +The `\picwidth` is an equivalent the register to `\picw`. Moreover there is an +`\picheight` register which denotes the height of the picture. If both +registers are set then the picture will be (probably) deformed. + +The image files are searched in `\picdir`. This macro is empty by default, this +means that the image files are searched in the current directory. + + + +\sec PDF transformations +%%%%%%%%%%%%%%%%%%%%%%%% + +All typesetting elements are transformed in pdf\TeX{} by linear +transformation given by the current transformation matrix. The +`\pdfsetmatrix {<a> <b> <c> <d>}` command makes the internal multiplication +with the current matrix so linear transformations can be composed. The +stack-oriented commands `\pdfsave` and `\pdfrestore` gives a possibility of +storing and restoring the current transformation matrix and current point. +The possition of current point have to be the same from \TeX{}'s point of +view as from transformation point of view when `\pdfrestore` is processed. +Due to this fact the `\pdfsave\rlap{<transformed text>}\pdfrestore` +or something similar is recomeded. + +\OpTeX/ provides the macros + +\begtt +\pdfscale{<horizontal-factor>}{<vertical-factor>} +\pdfrotate{<angle-in-degrees>} +\endtt + +These macros simply calls the +properly `\pdfsetmatrix` primitive command. + +It is known that the comosition of transformations is not commutative. It +means that the order is important. You have to read the tranformation +matrices from right to left. Example: + +\begtt +First: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore + % text1 is scaled two times and it is reflected about vertical axis + % and next it is rotated by 30 degrees left. +second: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore + % text2 is rotated by 30 degrees left then it is scaled two times + % and reflected about vertical axis. +third: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}% + \pdfrestore % first slanted, then rotated by 15.3 degrees right +\endtt +% +\par\nobreak\bigskip\smallskip +This gives the following result. +First: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore +second: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore +third: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}\pdfrestore +\bigskip\bigskip + + +\sec Footnotes and marginal notes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The plain \TeX/'s macro `\footnote` can be used as usual. But a new macro +`\fnote{<text>}` is defined. The footnote mark is added automatically and it +is numbered on each page from one\fnote +{This behavior is changed if \code{\\runningfnotes} is used: +the footnotes are numbered from one in whole document in such case. +Alternatives are possible, see OPmac tricks.}. +The <text> is scaled by +`\typoscale[800]`. The implicit visual aspect of the footnote mark is defined by +`\def\thefnote{$^{\locfnum}$}`. +%\fnote{% +% Note the right parenthesis in the mark. This isn't bug, this is used in Czech +% traditional typography. If you need to remove it, you can define +% {\def\s{\string}\tt\s\def\s\thefnote\s{\$\s^\s{\s\locfnum\s}\$\s}}. +% }. +User can redefine it, for example: + +\begtt +\def\thefnote{\ifcase\locfnum\or *\or**\or***\or$^{\dag}$\or + $^{\ddag}$\or$^{\dag\dag}$\fi} +\endtt + +The `\fnote` macro is fully applicable only in \"normal outer" paragraph. +It doesn't work inside boxes (tables for example). If you are solving such +case you can use `\fnotemark<number>` inside the box (only the footnote mark is +generated). When the box is finished you can use `\fnotetext{<text>}`. This +macro puts the <text> to the footnote. The <number> after `\fnotemark` +have to be "1" if only one such command is in the box. Second `\fnotemark` +inside the same box have to have the parameter `2` etc. +The same number of `\fnotetext`s have to be written +after the box as the number of `\fnotemark`s inserted inside the box. + +The marginal note can be printed by the `\mnote{<text>}` macro. The <text> +is placed to the right margin on the odd pages and it is placed to the left +margin on the even pages. This is done after second \TeX{} run because the +relevant information is stored in an external file. If you need to place the +notes only to the fixed margin write `\fixmnotes\right` or +`\fixmnotes\left`. + +The <text> is formatted as a little paragraph with the maximal width +`\mnotesize` ragged left on the left margins or ragged right on the right +margins. The first line of this little paragraph is at the same height as +the invisible mark created by `\mnote` in the current paragraph. The +exceptions are possible by `\mnoteskip` register. You can implement such +exceptions to each `\mnote` manually in final printing in order to margin +notes do not overlap. The positive value of `\mnoteskip` shifts the note up +and negative value shifts it down. For example +`\mnoteskip=2\baselineskip \mnote{<text>}` shifts this (and only this) note +two lines up. + + +\sec Bib\TeX/ing +%%%%%%%%%%%%%%%% + +The command `\cite[<label>]` or its variants of the type +\hbox{`\cite[<label-1>,<label-2>,<label-3>]`} +create the citations in the form [42] or [15,~19,~26]. +If `\shortcitations` is declared at the beginning of the document then +continuous sequences of numbers are re-printed like this: +\hbox{[3--5,~7,~9--11]}. If +`\sortcitations` is declared then numbers generated by one `\cite` command +are sorted upward. + +If `\nonumcitations` is used then the marks instead numbers are generated +depending on the used bib\TeX{} style. For example the citations look like +[Now08] or [Nowak, 2008], it depends on <style> used (see below). + +The `\rcite[<labels>]` creates the same list as `\cite[<labels>]` but without +the outer brackets. Example: `[\rcite[tbn], pg.~13]` creates [4,~pg.13]. + +The `\ecite[<label>]{<text>}` prints the `<text>` only, but the entry labeled +<label> is decided as to be cited. If `\hyperlinks` is used then <text> +is linked to the references list. + +You can define alternative formating of `\cite` command. Example: + +\begtt +\def\cite[#1]{(\rcite[#1])} % \cite[<label>] creates (27) +\def\cite[#1]{$^{\rcite[#1]}$} % \cite[<label>] creates^{27} +\endtt + +The numbers printed by `\cite` correspond to the same numbers generated in +the list of references. +There are two possibilities to generate this +references list: + +\begitems +* Manually using `\bib[<label>]` commands. +* By `\usebib/<type> (<style>) <bbl-base>` command which reads `*.bib` + databases directly. +\enditems + +\new +Note that another two possibilities documented in OPmac (using external +Bib\TeX/ program) isn't supported because Bib\TeX/ is old program which does not +supports Unicode. And Biber seems to be not compliant with Plain \TeX. + +\medskip\noindent +{\bf References created manually using `\bib[<label>]` command.} + +\begtt +\bib [tbn] P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 1997. +\bib [tst] P. Olšák. {\it Typografický systém \TeX.} + 269~s. Praha: CSTUG, 1995. +\endtt + +If you are using `\nonumcitations` then you need to declare the <marks> +used by `\cite` command. To do it you must use long form of the `\bib` +command in the format `\bib[<label>] = {<mark>}`. The spaces around +equal sign are mandatory. Example: + +\begtt +\bib [tbn] = {Olšák, 2001} + P. Olšák. {\it\TeX{}book naruby.} 468~s. Brno: Konvoj, 2001. +\endtt + +\noindent +{\bf Direct reading of `.bib` files} is possible by `\usebib` macro. +This macro reads macro package `opmac-bib.tex` (on demand) which uses the external +package `librarian.tex` by Paul Isambert. The usage is: + +\begtt +\usebib/c (<style>) <bib-base> % sorted by \cite-order (c=cite), +\usebib/s (<style>) <bib-base> % sorted by style (s=style). +% example: +\usebib/s (simple) op-example +\endtt + +The <bib-base> is one or more `*.bib` database source files (separated by +spaces and without extension) and the <style> is the part of the filename +`bib-<style>.opm` where the formatting of the references list is +defined. Possible styles are `simple` or `iso690`. The behavior of +`opmac-bib.tex` and `opmac-bib-iso690.tex` is full documented in these files +(after `\endinput` command). + +The command `\usebib` select from database files only such bib-records which +were used in `\cite` or `\nocite` commands in your document. It means, not +all records are printed. The `\nocite` behaves as `\cite` but prints +nothing. It only tels that mentioned bib-record should be printed in +the reference list. If `\notcite[*]` is used then all records from <bib-base> +are printed. + +\medskip\noindent +{\bf Formatting of the references list} is controlled by the `\printb` macro. +It is called at the begin of each entry. The default `\printb` macro prints +the number of the entry in square brackets. If the `\nonumcitations` is set +then no numbers are printed, only all lines (but no first one) are indented. +The `\printb` macro can use the following values: `\the\bibnum` (the number +of the entry) and `\the\bibmark` (the mark of the entry used when +`\nonumcitations` is set). Examples: + +\begtt +% The numbers are without square brackets: +\def\printbib{\hangindent=\parindent \indent \llap{\the\bibnum. }} +% Printing of <marks> when \nonumcitations is set: +\def\printbib{\hangindent=\parindent \noindent [\the\bibmark]\quad} +\endtt + +Another examples can be found on the +\ulink[http://petr.olsak.net/opmac-tricks-e.html]{OPmac tricks WWW page}. + + +\sec Typesetting math +%%%%%%%%%%%%%%%%%%%%% + +\OpTeX/ preloads a collection of 7bit Computer modern and AMS fonts. +You can use them in any size and in the `\boldmath` variant. + +Hundreds math symbols and operators like in AMS\TeX/ are accesible. +For example `\alpha` $\alpha$, `\geq` $\geq$, `\sum` $\sum$, +`\sphericalangle` $\sphericalangle$, `\bumpeq`, $\bumpeq$. See AMS\TeX/ +manual for complete list of symbols. + +The following math alphabets are available: + +\begtt \catcode`\$=3 \catcode`/=0 \medmuskip=0mu \adef{ }{ } +\mit % mathematical variables $abc-xyz,ABC-XYZ$ +\it % text italics $/it abc-xyz,ABC-XYZ$ +\rm % text roman $/rm abc-xyz,ABC-XYZ$ +\cal % normal calligraphics $/cal ABC-XYZ$ +\script % script $/script ABC-XYZ$ +\frak % fracture $/frak abc-xyz,ABC-XYZ$ +\bbchar % double stroked letters $/bbchar ABC-XYZ$ +\bf % sans serif bold $/bf abc-xyz,ABC-XYZ$ +\bi % sans serif bold slanted $/bi abc-xyz,ABC-XYZ$ +\endtt + +The last two selectors `\bf` and `\bi` select the sans serif fonts regardless +current text font family. + +You can use `\noloadmath` before first `\fontfam` command in your document. +Then `\fontfam` loads only text fonts. On the other case, by default, first +`\fontfam` command loads Unicode-math fonts related to given text font +family and Computer Modern nor AMS fonts are not used in math formulae. +(note, that in version Feb 2020, the Unicode math fonts are in TODO list, +`\fontfam` commands loads only text fonts now). + +The math fonts can be scaled by `\typosize` and `\typoscale` macros. +Two math fonts collections are prepared: `\normalmath` for normal weight +and `\boldmath` for bold. The first one is set by default. + + +\sec Setting the margins +%%%%%%%%%%%%%%%%%%%%%%%% + +\OpTeX/ declares paper formats a4, a4l (landscape~a4), a5, a5l, b5, letter and +user can declare another own format by `\sdef`: + +\begtt +\sdef{pgs:b5l}{(250,176)mm} +\sdef{pgs:letterl}{(11,8.5)in} +\endtt + +The `\margins` command declares margins of the document. This command have +the following parameters: + +\begtt +\margins/<pg> <fmt> (<left>,<right>,<top>,<bot>)<unit> + example: +\margins/1 a4 (2.5,2.5,2,2)cm +\endtt + +Parameters are: + +\begitems +* <pg> \dots\ `1` or `2` specifies one-page or two-pages design. +* <fmt> \dots\ paper format (a4, a4l, a5, letter, etc. or user defined). +* <left>, <right>, <top>, <bot> \dots\ gives the amount of left, right, + top and bottom margins. +* <unit> \dots\ unit used for values <left>, <right>, <top>, <bot>. +\enditems + +Each of the parameters <left>, <right>, <top>, <bot> can be empty. +If both <left> and <right> are nonempty then `\hsize` is set. Else `\hsize` +is unchanged. If both <left> and <right> are empty then typesetting area is +centered in the paper format. The analogical rule works when <top> or <bot> +parameter is empty (`\vsize` instead `\hsize` is used). Examples: + +\begtt +\margins/1 a4 (,,,)mm % \hsize, \vsize untouched, + % typesetting area centered +\margins/1 a4 (,2,,)cm % right margin set to 2cm + % \hsize, \vsize untouched, vertically centered +\endtt + +If `<pg>=1` then all pages have the same margins. If `<pg>=2` then the +declared margins are true for odd pages. The margins at the even pages are +mirrored in such case, it means that <left> is replaced by <right> and vice +versa. + +The `<fmt>` can be in the form `(<width>,<height>)<unit>` where `<unit>` is +optional. If it is missing then `<unit>` after margins specification is +used. For example: + +\begtt +\margins/1 (100,200) (7,7,7,7)mm +\endtt +% +declares the paper 100$\times$200\,mm with all four margins 7\,mm. The spaces +before and after <fmt> parameter are necessery. + +The command `\magscale[<factor>]` scales the whole typesetting area. +\new The fixed point of such scaling is the upper left corner of the paper sheet. +Typesetting (breakpoints etc.) is unchanged. All units are relative after +such scaling. Only paper formats dimensions stays unscaled. Example: + +\begtt +\margins/2 a5 (22,17,19,21)mm +\magscale[1414] \margins/1 a4 (,,,)mm +\endtt +% +The first line sets the `\hsize` and `\vsize` and margins for final +printing at a5 format. The setting on the second line centers the scaled +typesetting area to the true a4 paper while breaking points for paragraphs +and pages are unchanged. It may be usable for +review printing. After review is done, the second line can be commented out. + + +\sec The last page +%%%%%%%%%%%%%%%%%% + +The number of the last page (it may be different from number of pages) is +stored in the `\lastpage` register after first \TeX/ run if the working `*.ref` +file is open. This file isn't open for every documents; only for those +where the forward references are printed or table of contents is created. +If the `*.ref` file isn't open for your document and you need to use the +`\lastpage` register then you have to write the command `\openref`. This command opens +the `*.ref` file immediatelly. + +There is an example for footlines in the format \"current page / last page": + +\begtt +\footline={\hss \rm \thefontsize[10]\the\pageno/\the\lastpage \hss} +\endtt + + +\sec Using more languages +%%%%%%%%%%%%%%%%%%%%%%%%% + +\OpTeX/ prepares hyphenation patterns for all languafes if such patterns are +available in your \TeX/ system. +\new +Only USenglish patterns (original from Plain \TeX/) are preloaded. +Hyphenation patterns of all aother languages are loaded on demand when you first use +the `\<iso-code>lang` command in your document. +For example `\delang` for German, `\cslang` for +Czech, `\pllang` for Polish. The <iso-code> is a shortcut +of the language (mostly from ISO 639-1). +You can list all available languages by `\langlist` +macro. This macro prints now: + +\medskip +{\typosize[9/11.5]\emergencystretch=4em \hbadness=2000 +\noindent \langlist +\par} +\medskip + +\new +For compatibility with e-plain macros, there is the command +`\uselanguege{<language>}`. The parameter <language> is long form of +language name, i.e.\ `\uselanguage{Czech}` does the same work as `\cslang`. +The `\uselanguage` parameter is case insensitive. + +For compatibility with \csplain/ these are macros `\ehyph`, `\chyph`, +`\shyph` which are equivalent to `\enlang`, `\cslang` and `\sklang`. + +You can switch between language patterns by `\<iso-code>lang` commands mentioned +above. + +\OpTeX/ needs to know three words for catpions and titles in technical +articles: \"Chapter", \"Table" and \"Figure". THese words needs to be know +in used language. \OpTeX/ declares these words only for few languages: +Czech, Slovak, English. If you need to use these words in another languages, +you can declare them by `\sdef` command +\new +with `_mt:chap:` `_mt:t:` and `_mt:f` +followed by the <iso-code> of your language. Example is for Spanish + + +\begtt +\input lmfonts % Unicode fonts + +\sdef{_mt:chap:es}{Capítulo} % Chapter in es +\sdef{_mt:t:es}{Cuadro} % Table in es +\sdef{_mt:f:es}{Figura} % Figure in es + +\eslang % Spanish hyphenation + activation of declated "es" words + +\sec Mañana + +Mañana. + +\caption/f Test % generates the text "Figura 1.1 Test" + +\bye +\endtt + +The declaration of the Spanish words \"Capítulo", \"Cuadro" and \"Figura" +is shown in this example. You can see that such declaration is based on the +<iso-code> `es`. The declared words are activated +after the hyphenation selector `\eslang` is used. + +If you want to use sorting rules given for your language +(used in `\makeindex` command, for example) then +you must define the macro `\sortingdata<iso-code>`. And you can optionally +define the `\specsortingdata<iso-code>` macro. Example: +%{\emergencystretch=2em\par} + +\begtt +\def\sortingdataes {aAäÄáÁ,bB,cCçÇ,^^P^^Q^^R,dD,...,zZ,.} +\def\specsortingdataes {ch:^^P Ch:^^Q CH:^^R} +\endtt + +There are groups of letters separated by comma and ended by comma-dot in +the parameter of the macro `\sortingdata<iso-code>`. (In the example above, three dots must +be replaced by real data by the user.) All letters in one group are not +distinguished during first step of sorting (primary sorting). If some items +are equal from this point of view then the secondary sorting is processed +for such items where all mentioned letters are distinguished in the order +given in the macro. + +Sorting algorithm can treat couple of letters (like Dz, Ch etc.) as one letter +if the parameter of the macro `\specsortingdata<iso-code>` is defined. There is +a space separated list of items in the form `<couple>:<one-token>`. The +replacing from <couple> to <one-token> is done before sorting, so you can +use `<one-token>` in the `\sortingdata<iso-code>` macro. The `<one-token>` +must be something special not used as the letter of the alphabet. The usage of +`^^A`, `^^B` etc. is recommended but you must avoid the `^^I` and `^^M` because +these characters have special catcode. + +The macros `\sortingdata<iso-code>` and `\specsortingdata<iso-code>` are +active when the language selector `\<iso-code>lang` is used. + +The list of ignored characters for sorting point of view is defined in the +`\setignoredchars` macro. \OpTeX/ defines this macro like: + +{\catcode`\<=12 +\begtt +\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}} +\endtt +}% +It means that comma, semicolon, question mark, \dots, plus mark are treated +as dot and dot is ignored by sorting algorithm. You can redefine this macro, +but you must keep the format, keep `\setlccodes` in the front and `{}{}` in +the end. + + +\sec Pre-defined styles +%%%%%%%%%%%%%%%%%%%%%%% + +\OpTeX/ defines two style-declaration macros `\report` and `\letter` +You can use them at the beginning of your document if you are +preparing these types of document and you don't need to create your own +macros. + +The `\report` declaration is intended to create reports. It +sets default font size to 11\,pt and `\parindent` (paragraph indentation) to 1.2\,em. +The `\tit` macro uses smaller font because we assume that \"chapter" level +will be not used in reports. The first page has no page number, but next pages +are numbered (from number~2). Footnotes are numbered from one in whole +document. The macro `\author <authors><end-line>` can be used when +`\report` is declared. It prints `<authors>` in italics at center of the +line. You can separate authors by `\nl` to more lines. + +The `\letter` declaration is intended to create letters. It sets default +font size to 11\,pt and `\parindent` to 0\,pt. It sets half-line space +between paragraphs. The page numbers are not printed. The `\subject` macro +can be used, it prints the word \"Subject:" or \"Věc" in bold +depending on used language if `\sdef{_mt:subj:<iso-code>}` is defined. +Moreover, the `\address` macro +can be used when `\letter` is declared. The usage of the `\address` macro +looks like: + +\begtt +\address + <first line of address> + <second line of address> + <etc.> + <empty line> +\endtt + +It means that you need not to use any special mark at the end of lines: end +of lines in the source file are the same as in printed output. The +`\address` macro creates `\vtop` with address lines. The width of such +`\vtop` is equal to the most wide line used in it. So, you can use +`\hfill\address...` in order to put the address box to the right side of the +document. Or you can use `<prefixed text>\address...` to put +`<prefixed text>` before first line of the address. + +Analogical declaration macros `\book` or `\slides` are not prepared. Each +book needs an individual typographical care so you need to cerate specific +macros for design. And you can find an inspiration of slides in OPmac tricks +\ulink[http://petr.olsak.net/opmac-tricks-e.html\#slidy]{0017 and 0022}. + + +\sec Summary +%%%%%%%%%%%% + +\begtt \typosize[10/12]\adef!{\string\endtt}\adef&{\kern.25em} +\tit Title (terminated by end of line) +\chap Chapter Title (terminated by end of line) +\sec Section Title (terminated by end of line) +\secc Subsection Title (terminanted by end of line) + +\maketoc % table of contents generation +\ii item1,item2 % insertion the items to the index +\makeindex % the index is generated + +\label [labname] % link target location +\ref [labname] % link to the chapter, section, subsection, equation +\pgref [labname] % link to the page of the chapter, section, ... + +\caption/t % a numbered table caption +\caption/f % a numbered caption for the picture +\eqmark % a numbered equation + +\begitems % start list of the items +\enditems % end of list of the items +\begtt % start verbatim text +! % end verbatim text +\activettchar X % initialization character X for in-text verbatim +\code % another alternative for in-text vrbatim +\verbinput % verbatim extract from the external file +\begmulti num % start multicolumn text (num columns) +\endmulti % end multicolumn text + +\cite [labnames] % refers to the item in the lits of references +\rcite [labnames] % similar to \cite but [] are not printed. +\sortcitations \shortcitations \nonumcitations % cite format +\bib [labname] % an item in the list of references +\usebib/? (style) bib-base % direct using of .bib file, ? in {s,c} + +\fontfam [FamilyName] % selection of font family +\typosize [font-size/baselineskip] % size setting of typesetting +\typoscale [factor-font/factor-baselineskip] % size scaling +\thefontsize [size] \thefontscale [factor] % current font size + +\inspic file.ext % insert a picture, extensions: jpg, png, pdf +\table {rule}{data} % simple macro for the tables like in LaTeX + +\fnote % footnote (local numbering on each page) +\mnote % note in the margin (left or right by page number) + +\hyperlinks {color-in}{color-out} % PDF links activate as clickable +\outlines {level} % PDF will have a table of contents in the left tab + +\magscale[factor] % resize typesetting, line/page breaking unchanged +\margins/pg format (left, right, top, bottom)unit % margins setting + +\report \letter % style declaration macros +\endtt + +\end diff --git a/Master/texmf-dist/doc/man/man1/optex.1 b/Master/texmf-dist/doc/man/man1/optex.1 new file mode 100644 index 00000000000..7b912e12a8c --- /dev/null +++ b/Master/texmf-dist/doc/man/man1/optex.1 @@ -0,0 +1,42 @@ +.TH OPTEX 1 "17 Feb. 2020" "Petr Olsak" +.\"===================================================================== +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +.ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP\" for troff +.el .ds OX TeX\" for nroff +.\" the same but obliqued +.\" BX definition must follow TX so BX can use TX +.if t .ds BX \fRB\s-2IB\s0\fP\*(TX +.if n .ds BX BibTeX +.\" LX definition must follow TX so LX can use TX +.if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX +.if n .ds LX LaTeX +.\"===================================================================== +.SH NAME +optex \- OPmac and Plain TeX for LuaTeX engine. +.SH SYNOPSIS +.B optex +[ first line ] +.\"===================================================================== +.SH DESCRIPTION +This manual page was derived from the manual page for \*(LX and is not meant +to be exhaustive. The complete +documentation for this version of \*(TX can be found in the info file +or manual +.IR "Web2C: A TeX implementation" . +.PP +.B OpTeX +is LuaTeX macro package initialized as the LuaTeX format optex.fmt. +It is based on Plain TeX macros by Donlad Knuth and on OPmac macros from +csplain package. For more information about it see +http://petr.olsak.net/optex web page. +.\"===================================================================== +.SH "SEE ALSO" +.BR luatex (1), +.BR tex (1), +.br +.SH AUTHORS +The author of +.B OpTeX +is Petr Olsak. +.PP diff --git a/Master/texmf-dist/doc/man/man1/optex.man1.pdf b/Master/texmf-dist/doc/man/man1/optex.man1.pdf Binary files differnew file mode 100644 index 00000000000..0370cc3dd67 --- /dev/null +++ b/Master/texmf-dist/doc/man/man1/optex.man1.pdf diff --git a/Master/texmf-dist/tex/luatex/optex/alloc.opm b/Master/texmf-dist/tex/luatex/optex/alloc.opm index 1e27d0cc23d..6ca5939ab1f 100644 --- a/Master/texmf-dist/tex/luatex/optex/alloc.opm +++ b/Master/texmf-dist/tex/luatex/optex/alloc.opm @@ -55,6 +55,14 @@ \_fi } +\_newcount \_attributealloc \_attributealloc=0 +\_chardef\_maiattribute=\_maicount +\_def\_newattribute #1{\_allocator #1{attribute}\_attributedef} + +\_newcount \_catcodetablealloc \_catcodetablealloc=10 +\_chardef\_maicatcodetable=32767 +\_def\_newcatcodetable #1{\_allocator #1{catcodetable}\_chardef} + \_newcount \tmpnum \_newcount \_tmpnum \_newdimen \tmpdim \_newdimen \_tmpdim @@ -65,8 +73,8 @@ \_newbox\_voidbox % permanently void box register \_public - \maicount \maidimen \maiskip \maimuskip \maibox \maitoks \mairead \maiwrite \maimath \newcount \newdimen \newskip \newmuskip \newbox \newtoks \newread \newwrite \newmath + \newattribute \newcatcodetable \insertmin \newinsert \maxdimen \hideskip \centering \zoskip \voidbox ; diff --git a/Master/texmf-dist/tex/luatex/optex/basics-a.opm b/Master/texmf-dist/tex/luatex/optex/basics-a.opm deleted file mode 100644 index 988457837dc..00000000000 --- a/Master/texmf-dist/tex/luatex/optex/basics-a.opm +++ /dev/null @@ -1,47 +0,0 @@ -%% This is part of OpTeX project, see http://petr.olsak.net/optex - -\_codedecl \sdef {Basic macros for OpTeX <2019-05-21>} - -\let\_bgroup={ \let\_egroup=} - -\_bgroup \_lccode`\.=`\\ \_lowercase{\_egroup \_def\_nbackslash {.}} -\_def\_empty {} -\_def\_wlog {\_immediate\_write-1 } % write on log file (only) - -\_def\_sdef #1{\_ea\_def \_csname#1\_endcsname} -\_def\_sxdef #1{\_ea\_xdef \_csname#1\_endcsname} -\_def\_slet#1#2{\_ea\_let \_csname#1\_ea\_endcsname \_csname#2\_endcsname} -\_def\_adef#1{\_catcode`#1=13 \_begingroup \_lccode`\~=`#1\_lowercase{\_endgroup\_def~}} -\_def\_cs #1{\_csname#1\_endcsname} - -\_long\_def \_addto #1#2{\_ea\_def\_ea#1\_ea{#1#2}} -\_ea\_def \_ea\_meaningsepare \_ea#\_ea1\_string m#2:#3->#4^{{#1}{#3}{#4}} - -\_long\_def\_isinlist #1#2#3{% \isinlist \list{word}\iftrue - \_long\_def\_isinlistA ##1#2##2\_end{% - \_def\_isinlistA {##2}% - \_unless\_ifx\_isinlistA\_empty - }% - \_ea \_isinlistA #1\_endlistsep#2\_end -} -\_bgroup \_catcode`!=3 \_catcode`?=3 -\_gdef\_replstring #1#2#3{% \replstring #1{stringA}{stringB} - \_long\_def\_replacestringsA##1#2{\_def #1{##1}\_replacestringsB}% - \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_addto #1{#3##1}% - \_ea\_replacestringsB\_fi}% - \_ea\_replacestringsA #1?#2!#2% - \_long\_def\_replacestringsA##1?{\_def #1{##1}}\_ea\_replacestringsA #1} -\_egroup - -\_def\_loggingall{\_tracingcommands=3 \tracingstats=2 \tracingassigns=1 - \tracingpages=1 \tracingoutput=1 \tracinglostchars=1 - \tracingmacros=2 \tracingparagraphs=1 \tracingrestores=1 } -\_def\_tracingall{\tracingonline=1 \loggingall} - -\_public - \bgroup \egroup \nbackslash \sdef \sxdef \slet \adef - \addto \meaningsepare \wlog \empty - \isinlist \replstring \loggingall \tracingall ; - -\_endcode % ------------------------------------- - diff --git a/Master/texmf-dist/tex/luatex/optex/basics-macros.opm b/Master/texmf-dist/tex/luatex/optex/basics-macros.opm index 368b9bd3320..638270d38b5 100644 --- a/Master/texmf-dist/tex/luatex/optex/basics-macros.opm +++ b/Master/texmf-dist/tex/luatex/optex/basics-macros.opm @@ -1,17 +1,16 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \sdef {Basic macros for OpTeX <2019-05-21>} +\_codedecl \sdef {Basic macros for OpTeX <2020-02-14>} \let\_bgroup={ \let\_egroup=} \_bgroup \_lccode`\.=`\\ \_lowercase{\_egroup \_def\_nbackslash {.}} \_edef \_nbb {\_nbackslash\_nbackslash} -\_edef \_pcent{\_xstring\%} +\_edef \_pcent{\_csstring\%} \_def \_empty {} \_def \_space { } \_def \_null {\_hbox{}} \_def \_wlog {\_immediate\_write-1 } % write on log file (only) -\_def \_wterm {\_immediate\_write16 } \_def \_opwarning #1{\_wterm{WARNING: #1.}} \_def \_sdef #1{\_ea\_def \_csname#1\_endcsname} @@ -21,16 +20,6 @@ \_def \_cs #1{\_csname#1\_endcsname} \_long\_def \_addto #1#2{\_ea\_def\_ea#1\_ea{#1#2}} -\_ea\_def \_ea\_meaningsepare \_ea#\_ea1\_string m#2:#3->#4^{{#1}{#3}{#4}} - -\_bgroup \_catcode`!=3 \_catcode`?=3 -\_gdef\_replstring #1#2#3{% \replstring #1{stringA}{stringB} - \_long\_def\_replacestringsA##1#2{\_def #1{##1}\_replacestringsB}% - \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_addto #1{#3##1}% - \_ea\_replacestringsB\_fi}% - \_ea\_replacestringsA #1?#2!#2% - \_long\_def\_replacestringsA##1?{\_def #1{##1}}\_ea\_replacestringsA #1} -\_egroup \_def\_loggingall{\_tracingcommands=3 \tracingstats=2 \tracingassigns=1 \tracingpages=1 \tracingoutput=1 \tracinglostchars=1 @@ -41,10 +30,11 @@ \_def\_remfirstunderscoreA#1#2\_relax#3{\_if _#1\_def#3{#2}\_fi} \_public - \bgroup \egroup \nbackslash \sdef \sxdef \slet \cs \adef - \addto \meaningsepare \wlog \wterm \opwarning + \bgroup \egroup \nbackslash \empty \space \null \nbb \pcent \ncaret - \isinlist \replstring \remfirstunderscore \loggingall \tracingall ; + \sdef \sxdef \slet \cs \adef + \addto \wlog \opwarning + \loggingall \tracingall ; \_endcode % ------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/bib-iso690.opm b/Master/texmf-dist/tex/luatex/optex/bib-iso690.opm new file mode 100644 index 00000000000..a104e589214 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/bib-iso690.opm @@ -0,0 +1,922 @@ +% opmac-bib-iso690 ... the OPmac bib style for reading .bib databases +% Petr Olsak, Apr. 2015 (beta) +% +% The bibliography printing from .bib files by ISO 690 standard is defied here. +% See the end of this file and the file opmac-bib.tex for more information. + +\ifx\opmacbibstyle\undefined \errmessage + {This file can be read by ``\string\usebib/? (simple) bibfiles'' command only} + \endinput \fi + +% misc: + +\def\maybedot{\ifnum\spacefactor=\sfcode`\.\relax\else.\fi} +\tmpnum=\sfcode`\. \advance\tmpnum by-2 \sfcode`\.=\tmpnum \sfcode`\?=\tmpnum \sfcode`\!=\tmpnum +\let\.=\maybedot % prevents from double periods + +\CreateField {option} +\def\isbiboption#1#2{\edef\tmp{\noexpand\isbiboptionA{#1}}\tmp} +\def\isbiboptionA#1{\def\tmp##1 #1 ##2\relax{% + \if^##2^\csname iffalse\expandafter\endcsname \else\csname iftrue\expandafter\endcsname \fi}% + \expandafter\tmp\biboptionsi #1 \relax} +\def\bibopt[#1]#2#3{\isbiboption{#1}\iftrue\def\tmp{#2}\else\def\tmp{#3}\fi\tmp} +\def\biboptionvalue#1#2{\def\tmp##1 #1:##2 ##3\relax{\def#2{##2}}% + \expandafter\tmp\biboptionsi #1: \relax} + +\def\readbiboptions{% + \RetrieveFieldIn{option}\biboptionsi + \toks1=\expandafter{\biboptionsi}% + \ifx\biboptions\undefined \toks2={}\else \toks2=\expandafter{\biboptions}\fi + \edef\biboptionsi{\space \the\toks1 \space \the\toks2 \space}% +} + +% Formating of Author/Editor lists: + +\def\firstauthorformat{% + \upper{\Lastname}\bprintc\Firstname{, *}\bprintc\Von{ *}\bprintc\Junior{, *}% +} +\def\otherauthorformat{% + \bprintc\Firstname{* }\bprintc\Von{* }\upper{\Lastname}\bprintc\Junior{, *}% +} +\def\commonname{% + \ifnum\NameCount=1 + \firstauthorformat + \ifx\dobibmark\undefined \edef\dobibmark{\Lastname}\fi + \else + \ifnum0\namecount=\NameCount + \ifx\maybeetal\empty \bibconjunctionand\else , \fi + \else , \fi + \otherauthorformat + \fi +} +\def\authorname{% + \ifnum\NameCount>0\namecount\relax\else \commonname \fi + \ifnum\NameCount=0\namecount\relax \maybeetal \fi +} +\let\editorname=\authorname + +\def\prepareauedoptions#1{% + \def\mabyetal{}\csname lb@abbreviatefalse\endcsname + \biboptionvalue{#1max}\authormax + \biboptionvalue{#1min}\authormin + \biboptionvalue{#1pre}\authorpre + \biboptionvalue{#1print}\authorprint + \isbiboption{#1etal}\iftrue \def\maybeetal{\Mtext{bib.etal}}\fi + \biboptionvalue{#1trim}\autrim + \let\namecountraw=\namecount + \ifx\authormax\empty \else + \ifnum 0\authormax<0\namecount + \edef\namecount{\ifx\authormin\empty\authormax\else\authormin\fi}% + \def\maybeetal{\Mtext{bib.etal}}% + \fi\fi + \ifx\autrim\empty \def\autrim{10000}\fi + \ifnum\autrim=0 \def\autrim{10000}\fi + \ifnum 0\namecount<\autrim\relax \else \AbbreviateFirstname \fi +} +\def\maybeetal{} + +\ifx\upper\undefined + \ifx\sc\undefined \def\upper{\uppercase\expandafter}\else \def\upper#1{{\sc#1}}\fi +\fi + +% Preparing bib-mark (used when \nonumcitations is set): + +\def\setbibmark{% + \ifx\dobibmark\undefined \def\dobibmark{}\fi + \RetrieveFieldIn{bibmark}\tmp + \ifx\tmp\empty \RetrieveFieldIn{year}\tmp \edef\tmp{\dobibmark, \tmp}\fi + \bibmark=\expandafter{\tmp}% +} + +% Multilinguals: English Czech Slovak + +\mtdef{bib.and} {, and } { a } {} +\mtdef{bib.etal} { et al.} { a~kol.} {} +\mtdef{bib.edition} { ed.} { vyd.} {} +\mtdef{bib.bachthesis} {Bachelor's Thesis} {Bakalářská práce} {Bakalárska práca} +\mtdef{bib.masthesis} {Master's Thesis} {Diplomová práce} {Diplomová práca} +\mtdef{bib.phdthesis} {Ph.D. Thesis} {Disertační práce} {Dizertačná práca} +\mtdef{bib.available} {Available from } {Dostupné na } {} +\mtdef{bib.availablealso} {Available also from } {Dostupné též na } {Dotupné tiež na } +\mtdef{bib.citedate} {cit.~} {vid.~} {} +\mtdef{bib.volume} {Vol.~} {ročník~} {} +\mtdef{bib.number} {No.~} {č.~} {} +\mtdef{bib.prepages} {pp.~} {s.~} {} +\mtdef{bib.postpages} {~p.} {~s.} {} +\mtdef{bib.editor} {,~ed.} {,~editor} {} +\mtdef{bib.editors} {,~eds.} {,~editoři} {,~editori} + + +\def\bibconjunctionand{\Mtext{bib.and}} +\def\preurl{\Mtext{bib.available}} +\let\predoi=\preurl +\def\postedition{\mtext{bib.edition}} +\def\Inclause{In:~} +\def\prevolume{\mtext{bib.volume}} +\def\prenumber{\mtext{bib.number}} +\def\prepages{\mtext{bib.prepages}} +\def\posteditor{\ifnum0\namecountraw>1 \Mtext{bib.editors}\else\Mtext{bib.editor}\fi} + + +\chardef\documentlanguage=\language +\def\Mtext#1{\csname _mt:#1:\csname lan:\the\documentlanguage\endcsname\endcsname} + +\CreateField {lang} +\def\setlang#1{\ifx#1\empty \else + \expandafter \ifx \csname #1Patt\endcsname \relax + \opwarning{The language "#1" used in .bib file is unknown} + \else \language=\csname #1Patt\endcsname + \fi\fi +} +\ifx\USenglish\undefined \chardef\USenglish=0 \fi +\let\enPatt=\USenglish \let\usPatt=\USenglish +\ifx\csPatt \undefined \let\csPatt=\czPatt \else \let\czPatt=\csPatt \fi + +% Non-standard fieldnames: + +\CreateField {ednote} +\CreateField {citedate} +\CreateField {numbering} +\CreateField {isbn} +\CreateField {issn} +\CreateField {doi} +\CreateField {url} +\CreateField {bibmark} + +% Sorting: + +\SortingOrder{name,year}{lfvj} +\SpecialSort {key} + +% Misc: + +\def\bibwarninga{\bibwarning} +\def\bibwarningb{\bibwarning} + +\def\docitedate #1/#2/#3/#4\relax{[\Mtext{bib.citedate}% + \if^#2^#1\else + \if^#3^#1/#2\else + \docitedateA{#1}{#2}{#3}% + \fi\fi ]% +} +\def\docitedateA#1#2#3{% + \ifx\csPatt\undefined \mathchardef\csPatt=10000 \fi + \ifx\skPatt\undefined \mathchardef\skPatt=10000 \fi + \ifnum\documentlanguage=\csPatt \docitedateCS{#1}{#2}{#3}% + \else \ifnum\documentlanguage=\skPatt \docitedateSK{#1}{#2}{#3}% + \else \docitedateEN{#1}{#2}{#3}% + \fi\fi +} +\def\docitedateEN#1#2#3{#1-#2-#3} +\def\docitedateCS#1#2#3{\hbox{\tmpnum=#3 \the\tmpnum. \tmpnum=#2 \the\tmpnum. #1}} +\let\docitedateSK=\docitedateCS + +\def\doyear#1{ + \biboptionvalue{yearprint}\yearprint + \ifx\yearprint\empty#1\else\def\YEAR{#1}\yearprint\fi +} +\def\preparenumbering{% + \def\VOL{\RetrieveField{volume}}% + \def\NO{\RetrieveField{number}}% + \def\PP{\RetrieveField{pages}}% +} +\def\prepareednote{% + \def\EDN{\RetrieveField{edition}}% + \def\ADDR{\RetrieveField{address}}% + \def\PUBL{\RetrieveField{publisher}}% + \def\YEAR{\RetrieveField{year}}% + \def\AU{\bprintb[!author]{\doauthor0{####1}}{}}% + \def\ED{\bprintb[!editor]{\doeditor0{####1}}{}}% + \preparenumbering +} +\def\doedition#1{% + \biboptionvalue{editionprint}\editionprint + \ifx\editionprint\empty#1\postedition\else\def\ED{#1}\editionprint\fi +} +\def\doauthor#1#2{\prepareauedoptions{au}\let\iseditorlist=\undefined + \if1#1\def\AU{#2}\else\let\authorprint=\empty\fi + \ifx\authorprint\empty #2\else \authorprint\fi +} +\def\doeditor#1#2{\prepareauedoptions{ed}\let\firstauthorformat=\otherauthorformat + \if1#1\def\ED{#2}\else\let\authorprint=\empty\fi + \ifx\authorprint\empty #2\posteditor\else \authorprint\fi +} + +% Entry types: + +\sdef{print:BEGIN}{% + \readbiboptions + \biboptionvalue{titlepost}\titlepost + \isbiboption{unpublished}\iftrue \let\bibwarninga=\relax \let\bibwarningb=\relax \fi + \isbiboption{nowarn}\iftrue \let\bibwarning=\relax \fi + \isbiboption{urlalso}\iftrue \def\preurl{\Mtext{bib.availablealso}}\fi + \RetrieveFieldIn{lang}\langentry \setlang\langentry +} +\sdef{print:END}{% + \bprinta [note] {*.}{}% + \setbibmark +} +\def\bookgeneric#1{% + \bprinta [howpublished] {[*].\ }{}% + \bprintb [edition] {\doedition{##1}\.\ }{}% + \bprinta [ednote] {*.\ }{}% + \bprinta [address] {*\bprintv[publisher]{:}{\bprintv[year]{,}{.}}\ }{\bibwarninga}% + \bprinta [publisher] {*\bprintv[year]{,}{.}\ }{\bibwarninga}% + \bprintb [year] {\doyear{##1}\bprintv[citedate]{\bprintv[numbering]{.}{}}{.}\ }{\bibwarning}% + \bprinta [numbering] {\preparenumbering*\bprintv[citedate]{}{\.}\ }{}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + #1% + \bprinta [series] {*.\ }{}% + \bprinta [isbn] {ISBN~*.\ }{\bibwarningb}% + \bprinta [issn] {ISSN~*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:book}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bookgeneric{}% +} +\sdef{print:article}{% + \biboptionvalue{journalpost}\journalpost + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprinta [title] {*.\ \bprintc\titlepost{*.\ }}{\bibwarning}% + \bprintb [journal] {{\em##1}\bprintc\journalpost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarninga}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [address] {*\bprintb[publisher]{:}{,}\ }{}% + \bprinta [publisher] {*, }{}% + \bprinta [month] {*, }{}% + \bprintb [year] {\doyear{##1}\bprintv[volume,number,pages]{,}{\.}\ }{}% + \bprinta [numbering] {\preparenumbering*\bprintv[citedate]{}{\.}\ } + {\bprinta [volume] {\prevolume*\bprintv[number,pages]{,}{\.}\ }{}% + \bprinta [number] {\prenumber*\bprintv[pages]{,}{\.}\ }{}% + \bprintb [pages] {\prepages\hbox{##1}\bprintv[citedate]{}{\.}\ }{\bibwarninga}}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprinta [issn] {ISSN~*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:inbook}{% + \let\bibwarningb=\relax + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprinta [title] {*.\ }{\bibwarning}% + \Inclause + \bprintb [!editor] {\doeditor1{##1}\.\ }{}% + \bprintb [booktitle] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bookgeneric{\bprintb [pages] {\prepages\hbox{##1}. }{}}% +} +\slet{print:inproceedings}{print:inbook} +\slet{print:conference}{print:inbook} + +\sdef{print:thesis}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [address] {*\bprintv[school]{:}{\bprintv[year]{,}{.}}\ }{\bibwarning}% + \bprinta [school] {*\bprintv[year]{,}{.}\ }{\bibwarning}% + \bprinta [month] {*, }{}% + \bprintb [year] {\doyear{##1}\bprintv[citedate]{}{.}\ }{\bibwarninga}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprinta [type] {*\bprintv[ednote]{,}{.}\ }% + {\ifx\thesistype\undefined\bibwarning\else\thesistype\bprintv[ednote]{,}{.}\ \fi}% + \bprinta [ednote] {*.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:phdthesis}{\def\thesistype{\Mtext{bib.phdthesis}}\csname print:thesis\endcsname} +\sdef{print:mastershesis}{\def\thesistype{\Mtext{bib.masthesis}}\csname print:thesis\endcsname} +\sdef{print:bachelorsthesis}{\def\thesistype{\Mtext{bib.bachthesis}}\csname print:thesis\endcsname} + +\sdef{print:generic}{% + \bprintb [!author] {\doauthor1{##1}\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\bprintc\titlepost{\.\ *}\bprintv[howpublished]{}{\.}\ }{\bibwarning}% + \bprinta [howpublished] {[*].\ }{}% + \bprinta [ednote] {\prepareednote*\bprintv[citedate]{}{.}\ }{\bibwarning}% + \bprinta [year] {}{\bibwarning}% + \bprinta [citedate] {\docitedate*///\relax.\ }{}% + \bprintb [doi] {\predoi DOI \ulink[http://dx.doi.org/##1]{##1}.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\slet{print:booklet}{print:generic} +\slet{print:incolleciton}{print:generic} +\slet{print:manual}{print:generic} +\slet{print:proceedings}{print:generic} +\slet{print:techreport}{print:generic} +\slet{print:unpublished}{print:generic} + +\sdef{print:misc}{\let\bibwarning=\relax \csname print:generic\endcsname} + +\endinput + + +opmac-bib-iso690.tex +==================== + +This is the iso690 bibliographic style used by opmac-bib.tex package. + +See op-example.bib for an example of the .bib input. You can try it by: + +\input opmac-bib +\nocite[*] +\usebib/s (iso690) op-example +\end + + +Common rules in .bib files: +-------------------------- + +There are entries of type @FOO{...} in the .bib file. Each entry consists of +fields in the form name = "value", or name = {value}. No matter which form is +used. If the value is pure numeric then you can say simply name = value. +Warning: the comma after each field value is mandatory! If it is missing then the +next field is ignored or bad interpreted. + +The entry names and field names are case insensitive. If there exist a data +field no mentioned here then it is simply ignored. You can use it to store +more information (abstract, for example). + +There are ``standard fields'' used in ancient bibTeX (author, title, editor, edition, +etc., see http://en.wikipedia.org/wiki/BibTeX). The iso690 style introduces +several ``non-standard'' fields: ednote, numbering, isbn, issn, doi, url, +citedate, key, bibmark. They are documented here. + +Moreover, there are two optional special fields: + +lang = language of the entry. The hyphenation plus autogenerated phrases and + abbreviations will be typeset by this language. +option = options by which you can control special printing of vairous fields. + +There can be only one option field per each entry with (may be) more options +separated by spaces. You can declare the global option(s) in your document +applied for each entry by \def\biboptions{...}. + + +The author field +---------------- + +All names in the author list have to be separated by " and ". Each author +can be written by various formats (the ``von'' part is typically missing): + + Firstname(s) von Lastname + or + von Lastname, Firstname(s) + or + von Lastname, After, Firstname(s) + +Only the Lastname part is mandatory. Examples: + + Petr Olšák + or + Olšák, Petr + + Leonardo Piero da Vinci + or + da Vinci, Leonardo Piero + or + da Vinci, painter, Leonardo Piero + +The separator " and " between authors will be converted to comma during +printing, but between semifinal and final author the word "and" (or something +different depending on current language) is printed. + +The first author is printed in reverse order: ``LASTNAME, Firstname(s) von, +After'' and the others author are printed in normal order: ``Firstname(s) +von LASTNAME, After''. This feature follows the ISO 690 norm. The Lastname +is capitalised using uppercase letters, but if the \sc command is defined, +then it is used as an font switcher in the form {\sc Lastname}. You can +declare the ``Caps and small caps'' font here. + +You can specify the option "aumax:<number>". The <number> denotes the +maximum authors to be printed. The rest of authors are ignored and the +"et~al." is appended to the list of printed authors. This text is +printed only if the "aumax" value is less than the real number of authors. +If you have the same number of authors in the .bib file as you need to print +but you want to append "et~al." then you can use "auetal" option. + +There is a "aumin:<number>" option which denotes the definitive number of +printed authors if the author list is not fully printed due to "aumax". +If "aumin" is unused then "aumax" authors is printed in such case. + +All authors are printed if "aumax:<number>" option isn't given. +There is no internal limit. But you can set the global options in +your document by setting the \biboptions macro. For example: + + \def\biboptions {aumax:7 aumin:1} + % if there is 8 or more authors then only first author is printed. + +Examples: + + author = "John Green and Bob Brown and Alice Black", + +output: GREEN, John, Bob BROWN, and Alice BLACK. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:1", + +output: GREEN, John~et~al. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:2", + +output: GREEN, John, Bob BROWN~et~al. + + author = "John Green and Bob Brown and Alice Black", + option = "aumax:3", + +output: GREEN, John, Bob BROWN, and Alice BLACK. + + author = "John Green and Bob Brown and Alice Black", + option = "auetal", + +output: GREEN, John, Bob BROWN, Alice BLACK~et~al. + +If you need to add a text before or after authors list, you can use +the "auprint:{<value>}" option. The <value> will be printed instead of the +authors list. The <value> can include \AU macro which expands to the authors +list. Example: + + author = "Robert Calbraith", + option = "auprint:{\AU\space [pseudonym of J. K. Rowling]}", + +output: CALBRAITH Robert [pseudonym of J. K. Rowling]. + +You can use the "autrim:<number>" option. All Firstnames of all authors +are trimmed (i. e. reduced to initials) iff the number of authors in the +author field is greater than or equal to <number>. There is an exception: +"autrim:0" means that no Firstnames are trimmed. This is default behavior. +Another example: "autrim:1" means that all Firstnames are trimmed. + + author = "John Green and Bob Brown and Alice Black", + option = "auetal autrim:1", + +output: GREEN, J., B. BROWN, A. BLACK~et~al. + +If you need to write a team name or institution instead authors, replace all +spaces by \<space> in this name. Such text is interpreted as Lastname. You +can add the secondary name (interpreted as Firstname) after comma. Example: + + author = "Czech\ Technical\ University\ in\ Prague, Faculty\ of\ Electrical\ Engeneering", + +output: CZECH TECHNICAL UNIVERSITY IN PRAGUE, Faculty of Electrical Engeneering. + + +The editor field +---------------- + +The editor field is used for list of the authors of the collection. The +analogous rules as in author field are used here. It means that the +authors are separated by " and ", the Firstnames, Lastnames etc. are +interpreted and you can use the options "edmax:<number>", "edmin:<number>", +"edetal", "edtrim:<number>" and "edprint:<value>" (with \ED macro). +Example: + + editor = "Jan Tomek and Petr Karas", + option = "edprint:{\ED, editors.} edtrim:1", + +Output: J. TOMEK and P. KARAS, editors. + +If edprint option is not set then {\ED, eds.} or {\ED, ed.} is used +depending on the entry language and on the singular or plural of +the editor(s). + + +The ednote field +---------------- + +The ednote is used as the secondary authors and more editional info. The +value is read as raw data without any interpretation of Lastname, Firstname +etc. + + ednote = "Illustrations by Robert \upper{Agarwal}, edited by Tom \upper{Nowak}", + +output: Illustrations by Robert AGARWAL, edited by Tom NOWAK. + +The \upper command have to be used for Lastnames in ednote field. + + +The title field +--------------- + +This is the title of the work. It will be printed (in common entry types) by +italics. The ISO 690 norm declares, that the title plus optional subtitle +are in italics and they are separated by colon. Next, the optional secondary +title have to be printed in upright font. This can be added by +"titlepost:{<value>}". Example: + + title = "The Simple Title of The Work", +or + title = "Main Title: Subtitle", +or + title = "Main Title: Subtitle", + option = "titlepost:{Secondary title}", + +The output of the last example: + +{\it Main Title: Subtitle}. Secondary title. + + +The edition field +----------------- + +This field is used only for second or more edition of cited work. Write +only the number without the word "edition". The shortcut "ed." (or something +else depending on current language) is added automatically. Examples: + + edition = "Second", + edition = "2nd", + edition = "2$^{\rm nd}$", + edition = "2.", + +Output of the last example: 2. ed. + + edition = "2." + lang = "cs", + +Output: 2. vyd. + +Note, that the example edition = "Second" may cause problems. If you are +using language "cs" then the output is bad: Second vyd. So, you need to +say: + + edition = "Second", + lang = "en", + +You can use "ednprint:{<value>}" option. The the <value> is printed +instead of edition field and shortcut. The edition field must be set. Example: + + edition = "whatever", + option = "ednprint:{Second full revised edition}", + +Output: Second full revised edition. + +You can use \EDN macro in "ednprint" value. This macro is expanded +to the edition value. Example: + + edition = "Second", + option = "ednprint:{\EDN\space full revised edition}", + +or + + edition = "Second full revised edition", + option = "ednprint:{\EDN}", + + +The address, publisher, year fields +----------------------------------- + +This is an anachronism from ancient BibTeX (unfortunately no exclusive) that +the address field includes only the city of the publisher residence. No more +data are here. The publisher field includes the name of the publisher. + + address = "Berlin", + publisher = "Springer Verlag", + year = 2012, + +Output: Berlin: Springer Verlag, 2012. + +Note, that the year needn't to be inserted into quotes because it is pure +numeric. + +The letter a, b etc. are appended to the year automatically, if two or more +subsequent entries in the bibliography list are not distinct by the first +author and year fields. If you needn't this feature, you can use the +"noautoletters" option. + +You can use "yearprint:{<value>}" option. If it is set then the <value> +is used for printing year instead the real field value. The reason: year is +sort sensitive, may be you need to print something else than sorting key. +Example: + + year = 2000, + option = "yearpint:{\copyright 2000}", + +Output: \copyright 2000, sorted by: 2000. + + year = "2012a", + option = "yearprint:{2012}", + +Output: 2012, sorted by: 2012a. + +The address, publisher and year are typically mandatory fields. If they are +missing then the OPmac warning occurs. But you can set "unpublished" +option. Then this warning is suppressed. There is no difference in the +printed output. + + +The url field +------------- + +Use it without \url macro, but with http:// prefix. Example: + + url = "http://petr.olsak.net/opmac.html", + +The ISO 690 norm recommends to add the text ``Available from'' (or +something else if different current language is used) before URL. +It means, that the output of previous example is: + +Available from \url{http://petr.olsak.net/opmac.html}. + +If the "cs" language is the current one than the output is: + +Dostupné z: \url{http://petr.olsak.net/opmac.html}. + +If the "urlalso" option is used, then the added text has the form +``Available also from'' or ``Dostupné také z:'' (if "cs" language is +current). + + +The citedate field +------------------ + +This is the citation date. The field must be in the form year/month/day. It +means, that the two slashes must be written here. The output depends on the +current language. Example: + + citedate = "2004/05/21", + +Output when "en" is current: [cit. 2004-05-21]. +Output when "cs" is current: [vid. 21.~5.~2004]. + + +The howpublished field +---------------------- + +This declares the available medium for cited document if it is not in printed +form. Alternatives: online, CD, DVD, etc. Example: + + howpublished = "online", + +Output: [online]. + + +The volume, number, pages and numbering fields +---------------------------------------------- + +The volume is the ``big mark'' of the journal issue and the number is the +``small mark'' of the journal issue and pages includes the page range of +the cited article in the journal. The volume is prefixed by Vol.~, +the number by No.~ and the pages by pp.~. But these prefixes depends on the +language of the entry. + +Example: + + volume = 31, + number = 3, + pages = "37--42", + +Output: Vol.~31, No.~3, pp.~37--42. + + volume = 31, + number = 3, + pages = "37--42", + lang = "cs", + +Output: ročník~31, č.~3, s.~37--42. + +If you disagree with the default prefixes, you can use the numbering field. +When it is set then it is is used instead of volume, number, pages fields +and instead of any mentioned prefixes. The numbering can include macros \VOL, +\NO, \PP, which are expanded to the respective values of fields. Example: + + volume = 31, + number = 3, + pages = "37--42" + numbering = "Issue~\VOL/\NO, pages~\PP", + +Output: Issue~31/3, pages~37--42 + +Note: The volume, numbers and pages fields are printed without numbering +filed only in the @ARTICLE entry. It means, that if you need to visible them +in the @INBOOK, @INPROCEEDINGS etc. fields, then you must to use numbering field. + + +Common notes about entries +-------------------------- + +The order of the fields in the entry is irrelevant. We use the printed order +in this manual. The exclamation mark (!) denotes the mandatory field. If +such field is missing then the warning occurs during processing. + +If the "unpublished" option is set then the fields address, publisher, year, +isbn and pages are not mandatory. If the "nowarn" option is set then no +warnings about missing mandatory fields occurs. + +If the field is used but not mentioned in the entry documentation below then +it is silently ignored. + +The @BOOK entry +--------------- + +This is used for book-like entries. + +Fields: author(!), title(!), howpublished, edition, ednote, address(!), +publisher(!), year(!), citedate, series, isbn(!), doi, url, note. + +The ednote field here means the secondary authors (illustrator, cover design +etc.). + + +The @ARTICLE entry +------------------ + +This is used for articles published in a journal. + +Fields: author(!), title(!), journal(!), howpublished, address, publisher, +month, year, [numbering or volume, number, pages(!)], citedate, issn, +doi, url, note. + +If the numbering is used then it is used instead volume, number, pages. + + +The @INBOOK entry +----------------- + +This is used for the part of a book. + +Fields: author(!), title(!), booktitle(!), howpublished, edition, ednote, +address(!), publisher(!), year(!), numbering, citedate, series, isbn or +issn, doi, url, note. + +The author field is used for author(s) of the part, the editor field +includes author(s) or editor(s) of whole document. The pages field specifies +the page range of the part. The series field can include more information +about the part (chapter numbers etc.). + +The @INPROCEEDINGS and @CONFERENCE entries are equivalent to @INBOOK entry. + + +The @THESIS entry +----------------- + +This is used for student's thesis. + +Fields: author(!), title(!), howpublished, address(!), school(!), +month, year(!), citedate, type(!), ednote, doi, url, note. + +The type field must include the text "Master's Thesis" or something +similar (depending on the language of the outer document). + +There are nearly equivalent entries: @BACHELORSTHESIS, @MASTERSTHESIS and +@PHDTHESIS. These entries sets the type field to an appropriate value +automatically. The type field is optional in such case. If it is used then +it has a precedence before default setting. + + +The @MISC entry +--------------- + +It is intended for various usage. + +Fields: author, title, howpublished, ednote, citedate, doi, url, note. + +You can use \AU, \ED, \EDN, \VOL, \NO, \PP, \ADDR, \PUBL, \YEAR +macros in ednote field. These macros print authors list, editors list, +edition, volume, number, pages, address, publisher and year field values +respecitively. If they are are missing then the appropriate macro is empty. + +The reason of this entry is to give to you the possibility to set the format of +entry by your own decision. The most of data are concentrated in ednote +field. + + +The @BOOKLET, @INCOLLECION, @MANUAL, @PROCEEDINGS, @TECHREPORT, @UNPUBLISHED entries +------------------------------------------------------------------------------------- + +These entries are equivalent to @MICS entry because we need to save the +simplicity. They are implemented only for (almost) backward compatibility +with the ancient BibTeX. But the ednote is mandatory field here, so you +cannot use these entries from the old databases without warnings and without +some additional work in the .bib file. + + +The cite-marks (bibmark) used when \nonumcitations is set +--------------------------------------------------------- + +When \nonumcitations is set then \cite prints the cite-marks (called +bibmark) instead numbers. This style file autogenerates these marks in the +form "Lastname of the first author, comma, space, the year" if bibmark field +isn't declared. If you need to set an exception from this common format, +then you can use bibmark field. + +The OPmac trick http://petr.olsak.net/opmac-tricks-e.html#bibmark +describes how to redefine the algorithm for bibmark auto-generating when you +need the short form of the type [Au13]. + + +Sorting +------- + +If \usebib/c is used then entries are sorted by citation order in the text. +If \usebib/s is used then entries are sorted by ``Lastname, Firstname(s)'' of +the first author and if more entries have this value equal, then the year is +used (from older to newer). This feature follows the recommendation of the +ISO 690 norm. + +If you have the same authors and the same year, you can control the sorting +by setting years as 2013, 2013a, 2013b, etc. You can print something +different to the list using "yearprint{<value>}" option, see the section about +address, publisher and year above. The real value of year field (ie. not +yearprint value) is also used in citations when \nonumcitations is set. + +If you have some problems with name sorting, you can use the hidden field +"key", which is used for sorting instead of the ``Lastname Firstname(s)'' +of authors. If the "key" field is unset then the ``Lastname Firstname(s)'' +is used for sorting normally. Example: + + author = "Světla Čmejrková", + key = "Czzmejrkova Svetla", + +This entry is now sorted between C and D. + +The norm recommends to place the autocitations to the top of the list of +references. You can do this by setting key = "@", to each entry with your +name because the "@" character is sorted before A. + + +Languages +--------- + +There is the language of the outer document and the languages of each entry. +The ISO 690 norm recommends that the technical notes (the prefix before URL, +the media type, the ``and'' conjunction between semifinal and final author) +may be printed in the language of the outer document. The data of the entry +have to be printed in the entry language (edition ed./vyd., Vol./ročník, +No./č. etc.). Finally there are the phrases independent on the language +(for example In:). Unfortunately, the bibTeX supposes that the entry data +are not fully included in value parts of the fields (see edition, volume +etc. fields) so the automaton have to add some text during processing. +But what language have to be chosen? + +The current value of the \language register at the start of the .bib +processing is decided as the language of the outer document. This language +is used for technical notes regardless of the entry language. Each entry can +have the lang field with the two-letter mark of the entry language. This +language is used for ed./vyd., vol./ročník etc. and it is used for +hyphenation too. If the entry language is not set then the outer document +language is used. + +If the outer document language is know before creating of the .bib file, you +can store some language-dependent phrases into it. On the other hand, if the +main document language is unknown, you can use the \Mtext macro to +create the text multilingual. Example: + + howpublished = "\Mtext{bue-ray}" + +Now, you can set the variants of blue-ray into your macros: + + \mtdef {blue-ray} {Blue-ray disc} {Blue-ray disk} {} + + +Tips for using more languages +----------------------------- + +OPmac prefers English, Czech and Slovak languages. However, you can add +more languages. If you are using csplain, you can download the +hyphen-patterns for many languages, see the hyphen.lan file. For example, +you have had \dePatt and \plPatt downloaded (for German and Polish +languages). Now, you can do + +\sdef{lan:21}{de} \sdef{lan:121}{de} +\sdef{lan:23}{pl} \sdef{lan:123}{pl} +\def\mtdefx#1#2#3{\sdef{_mt:#1:de}{#2}\sdef{_mt:#1:pl}{#3}} + + % German % Polish +\mtdefx {bib.and} { und } { a } +\mtdefx {bib.phdthesis} {Ph.D. Dissertation} {Praca doktorska} +... + + +Summary of non-standard fields +------------------------------ + +This style uses the following fields unkown by bibTeX: + +option ... options separated by spaces +lang ... the language two-letter code of one entry +ednote ... editional info (secondary authors etc.) or + global data in @MISC-like entries +citedate ... the date of the citation in year/month/day format +numbering ... format for volume, number, pages +isbn ... ISBN +issn ... ISSN +doi ... DOI +url ... URL + + +Summary of options +------------------ + +aumax:<number> ... maximum number of printed authors +aumin:<number> ... number of printed authors if aumax exceedes +autrim:<number> ... full Firstnames iff number of authors are less than this +auprint:{<value>} ... text instead auhors list (\AU macro may be used) +edmax, edmin, edtrim ... similar as above for editors list +edprint:{<value>} ... text instead editors list (\ED macro may be used) +titlepost:{<value>} ... text after title +yearprint:{<value>} ... text instead real year (\YEAR macro may be used) +ednprint:{<value>} ... text instead real edition (\EDN macro may be used) +urlalso ... the ``available also from'' is used instead ``available from'' +unpublished ... the publisher etc. fields are not mandatory +nowarn ... no mandatory fields + +Another options in the option field are silently ignored. diff --git a/Master/texmf-dist/tex/luatex/optex/bib-simple.opm b/Master/texmf-dist/tex/luatex/optex/bib-simple.opm new file mode 100644 index 00000000000..642c6d84825 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/bib-simple.opm @@ -0,0 +1,183 @@ +% opmac-bib-simple ... the OPmac bib style for reading .bib databases +% Petr Olsak, version Apr. 2015 (beta) +% See the end of the file opmac-bib.tex for more information. +% You can compare this file with the old Forth-like BibTeX .bst files. +% What seems to be more understandable? + +\ifx\opmacbibstyle\undefined \errmessage + {This file can be read by ``\string\usebib/? (simple) bibfiles'' command only} + \endinput \fi + +% misc: + +\def\maybedot{\ifnum\spacefactor=\sfcode`\.\relax\else.\fi} +\tmpnum=\sfcode`\. \advance\tmpnum by-2 \sfcode`\.=\tmpnum +\sfcode`\?=\tmpnum \sfcode`\!=\tmpnum +\let\.=\maybedot % prevents from double periods + +% Formating of Author/Editor lists: + +\def\authorname{% + \ifnum\NameCount>1 + \ifnum0\namecount=\NameCount \mtext{bib.and}\else , \fi + \else + \ifx\dobibmark\undefined \edef\dobibmark{\Lastname}\fi + \fi + \bprintc\Firstname{* }\bprintc\Von{* }\Lastname\bprintc\Junior{, *}% +} +\let\editorname=\authorname + +% Preparing bib-mark (used when \nonumcitations is set): + +\def\setbibmark{% + \ifx\dobibmark\undefined \def\dobibmark{}\fi + \RetrieveFieldIn{bibmark}\tmp + \ifx\tmp\empty \RetrieveFieldIn{year}\tmp \edef\tmp{\dobibmark, \tmp}\fi + \bibmark=\expandafter{\tmp}% +} + +% Multilinguals: English Czech Slovak + +\mtdef{bib.and} {, and } { a } {} +\mtdef{bib.edition} {edition} {vydání} {vydanie} +\mtdef{bib.masterthesis} {Master's Thesis} {Diplomová práce} {Diplomová práca} +\mtdef{bib.phdthesis} {Ph.D. Thesis} {Disertační práce} {Dizertačná práca} + + +\def\preurl{\hfil\break} + +% Non-standard fieldnames: + +\CreateField {isbn} +\CreateField {doi} +\CreateField {url} +\CreateField {bibmark} + +% Sorting: + +\SortingOrder{name,year}{lfvj} +\SpecialSort {key} + +% Entry types: + +\sdef{print:END}{% + \bprinta [note] {*.}{}% + \setbibmark +} +\sdef{print:book}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}.\ }{\bibwarning}% + \bprinta [edition] {*~\mtext{bib.edition}.\ }{}% + \bprinta [address] {*: }{\bibwarning}% + \bprinta [publisher] {*, }{\bibwarning}% + \bprinta [year] {*.\ }{\bibwarning}% + \bprinta [isbn] {ISBN~*.\ }{\bibwarning}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:article}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprinta [title] {*.\ }{\bibwarning}% + \bprintb [journal] {{\em##1}.\ }{\bibwarning}% + \bprinta [year] {*, }{}% + \bprinta [volume] {* }{}% + \bprinta [number] {(*), }{}% + \bprinta [pages] {*.\ }{}% + \bprintb [doi] {DOI~\ulink[http://dx.doi.org/##1]{##1}.\ }{}% +} +\sdef{print:inbook}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1.}\ }{\bibwarning}% + In:~% + \bprinta [!editor] {*,~eds.\ }{}% + \bprintb [booktitle] {{\em##1}.\ }{\bibwarning}% + \bprinta [address] {*: }{\bibwarning}% + \bprinta [publisher] {*, }{\bibwarning}% + \bprinta [year] {*.\ }{\bibwarning}% + \bprinta [chapter] {*.\ }{% + \bprinta [pages] {*.\ }{}}% + \bprinta [isbn] {ISBN~*.\ }{\bibwarning}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\slet{print:inproceedings}{print:inbook} + +\sdef{print:incolection}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}.\ }{\bibwarning}% + \bprinta [crossreff] {In~\cite[*]. }{% + \bprinta [booktitle] {*. }{\bibwarning}% + \bprinta [!editor] {*,~eds.\ }{\bibwarning}% + \bprinta [edition] {*~\mtext{bib.edition}.\ }{\bibwarning}% + \bprinta [address] {*: }{\bibwarning}% + \bprinta [publisher] {*, }{\bibwarning}% + \bprinta [year] {*.\ }{\bibwarning}% + \bprinta [pages] {*.\ }{}% + \bprintb [url] {\preurl\url{####1}. }{}}% +} +\sdef{print:conference}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \bprinta [edition] {*~\mtext{bib.edition}.\ }{}% + \bprinta [address] {*: }{\bibwarning}% + \bprinta [publisher] {*, }{\bibwarning}% + \bprinta [year] {*.\ }{\bibwarning}% + \bprinta [isbn] {ISBN~*.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:phdthesis}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \mtext{bib.phdthesis}, % + \bprinta [school] {*.\ }{}% + \bprinta [address] {*, }{}% + \bprinta [year] {*.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:mastersthesis}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \mtext{bib.masterthesis}, % + \bprinta [school] {*.\ }{}% + \bprinta [address] {*, }{}% + \bprinta [year] {*.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:proceedings}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \bprinta [publisher] {*.\ }{% + \bprinta [organization] {*.\ }{\bibwarning}}% +} +\sdef{print:techreport}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \mtext{bib.techreport}. + \bprinta [institution] {*.\ }{}% +} +\sdef{print:booklet}{% + \bprinta [!author] {*\.\ }{\bibwarning}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \bprinta [howpublished] {*.\ }{\bibwarning}% +} +\sdef{print:manual}{% + \bprinta [!author] {*\.\ }{}% + \bprintb [title] {{\em##1}\.\ }{\bibwarning}% + \bprinta [year] {*.\ }{}% + \bprinta [institution] {*.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} +\sdef{print:misc}{% + \bprinta [!author] {*\.\ }{}% + \bprintb [title] {{\em##1}\.\ }{}% + \bprinta [howpublished] {*.\ }{}% + \bprinta [institution] {*.\ }{}% + \bprinta [series] {*.\ }{}% + \bprinta [year] {*.\ }{}% + \bprintb [url] {\preurl\url{##1}. }{}% +} + +%%% end of the style file + +\endinput + +You can copy this file to opmac-bib-yourname.tex and modify it by your +needs... diff --git a/Master/texmf-dist/tex/luatex/optex/catcodes.opm b/Master/texmf-dist/tex/luatex/optex/catcodes.opm deleted file mode 100644 index d675e482bed..00000000000 --- a/Master/texmf-dist/tex/luatex/optex/catcodes.opm +++ /dev/null @@ -1,137 +0,0 @@ -%% This is part of OpTeX project, see http://petr.olsak.net/optex - -\_codedecl \setcatcode {Initialization category codes <2020-01-23>} - -\_def \_optexcatcodes {% - \_setcatcode `\\=0 % backlslash starts control sequences - \_setcatcode `\{=1 % left brace is begin-group character - \_setcatcode `\}=2 % right brace is end-group character - \_setcatcode `\$=3 % dollar sign is math shift - \_setcatcode `\&=4 % ampersand is alignment tab - \_setcatcode `\^^M=5 % ascii return is end-line - \_setcatcode `\#=6 % hash mark is macro parameter character - \_setcatcode `\^=7 - \_setcatcode `\^^K=7 % circumflex and uparrow are for superscripts - \_setcatcode `\^^A=8 % downarrow is for subscripts - \_setcatcode `\ =10 % ascii space is blank space - \_setcatcode `\^^I=10 % ascii tab is a blank space - \_setcatcode `\_=11 % underline can be used in control sequences - \_setcatcode `\~=13 % tilde is active - \_setcatcode `\%=14 % percent sign is comment character - \_setcatcode 127=12 % normal character -} -\_let \_setcatcode =\catcode \_optexcatcodes % catcode initialization - -\_def \_normalasciicatcodes {% - \_setcatcodes 33-34: 12 - \_setcatcodes 39-64: 12 - \_setcatcodes 65-90: 11 - \_setcatcode `\[=12 - \_setcatcode `\]=12 - \_setcatcode `\`=12 - \_setcatcodes 97-122: 11 - \_setcatcode `\|=12 - \_optexcatcodes -} -\_def \_setcatcodes #1-#2: #3 {% - \_tmpnum=#1 - \_loop - \_setcatcode \_the\_tmpnum =#3 - \_advance \_tmpnum by1 - \_unless \_ifnum \_tmpnum >#2 \_repeat -} -\_def \_setcatcode #1=#2 {% - \_ifx \_setcatcode \_empty \_errmessage {Use \_noexpand\savecatcode before \_noexpand\setcatcode}\_fi - \_unless \_ifnum \_catcode #1=#2 - \_ea \_setcatcodeA \_catcodelist \_end {#1}% - \_catcode #1=#2 - \_fi -} -\_def \_setcatcodeA #1#2\_end #3{\_edef \_catcodelist{{#1}\_catcode #3=\_the\_catcode #3 #2}} -\_def \_savecatcodes {\_edef\_catcodelist {{\_catcodelist}}} -\_def \_restorecatcodes {\_ea\_def \_ea\_catcodelist \_catcodelist} -\_def \_catcodelist{{}} - -\_chardef\_active=13 \_catcode`\~=\_active % tilde is active -%\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par", obsolete - -\public - \optexcatcodes \normalasciicatcodes \setcatcodes \setcatcode - \savecatcodes \restorecatcodes \active ; - -\_endcode % ---------------------------------------- - -Basic category codes inspired by plain \TeX/ are set here. The only -difference is underline: it can be used in control sequences in \SpTeX/, so -its category code is 11. But plain \TeX/ sets it to 8 for subscripts. We'll -define `_` subscript only in math mode, see `math-basics.spm`. - -Second differnece from plain \TeX/ is `\catcode127`, which is set to invalid -character in plain \TeX/ but we set it as normal character. - -`\normalasciicatodes` sets catcodes of all ascii visible characters to its -"normal" values used in \SpTeX/. - -We implement catcodes stack by three macros: `\savecatcodes`, `\setcatcode` -and `\restorecatcodes` which bahaves with catcode values like -`\begingroup`, `\catcode` and `\endgroup` but it does not -open/close any \TeX/ group. You can use it for eaxample - -\begtt -\savecatcodes \normalasciicatcodes \input macrofile.tex \restorecatcodes -\endtt -% -and you are sure that - -\begitems -* `macrofile.tex` is read with normal catodes, -* previous catcode setting is restored after the `macrofile.tex` is read. -\enditems - -The catcodes stack cannot be crossed by \TeX/ groups. But it is not -problem to re-implement it to global setting if you want. - -You can use `\setcatcodes <from>-<to>: <value>` to set a range of characters. -This macro uses `\setcatcode` repeatedly. - - -\sec Implemetation details: - -First, we define `\_plaintexcatcodes` and use it macro with -`\_let\_setcatcode=\catcode`. This code sets the "normal" catcodes. - -The main idea of catcode stack implementation is that the macro -`\_setcatcode` does nothing if previus catcode value is the same as desired -value. Else it saves previous value into `\_catcodelist` and sets desired -value. Finally `\_restorecatcodes` restores values from the `\_catcodelist`. - -We need to support stack behavior, it means that nested pairs -`\_savecatcodes` and `\_restorecatcodes` work well. This is a reason why the -current value of the `\_catcodelist` looks like this: - -\begtt -{data actual before last \_savecatcodes} currently generated data -\endtt -% -Then `\_restorecatcodes` does - -\begtt -\_def \_catcodelist {data actual before savecatcodes} apply currently generated data -\endtt - -We need to apply currently generated data in reverse order. This is done by -the macro `\setcatcodeA` (invoked by the `\setcatcode`) which inserts new -data HERE-NEW: - -\begtt -{data actual before last savecatdodes} HERE-NEW currently generated data -\endtt - -One record of data is in the form `\catode char-code=previous-value`, so we -need simply to "run" the currently generated data in order to restore -values. - -Notice: the `\_codedecl` and `\_endcode` macros are redefined and explained in basic.opm - - - diff --git a/Master/texmf-dist/tex/luatex/optex/f-adventor.opm b/Master/texmf-dist/tex/luatex/optex/f-adventor.opm index 54986c05129..93afbee7876 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-adventor.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-adventor.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Adventor] \Adventor {TeX Gyre Adventor based on Avantgarde Book} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {} "[texgyreadventor-regular]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-antt.opm b/Master/texmf-dist/tex/luatex/optex/f-antt.opm index 6a1fe50688a..efbdb9a1d68 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-antt.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-antt.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Antykwa Torunska] \Antt {Traditional Polish font family} - {\cond \medium \light \caps} {\rm \bf \it \bi} {TX} + {\cond \medium \light \caps} {\rm \bf \it \bi} {Pagella} "[AntykwaTorunska-Regular]" \_wlog{\_detokenize{% @@ -23,6 +23,8 @@ Modifier:^^J \_initfontfamily % new font family must be initialized +\_loadmath{[texgyrepagella-math]} + \_endcode See the file `f-heros.opm` for information about principles of such diff --git a/Master/texmf-dist/tex/luatex/optex/f-baskerville.opm b/Master/texmf-dist/tex/luatex/optex/f-baskerville.opm index 9d8974939de..c493f7e0b57 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-baskerville.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-baskerville.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Baskerville] \Baskerville {Free vaiants of classical Baskerville} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {} "[BaskervilleF-Regular]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-bonum.opm b/Master/texmf-dist/tex/luatex/optex/f-bonum.opm index 89131175a08..e1fc78680bd 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-bonum.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-bonum.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Bonum] \Bonum {TeX Gyre Bonum fonts based on Bookman} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {Bonum} "[texgyrebonum-regular]" \_wlog{\_detokenize{% @@ -19,6 +19,8 @@ Modifier:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[texgyrebonum-math]} + \_endcode See the file `f-heros.opm` for information about principles of such diff --git a/Master/texmf-dist/tex/luatex/optex/f-cursor.opm b/Master/texmf-dist/tex/luatex/optex/f-cursor.opm index 00097831a60..b89a4a74119 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-cursor.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-cursor.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Cursor] \Cursor {TeX Gyre Cursor fonts based on Courier} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {} "[texgyrecursor-regular]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-gfsbodoni.opm b/Master/texmf-dist/tex/luatex/optex/f-gfsbodoni.opm index ccdef2126d7..7afbe001cce 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-gfsbodoni.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-gfsbodoni.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [GFS Bodoni] \GFSBodoni {Based on Bodoni with greek letters} - {} {\rm \bf \it \bi} {TX} + {} {\rm \bf \it \bi} {} "[GFSBodoni]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-heros.opm b/Master/texmf-dist/tex/luatex/optex/f-heros.opm index 7e466432a3d..6bea7a2642c 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-heros.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-heros.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Heros] \Heros {TeX Gyre Heros fonts based on Helvetica} - {\caps \cond} {\rm \bf \it \bi} {TX} + {\caps \cond} {\rm \bf \it \bi} {FiraMath} "[texgyreheros-regular]" \_wlog{\_detokenize{% @@ -23,6 +23,8 @@ Modifiers:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[FiraMath-Regular]} + \_endcode diff --git a/Master/texmf-dist/tex/luatex/optex/f-libertine-s.opm b/Master/texmf-dist/tex/luatex/optex/f-libertine-s.opm index 351a55fc579..1eb2933faa6 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-libertine-s.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-libertine-s.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Linux Libertine] \libertine {Free Linux Libertine fonts} - {\sans \mono \caps} {\rm \bf \it \bi \initials \displ \keybr} {TX} + {\sans \mono \caps} {\rm \bf \it \bi \initials \displ \keybr} {} "Linux Libertine O" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-libertine.opm b/Master/texmf-dist/tex/luatex/optex/f-libertine.opm index 8b45f06e7c9..adc0961f7a7 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-libertine.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-libertine.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Linux Libertine] \Libertine {Free Linux Libertine fonts} - {\sans \mono \caps \semi} {\rm \bf \it \bi \initials \displ \keybr} {TX} + {\sans \mono \caps \semi} {\rm \bf \it \bi \initials \displ \keybr} {Libertinus} "[LinLibertine_R]" \_wlog{\_detokenize{% @@ -34,6 +34,8 @@ Special variants:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[LibertinusMath-Regular]} + \_endcode This file declares Linux Libertine font family from font files. The diff --git a/Master/texmf-dist/tex/luatex/optex/f-lmfonts.opm b/Master/texmf-dist/tex/luatex/optex/f-lmfonts.opm index bfd63fd00fe..5be1362b0b0 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-lmfonts.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-lmfonts.opm @@ -2,7 +2,7 @@ \_fontdecl [Latin Modern] \LMfonts {TeX Gyre fonts based on Coputer Modern} {\roman \sans \quotset \ttset \ttprop \ttlight \ttcond \upital - \dunhill submods:\caps \slant \nbold \bolder} {\rm \bf \it \bi \tt} {CM+AMS} + \dunhill submods:\caps \slant \nbold \bolder} {\rm \bf \it \bi \tt} {LM} "[lmroman10-regular]" \_wlog{\_detokenize{% @@ -114,6 +114,8 @@ Submodifiers (setlects special variants of given subfamily):^^J \_initfontfamily % new font family must be initialized +\_loadmath {[latinmodern-math]} + \_endcode \sec How to wite font-macro-file with optical sizes for \OpTeX/ diff --git a/Master/texmf-dist/tex/luatex/optex/f-pagella.opm b/Master/texmf-dist/tex/luatex/optex/f-pagella.opm index 77d4d53877a..1f9b8dac806 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-pagella.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-pagella.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Pagella] \Pagella {TeX Gyre Pagella fonts based on Palatino} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {Pagella} "[texgyrepagella-regular]" \_wlog{\_detokenize{% @@ -19,6 +19,8 @@ Modifier:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[texgyrepagella-math]} + \_endcode See the file `f-heros.opm` for information about principles of such diff --git a/Master/texmf-dist/tex/luatex/optex/f-schola.opm b/Master/texmf-dist/tex/luatex/optex/f-schola.opm index b29444166c4..649515e4a1a 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-schola.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-schola.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Schola] \Schola {TeX Gyre Schola fonts based on New Century} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {Schola} "[texgyreschola-regular]" \_wlog{\_detokenize{% @@ -19,6 +19,8 @@ Modifier:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[texgyreschola-math]} + \_endcode See the file `f-heros.opm` for information about principles of such diff --git a/Master/texmf-dist/tex/luatex/optex/f-technika.opm b/Master/texmf-dist/tex/luatex/optex/f-technika.opm index d7f006d6f41..cf9a197dda2 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-technika.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-technika.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Technika] \Technika {Fonts from visual style of CTU in Prague} - {\caps \light} {\rm \bf \it \bi \stencil} {TX} + {\caps \light} {\rm \bf \it \bi \stencil} {} "[Technika-Regular]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/f-termes.opm b/Master/texmf-dist/tex/luatex/optex/f-termes.opm index 25d9ef1911e..d64d6a463e5 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-termes.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-termes.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [Termes] \Termes {TeX Gyre Termes fonts based on Times} - {\caps} {\rm \bf \it \bi} {TX} + {\caps} {\rm \bf \it \bi} {Termes} "[texgyretermes-regular]" \_wlog{\_detokenize{% @@ -19,6 +19,8 @@ Modifier:^^J \_initfontfamily % new font family must be initialized +\_loadmath {[texgyretermes-math]} + \_endcode See the file `f-heros.opm` for information about principles of such diff --git a/Master/texmf-dist/tex/luatex/optex/f-xcharter.opm b/Master/texmf-dist/tex/luatex/optex/f-xcharter.opm index 98db483ea4e..d7b4d475487 100644 --- a/Master/texmf-dist/tex/luatex/optex/f-xcharter.opm +++ b/Master/texmf-dist/tex/luatex/optex/f-xcharter.opm @@ -1,7 +1,7 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex \_fontdecl [XCharter] \XCharter {An extension of Bitstream Charter} - {\caps \slant} {\rm \bf \it \bi} {TX} + {\caps \slant} {\rm \bf \it \bi} {} "[XCharter-Roman]" \_wlog{\_detokenize{% diff --git a/Master/texmf-dist/tex/luatex/optex/fams-ini.opm b/Master/texmf-dist/tex/luatex/optex/fams-ini.opm index 3d9c5685770..096e32df5c2 100644 --- a/Master/texmf-dist/tex/luatex/optex/fams-ini.opm +++ b/Master/texmf-dist/tex/luatex/optex/fams-ini.opm @@ -108,25 +108,5 @@ The `\_famtext` writes a line to the terminal and to the log file when all families are listed. For modifiers and variants declared by `\_faminfo` the sample of letters -and other characters from is printed from `\catalogsample` register. -You can redeclare the printed sample by: - -\begtt - \catalogsample={Hello world!} -\endtt - -You can restrict the families to be printed in catalogue by: - -\begtt - \catalogonly={Termes, Latin Modern, Heros} -\endtt - -If `\catalogonly` is empty (this is default value) then all families are -printed but no families listed in `\catalogexclude`, for example - -\begtt - \catalogexclude={Latin Modern, XCharter} -\endtt - -The `\cataogexclude` is empty by default. +and other characters is printed. from `\catalogsample` register. diff --git a/Master/texmf-dist/tex/luatex/optex/fonts-catalog.opm b/Master/texmf-dist/tex/luatex/optex/fonts-catalog.opm index 88d0d1174fb..f771fe92ebe 100644 --- a/Master/texmf-dist/tex/luatex/optex/fonts-catalog.opm +++ b/Master/texmf-dist/tex/luatex/optex/fonts-catalog.opm @@ -3,6 +3,7 @@ \_initunifonts \_begingroup +\_noloadmath \_let\_ttfixed=\_tentt \_suppressfontnotfounderror=1 @@ -63,9 +64,42 @@ \_input fams-ini.opm \_isfile {fams-user.opm}\_iftrue \_input fams-user.opm \_fi -\_vfil\_break \_endgroup +\parindent=0pt + +\nonum\sec Customization of the catalogue + + +You can redeclare the printed sample of each font by: + +\begtt +\catalogsample={Hello world!} +\endtt + +before \code{\\fontfam[catalog]} command is used. +You can restrict the families to be printed in catalogue by: + +\begtt +\catalogonly={Termes, Latin Modern, Heros} +\endtt + +If the \code{\\catalogonly} is empty (this is default value) then all families are +printed but families listed in the \code{\\catalogexclude} are excluded. For example + +\begtt +\catalogexclude={Latin Modern, XCharter} +\endtt + +The \code{\\cataogexclude} is empty by default. + +\bigskip The font families printed in the catalogue must be declared by the +\code{\\_faminfo} command in the file \code{fams-ini.opm} (declarations used +as default for \OpTeX/) or in the file \code{fams-user.opm}. The second file +does not exist by default but user can create it. The syntax rules are +described in the \code{fams-ini.opm} file. + + \_endcode % -------------------------------------
\ No newline at end of file diff --git a/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm b/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm index 2224d722b05..40f3f4dd50d 100644 --- a/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm +++ b/Master/texmf-dist/tex/luatex/optex/fonts-opmac.opm @@ -132,7 +132,7 @@ before `\typoscale` command. \begtt \typosize[12/14.4] % first usage in document, sets main values internally - \typosize[15/18 bigger font + \typosize[15/18] % bigger font \scalemain \typoscale[800/800] % reduces from main values, no from current values. \endtt diff --git a/Master/texmf-dist/tex/luatex/optex/fonts-resize.opm b/Master/texmf-dist/tex/luatex/optex/fonts-resize.opm index 4a7bf75468d..b537c2d7224 100644 --- a/Master/texmf-dist/tex/luatex/optex/fonts-resize.opm +++ b/Master/texmf-dist/tex/luatex/optex/fonts-resize.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \setfontsize {Font resizing macros <2020-01-23>} +\_codedecl \setfontsize {Font resizing macros <2020-02-14>} %% resizefont variant-name \fontswitch, for example \resizefont{bf}\_tenbf @@ -33,7 +33,7 @@ \_def\_reloading{\_loadf{rm}\_tenrm \_loadf{bf}\_tenbf \_loadf{it}\_tenit \_loadf{bi}\_tenbi } -\_def\_loadf#1#2{\sdef{_tryload#1}{\_resizefont{#1}#2}} +\_def\_loadf#1#2{\sdef{_tryload#1}{\_ifmmode \_else \_resizefont{#1}#2\_fi}} \_def\_tryloadtt{\fontlet\_tentt=\_tentt \_sizespec\_relax} \_def\_setoptsize {\_isnextchar a{\_setoptsizeA} @@ -83,7 +83,7 @@ \_def \_keepmeaning #1#2{\_global\_let\_keepmeaningdata=#1% #2\_let#1=\_keepmeaningdata \_global\_let\_keepmeaningdata=\_undefined } -\_protected \_def \_currvar{\_cs{_currvar:\_ea \_xstring \_the\_font}} +\_protected \_def \_currvar{\_cs{_currvar:\_ea \_csstring \_the\_font}} \_sdef{_currvar:_tenrm}{\_rm} \_sdef{_currvar:_tenbf}{\_bf} \_sdef{_currvar:_tenit}{\_it} @@ -91,7 +91,7 @@ \_sdef{_currvar:_tentt}{\_tt} \_def \_newcurrfontsize #1{% \newcurrfontsize{at25pt} - \_edef\_tmp{\_ea\_xstring \_the\_font}% + \_edef\_tmp{\_ea\_csstring \_the\_font}% \_ea \_fontlet \_csname \_tmp\_ea\_endcsname \_the\_font \_space #1\_relax \_csname \_tmp\_endcsname } diff --git a/Master/texmf-dist/tex/luatex/optex/fonts-select.opm b/Master/texmf-dist/tex/luatex/optex/fonts-select.opm index f9d63556393..ee8fa7709ba 100644 --- a/Master/texmf-dist/tex/luatex/optex/fonts-select.opm +++ b/Master/texmf-dist/tex/luatex/optex/fonts-select.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \fontfam {Fonts selection system <2020-01-23>} +\_codedecl \fontfam {Fonts selection system <2020-02-14>} \_def\_initunifonts {% \_ea\_newcount \_csname e@alloc@attribute@count\_endcsname @@ -12,8 +12,9 @@ \_gdef\_rfskipatX ##1" ##2\_relax{"##1"}% \_gdef\_doresizefont ##1{\_logfont{##1}% \_font##1=\_fontnamegen\_space \_sizespec \_relax}% - \_def \_fontnamegen{lmr10}% + \_def \_fontnamegen{ec-lmr10}% \_global\_let\_initunifonts=\_relax % we need not to do this work twice + \_global\_let\initunifonts=\_relax } \_def\_fontdecl [#1]#2#3#4#5#6#7"#8"{% \_initunifonts \_uniaccents @@ -21,7 +22,7 @@ \_isfont"#8"\_iffalse \_opwarning{Family [#1] skipped, font "#7" not found}\_ea\_ea\_ea\_endinput \_else \_def\_textfamily{#1}% - \_edef\_currfamily {\_xstring #2}% + \_edef\_currfamily {\_csstring #2}% \_def\_mainfamcommand{#2}% \_wterm {FONT: [#1] -- \string#2 \_detokenize{(#3)^^J mods:{#4} vars:{#5} math:{#6}}}% \_fi @@ -71,7 +72,7 @@ \_edef\_act{\_noexpand\_isinlist{,#2,}{,\_cs{_#1V},}}\_act \_iftrue #3\_fi } -\_def \_moddef #1#2{\_edef\_tmp{\_xstring#1}\_remfirstunderscore\_tmp +\_def \_moddef #1#2{\_edef\_tmp{\_csstring#1}\_remfirstunderscore\_tmp \_sdef{_f:\_currfamily:\_tmp}{#2\_reloading}% \_protected \_edef #1{\noexpand\_famdepend\noexpand#1{_f:\noexpand\_currfamily:\_tmp}}% \_ea \_ifx \_csname\_tmp\_endcsname #1\_else @@ -82,7 +83,7 @@ \_def\_famdepend#1#2{\_ifcsname#2\_endcsname \_csname#2\_ea\_endcsname \_else \_opwarning{\string#1 is undeclared in current family "\_currfamily", ignored}\_fi } -\_def\_famvardef#1{\_edef\_tmp{\_xstring#1}\_remfirstunderscore\_tmp +\_def\_famvardef#1{\_edef\_tmp{\_csstring#1}\_remfirstunderscore\_tmp \_ea\_famvardefA \_ea#1\_csname _ten\_tmp\_ea\_endcsname \_csname _tryload\_tmp\_ea\_endcsname \_csname \_tmp\_endcsname } @@ -95,7 +96,7 @@ \_sdef{_f:\_currfamily:\_tmp}{#3#2}% \_def#3{\_fontdef#2{\_reloading#5}}% \_ifx#1\tt \addto#1{\_fam\_ttfam}\fi - \_sdef{_currvar:\xstring#2}{#1}% + \_sdef{_currvar:\csstring#2}{#1}% \_ifx#1#4\_else \_public#4;\_fi \_fi } @@ -108,11 +109,11 @@ \_else \_edef\_famfile{f-\_famname}\_fi \_ifx \_famfile\_empty \_listfamnames \_fi \_isfile {f-\_famname.opm}\_iftrue - \_input "f-\_famname.opm"% - \_else \_isfile {fams-user.opm}\_iftrue \_input fams-user.opm \_fi + \_opinput {f-\_famname.opm} + \_else \_isfile {fams-user.opm}\_iftrue \_opinput {fams-user.opm} \_fi \_ifcsname _famf:\_famname\_endcsname \_edef\_famfile{\_cs{_famf:\_famname}}% \_else \_edef\_famfile{f-\_famname}\_fi - \_isfile {\_famfile.opm}\_iftrue \_input "\_famfile.opm"% + \_isfile {\_famfile.opm}\_iftrue \_opinput {\_famfile.opm} \_else \_opwarning{Family [#1] undeclared, "\_famfile.opm" not found}% \_fi \_fi \_relax } @@ -122,10 +123,10 @@ \_begingroup \_let\_famtext=\_wterm \_def\_faminfo [##1]##2##3##4{% - \_wterm{ \_space\_noexpand\_fontfam [##1] -- ##2}% + \_wterm{ \_space\_noexpand\fontfam [##1] -- ##2}% \_let\_famalias=\_famaliasA}% - \_input fams-ini.opm - \_isfile {fams-declared.opm}\_iftrue \_input fams-declared.opm \_fi + \_opinput {fams-ini.opm} + \_isfile {fams-user.opm}\_iftrue \_opinput {fams-user.opm} \_fi \_message{^^J}% \_endgroup } @@ -149,7 +150,8 @@ \_catalogsample={ABCDabcd Qsty fi fl áéíóúüů řžč ÁÉÍÓÚ ŘŽČ 0123456789} \_public - \fontfam \isfont \famvardef \moddef \catalogonly \catalogexclude \catalogsample ; + \fontfam \initunifonts \isfont \famvardef \moddef + \catalogonly \catalogexclude \catalogsample ; \_endcode %--------------------------------------------------- @@ -270,6 +272,19 @@ Maybe, one needs a context switching between `\rm`<-->`\bf` and `\it`<-->`\bi`. This is done by `\em` macro, see opmac-fonts.ofm. +\secc Math Fonts +%--------------- + +First usage of `\fontfam` loads UnicodeMath fonts too if the specified font +family is configured with an UnicodeMath font. If you neeed not this feature +(because preloaded 8bit math fonts seem to be sufficient for you) then write +`\noloadmath` before first `\fontfam`. + +If you want to use your specially selected UnicodeMath font then use +`\loadmath{[<font_file>]}` or `\loadmath{<font_name>}` before first +`\fontfam` is used. + + \secc Defining a font commands %----------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/hyphen-lan.opm b/Master/texmf-dist/tex/luatex/optex/hyphen-lan.opm index 9532243ebaf..86df5cdc46e 100644 --- a/Master/texmf-dist/tex/luatex/optex/hyphen-lan.opm +++ b/Master/texmf-dist/tex/luatex/optex/hyphen-lan.opm @@ -4,21 +4,21 @@ \_chardef\_enPatt=0 \_def\_pattlist{\_enPatt=0} -\_def\_langlist{en(USpreloaded)} +\_def\_langlist{en(USenglish)} \_sdef{_lan:0}{en} -\_sdef{_ulan:USpreloaded}{en} +\_sdef{_ulan:usenglish}{en} \_def\enlang{\_uselang{en}\_enPatt23} % \lefthyph=2 \righthyph=3 \_sdef{langspecific:en}{\_nonfrenchspacing} \_lefthyphenmin=2 \_righthyphenmin=3 % disallow x- or -xx breaks -\_input hyphen % en(USpreloaded) patterns from TeX82 +\_input hyphen % en(USenglish) patterns from TeX82 \_def\_preplang #1 #2 #3#4 #5 {% \_chardef#3=#4 - \_sdef{_lan:#4}{#1}\_sdef{_ulan:#2}{#1}% + \_sdef{_lan:#4}{#1}\_lowercase{\_sdef{_ulan:#2}}{#1}% \_def\_next{\_expandafter\_noexpand\_csname #1lang\_endcsname} - \_expandafter\_edef \_csname #1lang\_endcsname {% - \_noexpand\_loadpattrs #2 #4 + \_ea\_edef \_csname #1lang\_endcsname {% + \_lowercase{\_noexpand\_loadpattrs #2} #4 \_gdef\_next{\_noexpand\_uselang{#1}#3#5}% \_next } @@ -32,68 +32,68 @@ } \_def\_uselang#1#2#3#4{\_language=#2\_lefthyphenmin=#3\_righthyphenmin=#4\_relax \_frenchspacing % \nonfrenchspacing can be set in \cs{langspecific:lan} - \_cs{langscpecific:#1}% + \_cs{langspecific:#1}% } -\_def\_uselanguage#1{\_cs{\_cs{_ulan:#1}lan}} +\_def\_uselanguage#1{\_lowercase{\_cs{\_cs{_ulan:#1}lang}}} -\_preplang enus usenglishmax \_enusPatt 100 23 -\_preplang engb ukenglish \_engbPatt 101 23 -\_preplang it italian \_itPatt 102 22 -\_preplang ia interlingua \_iaPatt 103 22 -\_preplang id indonesian \_idPatt 104 22 +\_preplang enus USenglishmax \_enusPatt 100 23 +\_preplang engb UKenglish \_engbPatt 101 23 +\_preplang it Italian \_itPatt 102 22 +\_preplang ia Interlingua \_iaPatt 103 22 +\_preplang id Indonesian \_idPatt 104 22 -\_preplang cs czech \_csPatt 115 23 -\_preplang sk slovak \_skPatt 116 23 -\_preplang de ngerman \_dePatt 121 22 -\_preplang fr french \_frPatt 122 22 -\_preplang pl polish \_plPatt 123 22 -\_preplang cy welsh \_cyPatt 124 23 -\_preplang da danish \_daPatt 125 22 -\_preplang es spanish \_esPatt 126 22 -\_preplang sl slovenian \_slPatt 128 22 -\_preplang fi finnish \_fiPatt 129 22 -\_preplang hy hungarian \_huPatt 130 22 -\_preplang tr turkish \_trPatt 131 22 -\_preplang et estoniak \_etPatt 132 23 -\_preplang eu basque \_euPatt 133 22 -\_preplang ga irish \_gaPatt 134 23 -\_preplang nb bokmal \_nbPatt 135 22 -\_preplang nn nynorsk \_nnPatt 136 22 -\_preplang nl dutch \_nlPatt 137 22 -\_preplang pt portuguese \_ptPatt 138 23 -\_preplang ro romanian \_roPatt 139 22 -\_preplang hr croatian \_hrPatt 140 22 -\_preplang zh pinyin \_zhPatt 141 11 -\_preplang is icelandic \_isPatt 142 22 -\_preplang hsb uppersorbian \_hsbPatt 143 22 -\_preplang af afrikaans \_afPatt 144 12 -\_preplang gl galician \_glPatt 145 22 -\_preplang kmr kurmanji \_kmrPatt 146 22 -\_preplang tk turkmen \_tkPatt 147 22 -\_preplang la latin \_laPatt 148 22 -\_preplang lac classiclatin \_lacPatt 149 22 -\_preplang lal liturgicallatin \_lalPatt 150 22 -\_preplang elm monogreek \_elmPatt 201 11 -\_preplang elp greek \_elpPatt 202 11 -\_preplang grc ancientgreek \_grcPatt 203 11 -\_preplang ca catalan \_caPatt 204 22 -\_preplang cop coptic \_copPatt 205 11 -\_preplang mn mongolian \_mnPatt 206 22 -\_preplang sa sanskrit \_saPatt 207 13 -\_preplang ru russian \_ruPatt 208 22 -\_preplang uk ukrainian \_ukPatt 209 22 -\_preplang hy armenian \_hyPatt 210 12 -\_preplang as assamese \_asPatt 211 11 -\_preplang hi hindi \_hiPatt 212 11 -\_preplang kn kannada \_knPatt 213 11 -\_preplang lv latvian \_lvPatt 215 22 -\_preplang lt lithuanian \_ltPatt 216 22 -\_preplang ml malayalam \_mlPatt 217 11 -\_preplang mr marathi \_mrPatt 218 11 -\_preplang or oriya \_orPatt 219 11 -\_preplang pa panjabi \_paPatt 220 11 -\_preplang ta tamil \_taPatt 221 11 -\_preplang te telugu \_tePatt 222 11 +\_preplang cs Czech \_csPatt 115 23 +\_preplang sk Slovak \_skPatt 116 23 +\_preplang de nGerman \_dePatt 121 22 +\_preplang fr French \_frPatt 122 22 +\_preplang pl Polish \_plPatt 123 22 +\_preplang cy Welsh \_cyPatt 124 23 +\_preplang da Danish \_daPatt 125 22 +\_preplang es Spanish \_esPatt 126 22 +\_preplang sl Slovenian \_slPatt 128 22 +\_preplang fi Finnish \_fiPatt 129 22 +\_preplang hy Hungarian \_huPatt 130 22 +\_preplang tr Turkish \_trPatt 131 22 +\_preplang et Estoniak \_etPatt 132 23 +\_preplang eu Basque \_euPatt 133 22 +\_preplang ga Irish \_gaPatt 134 23 +\_preplang nb Bokmal \_nbPatt 135 22 +\_preplang nn Nynorsk \_nnPatt 136 22 +\_preplang nl Dutch \_nlPatt 137 22 +\_preplang pt Portuguese \_ptPatt 138 23 +\_preplang ro Romanian \_roPatt 139 22 +\_preplang hr Croatian \_hrPatt 140 22 +\_preplang zh Pinyin \_zhPatt 141 11 +\_preplang is Icelandic \_isPatt 142 22 +\_preplang hsb Uppersorbian \_hsbPatt 143 22 +\_preplang af Afrikaans \_afPatt 144 12 +\_preplang gl Galician \_glPatt 145 22 +\_preplang kmr Kurmanji \_kmrPatt 146 22 +\_preplang tk Turkmen \_tkPatt 147 22 +\_preplang la Latin \_laPatt 148 22 +\_preplang lac classicLatin \_lacPatt 149 22 +\_preplang lal liturgicalLatin \_lalPatt 150 22 +\_preplang elm monoGreek \_elmPatt 201 11 +\_preplang elp Greek \_elpPatt 202 11 +\_preplang grc ancientGreek \_grcPatt 203 11 +\_preplang ca Catalan \_caPatt 204 22 +\_preplang cop Coptic \_copPatt 205 11 +\_preplang mn Mongolian \_mnPatt 206 22 +\_preplang sa Sanskrit \_saPatt 207 13 +\_preplang ru Russian \_ruPatt 208 22 +\_preplang uk Ukrainian \_ukPatt 209 22 +\_preplang hy Armenian \_hyPatt 210 12 +\_preplang as Assamese \_asPatt 211 11 +\_preplang hi Hindi \_hiPatt 212 11 +\_preplang kn Kannada \_knPatt 213 11 +\_preplang lv Latvian \_lvPatt 215 22 +\_preplang lt Lithuanian \_ltPatt 216 22 +\_preplang ml Malayalam \_mlPatt 217 11 +\_preplang mr Marathi \_mrPatt 218 11 +\_preplang or Oriya \_orPatt 219 11 +\_preplang pa Panjabi \_paPatt 220 11 +\_preplang ta Tamil \_taPatt 221 11 +\_preplang te Telugu \_tePatt 222 11 \message{Language hyph.patterns ready to load: \_langlist. Use \string\<shortname>lang to initialize language, diff --git a/Master/texmf-dist/tex/luatex/optex/if-macros.opm b/Master/texmf-dist/tex/luatex/optex/if-macros.opm index c3e4619110c..5f3f4d91cf0 100644 --- a/Master/texmf-dist/tex/luatex/optex/if-macros.opm +++ b/Master/texmf-dist/tex/luatex/optex/if-macros.opm @@ -19,9 +19,11 @@ % \loop like in plain\TeX/: -\_def \_loop #1\repeat{\_def\_body{#1}\_iterate} +\_def \_loop #1\_repeat{\_def\_body{#1}\_iterate} +\_def \loop #1\repeat{\_def\_body{#1}\_iterate} +\_let \_repeat=\_fi % this makes \loop...\if...\repeat skippable +\_let \repeat=\_fi \_def \_iterate {\_body \_ea \_iterate \_fi} -\_let \repeat=\fi % this makes \loop...\if...\repeat skippable % \isempty{text}\iftrue, \isempty{text}\iffalse: @@ -38,6 +40,15 @@ \_ea\_tmp#1\_endlistsep#2\_end/_% } +% \isequal{text}{text}\iftrue ... + +\_def\_isequal#1#2#3{\_directlua{% + if "\_luaescapestring{#1}"=="\_luaescapestring{#2}" then else tex.print("\_nbb unless") end}#3} + +% \ismacro\macro{text}\iftrue ... + +\_def\_ismacro#1{\_ea\_isequal\_ea{#1}} + % \isnextchar <char>{exec if true}{exec if false} \_long\_def\_isnextchar#1#2#3{\_begingroup\_toks0={\_endgroup#2}\_toks1={\_endgroup#3}% @@ -62,8 +73,8 @@ \_public - \newif \loop \repeat \isempty \istoksempty \isinlist \isnextchar - \isfile \removespaces ; + \newif \isempty \istoksempty \isinlist \isnextchar + \isfile \ismacro \isequal \removespaces ; \_endcode %--------------------------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/logos.opm b/Master/texmf-dist/tex/luatex/optex/logos.opm index 8d96d332ff0..f691aa0b61c 100644 --- a/Master/texmf-dist/tex/luatex/optex/logos.opm +++ b/Master/texmf-dist/tex/luatex/optex/logos.opm @@ -5,7 +5,7 @@ \_protected\_def \_TeX {T\_kern-.1667em\_lower.5ex\_hbox{E}\_kern-.125emX\_ignoreslash} \_protected\_def \_OpTeX {Op\kern-.1em\_TeX} \_protected\_def \_LuaTeX {Lua\_TeX} -\_protected\_def \XeTeX {X\_kern-.125em\_phantom E% +\_protected\_def \_XeTeX {X\_kern-.125em\_phantom E% \_pdfsave\_rlap{\_pdfscale{-1}{1}\_lower.5ex\_hbox{E}}\_pdfrestore \_kern-.1667em \_TeX} \_def\_LaTeX{\_tmpdim=.42ex L\_kern-.36em \_kern \_slantcorr % slant correction \_raise \_tmpdim \_hbox{\_thefontscale[710]A}% @@ -20,8 +20,15 @@ \_def\_OPmac{\_leavevmode \_lower.2ex\_hbox{\_thefontscale[1400]O}\_kern-.86em P{\_em mac}\_ignoreslash} \_def\_CS{$\_cal C$\_kern-.1667em\_lower.5ex\_hbox{$\_cal S$}\_ignoreslash} -\_def\_csplain{\_CS plain} - +\_def\_csplain{\_CS plain\_ignoreslash} +\_def\_ignslash#1{\_ifx/#1\_else #1\_fi} + +\_toksapp \_pdfstringout {% conversion for PDF outlines + \_def\TeX{TeX\_ignslash}\_def\OpTeX{OpTeX\_ignslash}% + \_def\LuaTeX{LuaTeX\_ignslash}\_def\XeTeX{XeTeX\_ignslash}% + \_def\LaTeX{LaTeX\_ignslash}\_def\OPmac{OPmac\_ignslash}% + \_def\CS{CS}\_def\csplain{csplain\_ignslash}% +} \_public \TeX \OpTeX \LuaTeX \XeTeX \LaTeX \OPmac \CS \csplain diff --git a/Master/texmf-dist/tex/luatex/optex/luatex-ini.opm b/Master/texmf-dist/tex/luatex/optex/luatex-ini.opm index 7ce9667f79b..d84e0da8b1a 100644 --- a/Master/texmf-dist/tex/luatex/optex/luatex-ini.opm +++ b/Master/texmf-dist/tex/luatex/optex/luatex-ini.opm @@ -2,13 +2,6 @@ \_codedecl \pdfprimitive {LuaTeX initialization code <2020-01-23>} -\_directlua { - % enable all primitives without prefixing - tex.enableprimitives('', tex.extraprimitives()) - % enable all primitives with _ prefix - tex.enableprimitives('_', tex.extraprimitives()) -} - \_let\_pdfpagewidth \pagewidth \_let\_pdfpageheight \pageheight \_let\_pdfadjustspacing \adjustspacing diff --git a/Master/texmf-dist/tex/luatex/optex/math-macros.opm b/Master/texmf-dist/tex/luatex/optex/math-macros.opm index a71a089ab24..27bea8dcc41 100644 --- a/Master/texmf-dist/tex/luatex/optex/math-macros.opm +++ b/Master/texmf-dist/tex/luatex/optex/math-macros.opm @@ -1,6 +1,6 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \sin {Math macros plus mathchardefs <2020-01-23>} +\_codedecl \sin {Math macros plus mathchardefs <2020-02-14>} %% The character _ as subscript prefix: @@ -274,8 +274,8 @@ \_protected\_def\lg {\_mathop{\_rm lg}\_nolimits} \_protected\_def\ln {\_mathop{\_rm ln}\_nolimits} \_protected\_def\lim {\_mathop{\_rm lim}} -\_protected\_def\limsup {\_mathop{\_rm lim\_,sup}} -\_protected\_def\liminf {\_mathop{\_rm lim\_,inf}} +\_protected\_def\limsup {\_mathop{\_rm lim\_thinsk sup}} +\_protected\_def\liminf {\_mathop{\_rm lim\_thinsk inf}} \_protected\_def\sin {\_mathop{\_rm sin}\_nolimits} \_protected\_def\arcsin {\_mathop{\_rm arcsin}\_nolimits} \_protected\_def\sinh {\_mathop{\_rm sinh}\_nolimits} @@ -495,7 +495,7 @@ \_protected\_def\_cases#1{\_left\{\_thinsk\_vcenter{\_normalbaselines\_math \_ialign{$##\_hfil$&\_quad##\_hfil\_crcr#1\_crcr}}\_right.} -\_protected\_def\_matrix#1{\_null\_,\_vcenter{\_normalbaselines\_math +\_protected\_def\_matrix#1{\_null\_thinsk\_vcenter{\_normalbaselines\_math \_ialign{\_hfil$##$\_hfil&&\_quad\_hfil$##$\_hfil\_crcr \_mathstrut\_crcr\_noalign{\_kern-\_baselineskip} #1\_crcr\_mathstrut\_crcr\_noalign{\_kern-\_baselineskip}}}\_thinsk} @@ -521,7 +521,7 @@ \_def\_openupA{\_advance\_lineskip by\_dimen0 \_advance\_baselineskip by\_dimen0 \_advance\_lineskiplimit by\_dimen0 } -\_def\_eqalign#1{\_null\_,\_vcenter{\_openup\_jot\_math +\_def\_eqalign#1{\_null\_thinsk\_vcenter{\_openup\_jot\_math \_ialign{\_strut\_hfil$\_displaystyle{##}$&$\_displaystyle{{}##}$\_hfil \_crcr#1\_crcr}}\_thinsk} \_newifi\_ifdtop @@ -796,7 +796,7 @@ \_protected\_def \_not#1{% \_ifx #1<\_nless \_else \_ifx #1>\_ngtr \_else - \_edef\_tmpn{\_xstring#1}% + \_edef\_tmpn{\_csstring#1}% \_ifcsname _not\tmpn\_endcsname \_csname _not\tmpn\_endcsname \_else \_ifcsname _n\tmpn\_endcsname \_csname _n\tmpn\_endcsname \_else \_mathrel{\_mathord{\_notchar}\_mathord{#1}}% diff --git a/Master/texmf-dist/tex/luatex/optex/math-preload.opm b/Master/texmf-dist/tex/luatex/optex/math-preload.opm index 70cc5e798f7..a2a5669831e 100644 --- a/Master/texmf-dist/tex/luatex/optex/math-preload.opm +++ b/Master/texmf-dist/tex/luatex/optex/math-preload.opm @@ -130,9 +130,12 @@ \_newdimen\_ptunit \_ptunit=1pt \_newdimen\_ptmunit \_ptmunit=1\_ptunit +\_suppressfontnotfounderror=1 \_setmathsizes[10/7/5]\_normalmath +\_suppressfontnotfounderror=0 -\_public \normalmath \boldmath \setmathsizes +\_public + \normalmath \boldmath \setmathsizes \bf \it \bi \tt \mit \cal \bbchar \frak \script \ptunit ; \_endcode %--------------------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/math-unicode.opm b/Master/texmf-dist/tex/luatex/optex/math-unicode.opm new file mode 100644 index 00000000000..9b4cf60acbc --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/math-unicode.opm @@ -0,0 +1,155 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +\_codedecl \loadmath {Unicode Math fonts <2020-02-14>} + +\_newifi \_ifmathloading \_mathloadingtrue + +\_def\_noloadmath{\_mathloadingfalse} +\_def\_doloadmath{\_mathloadingtrue} + +\_def\_loadmath#1{% + \_ifmathloading + \_initunifonts + \_isfont"#1"\_iffalse + \_opwarning{Math font "#1" not found, skipped...}% + \_else + \_def\_unimathfont{#1}% + \_def\_normalmath{% + \_loadumathfamily 1 {\_unimathfont}{} % Base font + \_loadmathfamily 4 rsfs % script + \_setmathdimens + }% + \_let\_boldmath=\_normalmath + \_addto\_boldmath{\_pdfliteral direct {2 Tr .3 w}\_aftergroup\_noboldmath}% + \_def\_noboldmath{\_pdfliteral direct {0 Tr 0 w}}% faked bold only :-( + \_normalmath + \_wterm {MATH-FONT: "#1" -- unicode math prepared.}% + \_setctable\_optexcatcodes \_input unimath-codes.opm \_restorectable + \_mathloadingfalse + \_fi\_fi} + +\_def\_loadboldmath#1#2\to #3{% + \_def\_tmp{#3}\_ifx\_unimathfont\_tmp % do work only if #3 is loaded as normal Math + \_isfont"#1"\_iffalse + \_opwarning{Bold-Math font "#1" not found, skipped...} + \_else + \_def\_unimathboldfont{#1}% + \_def\_boldmath{% + \_loadumathfamily 1 {\_unimathboldfont}{} % Base font + \_loadmathfamily 4 rsfs % script + \_setmathdimens + }% + \_wterm {MATH-FONT: "#1" -- unicode math bold prepared.}% + \_fi\_fi} + +\_def\_umathname#1#2{"#1:\_mfontfeatures#2"} +\_def\_mfontfeatures{mode=base;script=math;} + +\_def\_loadumathfamily #1 #2#3 {% + \_edef\_optsizesave{\_the\_optsize}% + \_optsize=\_sizemtext \_font\_mF=\_umathname{#2}{#3} at\_optsize \_textfont#1=\_mF + \_ifnum#1=1 \_textfont2=\_mF \_textfont3=\_mF \_fi + \_optsize=\_sizemscript \_font\_mF=\_umathname{#2}{+ssty=0;#3} at\_optsize \_scriptfont#1=\_mF + \_ifnum#1=1 \_scriptfont2=\_mF \_scriptfont3=\_mF \_fi + \_optsize=\_sizemsscript \_font\_mF=\_umathname{#2}{+ssty=1;#3} at\_optsize \_scriptscriptfont#1=\_mF + \_ifnum#1=1 \_scriptscriptfont2=\_mF \_scriptscriptfont3=\_mF \_fi + \_optsize=\_optsizesave \_relax +} + +\_newcount\umathnumA \_newcount\umathnumB + +\def\umathcorr#1#2{\expandafter#1\expandafter{\the#2}} +\def\umathprepare#1{\def\umathscanholes##1[#1]##2##3\relax{##2}} +\def\umathvalue#1{\expandafter\umathscanholes\umathcharholes[#1]{#1}\relax} + +\def\umathcharholes{% holes in math alphabets: + [119893]{"210E}[119965]{"212C}[119968]{"2130}[119969]{"2131}% + [119971]{"210B}[119972]{"2110}[119975]{"2112}[119976]{"2133}[119981]{"211B}% + [119994]{"212F}[119996]{"210A}[120004]{"2134}% + [120070]{"212D}[120075]{"210C}[120076]{"2111}[120085]{"211C}[120093]{"2128}% + [120122]{"2102}[120127]{"210D}[120133]{"2115}[120135]{"2119} + [120136]{"211A}[120137]{"211D}[120145]{"2124}% +} +\def\umathrange#1#2{\umathnumB=#2\relax \umathrangeA#1} +\def\umathrangeA#1-#2{\umathnumA=`#1\relax + \loop + \umathcorr\umathprepare\umathnumB + \Umathcode \umathnumA = 7 1 \umathcorr\umathvalue{\umathnumB} + \ifnum\umathnumA<`#2\relax + \advance\umathnumA by1 \advance\umathnumB by1 + \repeat +} +\def\umathrangeGREEK{\begingroup + \lccode`A="0391 \lccode`Z="03A9 + \lowercase{\endgroup\umathrange{A-Z}}} +\def\umathrangegreek{\begingroup + \lccode`A="03B1 \lccode`Z="03D6 + \lowercase{\endgroup\umathrange{A-Z}}} +\def\greekdef#1{\ifx#1\relax \else + \begingroup \lccode`X=\umathnumB \lowercase{\endgroup \def#1{X}}% + \advance\umathnumB by 1 + \expandafter\greekdef \fi +} + +\_public + \loadmath \loadboldmath \noloadmath \doloadmath ; + +\_endcode + +-------------------------------------------- + +The `\loadmath` macro loads math fonts and sets math-codes using \input +unimath-codes.opm. If UnicodeMath font is loaded then `\_mathloadingfalse` +is set, so new UnicodeMath font isn't loaded until `\domathload` is used. + +`\loadadboldmath{<bold-font>} \to {<normal-font>}` loads bold variant only +if <normal-font> was sucessully loaded. For example: + +\begtt +\loadmath {[xitsmath-regular]} +\loadboldmath {[xitsmath-bold]} \to {[xitsmath-regular]} +\endtt + +You can combine more fonts, if you register them to another +math families (5, 6, 7, etc.) in \normalmath macro. + +The default value of \normalmath shows a combination of base Unicode Math +font with 8bit Math font at family 4. See definition of \script macro where +\fam4 is used. Of course, we need to set \rmvariables too, because 8bit font +accepts only codes less than 255. + +See http://tex.stackexchange.com/questions/308749/ for more technical details. + +The poor bold is used for complete bold vaiant of the font. If the selected +font has its bold vaiant (like xits-math), you can re-define \boldmath macro +by: + +\def\boldmath{% + \loadumathfamily 1 {[xitsmath-bold]}{} % Base font + \loadmathfamily 4 rsfs % script + \setmathdimens +} + +XITSmath-bold needs correction: the norm symbol ||x|| is missing here. So, you +can define: + +\def\boldmath{% + \loadumathfamily 1 {[xitsmath-bold]}{} % Base font + \loadmathfamily 4 rsfs % script + \loadumathfamily 5 {[xitsmath-regular]}{} + \def\|{\Udelimiter 0 5 "02016 }% % norm delimiter from family 5 + \setmathdimens +} + +-------------------- + +\loadmath{[XITSMath-Regular]} ... XITS MATH^^J +\loadmath{[latinmodern-math]} ... Latin Modern Math^^J +\loadmath{[texgyretermes-math]} ... TeXGyre Termes Math^^J +\loadmath{[texgyrebonum-math]} ... TeXGyre Bonum Math^^J +\loadmath{[texgyrepagella-math]} ... TeXGyre Pagella Math^^J +\loadmath{[texgyreschola-math]} ... TeXGyre Schola Math^^J +\loadmath{[texgyredejavu-math]} ... TeXGyre DeJaVu Math^^J +\loadmath{[LibertinusMath-Regular]} ... Libertinus Math^^J +\loadmath{[FiraMath-Regular]} ... Fira Math^^J +\loadmath{[Asana-Math]} ... Asana Math^^J diff --git a/Master/texmf-dist/tex/luatex/optex/mathclass.opm b/Master/texmf-dist/tex/luatex/optex/mathclass.opm new file mode 100644 index 00000000000..458431abcad --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/mathclass.opm @@ -0,0 +1,1591 @@ +# File: MathClass.txt +# Revision: 15 +# Date: 2017-06-01, 12:35:00 GMT +# +# © 2017 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr25/ +# +# ------------------------------------------------ +# This file is a classification of characters based on their usage in +# mathematical notation. +# +# While the contents of this file represent the best information +# available to the authors and the Unicode Technical Committee as +# of the date referenced above, it is likely that the information +# in this file will change from time to time. +# +# This file is *NOT* formally part of the Unicode Character Database +# at this time. +# +# The character encoding of this plain-text file is UTF-8. +# +# The data consists of 2 fields. +# +# 1: code point or range +# +# 2: class, one of: +# +# N - Normal - includes all digits and symbols requiring only one form +# A - Alphabetic +# B - Binary +# C - Closing - usually paired with opening delimiter +# D - Diacritic +# F - Fence - unpaired delimiter (often used as opening or closing) +# G - Glyph_Part - piece of large operator +# L - Large - n-ary or large operator, often takes limits +# O - Opening - usually paired with closing delimiter +# P - Punctuation +# R - Relation - includes arrows +# S - Space +# U - Unary - operators that are only unary +# V - Vary - operators that can be unary or binary depending on context +# X - Special - characters not covered by other classes +# +# Fields are delimited by ';'. Spaces adjacent to the delimiter or the '#' are +# not significant. Future versions of this file may use different amounts of +# whitespace. +# +# Some character positions in the Mathematical Alphanumeric Symbols block are +# reserved and have been mapped to the Letterlike Symbols block in Unicode. +# This is indicated in 24 special purpose comments. +# +# The character repertoire of this revision is the repertoire of Unicode +# Version 9.0. For more information see Revision 15 or later of UTR #25. +# ------------------------------------------------ + +0020;S +0021;N +0023;N +0024;N +0025;N +0026;N +0028;O +0029;C +002A;N +002B;V +002C;P +002D;N +002E;P +002F;B +0030..0039;N +003A;P +003B;P +003C;R +003D;R +003E;R +003F;P +0040;N +0041..005A;A +005B;O +005C;B +005D;C +005E;N +005F;N +0060;D +0061..007A;A +007B;O +007C;F +007D;C +007E;N +00A0;S +00A1;P +00A2;N +00A3;N +00A4;N +00A5;N +00A6;N +00A7;N +00A8;D +00AC;U +00AF;D +00B0;N +00B1;V +00B2;N +00B3;N +00B4;N +00B5;N +00B6;N +00B7;B +00B9;N +00BC;N +00BD;N +00BE;N +00BF;P +00D7;B +00F7;B +0131;A +0237;A +02C6;D +02C7;D +02D8;D +02D9;D +02DA;D +02DC;D +0300;D +0301;D +0302;D +0303;D +0304;D +0305;D +0306;D +0307;D +0308;D +030A;D +030C;D +0311;D +0323;D +032C;D +032D;D +032E;D +032F;D +0330;D +0331;D +0332;D +0333;D +0338;D +033A;D +033F;D +0346;D +0391;A +0392;A +0393;A +0394;A +0395;A +0396;A +0397;A +0398;A +0399;A +039A;A +039B;A +039C;A +039D;A +039E;A +039F;A +03A0;A +03A1;A +03A3;A +03A4;A +03A6;A +03A7;A +03A8;A +03A9;A +03B1;A +03B2;A +03B3;A +03B4;A +03B5;A +03B6;A +03B7;A +03B8;A +03B9;A +03BA;A +03BB;A +03BC;A +03BD;A +03BE;A +03BF;A +03C0;A +03C1;A +03C3;A +03C4;A +03C5;A +03C6;A +03C7;A +03C8;A +03C9;A +03D0;A +03D1;A +03D2;A +03D5;A +03D6;A +03D8;N +03D9;N +03DA;A +03DB;A +03DC;A +03DD;A +03E0;A +03E1;A +03F0;A +03F1;A +03F4;A +03F5;A +03F6;N +0428;A +0606;L +0607;L +0608;A +2000;S +2001;S +2002;S +2003;S +2004;S +2005;S +2006;S +2007;S +2009;S +200A;S +200B;S +2010;P +2012;P +2013;P +2014;P +2016;F +2020;R +2021;R +2022;B +2026;N +2032;N +2033;N +2034;N +2035;N +2036;N +2037;N +203B;N +203C;N +2040;B +2044;B +204E;B +204F;R +2050;R +2051;N +2052;N +2057;N +205F;S +2061;B +2062;B +2063;P +2064;X +207A..207E;N +208A..208E;N +20D0;D +20D1;D +20D2;D +20D3;X +20D4;D +20D5;D +20D6;D +20D7;D +20D8;D +20D9;D +20DA;D +20DB;D +20DC;D +20DD;D +20DE;D +20DF;D +20E1;D +20E4;D +20E5;D +20E6;D +20E7;D +20E8;D +20E9;D +20EA;D +20EB;D +20EC;D +20ED;D +20EE;D +20EF;D +2102;A +2107;N +210A;A +210B;A +210C;A +210D;A +210E;N +210F;N +2110;A +2111;A +2112;A +2113;A +2115;A +2118;A +2119;A +211A;A +211B;A +211C;A +211D;A +2124;A +2126;N +2127;N +2128;A +2129;N +212B;A +212C;A +212D;A +212F;A +2130;A +2131;A +2132;N +2133;A +2134;A +2135;A +2136;A +2137;A +2138;A +213C;A +213D;A +213E;N +213F;A +2140;L +2141;N +2142;N +2143;N +2144;N +2145;N +2146;N +2147;N +2148;N +2149;N +214B;N +2190..21B3;R +21B6;R +21B7;R +21BA..21FF;R +2200;U +2201;U +2202;N +2203;U +2204;U +2205;N +2206;U +2207;U +2208;R +2209;R +220A;R +220B;R +220C;R +220D;R +220E;N +220F;L +2210;L +2211;L +2212;V +2213;V +2214;B +2215;B +2216;B +2217;B +2218;B +2219;B +221A;L +221B;L +221C;L +221D;R +221E;N +221F;N +2220;N +2221;N +2222;N +2223;R +2224;R +2225;R +2226;R +2227;B +2228;B +2229;B +222A;B +222B;L +222C;L +222D;L +222E;L +222F;L +2230;L +2231;L +2232;L +2233;L +2234;R +2235;R +2236;R +2237;R +2238;B +2239;R +223A;R +223B;R +223C;R +223D;R +223E;B +223F;N +2240;B +2241;R +2242;R +2243;R +2244;R +2245;R +2246;R +2247;R +2248;R +2249;R +224A;R +224B;R +224C;R +224D;R +224E;R +224F;R +2250;R +2251;R +2252;R +2253;R +2254;R +2255;R +2256;R +2257;R +2258;R +2259;R +225A;R +225B;R +225C;R +225D;R +225E;R +225F;R +2260;R +2261;R +2262;R +2263;R +2264;R +2265;R +2266;R +2267;R +2268;R +2269;R +226A;R +226B;R +226C;R +226D;R +226E;R +226F;R +2270;R +2271;R +2272;R +2273;R +2274;R +2275;R +2276;R +2277;R +2278;R +2279;R +227A;R +227B;R +227C;R +227D;R +227E;R +227F;R +2280;R +2281;R +2282;R +2283;R +2284;R +2285;R +2286;R +2287;R +2288;R +2289;R +228A;R +228B;R +228C;B +228D;B +228E;B +228F;R +2290;R +2291;R +2292;R +2293;B +2294;B +2295;B +2296;B +2297;B +2298;B +2299;B +229A;B +229B;B +229C;B +229D;B +229E;B +229F;B +22A0;B +22A1;B +22A2;R +22A3;R +22A4;N +22A5;R +22A6;R +22A7;R +22A8;R +22A9;R +22AA;R +22AB;R +22AC;R +22AD;R +22AE;R +22AF;R +22B0;R +22B1;R +22B2;R +22B3;R +22B4;R +22B5;R +22B6;R +22B7;R +22B8;R +22B9;B +22BA;B +22BB;B +22BC;B +22BD;B +22BE;N +22BF;N +22C0;L +22C1;L +22C2;L +22C3;L +22C4;B +22C5;B +22C6;B +22C7;B +22C8;R +22C9;B +22CA;B +22CB;B +22CC;B +22CD;R +22CE;B +22CF;B +22D0;R +22D1;R +22D2;B +22D3;B +22D4;R +22D5;R +22D6;R +22D7;R +22D8;R +22D9;R +22DA;R +22DB;R +22DC;R +22DD;R +22DE;R +22DF;R +22E0;R +22E1;R +22E2;R +22E3;R +22E4;R +22E5;R +22E6;R +22E7;R +22E8;R +22E9;R +22EA;R +22EB;R +22EC;R +22ED;R +22EE;R +22EF;R +22F0;R +22F1;R +22F2;R +22F3;R +22F4;R +22F5;R +22F6;R +22F7;R +22F8;R +22F9;R +22FA;R +22FB;R +22FC;R +22FD;R +22FE;R +22FF;R +2300;N +2302;N +2305;B +2306;B +2308;O +2309;C +230A;O +230B;C +2310;N +2311;N +2319;N +231C;O +231D;C +231E;O +231F;C +2320..2321;G +2322;R +2323;R +#2329;O +#232A;C +2336;N +233D;B +233F;R +237C;R +2394;N +239B..23AF;G +23B0;R +23B1;R +23B2..23B3;G +23B4;N +23B5;N +23B6;N +23B7;G +23D0;G +23DC;N +23DD;N +23DE;N +23DF;N +23E0;N +23E1;N +23E2;N +23E3;N +23E4;N +23E5;N +23E6;N +23E7;N +24C8;N +25A0;N +25A1;N +25AA;N +25AB;N +25AD;N +25AE;N +25AF;N +25B0;N +25B1;N +25B2;B +25B3;B +25B4;B +25B5;B +25B6;B +25B7;B +25B8;B +25B9;B +25BC;B +25BD;B +25BE;B +25BF;B +25C0;B +25C1;B +25C2;B +25C3;B +25C4;B +25C5;B +25C6;N +25C7;N +25C8;N +25C9;N +25CA;B +25CB;B +25CE;N +25CF;N +25D0..25D3;N +25D6;N +25D7;N +25E2;N +25E3;N +25E4;N +25E5;N +25E6;B +25E7..25EA;N +25EB;B +25EC;B +25EF;N +25F8;B +25F9;B +25FA;B +25FB;B +25FC;B +25FD;B +25FE;B +25FF;B +2605;B +2606;B +2609;N +260C;N +263D;N +263E;N +263F;N +2640;N +2641;N +2642;N +2643;N +2644;N +2646;N +2647;N +2648;N +2649;N +2660;N +2661;N +2662;N +2663;N +2664;N +2665;N +2666;N +2667;N +2669;N +266D;N +266E;N +266F;N +2680;N +2681;N +2682;N +2683;N +2684;N +2685;N +2686;N +2687;N +2688;N +2689;N +26AA;N +26AB;N +26AC;N +26B2;N +2713;N +2717;N +2720;N +272A;N +2736;N +2772;O +2773;C +27C0;N +27C1;N +27C2;R +27C3;R +27C4;R +27C5;R +27C6;R +27C7;R +27C8;R +27C9;R +27CA;R +27CB;R +27CC;L +27CD;R +27CE;B +27CF;B +27D0;N +27D1;B +27D2;R +27D3;R +27D4;R +27D5;L +27D6;L +27D7;L +27D8;L +27D9;L +27DA;R +27DB;R +27DC;R +27DD;R +27DE;R +27DF;R +27E0;B +27E1;B +27E2;B +27E3;B +27E4;B +27E5;B +27E6;O +27E7;C +27E8;O +27E9;C +27EA;O +27EB;C +27EC;O +27ED;C +27EE;O +27EF;C +27F0;R +27F1;R +27F2;R +27F3;R +27F4;R +27F5;R +27F6;R +27F7;R +27F8;R +27F9;R +27FA;R +27FB;R +27FC;R +27FD;R +27FE;R +27FF;R +2900;R +2901;R +2902;R +2903;R +2904;R +2905;R +2906;R +2907;R +2908;R +2909;R +290A;R +290B;R +290C;R +290D;R +290E;R +290F;R +2910;R +2911;R +2912;R +2913;R +2914;R +2915;R +2916;R +2917;R +2918;R +2919;R +291A;R +291B;R +291C;R +291D;R +291E;R +291F;R +2920;R +2921;R +2922;R +2923;R +2924;R +2925;R +2926;R +2927;R +2928;R +2929;R +292A;R +292B;R +292C;R +292D;R +292E;R +292F;R +2930;R +2931;R +2932;R +2933;R +2934;R +2935;R +2936;R +2937;R +2938;R +2939;R +293A;R +293B;R +293C;R +293D;R +293E;R +293F;R +2940;R +2941;R +2942;R +2943;R +2944;R +2945;R +2946;R +2947;R +2948;R +2949;R +294A;R +294B;R +294C;R +294D;R +294E;R +294F;R +2950;R +2951;R +2952;R +2953;R +2954;R +2955;R +2956;R +2957;R +2958;R +2959;R +295A;R +295B;R +295C;R +295D;R +295E;R +295F;R +2960;R +2961;R +2962;R +2963;R +2964;R +2965;R +2966;R +2967;R +2968;R +2969;R +296A;R +296B;R +296C;R +296D;R +296E;R +296F;R +2970;R +2971;R +2972;R +2973;R +2974;R +2975;R +2976;R +2977;R +2978;R +2979;R +297A;R +297B;R +297C;R +297D;R +297E;R +297F;R +2980;F +2981;N +2982;F +2983;O +2984;C +2985;O +2986;C +2987;O +2988;C +2989;O +298A;C +298B;O +298C;C +298D;O +298E;C +298F;O +2990;C +2991;O +2992;C +2993;O +2994;C +2995;O +2996;C +2997;O +2998;C +2999;F +299A;F +299B;N +299C;N +299D;N +299E;N +299F;N +29A0;N +29A1;N +29A2;N +29A3;N +29A4;N +29A5;N +29A6;N +29A7;N +29A8;N +29A9;N +29AA;N +29AB;N +29AC;N +29AD;N +29AE;N +29AF;N +29B0;N +29B1;N +29B2;N +29B3;N +29B4;N +29B5;N +29B6;B +29B7;B +29B8;B +29B9;B +29BA;N +29BB;N +29BC;N +29BD;N +29BE;N +29BF;N +29C0;B +29C1;B +29C2;N +29C3;N +29C4;B +29C5;B +29C6;B +29C7;B +29C8;B +29C9;N +29CA;N +29CB;N +29CC;N +29CD;N +29CE;R +29CF;R +29D0;R +29D1;R +29D2;R +29D3;R +29D4;R +29D5;R +29D6;B +29D7;B +29D8;O +29D9;C +29DA;O +29DB;C +29DC;N +29DD;N +29DE;N +29DF;R +29E0;N +29E1;R +29E2;B +29E3;R +29E4;R +29E5;R +29E6;R +29E7;N +29E8;N +29E9;N +29EA;N +29EB;B +29EC;N +29ED;N +29EE;N +29EF;N +29F0;N +29F1;N +29F2;N +29F3;N +29F4;R +29F5;B +29F6;B +29F7;B +29F8;L +29F9;L +29FA;B +29FB;B +29FC;O +29FD;C +29FE;B +29FF;B +2A00;L +2A01;L +2A02;L +2A03;L +2A04;L +2A05;L +2A06;L +2A07;L +2A08;L +2A09;L +2A0A;L +2A0B;L +2A0C;L +2A0D;L +2A0E;L +2A0F;L +2A10;L +2A11;L +2A12;L +2A13;L +2A14;L +2A15;L +2A16;L +2A17;L +2A18;L +2A19;L +2A1A;L +2A1B;L +2A1C;L +2A1D;L +2A1E;L +2A1F;L +2A20;L +2A21;L +2A22;B +2A23;B +2A24;B +2A25;B +2A26;B +2A27;B +2A28;B +2A29;B +2A2A;B +2A2B;B +2A2C;B +2A2D;B +2A2E;B +2A2F;B +2A30;B +2A31;B +2A32;B +2A33;B +2A34;B +2A35;B +2A36;B +2A37;B +2A38;B +2A39;B +2A3A;B +2A3B;B +2A3C;B +2A3D;B +2A3E;B +2A3F;B +2A40;B +2A41;B +2A42;B +2A43;B +2A44;B +2A45;B +2A46;B +2A47;B +2A48;B +2A49;B +2A4A;B +2A4B;B +2A4C;B +2A4D;B +2A4E;B +2A4F;B +2A50;B +2A51;B +2A52;B +2A53;B +2A54;B +2A55;B +2A56;B +2A57;B +2A58;B +2A59;R +2A5A;B +2A5B;B +2A5C;B +2A5D;B +2A5E;B +2A5F;B +2A60;B +2A61;B +2A62;B +2A63;B +2A64;B +2A65;B +2A66;R +2A67;R +2A68;R +2A69;R +2A6A;R +2A6B;R +2A6C;R +2A6D;R +2A6E;R +2A6F;R +2A70;R +2A71;B +2A72;B +2A73;R +2A74;R +2A75;R +2A76;R +2A77;R +2A78;R +2A79;R +2A7A;R +2A7B;R +2A7C;R +2A7D;R +2A7E;R +2A7F;R +2A80;R +2A81;R +2A82;R +2A83;R +2A84;R +2A85;R +2A86;R +2A87;R +2A88;R +2A89;R +2A8A;R +2A8B;R +2A8C;R +2A8D;R +2A8E;R +2A8F;R +2A90;R +2A91;R +2A92;R +2A93;R +2A94;R +2A95;R +2A96;R +2A97;R +2A98;R +2A99;R +2A9A;R +2A9B;R +2A9C;R +2A9D;R +2A9E;R +2A9F;R +2AA0;R +2AA1;R +2AA2;R +2AA3;R +2AA4;R +2AA5;R +2AA6;R +2AA7;R +2AA8;R +2AA9;R +2AAA;R +2AAB;R +2AAC;R +2AAD;R +2AAE;R +2AAF;R +2AB0;R +2AB1;R +2AB2;R +2AB3;R +2AB4;R +2AB5;R +2AB6;R +2AB7;R +2AB8;R +2AB9;R +2ABA;R +2ABB;R +2ABC;R +2ABD;R +2ABE;R +2ABF;R +2AC0;R +2AC1;R +2AC2;R +2AC3;R +2AC4;R +2AC5;R +2AC6;R +2AC7;R +2AC8;R +2AC9;R +2ACA;R +2ACB;R +2ACC;R +2ACD;R +2ACE;R +2ACF;R +2AD0;R +2AD1;R +2AD2;R +2AD3;R +2AD4;R +2AD5;R +2AD6;R +2AD7;R +2AD8;R +2AD9;R +2ADA;R +2ADB;R +2ADC;R +2ADD;R +2ADE;R +2ADF;R +2AE0;R +2AE1;N +2AE2;R +2AE3;R +2AE4;R +2AE5;R +2AE6;R +2AE7;R +2AE8;R +2AE9;R +2AEA;R +2AEB;R +2AEC;R +2AED;R +2AEE;R +2AEF;R +2AF0;R +2AF1;N +2AF2;R +2AF3;R +2AF4;B +2AF5;B +2AF6;B +2AF7;R +2AF8;R +2AF9;R +2AFA;R +2AFB;B +2AFC;L +2AFD;B +2AFE;B +2AFF;L +2B00..2B11;R +2B12;N +2B13;N +2B14;N +2B15;N +2B16;N +2B17;N +2B18;N +2B19;N +2B1B..2B1F;N +2B20;N +2B21;N +2B22;N +2B23;N +2B24..2B2F;N +2B30..2B44;R +2B45;R +2B46;R +2B47..2B4C;R +2B50..2B54;N +2B95;R +2BC2..2BC8;N +2BCA;N +2BCB;N +3008;X +3009;X +#3014;O +#3015;C +#3018;O +#3019;C +301A;X +301B;X +306E;N +FB29;X +FE00;D +#deprecFE35; +#deprecFE36; +#deprecFE37; +#deprecFE38; +FE61..FE66;X +FE68;X +FF0B;X +FF1C..FF1E;X +FF3C;X +FF3E;X +FF5C;X +FF5E;X +FFE2;X +FFE9..FFEC;X +1D400..1D454;A +#1D455=210E;N +1D456..1D49B;A +1D49C;A +#1D49D=212C;A +1D49E;A +1D49F;A +#1D4A0=2130;A +#1D4A1=2131;A +1D4A2;A +#1D4A3=210B;A +#1D4A4=2110;A +1D4A5;A +1D4A6;A +#1D4A7=2112;A +#1D4A8=2133;A +1D4A9;A +1D4AA;A +1D4AB;A +1D4AC;A +#1D4AD=211B;A +1D4AE;A +1D4AF;A +1D4B0;A +1D4B1;A +1D4B2;A +1D4B3;A +1D4B4;A +1D4B5;A +1D4B6;A +1D4B7;A +1D4B8;A +1D4B9;A +#1D4BA=212F;A +1D4BB;A +#1D4BC=210A;A +1D4BD;A +1D4BE;A +1D4BF;A +1D4C0;A +1D4C1;A +1D4C2;A +1D4C3;A +#1D4C4=2134;A +1D4C5;A +1D4C6;A +1D4C7;A +1D4C8;A +1D4C9;A +1D4CA;A +1D4CB;A +1D4CC;A +1D4CD;A +1D4CE;A +1D4CF;A +1D4D0..1D503;A +1D504;A +1D505;A +#1D506=212D;A +1D507;A +1D508;A +1D509;A +1D50A;A +#1D50B=210C;A +#1D50C=2111;A +1D50D;A +1D50E;A +1D50F;A +1D510;A +1D511;A +1D512;A +1D513;A +1D514;A +#1D515=211C;A +1D516;A +1D517;A +1D518;A +1D519;A +1D51A;A +1D51B;A +1D51C;A +#1D51D=2128;A +1D51E;A +1D51F;A +1D520;A +1D521;A +1D522;A +1D523;A +1D524;A +1D525;A +1D526;A +1D527;A +1D528;A +1D529;A +1D52A;A +1D52B;A +1D52C;A +1D52D;A +1D52E;A +1D52F;A +1D530;A +1D531;A +1D532;A +1D533;A +1D534;A +1D535;A +1D536;A +1D537;A +1D538;A +1D539;A +#1D53A=2102;A +1D53B;A +1D53C;A +1D53D;A +1D53E;A +#1D53F=210D;A +1D540;A +1D541;A +1D542;A +1D543;A +1D544;A +#1D545=2115;A +1D546;A +#1D547=2119;A +#1D548=211A;A +#1D549=211D;A +1D54A;A +1D54B;A +1D54C;A +1D54D;A +1D54E;A +1D54F;A +1D550;A +#1D551=2124;A +1D552;A +1D553;A +1D554;A +1D555;A +1D556;A +1D557;A +1D558;A +1D559;A +1D55A;A +1D55B;A +1D55C;A +1D55D;A +1D55E;A +1D55F;A +1D560;A +1D561;A +1D562;A +1D563;A +1D564;A +1D565;A +1D566;A +1D567;A +1D568;A +1D569;A +1D56A;A +1D56B;A +1D56C..1D6A3;A +1D6A4;A +1D6A5;A +1D6A8..1D7C9;A +1D7CA;A +1D7CB;A +1D7CE..1D7FF;N +1EE00..1EE03;A +1EE05..1EE1F;A +1EE21;A +1EE22;A +1EE24;A +1EE27;A +1EE29..1EE32;A +1EE34..1EE37;A +1EE39;A +1EE3B;A +1EE42;A +1EE47;A +1EE49;A +1EE4B;A +1EE4D..1EE4F;A +1EE51;A +1EE52;A +1EE54;A +1EE57;A +1EE59;A +1EE5B;A +1EE5D;A +1EE5F;A +1EE61;A +1EE62;A +1EE64;A +1EE67..1EE6A;A +1EE6C..1EE72;A +1EE74..1EE77;A +1EE79..1EE7C;A +1EE7E;A +1EE80..1EE89;A +1EE8B..1EE9B;A +1EEA1..1EEA3;A +1EEA5..1EEA9;A +1EEAB..1EEBB;A +1EEF0;L +1EEF1;L +1F784;N +1F78C;N +1F78D;N +1F797..1F799;N +1F79D..1F79F;N + +# EOF diff --git a/Master/texmf-dist/tex/luatex/optex/op-macros.opm b/Master/texmf-dist/tex/luatex/optex/op-macros.opm new file mode 100644 index 00000000000..659abfe8750 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/op-macros.opm @@ -0,0 +1,94 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +\_codedecl \eoldef {OpTeX useful macos <2020-02-14>} + +\_newcatcodetable \_optexcatcodes +\_savecatcodetable\_optexcatcodes + +\_def\_normalcatcodes {\_catcodetable\_optexcatcodes \_savecatcodetable0 \_catcodetable0 } + +\_newcatcodetable \_plaintexcatcodes +\_public + \optexcatcodes \plaintexcatcodes ; + +{\_catcode`_=8 \savecatcodetable\plaintexcatcodes} + +% \catcodetable stack +% use \setctable<num> ... \setctable<num> ... \restorectable ... \restorectable + +\_newcount\_currctable \_currctable=0 +\_catcodetable0 + +\_def\_setctable#1{\_edef\_ctablelist{{\_the\_currctable}\_ctablelist}% + \_catcodetable#1\_relax \_currctable=#1\_relax +} +\_def\_restorectable{\_ea\_restorectableA\_ctablelist\_relax} +\_def\_restorectableA#1#2\_relax{% + \_ifx^#2^\_opwarning + {You can't use \_noindent\restorectable without previous \_string\setctable}% + \_else \_def\_ctablelist{#2}\_catcodetable#1\_relax \_currctable=#1\_relax \_fi +} +\_def\_ctablelist{.} + +\_def\_opinput #1{\_setctable\_optexcatcodes \_input "#1" \_restorectable} + + +% \optdef \foo [opt-default] #1#2{...\the\opt...}, usage \foo {}{} or \foo [opt] {}{} + +\_def\_optdef#1[#2]{% + \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_string#1}}{\_cs{_oB:\_string#1}}}% + \_sdef{_oA:\_string#1}[##1]{\_opt={##1}\_cs{_oB:\string#1\_nospaceafter}}% + \_sdef{_oB:\_string#1\_nospaceafter}% +} +\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.} + +\_newtoks\_opt + + +% \eoldef \foo #1{thex to end of line is: #1} + +\_def\_eoldef #1{\_def #1{\_begingroup \_catcode`\^^M=12 \_eoldefA #1}% + \_ea\_def\_csname _\_string #1:M\_endcsname} +\_catcode`\^^M=12 % +\_def\_eoldefA #1#2^^M{\_endgroup\_csname _\_string #1:M\_endcsname{#2}}% +\_normalcatcodes % + +\_public \opt \optdef \eoldef ; + +\_catcode`!=3 \_catcode`?=3 +\_def\_replstring #1#2#3{% \replstring #1{stringA}{stringB} + \_long\_def\_replacestringsA##1#2{\_def #1{##1}\_replacestringsB}% + \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_addto #1{#3##1}% + \_ea\_replacestringsB\_fi}% + \_ea\_replacestringsA #1?#2!#2% + \_long\_def\_replacestringsA##1?{\_def #1{##1}}\_ea\_replacestringsA #1} +\_normalcatcodes + +\_def\_remfirstunderscore#1{\_ea\_remfirstunderscoreA#1\_relax#1} +\_def\_remfirstunderscoreA#1#2\_relax#3{\_if _#1\_def#3{#2}\_fi} + +\_ea\_def \_ea\_meaningsepare \_ea#\_ea1\_string m#2:#3->#4^{{#1}{#3}{#4}} + +% \keepinputnames ... \input foo ... \lastinputname -> foo + +\_def\_keepinputnames{\_directlua{% + callback.register("find_read_file", + function (id, name) + input_file_name = name + return name + end) +}} +\_def\_lastinputname{\_directlua{tex.print(input_file_name)}} + +\def\catcode{\_catcode\_string} % more robust in cases \catcode` or \catcode" + +\_def\_enquotes{\_chardef\"="201C } % use \"text" for English quotes + +\public + \setctable \restorectable + \normalcatodes \opt \optdef \eoldef \replstring + \keepinputnames \lastinputname \enquotes ; + + +\_endcode % ------------------------------------- + diff --git a/Master/texmf-dist/tex/luatex/optex/opmac-rest.opm b/Master/texmf-dist/tex/luatex/optex/opmac-rest.opm index 1e8a3415c5b..4f9dbd1aaf0 100644 --- a/Master/texmf-dist/tex/luatex/optex/opmac-rest.opm +++ b/Master/texmf-dist/tex/luatex/optex/opmac-rest.opm @@ -17,8 +17,6 @@ \newcount\tmpnum % auxiliary count \newdimen\tmpdim % auxiliary dimen -\def\opwarning#1{\immediate\write16{l.\the\inputlineno\space OPmac WARNING: #1.}} - \long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}} \def\protectlist{} @@ -54,10 +52,6 @@ } \def\isnextcharA{\the\toks\ifx\tmp\next0\else1\fi\space} -\def\eoldef#1{\def#1{\begingroup \catcode`\^^M=12 \eoldefA#1}% - \expandafter\def\csname\string#1:M\endcsname} -{\catcode`\^^M=12 \gdef\eoldefA#1#2^^M{\endgroup\csname\string#1:M\endcsname{#2}}} - \def\maybebreak{\afterassignment\maybebreakA\tmpdim=} \def\maybebreakA{\ifvmode \vskip0pt plus\tmpdim \penalty-130 \vskip0pt plus-\tmpdim \else \hskip0pt plus\tmpdim \penalty-130 \hskip0pt plus-\tmpdim \fi \relax @@ -87,14 +81,6 @@ \newdimen\iindent \iindent=\parindent % indentation of items, TOC, captions, list of bib. references -\newdimen\ttindent \ttindent=\parindent - % indentation in \begtt...\endtt and \verbinput - -\def\ttskip{\medskip} % space above and below \begtt, \verbinput -\mathchardef\ttpenalty=100 % penalty between lines in \begtt, \verbinput -\def\tthook{} % hook in \begtt, \verbinput -\def\intthook{} % hook in in-text verbatim -\def\ptthook{} % hook in \begtt, \verbinput for post-processing \def\iiskip{\medskip} % space above and below \begitems...\enditems \def\itemhook{} % hook in \startitem @@ -134,12 +120,14 @@ %%%%%%%%%%%%%% Multilingual support, sec. 3.5 in opmac-d.pdf -\def\mtext#1{\csname mt:#1:\csname _lan:\the\language\endcsname\endcsname} - -\sdef{mt:chap:en}{Chapter} \sdef{mt:chap:cs}{Kapitola} \sdef{mt:chap:sk}{Kapitola} -\sdef{mt:t:en}{Table} \sdef{mt:t:cs}{Tabulka} \sdef{mt:t:sk}{Tabu\v lka} -\sdef{mt:f:en}{Figure} \sdef{mt:f:cs}{Obr\'azek} \sdef{mt:f:sk}{Obr\'azok} -\sdef{mt:subj:en}{Subject} \sdef{mt:subj:cs}{V\v{e}c} \sdef{mt:subj:sk}{Vec} +\def\mtext#1{\_ifcsname _mt:#1:\csname _lan:\_the\_language\_endcsname\_endcsname + \_csname _mt:#1:\_csname _lan:\_the\_language\_endcsname\_endcsname + \_else \_csname _mt:#1:en\_endcsname \_fi +} +\sdef{_mt:chap:en}{Chapter} \sdef{_mt:chap:cs}{Kapitola} \sdef{_mt:chap:sk}{Kapitola} +\sdef{_mt:t:en}{Table} \sdef{_mt:t:cs}{Tabulka} \sdef{_mt:t:sk}{Tabuľka} +\sdef{_mt:f:en}{Figure} \sdef{_mt:f:cs}{Obrázek} \sdef{_mt:f:sk}{Obrázok} +\sdef{_mt:subj:en}{Subject} \sdef{_mt:subj:cs}{Věc} \sdef{_mt:subj:sk}{Vec} %%%%%%%%%%%%%% REF file, sec 3.6 in opmac-d.pdf @@ -217,7 +205,7 @@ \titfont \noindent #1\par}% \nobreak\bigskip } -\def\titfont{\scalemain\boldify\typoscale[\magstep4/\magstep4]} +\def\titfont{\scalemain\boldify\typoscale[\magstep4/\magstep5]} \def\chapfont{\scalemain\boldify\typoscale[\magstep3/\magstep3]} \def\secfont{\scalemain\boldify\typoscale[\magstep2/\magstep2]} \def\seccfont{\scalemain\boldify\typoscale[\magstep1/\magstep1]} @@ -279,8 +267,8 @@ \def\othe#1.{\ifnum#1>0 \the#1.\fi} \def\thechapnum{} \def\thesecnum{} \def\theseccnum{} -\def\afternoindent{\global\everypar={\wipeepar\setbox7=\lastbox}} -\def\wipeepar{\global\everypar={}} +\def\afternoindent{\global\everypar={\_wipeepar\setbox7=\lastbox}} +\def\_wipeepar{\global\everypar={}} \let\firstnoindent=\afternoindent \def\nbpar{{\interlinepenalty=10000\endgraf}} \def\nl{\hfil\break} @@ -644,7 +632,7 @@ \def\corrsize #1{%% #1 := #1 + \splittopskip - \topskip \advance #1 by \splittopskip \advance #1 by-\topskip } -\def\begmulti #1 {\par\bgroup\wipeepar\multiskip\penalty0 \def\Ncols{#1} +\def\begmulti #1 {\par\bgroup\_wipeepar\multiskip\penalty0 \def\Ncols{#1} \setbox6=\vbox\bgroup\penalty0 %% \hsize := Sirka sloupce = (\hsize+\colsep) / n - \colsep \advance\hsize by\colsep @@ -856,112 +844,6 @@ %%%%%%%%%%%%%% Verbatim, \begtt, \endtt -- sec. 3.18 in opmac-d.pdf -\newcount\ttline \ttline=-1 -\newcount\viline -\newread\vifile - -\def\setverb{\frenchspacing\def\do##1{\catcode`##1=12}\dospecials \catcode`\*=12 } -\def\begtt{\par \vskip\parskip \ttskip \bgroup \wipeepar - \setverb \adef{ }{\ }% - \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi - \parindent=\ttindent \parskip=0pt - \tthook\relax - \ifnum\ttline<0 \else - \_tenrm \thefontscale[700]\ea\let\ea\sevenrm\the\font - \everypar\expandafter{\the\everypar \global\advance\ttline by1 \printttline}\fi - \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}% - \obeylines \startverb} -{\catcode`\|=0 \catcode`\\=12 -|gdef|startverb#1\endtt{|tt|ptthook#1|egroup|par|ttskip|testparA}} -\def\testparA{\expandafter\testparB\romannumeral-`\.} -\def\testparB{\futurelet\tmpa\testparC} -\def\testparC{\ifx\tmpa\par\else\afternoindent\fi} - -\def\printttline{\llap{\sevenrm\the\ttline\kern.9em}} - -\def\activettchar#1{% - \ifx\savedttchar\undefined\else \catcode\savedttchar=\savedttcharc \fi - \chardef\savedttchar=`#1% - \chardef\savedttcharc=\catcode`#1% - \bgroup\lccode`\~=`#1% - \lowercase {\egroup\def~}{\leavevmode\hbox\bgroup\setverb\adef{ }{\ }% - \intthook\tt\readverb}% - \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}% - \catcode`#1=13 -} - -\def\verbinput (#1) #2 {\par \def\tmpa{#2}% - \ifx\vifilename\tmpa \else - \openin\vifile=#2 - \global\viline=0 \global\let\vifilename=\tmpa - \ifeof\vifile - \opwarning{\noexpand\verbinput - file "#2" is unable to reading} - \expandafter\expandafter\expandafter\skiptorelax - \fi - \fi - \viscanparameter #1+\relax -} -\def\skiptorelax#1\relax{} - -\def \viscanparameter #1+#2\relax{% - \if$#2$\viscanminus(#1)\else \viscanplus(#1+#2)\fi -} -\def\viscanplus(#1+#2+){% - \if$#1$\tmpnum=\viline - \else \ifnum#1<0 \tmpnum=\viline \advance\tmpnum by-#1 - \else \tmpnum=#1 - \advance\tmpnum by-1 - \ifnum\tmpnum<0 \tmpnum=0 \fi % (0+13) = (1+13) - \fi \fi - \edef\vinolines{\the\tmpnum}% - \if$#2$\def\vidolines{0}\else\edef\vidolines{#2}\fi - \doverbinput -} -\def\viscanminus(#1-#2){% - \if$#1$\tmpnum=0 - \else \tmpnum=#1 \advance\tmpnum by-1 \fi - \ifnum\tmpnum<0 \tmpnum=0 \fi % (0-13) = (1-13) - \edef\vinolines{\the\tmpnum}% - \if$#2$\tmpnum=0 - \else \tmpnum=#2 \advance\tmpnum by-\vinolines \fi - \edef\vidolines{\the\tmpnum}% - \doverbinput -} -\def\doverbinput{% - \tmpnum=\vinolines - \advance\tmpnum by-\viline - \ifnum\tmpnum<0 - \openin\vifile=\vifilename\space - \global\viline=0 - \else - \edef\vinolines{\the\tmpnum}% - \fi - \vskip\parskip \ttskip \bgroup \wipeepar - \setverb \adef{ }{\ }% - \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi - \parindent=\ttindent \parskip=0pt - \tthook\relax - \ifnum\ttline<-1 \else - \_tenrm \thefontscale[700]\ea\let\ea\sevenrm\the\font - \everypar\expandafter{\the\everypar \glob\advance\ttline by1 \printttline}\fi - \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}% - \obeylines \tmpnum=0 \lccode`\~=`\^^M \lowercase{\def\tmpb{~}}% - \loop \ifeof\vifile \tmpnum=\vinolines\space \fi - \ifnum\tmpnum<\vinolines\space - \vireadline \advance\tmpnum by1 \repeat %% skip line - \ifnum\ttline=-1 \ttline=\viline \let\glob=\relax \else\let\glob=\global \fi - \tmpnum=0 \ifnum\vidolines=0 \tmpnum=-1 \fi - \ifeof\vifile \tmpnum=\vidolines\space \fi - \loop \ifnum\tmpnum<\vidolines\space - \vireadline - \ifeof\vifile \tmpnum=\vidolines\space \else \viprintline \fi %% print line - \ifnum\vidolines=0 \else\advance\tmpnum by1 \fi - \repeat - \tt\expandafter\ptthook\tmpb\egroup\par\ttskip\testparA -} -\def\vireadline{\read\vifile to \tmp \global\advance\viline by1 } -\def\viprintline{\expandafter\addto\expandafter\tmpb\expandafter{\tmp}} - %%%%%%%%%%%%%% \table -- sec. 3.19 in opmac-d.pdf \newtoks\tabdata @@ -1365,7 +1247,9 @@ } \def\Xcite#1{\addto\citelistB{\citeI[#1]}} -\def\usebib{\par \input opmac-bib \usebib} +\newcatcodetable\savedcatcodes + +\def\usebib{\par \_opinput {usebib.opm} \usebib} %%%%%%%%%%%%%% output -- sec. 3.24 in opmac-d.pdf @@ -1403,7 +1287,7 @@ \eoldef\author##1{\removelastskip\bigskip {\leftskip=0pt plus1fill \rightskip=\leftskip \it \noindent ##1\par}\nobreak\bigskip } - \parindent=1.2em \iindent=\parindent \ttindent=\parindent + \parindent=1.2em \iindent=\parindent \_ttindent=\parindent \footline={\global\footline={\hss\_tenrm\thefontsize[10]\folio\hss}} \runningfnotes } diff --git a/Master/texmf-dist/tex/luatex/optex/optex.ini b/Master/texmf-dist/tex/luatex/optex/optex.ini index 2ec0665c853..280dd347ca0 100644 --- a/Master/texmf-dist/tex/luatex/optex/optex.ini +++ b/Master/texmf-dist/tex/luatex/optex/optex.ini @@ -3,17 +3,24 @@ %% OpTeX ini file %% Petr Olsak <started from: Jan. 2020> -% Basic catcodes: - -\catcode `\_=11 -\catcode `\{=1 -\catcode `\}=2 -\catcode `\#=6 -\catcode `\^=7 +% Catcodes: + +\catcode `\{=1 % left brace is begin-group character +\catcode `\}=2 % right brace is end-group character +\catcode `\$=3 % dollar sign is math shift +\catcode `\&=4 % ampersand is alignment tab +\catcode `\#=6 % hash mark is macro parameter character +\catcode `\^=7 % +\catcode `\^^K=7 % circumflex and uparrow are for superscripts +\catcode `\^^A=8 % downarrow is for subscripts +\catcode `\^^I=10 % ascii tab is a blank space +\catcode `\_=11 % underline can be used in control sequences +\catcode `\~=13 % tilde is active +\catcode 127=12 % normal character % OpTeX version -\def\optexversion{Alpha 0.02 Feb 2020} +\def\optexversion{Alpha 0.03 Feb 2020} % Engine testing: @@ -40,23 +47,25 @@ \input prefixed.opm % prefixed primitives and code syntax \input luatex-ini.opm % luaTeX initialization -\input catcodes.opm % catcode setting \input basics-macros.opm % basic macros \input alloc.opm % allocators for registers \input if-macros.opm % special \if-macros, \is-macros and loops -\input logos.opm % standard logos \input parameters.opm % parameters setting -\input fonts-preload.opm % preloaded Computer Modern fonts +\input op-macros.opm % OpTeX useful macros +\input plain-macros.opm % plainTeX macros +\input fonts-preload.opm % preloaded Latin Modern fonts \input fonts-resize.opm % font resizing (low-level macros) \input fonts-select.opm % font selection system \input math-preload.opm % math fams CM + AMS preloaded \input math-macros.opm % basic macros for math plus mathchardefs -\input plain-macros.opm % plainTeX macros +\input math-unicode.opm % macros for loading UnicodeMath fonts \input fonts-opmac.opm % font managing macros from OPmac \input outlines.opm % PDF outlines \input pdfuni-string.opm % PDFunicode strings for outlines \input output.opm % output routine \input margins.opm % macros for margins setting +\input verbatim.opm % verbatim +\input logos.opm % standard logos \input uni-lcuc.opm % Setting lccodes and uccodes for Unicode characters \input hyphen-lan.opm % initialization of hyphenation patterns \input opmac-rest.opm % TODO: needs to be re-implement @@ -76,11 +85,13 @@ TODO: - re-implement macros from opmac-rest.opm - add unicode math support (from uni-math.tex from csplain) +- re-implement usebib, bib-style.opm - add modules support (for example opmac-bib) -- write more documentation +- write more and better documentation - ... DOC: +- optex-doc.tex optex-doc.pdf - about Font selection system: ....... files: fonts-select.opm, fonts-opmac.opm, fonts-resize.opm, f-heros.opm, f-lmfonts.opm fams-ini.opm diff --git a/Master/texmf-dist/tex/luatex/optex/pdfuni-string.opm b/Master/texmf-dist/tex/luatex/optex/pdfuni-string.opm index d9732472f2e..dac1c5c3b82 100644 --- a/Master/texmf-dist/tex/luatex/optex/pdfuni-string.opm +++ b/Master/texmf-dist/tex/luatex/optex/pdfuni-string.opm @@ -1,20 +1,20 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \pdfunidef {PDFunicode strings for outlines <2019-05-21>} +\_codedecl \pdfunidef {PDFunicode strings for outlines <2020-02-14>} \_edef\_octalprint#1#2{\_noexpand\_directlua{% #1=character-code #2=character if ('#2'>='A' and '#2'<='Z') or ('#2'>='a' and '#2'<='z') then tex.print(string.format('000\_pcent s',"#2")) else - tex.print(string.format('\_pcent 03o\_nbb\_pcent03o',#1/256,#1\_pcent256)) + local num=#1\_pcent256 + tex.print(string.format('\_pcent 03o\_nbb\_pcent03o',(#1-num)/256,num)) end }} \_def\_pdfunidef#1#2{% \_begingroup \_catcode`\\=12 \_let\\=\_nbackslash - \_ea\_def\_ea#1\_ea{\_detokenize\_ea{#2}}% - \_ea\_replstring\_ea#1\_ea{\\}{\_pdfunidefA}% - \_edef#1{#1 ^}\_replstring#1{ ^}{}% \TeX /u -> \TeX/u + \_the\_pdfstringout % extra defnitions of logos etc. + \_edef#1{#2}% \_replstring#1{ }{{ }}% text text -> text{ }text \_edef\_out{\\376\\377}% \_ea\_pdfunidefB#1^% text -> \_out in octal @@ -22,7 +22,6 @@ \_endgroup \_ea\_def\_ea#1\_ea{\_out} } -\_def\_pdfunidefA #1 #2{\\#1\_ifx/#2/\_else\_space \_ea#2\_fi} \_def\_pdfunidefB#1{% \_ifx^#1\_else \_tmpnum=`#1 @@ -31,7 +30,9 @@ } \_def\_pdfunidefC #1{\_edef\_out{\_out \\\_ea\_octalprint\_ea{\_the\_tmpnum}{#1}}} -\public \pdfunidef ; +\_newtoks \_pdfstringout + +\public \pdfunidef \pdfstringout ; \_endcode % -------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/plain-macros.opm b/Master/texmf-dist/tex/luatex/optex/plain-macros.opm index f2cf66f3cbb..7402ff5cd5e 100644 --- a/Master/texmf-dist/tex/luatex/optex/plain-macros.opm +++ b/Master/texmf-dist/tex/luatex/optex/plain-macros.opm @@ -1,11 +1,13 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \magstep {Macros from plain TeX <2019-05-21>} +\_codedecl \magstep {Macros from plain TeX <2019-02-14>} + +\_chardef\_active = 13 \_def\_dospecials {\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\^^A\do\%\do\~} \_public - \dospecials ; + \dospecials \active ; \_def \_magstephalf{1095 } \_def \_magstep#1{\_ifcase#1 1000\_or 1200\_or 1440\_or 1728\_or 2074\_or 2488\_fi\_space} @@ -181,15 +183,15 @@ \oalign \ooalign \d \b \c \dots ; \def \_oldaccents {% - \_def\`##1{{\_accent\_grave ##1}}% - \_def\'##1{{\_accent\_acute ##1}}% + \_def\`##1{{\_accent\_tgrave ##1}}% + \_def\'##1{{\_accent\_tacute ##1}}% \_def\v##1{{\_accent\_caron ##1}}% - \_def\u##1{{\_accent\_breve ##1}}% + \_def\u##1{{\_accent\_tbreve ##1}}% \_def\=##1{{\_accent\_macron ##1}}% \_def\^##1{{\_accent\_circumflex ##1}}% \_def\.##1{{\_accent\_dotaccent ##1}}% \_def\H##1{{\_accent\_hungarumlaut ##1}}% - \_def\~##1{{\_accent\_tilde ##1}}% + \_def\~##1{{\_accent\_ttilde ##1}}% \_def\"##1{{\_accent\_dieresis ##1}}% \_def\r##1{{\_accent\_ring ##1}}% } @@ -197,29 +199,29 @@ \oldaccents ; % ec-lmr encoding (will be changed after \fontfam macro): -\_chardef\_grave=0 -\_chardef\_acute=1 +\_chardef\_tgrave=0 +\_chardef\_tacute=1 \_chardef\_circumflex=2 -\_chardef\_tilde=3 +\_chardef\_ttilde=3 \_chardef\_dieresis=4 \_chardef\_hungarumlaut=5 \_chardef\_ring=6 \_chardef\_caron=7 -\_chardef\_breve=8 +\_chardef\_tbreve=8 \_chardef\_macron=9 \_chardef\_dotaccent=10 \_chardef\_cedilla=11 \_def \_uniaccents {% accents with Unicode - \_chardef\_grave="0060 - \_chardef\_acute="00B4 + \_chardef\_tgrave="0060 + \_chardef\_tacute="00B4 \_chardef\_circumflex="005E - \_chardef\_tilde="02DC + \_chardef\_ttilde="02DC \_chardef\_dieresis="00A8 \_chardef\_hungarumlaut="02DD \_chardef\_ring="02DA \_chardef\_caron="02C7 - \_chardef\_breve="02D8 + \_chardef\_tbreve="02D8 \_chardef\_macron="00AF \_chardef\_dotaccent="02D9 \_chardef\_cedilla="00B8 diff --git a/Master/texmf-dist/tex/luatex/optex/prefixed.opm b/Master/texmf-dist/tex/luatex/optex/prefixed.opm index 8b730523373..ca84181f6ea 100644 --- a/Master/texmf-dist/tex/luatex/optex/prefixed.opm +++ b/Master/texmf-dist/tex/luatex/optex/prefixed.opm @@ -1,26 +1,29 @@ %% This is part of OpTeX project, see http://petr.olsak.net/optex -\_codedecl \public {Prefixing and code syntax <2020-01-23>} +\_codedecl \public {Prefixing and code syntax <2020-02-14>} % all TeX82 primitives have alternative control sequence \_hbox \_string, ... \let\_directlua = \directlua \_directlua { - tex.enableprimitives('_', tex.extraprimitives('tex')) + % enable all primitives with _ prefix + tex.enableprimitives('_', tex.extraprimitives('tex')) + % enable all primitives without prefixing + tex.enableprimitives('', tex.extraprimitives()) + % enable all primitives with _ prefix + tex.enableprimitives('_', tex.extraprimitives()) } \_let\_ea =\_expandafter % usefull shortcut \_long\_def \_xargs #1#2{\_ifx #2;\_else \_ea#1\_ea#2\_ea\_xargs \_ea #1\_fi} -\_long\_def \_xstring #1{\_ea\_xstringA \_string#1^} -\_def \_xstringA #1#2^{#2} \_def \_public {\_xargs \_publicA} -\_def \_publicA #1{\_ea\_let \_ea#1\_csname _\_xstring #1\_endcsname} +\_def \_publicA #1{\_ea\_let \_ea#1\_csname _\_csstring #1\_endcsname} \_def \_private {\_xargs \_privateA} -\_def \_privateA #1{\_ea\_let \_csname _\_xstring #1\_endcsname =#1} +\_def \_privateA #1{\_ea\_let \_csname _\_csstring #1\_endcsname =#1} \_def \_codedecl #1#2{% \_ifx #1\_undefined \_wterm{#2}% @@ -28,7 +31,7 @@ } \_def \_wterm {\_immediate \_write16 } -\_public \public \private \xargs \xstring \ea \wterm ; +\_public \public \private \xargs \ea \wterm ; \_endcode %---------------------------------------------------- diff --git a/Master/texmf-dist/tex/luatex/optex/unimath-codes.opm b/Master/texmf-dist/tex/luatex/optex/unimath-codes.opm new file mode 100644 index 00000000000..816584022ec --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/unimath-codes.opm @@ -0,0 +1,304 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +% This file is read when \loadmath is used. + +\_ifx \ncharrmA\undefined \_else \_endinput \_fi + +\umathnumB="0391 +\greekdef \Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta \Iota \Kappa + \Lambda \Mu \Nu \Xi \Omicron \Pi \Rho \varTheta \Sigma \Tau \Upsilon \Phi + \Chi \Psi \Omega \relax + +\umathnumB="03B1 +\greekdef \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa + \lambda \mu \nu \xi \omicron \pi \rho \varsigma \sigma \tau \upsilon + \varphi \chi \psi \omega \varbeta \vartheta \phi \varpi \relax + +\chardef\ncharrmA=`A \chardef\ncharrma=`a +\chardef\ncharbfA="1D400 \chardef\ncharbfa="1D41A +\chardef\ncharitA="1D434 \chardef\ncharita="1D44E +\chardef\ncharbiA="1D468 \chardef\ncharbia="1D482 +\chardef\ncharclA="1D49C \chardef\ncharcla="1D4B6 +\chardef\ncharbcA="1D4D0 \chardef\ncharbca="1D4EA +\chardef\ncharfrA="1D504 \chardef\ncharfra="1D51E +\chardef\ncharbrA="1D56C \chardef\ncharbra="1D586 +\chardef\ncharbbA="1D538 \chardef\ncharbba="1D552 +\chardef\ncharsnA="1D5A0 \chardef\ncharsna="1D5BA +\chardef\ncharbsA="1D5D4 \chardef\ncharbsa="1D5EE +\chardef\ncharsiA="1D608 \chardef\ncharsia="1D622 +\chardef\ncharsxA="1D63C \chardef\ncharsxa="1D656 +\chardef\ncharttA="1D670 \chardef\nchartta="1D68A + +\protected\def\rmvariables {\umathrange{A-Z}\ncharrmA \umathrange{a-z}\ncharrma} +\protected\def\bfvariables {\umathrange{A-Z}\ncharbfA \umathrange{a-z}\ncharbfa} +\protected\def\nitvariables {\umathrange{A-Z}\ncharitA \umathrange{a-z}\ncharita} +\protected\def\bivariables {\umathrange{A-Z}\ncharbiA \umathrange{a-z}\ncharbia} +\protected\def\calvariables {\umathrange{A-Z}\ncharclA \umathrange{a-z}\ncharcla} +\protected\def\bcalvariables {\umathrange{A-Z}\ncharbcA \umathrange{a-z}\ncharbca} +\protected\def\frakvariables {\umathrange{A-Z}\ncharfrA \umathrange{a-z}\ncharfra} +\protected\def\bfrakvariables {\umathrange{A-Z}\ncharbrA \umathrange{a-z}\ncharbra} +\protected\def\bbvariables {\umathrange{A-Z}\ncharbbA \umathrange{a-z}\ncharbba} +\protected\def\sansvariables {\umathrange{A-Z}\ncharsnA \umathrange{a-z}\ncharsna} +\protected\def\bsansvariables {\umathrange{A-Z}\ncharbsA \umathrange{a-z}\ncharbsa} +\protected\def\isansvariables {\umathrange{A-Z}\ncharsiA \umathrange{a-z}\ncharsia} +\protected\def\bisansvariables {\umathrange{A-Z}\ncharsxA \umathrange{a-z}\ncharsxa} +\protected\def\ttvariables {\umathrange{A-Z}\ncharttA \umathrange{a-z}\nchartta} + +\chardef\greekrmA="0391 \chardef\greekrma="03B1 +\chardef\greekbfA="1D6A8 \chardef\greekbfa="1D6C2 +\chardef\greekitA="1D6E2 \chardef\greekita="1D6FC +\chardef\greekbiA="1D71C \chardef\greekbia="1D736 +\chardef\greeksnA="1D756 \chardef\greeksna="1D770 +\chardef\greeksiA="1D790 \chardef\greeksia="1D7AA + +\protected\def\nitgreek {\umathrangeGREEK\greekrmA \umathrangegreek\greekita} +\protected\def\rmgreek {\umathrangeGREEK\greekrmA \umathrangegreek\greekrma} +\protected\def\bfgreek {\umathrangeGREEK\greekbfA \umathrangegreek\greekbfa} +\protected\def\bigreek {\umathrangeGREEK\greekbfA \umathrangegreek\greekbia} +\protected\def\sansgreek {\umathrangeGREEK\greeksnA \umathrangegreek\greeksna} +\protected\def\isansgreek {\umathrangeGREEK\greeksnA \umathrangegreek\greeksia} + +% Another possibility (slanted capitals in \nitgreek, \bigreek, \isansgreek): +%\protected\def\nitgreek {\umathrangeGREEK\greekitA \umathrangegreek\greekita} +%\protected\def\rmgreek {\umathrangeGREEK\greekrmA \umathrangegreek\greekrma} +%\protected\def\bfgreek {\umathrangeGREEK\greekbfA \umathrangegreek\greekbfa} +%\protected\def\bigreek {\umathrangeGREEK\greekbiA \umathrangegreek\greekbia} +%\protected\def\sansgreek {\umathrangeGREEK\greeksnA \umathrangegreek\greeksna} +%\protected\def\isansgreek {\umathrangeGREEK\greeksiA \umathrangegreek\greeksia} + +\chardef\digitrmO=`0 +\chardef\digitbfO="1D7CE +\chardef\digitbbO="1D7D8 +\chardef\digitsnO="1D7E2 +\chardef\digitbsO="1D7EC +\chardef\digitttO="1D7F6 + +\protected\def\rmdigits {\umathrange{0-9}\digitrmO} +\protected\def\bfdigits {\umathrange{0-9}\digitbfO} +\protected\def\bbdigits {\umathrange{0-9}\digitbbO} +\protected\def\sansdigits {\umathrange{0-9}\digitsnO} +\protected\def\bsansdigits {\umathrange{0-9}\digitbsO} +\protected\def\ttdigits {\umathrange{0-9}\digitttO} + +\protected\def\inmath#1{\relax \ifmmode#1\fi} % to keep off \loop processing in text mode + +% You can redefine these macros to follow your wishes. +% For example you need upgright lowercase greek letters, you don't need +% \bf and \bi behaves as sans serif in math, ... + +\protected\def\rm {\_tryloadrm \_tenrm \inmath{\rmvariables \rmdigits}} +\protected\def\it {\_tryloadit \_tenit \inmath{\nitvariables}} +\protected\def\bf {\_tryloadbf \_tenbf \inmath{\bsansvariables \sansgreek \bsansdigits}} +\protected\def\bi {\_tryloadbi \_tenbi \inmath{\bisansvariables \isansgreek \bsansdigits}} +\protected\def\tt {\_tryloadtt \_tentt \inmath{\ttvariables \ttdigits}} +\protected\def\bbchar {\bbvariables \bbdigits} +\protected\def\cal {\calvariables} +\protected\def\frak {\frakvariables} +\protected\def\misans {\isansvariables \isansgreek \sansdigits} +\protected\def\mbisans {\bisansvariables \isansgreek \bsansdigits} +\protected\def\script {\rmvariables \fam4 } + +% Math codes: + +\begingroup % \input mathclass.opm (which is a copy of MathClass.txt): + \def\p#1;#2{\edef\tmp{\pB#2}\ifx\tmp\empty \else\pA#1....\end#2\fi} + \def\pA#1..#2..#3\end#4{% + \ifx\relax#2\relax \pset{"#1}{#4}\else + \umathnumA="#1 + \loop + \pset{\umathnumA}{#4}% + \ifnum\umathnumA<"#2 \advance\umathnumA by1 + \repeat + \fi + } + \def\pB#1{\if#1L1\fi \if#1B2\fi \if#1V2\fi \if#1R3\fi \if#1N0\fi \if#1U0\fi + \if#1F0\fi \if#1O4\fi \if#1C5\fi \if#1P6\fi \if#1A7\fi} + \def\pset#1#2{\global\Umathcode#1=\tmp\space 1 #1\relax + \if#2O\global\Udelcode#1=1 #1\relax\fi + \if#2C\global\Udelcode#1=1 #1\relax\fi + \if#2F\global\Udelcode#1=1 #1\relax\fi + } + \catcode`#=14 + \everypar={\setbox0=\lastbox \par \p} + \input mathclass.opm +\endgroup + +\begingroup % \input unimath-table.opm (it is a copy of unicode-math-table.tex): + \def\UnicodeMathSymbol #1#2#3#4{% + \global\Umathcharnumdef#2=\Umathcodenum#1\relax + \ifx#3\mathopen \gdef#2{\Udelimiter 4 1 #1 }\fi + \ifx#3\mathclose \gdef#2{\Udelimiter 5 1 #1 }\fi + \ifx#3\mathaccent \gdef#2{\Umathaccent fixed 7 1 #1 }\fi + } + \input unimath-table.opm +\endgroup + +\nitgreek \nitvariables \rmdigits % default setting + +\Umathcode `- = 2 1 "2212 +\let\{=\lbrace \let\}=\rbrace + +\def\sqrt {\Uradical 1 "0221A } +\def\cuberoot {\Uradical 1 "0221B } +\def\fourthroot {\Uradical 1 "0221C } + +\def\intwithnolimits#1{\ifx#1\relax \escapechar=`\\ \else \escapechar=-1 + \expandafter\let\csname\string#1op\endcsname=#1% + \expandafter\def\expandafter#1\expandafter{\csname\string#1op\endcsname \nolimits}% + \expandafter \intwithnolimits \fi +} +\intwithnolimits \int \iint \iiint \oint \oiint \oiiint \intclockwise + \varointclockwise \ointctrclockwise \sumint \iiiint \intbar \intBar \fint + \pointint \sqint \intlarhk \intx \intcap \intcup \upint \lowint \relax + +\def\vert {\Udelimiter 0 1 "07C } +\def\Vert {\Udelimiter 0 1 "02016 } +\def\Vvert {\Udelimiter 0 1 "02980 } + +\def\overbrace #1{\mathop {\Umathaccent 7 1 "023DE{#1}}\limits} +\def\underbrace #1{\mathop {\Umathaccent bottom 7 1 "023DF{#1}}\limits} +\def\overparen #1{\mathop {\Umathaccent 7 1 "023DC{#1}}\limits} +\def\underparen #1{\mathop {\Umathaccent bottom 7 1 "023DD{#1}}\limits} +\def\overbracket #1{\mathop {\Umathaccent 7 1 "023B4{#1}}\limits} +\def\underbracket #1{\mathop {\Umathaccent bottom 7 1 "023B5{#1}}\limits} + +\def\widehat {\Umathaccent 7 1 "00302 } +\def\widetilde {\Umathaccent 7 1 "00303 } +\def\overleftharpoon {\Umathaccent 7 1 "020D0 } +\def\overrightharpoon {\Umathaccent 7 1 "020D1 } +\def\overleftarrow {\Umathaccent 7 1 "020D6 } +\def\overrightarrow {\Umathaccent 7 1 "020D7 } +\def\overleftrightarrow {\Umathaccent 7 1 "020E1 } + +% corrections: + +\mathchardef\ldotp="612E +\let\|=\Vert + +\let\setminus=\smallsetminus +\let\diamond=\smwhtdiamond +\let\bullet=\smblkcircle +\let\circ=\vysmwhtcircle +\let\bigcirc=\mdlgwhtcircle +\let\to=\rightarrow +\let\le=\leq +\let\ge=\geq +\let\neq=\ne +\protected\def\triangle{\mathord{\bigtriangleup}} +\let\emptyset=\varnothing +\let\hbar=\hslash +\let\land=\wedge +\let\lor=\vee +\let\owns=\ni +\let\gets=\leftarrow +\let\mathring=\ocirc +\let\lnot=\neg +\let\longdivision=\longdivisionsign +\let\backepsilon=\upbackepsilon +\let\eth=\matheth +\let\dbkarow=\dbkarrow +\let\drbkarow=\drbkarrow +\let\hksearow=\hksearrow +\let\hkswarow=\hkswarrow + +\let\varepsilon=\epsilon +\let\upalpha=\mupalpha +\let\upbeta=\mupbeta +\let\upgamma=\mupgamma +\let\updelta=\mupdelta +\let\upepsilon=\mupvarepsilon +\let\upvarepsilon=\mupvarepsilon +\let\upzeta=\mupzeta +\let\upeta=\mupeta +\let\uptheta=\muptheta +\let\upiota=\mupiota +\let\upkappa=\mupkappa +\let\uplambda=\muplambda +\let\upmu=\mupmu +\let\upnu=\mupnu +\let\upxi=\mupxi +\let\upomicron=\mupomicron +\let\uppi=\muppi +\let\uprho=\muprho +\let\upvarrho=\mupvarrho +\let\upvarsigma=\mupvarsigma +\let\upsigma=\mupsigma +\let\uptau=\muptau +\let\upupsilon=\mupupsilon +\let\upvarphi=\mupvarphi +\let\upchi=\mupchi +\let\uppsi=\muppsi +\let\upomega=\mupomega +\let\upvartheta=\mupvartheta +\let\upphi=\mupphi +\let\upvarpi=\mupvarpi + +\protected\def\not#1{% + \expandafter\ifx \csname not!\string#1\endcsname \relax + \mathrel{\mathord{\rlap{\kern1pt/}}\mathord{#1}}% + \else \csname not!\string#1\endcsname + \fi +} +\def\negationof#1#2{\expandafter\let \csname not!\string#1\endcsname =#2} +\negationof = \neq +\negationof < \nless +\negationof > \ngtr +\negationof \gets \nleftarrow +\negationof \simeq \nsime +\negationof \equal \ne +\negationof \le \nleq +\negationof \ge \ngeq +\negationof \greater \ngtr +\negationof \forksnot \forks +\negationof \in \notin + +% we need no more 8bit math fonts + +\mathcode`\_="8000 +\mathcode`\∫="8000 +{\catcode`\∫=13 \_ea}\_ea \_let \_noexpand ∫ = \int + +\_private + \ldotp \cdotp \triangleleft \trianglerigt \mapstochar \rightarrow \prime + \lhook \rightarrow \leftarrow \rhook \triangleright \triangleleft + \Relbar \Rightarrow \relbar \rightarrow \Leftarrow \mapstochar + \longrightarrow \Longleftrightarrow \vdots \ddots ; + + +\def\boldmath{\pdfliteral direct {2 Tr .3 w}\aftergroup\noboldmath} +\def\noboldmath{\pdfliteral direct {0 Tr 0 w}} % faked bold only :-( + +\_endcode + +-------------------------------------------- + +You can combine more fonts, if you register them to another +math families (5, 6, 7, etc.) in \normalmath macro. + +The default value of \normalmath shows a combination of base Unicode Math +font with 8bit Math font at family 4. See definition of \script macro where +\fam4 is used. Of course, we need to set \rmvariables too, because 8bit font +accepts only codes less than 255. + +See http://tex.stackexchange.com/questions/308749/ for more technical details. + +The poor bold is used for complete bold vaiant of the font. If the selected +font has its bold vaiant (like xits-math), you can re-define \boldmath macro +by: + +\def\boldmath{% + \loadumathfamily 1 {[xitsmath-bold]}{} % Base font + \loadmathfamily 4 rsfs % script + \setmathdimens +} + +XITSmath-bold needs correction: the norm symbol ||x|| is missing here. So, you +can define: + +\def\boldmath{% + \loadumathfamily 1 {[xitsmath-bold]}{} % Base font + \loadmathfamily 4 rsfs % script + \loadumathfamily 5 {[xitsmath-regular]}{} + \def\|{\Udelimiter 0 5 "02016 }% % norm delimiter from family 5 + \setmathdimens +} diff --git a/Master/texmf-dist/tex/luatex/optex/unimath-table.opm b/Master/texmf-dist/tex/luatex/optex/unimath-table.opm new file mode 100644 index 00000000000..511b67e8ce5 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/unimath-table.opm @@ -0,0 +1,2467 @@ +%%^^A%% unicode-math-table.tex -- part of UNICODE-MATH <wspr.io/unicode-math> +%%^^A%% Source file of the math symbols. + +\UnicodeMathSymbol{"00021}{\mathexclam }{\mathclose}{exclamation mark}% +\UnicodeMathSymbol{"00023}{\mathoctothorpe }{\mathord}{number sign}% +\UnicodeMathSymbol{"00024}{\mathdollar }{\mathord}{dollar sign}% +\UnicodeMathSymbol{"00025}{\mathpercent }{\mathord}{percent sign}% +\UnicodeMathSymbol{"00026}{\mathampersand }{\mathord}{ampersand}% +\UnicodeMathSymbol{"00028}{\lparen }{\mathopen}{left parenthesis}% +\UnicodeMathSymbol{"00029}{\rparen }{\mathclose}{right parenthesis}% +\UnicodeMathSymbol{"0002B}{\mathplus }{\mathbin}{plus sign b:}% +\UnicodeMathSymbol{"0002C}{\mathcomma }{\mathpunct}{comma}% +\UnicodeMathSymbol{"0002E}{\mathperiod }{\mathord}{full stop, period}% +\UnicodeMathSymbol{"0002F}{\mathslash }{\mathord}{solidus}% +\UnicodeMathSymbol{"0003A}{\mathcolon }{\mathpunct}{colon}% +\UnicodeMathSymbol{"0003B}{\mathsemicolon }{\mathpunct}{semicolon p:}% +\UnicodeMathSymbol{"0003C}{\less }{\mathrel}{less-than sign r:}% +\UnicodeMathSymbol{"0003D}{\equal }{\mathrel}{equals sign r:}% +\UnicodeMathSymbol{"0003E}{\greater }{\mathrel}{greater-than sign r:}% +\UnicodeMathSymbol{"0003F}{\mathquestion }{\mathord}{question mark}% +\UnicodeMathSymbol{"00040}{\mathatsign }{\mathord}{commercial at}% +\UnicodeMathSymbol{"0005B}{\lbrack }{\mathopen}{left square bracket}% +\UnicodeMathSymbol{"0005C}{\backslash }{\mathord}{reverse solidus}% +\UnicodeMathSymbol{"0005D}{\rbrack }{\mathclose}{right square bracket}% +\UnicodeMathSymbol{"0007B}{\lbrace }{\mathopen}{left curly bracket}% +\UnicodeMathSymbol{"0007C}{\vert }{\mathfence}{vertical bar}% +\UnicodeMathSymbol{"0007D}{\rbrace }{\mathclose}{right curly bracket}% +\UnicodeMathSymbol{"000A3}{\mathsterling }{\mathord}{pound sign}% +\UnicodeMathSymbol{"000A5}{\mathyen }{\mathord}{yen sign}% +\UnicodeMathSymbol{"000A7}{\mathsection }{\mathord}{section symbol}% +\UnicodeMathSymbol{"000AC}{\neg }{\mathord}{/neg /lnot not sign}% +\UnicodeMathSymbol{"000B1}{\pm }{\mathbin}{plus-or-minus sign}% +\UnicodeMathSymbol{"000B6}{\mathparagraph }{\mathord}{paragraph symbol}% +\UnicodeMathSymbol{"000B7}{\cdotp }{\mathbin}{/centerdot b: middle dot}% +\UnicodeMathSymbol{"000D7}{\times }{\mathbin}{multiply sign}% +\UnicodeMathSymbol{"000F0}{\matheth }{\mathalpha}{eth}% +\UnicodeMathSymbol{"000F7}{\div }{\mathbin}{divide sign}% +\UnicodeMathSymbol{"001B5}{\Zbar }{\mathord}{impedance (latin capital letter z with stroke)}% +\UnicodeMathSymbol{"00300}{\grave }{\mathaccent}{grave accent}% +\UnicodeMathSymbol{"00301}{\acute }{\mathaccent}{acute accent}% +\UnicodeMathSymbol{"00302}{\hat }{\mathaccent}{circumflex accent}% +\UnicodeMathSymbol{"00302}{\widehat }{\mathaccentwide}{circumflex accent}% +\UnicodeMathSymbol{"00303}{\tilde }{\mathaccent}{tilde}% +\UnicodeMathSymbol{"00303}{\widetilde }{\mathaccentwide}{tilde}% +\UnicodeMathSymbol{"00304}{\bar }{\mathaccent}{macron}% +\UnicodeMathSymbol{"00305}{\overbar }{\mathaccent}{overbar embellishment}% +\UnicodeMathSymbol{"00305}{\wideoverbar }{\mathaccentwide}{stretchy overbar embellishment}% +\UnicodeMathSymbol{"00306}{\breve }{\mathaccent}{breve}% +\UnicodeMathSymbol{"00306}{\widebreve }{\mathaccentwide}{stretchy breve}% +\UnicodeMathSymbol{"00307}{\dot }{\mathaccent}{dot above}% +\UnicodeMathSymbol{"00308}{\ddot }{\mathaccent}{dieresis}% +\UnicodeMathSymbol{"00309}{\ovhook }{\mathaccent}{combining hook above}% +\UnicodeMathSymbol{"0030A}{\ocirc }{\mathaccent}{ring}% +\UnicodeMathSymbol{"0030C}{\check }{\mathaccent}{caron}% +\UnicodeMathSymbol{"0030C}{\widecheck }{\mathaccentwide}{stretchy caron}% +\UnicodeMathSymbol{"00310}{\candra }{\mathaccent}{candrabindu (non-spacing)}% +\UnicodeMathSymbol{"00312}{\oturnedcomma }{\mathaccent}{combining turned comma above}% +\UnicodeMathSymbol{"00315}{\ocommatopright }{\mathaccent}{combining comma above right}% +\UnicodeMathSymbol{"0031A}{\droang }{\mathaccent}{left angle above (non-spacing)}% +\UnicodeMathSymbol{"00330}{\wideutilde }{\mathbotaccentwide}{under tilde accent (multiple characters and non-spacing)}% +\UnicodeMathSymbol{"00332}{\mathunderbar }{\mathbotaccentwide}{combining low line}% +\UnicodeMathSymbol{"00338}{\notaccent }{\mathaccentoverlay}{combining long solidus overlay}% +\UnicodeMathSymbol{"0034D}{\underleftrightarrow }{\mathbotaccentwide}{underleftrightarrow accent}% +\UnicodeMathSymbol{"00391}{\mupAlpha }{\mathalpha}{capital alpha, greek}% +\UnicodeMathSymbol{"00392}{\mupBeta }{\mathalpha}{capital beta, greek}% +\UnicodeMathSymbol{"00393}{\mupGamma }{\mathalpha}{capital gamma, greek}% +\UnicodeMathSymbol{"00394}{\mupDelta }{\mathalpha}{capital delta, greek}% +\UnicodeMathSymbol{"00395}{\mupEpsilon }{\mathalpha}{capital epsilon, greek}% +\UnicodeMathSymbol{"00396}{\mupZeta }{\mathalpha}{capital zeta, greek}% +\UnicodeMathSymbol{"00397}{\mupEta }{\mathalpha}{capital eta, greek}% +\UnicodeMathSymbol{"00398}{\mupTheta }{\mathalpha}{capital theta, greek}% +\UnicodeMathSymbol{"00399}{\mupIota }{\mathalpha}{capital iota, greek}% +\UnicodeMathSymbol{"0039A}{\mupKappa }{\mathalpha}{capital kappa, greek}% +\UnicodeMathSymbol{"0039B}{\mupLambda }{\mathalpha}{capital lambda, greek}% +\UnicodeMathSymbol{"0039C}{\mupMu }{\mathalpha}{capital mu, greek}% +\UnicodeMathSymbol{"0039D}{\mupNu }{\mathalpha}{capital nu, greek}% +\UnicodeMathSymbol{"0039E}{\mupXi }{\mathalpha}{capital xi, greek}% +\UnicodeMathSymbol{"0039F}{\mupOmicron }{\mathalpha}{capital omicron, greek}% +\UnicodeMathSymbol{"003A0}{\mupPi }{\mathalpha}{capital pi, greek}% +\UnicodeMathSymbol{"003A1}{\mupRho }{\mathalpha}{capital rho, greek}% +\UnicodeMathSymbol{"003A3}{\mupSigma }{\mathalpha}{capital sigma, greek}% +\UnicodeMathSymbol{"003A4}{\mupTau }{\mathalpha}{capital tau, greek}% +\UnicodeMathSymbol{"003A5}{\mupUpsilon }{\mathalpha}{capital upsilon, greek}% +\UnicodeMathSymbol{"003A6}{\mupPhi }{\mathalpha}{capital phi, greek}% +\UnicodeMathSymbol{"003A7}{\mupChi }{\mathalpha}{capital chi, greek}% +\UnicodeMathSymbol{"003A8}{\mupPsi }{\mathalpha}{capital psi, greek}% +\UnicodeMathSymbol{"003A9}{\mupOmega }{\mathalpha}{capital omega, greek}% +\UnicodeMathSymbol{"003B1}{\mupalpha }{\mathalpha}{small alpha, greek}% +\UnicodeMathSymbol{"003B2}{\mupbeta }{\mathalpha}{small beta, greek}% +\UnicodeMathSymbol{"003B3}{\mupgamma }{\mathalpha}{small gamma, greek}% +\UnicodeMathSymbol{"003B4}{\mupdelta }{\mathalpha}{small delta, greek}% +\UnicodeMathSymbol{"003B5}{\mupvarepsilon }{\mathalpha}{rounded small varepsilon, greek}% +\UnicodeMathSymbol{"003B6}{\mupzeta }{\mathalpha}{small zeta, greek}% +\UnicodeMathSymbol{"003B7}{\mupeta }{\mathalpha}{small eta, greek}% +\UnicodeMathSymbol{"003B8}{\muptheta }{\mathalpha}{straight theta, small theta, greek}% +\UnicodeMathSymbol{"003B9}{\mupiota }{\mathalpha}{small iota, greek}% +\UnicodeMathSymbol{"003BA}{\mupkappa }{\mathalpha}{small kappa, greek}% +\UnicodeMathSymbol{"003BB}{\muplambda }{\mathalpha}{small lambda, greek}% +\UnicodeMathSymbol{"003BC}{\mupmu }{\mathalpha}{small mu, greek}% +\UnicodeMathSymbol{"003BD}{\mupnu }{\mathalpha}{small nu, greek}% +\UnicodeMathSymbol{"003BE}{\mupxi }{\mathalpha}{small xi, greek}% +\UnicodeMathSymbol{"003BF}{\mupomicron }{\mathalpha}{small omicron, greek}% +\UnicodeMathSymbol{"003C0}{\muppi }{\mathalpha}{small pi, greek}% +\UnicodeMathSymbol{"003C1}{\muprho }{\mathalpha}{small rho, greek}% +\UnicodeMathSymbol{"003C2}{\mupvarsigma }{\mathalpha}{terminal sigma, greek}% +\UnicodeMathSymbol{"003C3}{\mupsigma }{\mathalpha}{small sigma, greek}% +\UnicodeMathSymbol{"003C4}{\muptau }{\mathalpha}{small tau, greek}% +\UnicodeMathSymbol{"003C5}{\mupupsilon }{\mathalpha}{small upsilon, greek}% +\UnicodeMathSymbol{"003C6}{\mupvarphi }{\mathalpha}{curly or open small phi, greek}% +\UnicodeMathSymbol{"003C7}{\mupchi }{\mathalpha}{small chi, greek}% +\UnicodeMathSymbol{"003C8}{\muppsi }{\mathalpha}{small psi, greek}% +\UnicodeMathSymbol{"003C9}{\mupomega }{\mathalpha}{small omega, greek}% +\UnicodeMathSymbol{"003D1}{\mupvartheta }{\mathalpha}{/vartheta - curly or open theta}% +\UnicodeMathSymbol{"003D5}{\mupphi }{\mathalpha}{/straightphi - small phi, greek}% +\UnicodeMathSymbol{"003D6}{\mupvarpi }{\mathalpha}{rounded small pi (pomega), greek}% +\UnicodeMathSymbol{"003DC}{\upDigamma }{\mathalpha}{capital digamma}% +\UnicodeMathSymbol{"003DD}{\updigamma }{\mathalpha}{old greek small letter digamma}% +\UnicodeMathSymbol{"003F0}{\mupvarkappa }{\mathalpha}{rounded small kappa, greek}% +\UnicodeMathSymbol{"003F1}{\mupvarrho }{\mathalpha}{rounded small rho, greek}% +\UnicodeMathSymbol{"003F4}{\mupvarTheta }{\mathalpha}{greek capital theta symbol}% +\UnicodeMathSymbol{"003F5}{\mupepsilon }{\mathalpha}{greek lunate varepsilon symbol}% +\UnicodeMathSymbol{"003F6}{\upbackepsilon }{\mathord}{greek reversed lunate epsilon symbol}% +\UnicodeMathSymbol{"02010}{\mathhyphen }{\mathalpha}{hyphen}% +\UnicodeMathSymbol{"02015}{\horizbar }{\mathord}{horizontal bar}% +\UnicodeMathSymbol{"02016}{\Vert }{\mathfence}{double vertical bar}% +\UnicodeMathSymbol{"02017}{\twolowline }{\mathord}{double low line (spacing)}% +\UnicodeMathSymbol{"02020}{\dagger }{\mathbin}{dagger relation}% +\UnicodeMathSymbol{"02021}{\ddagger }{\mathbin}{double dagger relation}% +\UnicodeMathSymbol{"02022}{\smblkcircle }{\mathbin}{/bullet b: round bullet, filled}% +\UnicodeMathSymbol{"02025}{\enleadertwodots }{\mathord}{double baseline dot (en leader)}% +\UnicodeMathSymbol{"02026}{\unicodeellipsis }{\mathord}{ellipsis (horizontal)}% +\UnicodeMathSymbol{"02032}{\prime }{\mathord}{prime or minute, not superscripted}% +\UnicodeMathSymbol{"02033}{\dprime }{\mathord}{double prime or second, not superscripted}% +\UnicodeMathSymbol{"02034}{\trprime }{\mathord}{triple prime (not superscripted)}% +\UnicodeMathSymbol{"02035}{\backprime }{\mathord}{reverse prime, not superscripted}% +\UnicodeMathSymbol{"02036}{\backdprime }{\mathord}{double reverse prime, not superscripted}% +\UnicodeMathSymbol{"02037}{\backtrprime }{\mathord}{triple reverse prime, not superscripted}% +\UnicodeMathSymbol{"02038}{\caretinsert }{\mathord}{caret (insertion mark)}% +\UnicodeMathSymbol{"0203C}{\Exclam }{\mathord}{double exclamation mark}% +\UnicodeMathSymbol{"02040}{\tieconcat }{\mathbin}{character tie, z notation sequence concatenation}% +\UnicodeMathSymbol{"02043}{\hyphenbullet }{\mathord}{rectangle, filled (hyphen bullet)}% +\UnicodeMathSymbol{"02044}{\fracslash }{\mathbin}{fraction slash}% +\UnicodeMathSymbol{"02047}{\Question }{\mathord}{double question mark}% +\UnicodeMathSymbol{"02050}{\closure }{\mathrel}{close up}% +\UnicodeMathSymbol{"02057}{\qprime }{\mathord}{quadruple prime, not superscripted}% +\UnicodeMathSymbol{"020AC}{\euro }{\mathord}{euro sign}% +\UnicodeMathSymbol{"020D0}{\leftharpoonaccent }{\mathaccent}{combining left harpoon above}% +\UnicodeMathSymbol{"020D0}{\overleftharpoon }{\mathaccentwide}{combining left harpoon above}% +\UnicodeMathSymbol{"020D1}{\rightharpoonaccent }{\mathaccent}{combining right harpoon above}% +\UnicodeMathSymbol{"020D1}{\overrightharpoon }{\mathaccentwide}{combining right harpoon above}% +\UnicodeMathSymbol{"020D2}{\vertoverlay }{\mathaccent}{combining long vertical line overlay}% +\UnicodeMathSymbol{"020D6}{\overleftarrow }{\mathaccentwide}{combining left arrow above}% +\UnicodeMathSymbol{"020D7}{\overrightarrow }{\mathaccentwide}{combining left arrow above}% +\UnicodeMathSymbol{"020D7}{\vec }{\mathaccent}{combining right arrow above}% +\UnicodeMathSymbol{"020DB}{\dddot }{\mathaccent}{combining three dots above}% +\UnicodeMathSymbol{"020DC}{\ddddot }{\mathaccent}{combining four dots above}% +\UnicodeMathSymbol{"020DD}{\enclosecircle }{\mathord}{combining enclosing circle}% +\UnicodeMathSymbol{"020DE}{\enclosesquare }{\mathord}{combining enclosing square}% +\UnicodeMathSymbol{"020DF}{\enclosediamond }{\mathord}{combining enclosing diamond}% +\UnicodeMathSymbol{"020E1}{\overleftrightarrow }{\mathaccentwide}{combining left right arrow above}% +\UnicodeMathSymbol{"020E4}{\enclosetriangle }{\mathord}{combining enclosing upward pointing triangle}% +\UnicodeMathSymbol{"020E7}{\annuity }{\mathaccent}{combining annuity symbol}% +\UnicodeMathSymbol{"020E8}{\threeunderdot }{\mathbotaccent}{combining triple underdot}% +\UnicodeMathSymbol{"020E9}{\widebridgeabove }{\mathaccent}{combining wide bridge above}% +\UnicodeMathSymbol{"020EC}{\underrightharpoondown }{\mathbotaccentwide}{combining rightwards harpoon with barb downwards}% +\UnicodeMathSymbol{"020ED}{\underleftharpoondown }{\mathbotaccentwide}{combining leftwards harpoon with barb downwards}% +\UnicodeMathSymbol{"020EE}{\underleftarrow }{\mathbotaccentwide}{combining left arrow below}% +\UnicodeMathSymbol{"020EF}{\underrightarrow }{\mathbotaccentwide}{combining right arrow below}% +\UnicodeMathSymbol{"020F0}{\asteraccent }{\mathaccent}{combining asterisk above}% +\UnicodeMathSymbol{"02102}{\BbbC }{\mathalpha}{/bbb c, open face c}% +\UnicodeMathSymbol{"02107}{\Eulerconst }{\mathord}{euler constant}% +\UnicodeMathSymbol{"0210A}{\mscrg }{\mathalpha}{/scr g, script letter g}% +\UnicodeMathSymbol{"0210B}{\mscrH }{\mathalpha}{hamiltonian (script capital h)}% +\UnicodeMathSymbol{"0210C}{\mfrakH }{\mathalpha}{/frak h, upper case h}% +\UnicodeMathSymbol{"0210D}{\BbbH }{\mathalpha}{/bbb h, open face h}% +\UnicodeMathSymbol{"0210E}{\Planckconst }{\mathord}{planck constant}% +\UnicodeMathSymbol{"0210F}{\hslash }{\mathalpha}{/hslash - variant planck's over 2pi}% +\UnicodeMathSymbol{"02110}{\mscrI }{\mathalpha}{/scr i, script letter i}% +\UnicodeMathSymbol{"02111}{\Im }{\mathalpha}{imaginary part}% +\UnicodeMathSymbol{"02112}{\mscrL }{\mathalpha}{lagrangian (script capital l)}% +\UnicodeMathSymbol{"02113}{\ell }{\mathalpha}{cursive small l}% +\UnicodeMathSymbol{"02115}{\BbbN }{\mathalpha}{/bbb n, open face n}% +\UnicodeMathSymbol{"02118}{\wp }{\mathalpha}{weierstrass p}% +\UnicodeMathSymbol{"02119}{\BbbP }{\mathalpha}{/bbb p, open face p}% +\UnicodeMathSymbol{"0211A}{\BbbQ }{\mathalpha}{/bbb q, open face q}% +\UnicodeMathSymbol{"0211B}{\mscrR }{\mathalpha}{/scr r, script letter r}% +\UnicodeMathSymbol{"0211C}{\Re }{\mathalpha}{real part}% +\UnicodeMathSymbol{"0211D}{\BbbR }{\mathalpha}{/bbb r, open face r}% +\UnicodeMathSymbol{"02124}{\BbbZ }{\mathalpha}{/bbb z, open face z}% +\UnicodeMathSymbol{"02127}{\mho }{\mathord}{conductance}% +\UnicodeMathSymbol{"02128}{\mfrakZ }{\mathalpha}{/frak z, upper case z}% +\UnicodeMathSymbol{"02129}{\turnediota }{\mathalpha}{turned iota}% +\UnicodeMathSymbol{"0212B}{\Angstrom }{\mathalpha}{angstrom capital a, ring}% +\UnicodeMathSymbol{"0212C}{\mscrB }{\mathalpha}{bernoulli function (script capital b)}% +\UnicodeMathSymbol{"0212D}{\mfrakC }{\mathalpha}{black-letter capital c}% +\UnicodeMathSymbol{"0212F}{\mscre }{\mathalpha}{/scr e, script letter e}% +\UnicodeMathSymbol{"02130}{\mscrE }{\mathalpha}{/scr e, script letter e}% +\UnicodeMathSymbol{"02131}{\mscrF }{\mathalpha}{/scr f, script letter f}% +\UnicodeMathSymbol{"02132}{\Finv }{\mathord}{turned capital f}% +\UnicodeMathSymbol{"02133}{\mscrM }{\mathalpha}{physics m-matrix (script capital m)}% +\UnicodeMathSymbol{"02134}{\mscro }{\mathalpha}{order of (script small o)}% +\UnicodeMathSymbol{"02135}{\aleph }{\mathalpha}{aleph, hebrew}% +\UnicodeMathSymbol{"02136}{\beth }{\mathalpha}{beth, hebrew}% +\UnicodeMathSymbol{"02137}{\gimel }{\mathalpha}{gimel, hebrew}% +\UnicodeMathSymbol{"02138}{\daleth }{\mathalpha}{daleth, hebrew}% +\UnicodeMathSymbol{"0213C}{\Bbbpi }{\mathord}{double-struck small pi}% +\UnicodeMathSymbol{"0213D}{\Bbbgamma }{\mathalpha}{double-struck small gamma}% +\UnicodeMathSymbol{"0213E}{\BbbGamma }{\mathalpha}{double-struck capital gamma}% +\UnicodeMathSymbol{"0213F}{\BbbPi }{\mathalpha}{double-struck capital pi}% +\UnicodeMathSymbol{"02140}{\Bbbsum }{\mathop}{double-struck n-ary summation}% +\UnicodeMathSymbol{"02141}{\Game }{\mathord}{turned sans-serif capital g}% +\UnicodeMathSymbol{"02142}{\sansLturned }{\mathord}{turned sans-serif capital l}% +\UnicodeMathSymbol{"02143}{\sansLmirrored }{\mathord}{reversed sans-serif capital l}% +\UnicodeMathSymbol{"02144}{\Yup }{\mathord}{turned sans-serif capital y}% +\UnicodeMathSymbol{"02145}{\mitBbbD }{\mathord}{double-struck italic capital d}% +\UnicodeMathSymbol{"02146}{\mitBbbd }{\mathord}{double-struck italic small d}% +\UnicodeMathSymbol{"02147}{\mitBbbe }{\mathord}{double-struck italic small e}% +\UnicodeMathSymbol{"02148}{\mitBbbi }{\mathord}{double-struck italic small i}% +\UnicodeMathSymbol{"02149}{\mitBbbj }{\mathord}{double-struck italic small j}% +\UnicodeMathSymbol{"0214A}{\PropertyLine }{\mathord}{property line}% +\UnicodeMathSymbol{"0214B}{\upand }{\mathbin}{turned ampersand}% +\UnicodeMathSymbol{"02190}{\leftarrow }{\mathrel}{/leftarrow /gets a: leftward arrow}% +\UnicodeMathSymbol{"02191}{\uparrow }{\mathrel}{upward arrow}% +\UnicodeMathSymbol{"02192}{\rightarrow }{\mathrel}{/rightarrow /to a: rightward arrow}% +\UnicodeMathSymbol{"02193}{\downarrow }{\mathrel}{downward arrow}% +\UnicodeMathSymbol{"02194}{\leftrightarrow }{\mathrel}{left and right arrow}% +\UnicodeMathSymbol{"02195}{\updownarrow }{\mathrel}{up and down arrow}% +\UnicodeMathSymbol{"02196}{\nwarrow }{\mathrel}{nw pointing arrow}% +\UnicodeMathSymbol{"02197}{\nearrow }{\mathrel}{ne pointing arrow}% +\UnicodeMathSymbol{"02198}{\searrow }{\mathrel}{se pointing arrow}% +\UnicodeMathSymbol{"02199}{\swarrow }{\mathrel}{sw pointing arrow}% +\UnicodeMathSymbol{"0219A}{\nleftarrow }{\mathrel}{not left arrow}% +\UnicodeMathSymbol{"0219B}{\nrightarrow }{\mathrel}{not right arrow}% +\UnicodeMathSymbol{"0219C}{\leftwavearrow }{\mathrel}{left arrow-wavy}% +\UnicodeMathSymbol{"0219D}{\rightwavearrow }{\mathrel}{right arrow-wavy}% +\UnicodeMathSymbol{"0219E}{\twoheadleftarrow }{\mathrel}{left two-headed arrow}% +\UnicodeMathSymbol{"0219F}{\twoheaduparrow }{\mathrel}{up two-headed arrow}% +\UnicodeMathSymbol{"021A0}{\twoheadrightarrow }{\mathrel}{right two-headed arrow}% +\UnicodeMathSymbol{"021A1}{\twoheaddownarrow }{\mathrel}{down two-headed arrow}% +\UnicodeMathSymbol{"021A2}{\leftarrowtail }{\mathrel}{left arrow-tailed}% +\UnicodeMathSymbol{"021A3}{\rightarrowtail }{\mathrel}{right arrow-tailed}% +\UnicodeMathSymbol{"021A4}{\mapsfrom }{\mathrel}{maps to, leftward}% +\UnicodeMathSymbol{"021A5}{\mapsup }{\mathrel}{maps to, upward}% +\UnicodeMathSymbol{"021A6}{\mapsto }{\mathrel}{maps to, rightward}% +\UnicodeMathSymbol{"021A7}{\mapsdown }{\mathrel}{maps to, downward}% +\UnicodeMathSymbol{"021A8}{\updownarrowbar }{\mathord}{up down arrow with base (perpendicular)}% +\UnicodeMathSymbol{"021A9}{\hookleftarrow }{\mathrel}{left arrow-hooked}% +\UnicodeMathSymbol{"021AA}{\hookrightarrow }{\mathrel}{right arrow-hooked}% +\UnicodeMathSymbol{"021AB}{\looparrowleft }{\mathrel}{left arrow-looped}% +\UnicodeMathSymbol{"021AC}{\looparrowright }{\mathrel}{right arrow-looped}% +\UnicodeMathSymbol{"021AD}{\leftrightsquigarrow }{\mathrel}{left and right arr-wavy}% +\UnicodeMathSymbol{"021AE}{\nleftrightarrow }{\mathrel}{not left and right arrow}% +\UnicodeMathSymbol{"021AF}{\downzigzagarrow }{\mathrel}{downwards zigzag arrow}% +\UnicodeMathSymbol{"021B0}{\Lsh }{\mathrel}{/lsh a:}% +\UnicodeMathSymbol{"021B1}{\Rsh }{\mathrel}{/rsh a:}% +\UnicodeMathSymbol{"021B2}{\Ldsh }{\mathrel}{left down angled arrow}% +\UnicodeMathSymbol{"021B3}{\Rdsh }{\mathrel}{right down angled arrow}% +\UnicodeMathSymbol{"021B4}{\linefeed }{\mathord}{rightwards arrow with corner downwards}% +\UnicodeMathSymbol{"021B5}{\carriagereturn }{\mathord}{downwards arrow with corner leftward = carriage return}% +\UnicodeMathSymbol{"021B6}{\curvearrowleft }{\mathrel}{left curved arrow}% +\UnicodeMathSymbol{"021B7}{\curvearrowright }{\mathrel}{right curved arrow}% +\UnicodeMathSymbol{"021B8}{\barovernorthwestarrow }{\mathord}{north west arrow to long bar}% +\UnicodeMathSymbol{"021B9}{\barleftarrowrightarrowbar}{\mathord}{leftwards arrow to bar over rightwards arrow to bar}% +\UnicodeMathSymbol{"021BA}{\acwopencirclearrow }{\mathord}{anticlockwise open circle arrow}% +\UnicodeMathSymbol{"021BB}{\cwopencirclearrow }{\mathord}{clockwise open circle arrow}% +\UnicodeMathSymbol{"021BC}{\leftharpoonup }{\mathrel}{left harpoon-up}% +\UnicodeMathSymbol{"021BD}{\leftharpoondown }{\mathrel}{left harpoon-down}% +\UnicodeMathSymbol{"021BE}{\upharpoonright }{\mathrel}{/upharpoonright /restriction a: up harpoon-right}% +\UnicodeMathSymbol{"021BF}{\upharpoonleft }{\mathrel}{up harpoon-left}% +\UnicodeMathSymbol{"021C0}{\rightharpoonup }{\mathrel}{right harpoon-up}% +\UnicodeMathSymbol{"021C1}{\rightharpoondown }{\mathrel}{right harpoon-down}% +\UnicodeMathSymbol{"021C2}{\downharpoonright }{\mathrel}{down harpoon-right}% +\UnicodeMathSymbol{"021C3}{\downharpoonleft }{\mathrel}{down harpoon-left}% +\UnicodeMathSymbol{"021C4}{\rightleftarrows }{\mathrel}{right arrow over left arrow}% +\UnicodeMathSymbol{"021C5}{\updownarrows }{\mathrel}{up arrow, down arrow}% +\UnicodeMathSymbol{"021C6}{\leftrightarrows }{\mathrel}{left arrow over right arrow}% +\UnicodeMathSymbol{"021C7}{\leftleftarrows }{\mathrel}{two left arrows}% +\UnicodeMathSymbol{"021C8}{\upuparrows }{\mathrel}{two up arrows}% +\UnicodeMathSymbol{"021C9}{\rightrightarrows }{\mathrel}{two right arrows}% +\UnicodeMathSymbol{"021CA}{\downdownarrows }{\mathrel}{two down arrows}% +\UnicodeMathSymbol{"021CB}{\leftrightharpoons }{\mathrel}{left harpoon over right}% +\UnicodeMathSymbol{"021CC}{\rightleftharpoons }{\mathrel}{right harpoon over left}% +\UnicodeMathSymbol{"021CD}{\nLeftarrow }{\mathrel}{not implied by}% +\UnicodeMathSymbol{"021CE}{\nLeftrightarrow }{\mathrel}{not left and right double arrows}% +\UnicodeMathSymbol{"021CF}{\nRightarrow }{\mathrel}{not implies}% +\UnicodeMathSymbol{"021D0}{\Leftarrow }{\mathrel}{is implied by}% +\UnicodeMathSymbol{"021D1}{\Uparrow }{\mathrel}{up double arrow}% +\UnicodeMathSymbol{"021D2}{\Rightarrow }{\mathrel}{implies}% +\UnicodeMathSymbol{"021D3}{\Downarrow }{\mathrel}{down double arrow}% +\UnicodeMathSymbol{"021D4}{\Leftrightarrow }{\mathrel}{left and right double arrow}% +\UnicodeMathSymbol{"021D5}{\Updownarrow }{\mathrel}{up and down double arrow}% +\UnicodeMathSymbol{"021D6}{\Nwarrow }{\mathrel}{nw pointing double arrow}% +\UnicodeMathSymbol{"021D7}{\Nearrow }{\mathrel}{ne pointing double arrow}% +\UnicodeMathSymbol{"021D8}{\Searrow }{\mathrel}{se pointing double arrow}% +\UnicodeMathSymbol{"021D9}{\Swarrow }{\mathrel}{sw pointing double arrow}% +\UnicodeMathSymbol{"021DA}{\Lleftarrow }{\mathrel}{left triple arrow}% +\UnicodeMathSymbol{"021DB}{\Rrightarrow }{\mathrel}{right triple arrow}% +\UnicodeMathSymbol{"021DC}{\leftsquigarrow }{\mathrel}{leftwards squiggle arrow}% +\UnicodeMathSymbol{"021DD}{\rightsquigarrow }{\mathrel}{rightwards squiggle arrow}% +\UnicodeMathSymbol{"021DE}{\nHuparrow }{\mathord}{upwards arrow with double stroke}% +\UnicodeMathSymbol{"021DF}{\nHdownarrow }{\mathord}{downwards arrow with double stroke}% +\UnicodeMathSymbol{"021E0}{\leftdasharrow }{\mathord}{leftwards dashed arrow}% +\UnicodeMathSymbol{"021E1}{\updasharrow }{\mathord}{upwards dashed arrow}% +\UnicodeMathSymbol{"021E2}{\rightdasharrow }{\mathord}{rightwards dashed arrow}% +\UnicodeMathSymbol{"021E3}{\downdasharrow }{\mathord}{downwards dashed arrow}% +\UnicodeMathSymbol{"021E4}{\barleftarrow }{\mathrel}{leftwards arrow to bar}% +\UnicodeMathSymbol{"021E5}{\rightarrowbar }{\mathrel}{rightwards arrow to bar}% +\UnicodeMathSymbol{"021E6}{\leftwhitearrow }{\mathord}{leftwards white arrow}% +\UnicodeMathSymbol{"021E7}{\upwhitearrow }{\mathord}{upwards white arrow}% +\UnicodeMathSymbol{"021E8}{\rightwhitearrow }{\mathord}{rightwards white arrow}% +\UnicodeMathSymbol{"021E9}{\downwhitearrow }{\mathord}{downwards white arrow}% +\UnicodeMathSymbol{"021EA}{\whitearrowupfrombar }{\mathord}{upwards white arrow from bar}% +\UnicodeMathSymbol{"021F4}{\circleonrightarrow }{\mathrel}{right arrow with small circle}% +\UnicodeMathSymbol{"021F5}{\downuparrows }{\mathrel}{downwards arrow leftwards of upwards arrow}% +\UnicodeMathSymbol{"021F6}{\rightthreearrows }{\mathrel}{three rightwards arrows}% +\UnicodeMathSymbol{"021F7}{\nvleftarrow }{\mathrel}{leftwards arrow with vertical stroke}% +\UnicodeMathSymbol{"021F8}{\nvrightarrow }{\mathrel}{rightwards arrow with vertical stroke}% +\UnicodeMathSymbol{"021F9}{\nvleftrightarrow }{\mathrel}{left right arrow with vertical stroke}% +\UnicodeMathSymbol{"021FA}{\nVleftarrow }{\mathrel}{leftwards arrow with double vertical stroke}% +\UnicodeMathSymbol{"021FB}{\nVrightarrow }{\mathrel}{rightwards arrow with double vertical stroke}% +\UnicodeMathSymbol{"021FC}{\nVleftrightarrow }{\mathrel}{left right arrow with double vertical stroke}% +\UnicodeMathSymbol{"021FD}{\leftarrowtriangle }{\mathrel}{leftwards open-headed arrow}% +\UnicodeMathSymbol{"021FE}{\rightarrowtriangle }{\mathrel}{rightwards open-headed arrow}% +\UnicodeMathSymbol{"021FF}{\leftrightarrowtriangle }{\mathrel}{left right open-headed arrow}% +\UnicodeMathSymbol{"02200}{\forall }{\mathord}{for all}% +\UnicodeMathSymbol{"02201}{\complement }{\mathord}{complement sign}% +\UnicodeMathSymbol{"02202}{\partial }{\mathalpha}{partial differential}% +\UnicodeMathSymbol{"02203}{\exists }{\mathord}{at least one exists}% +\UnicodeMathSymbol{"02204}{\nexists }{\mathord}{negated exists}% +\UnicodeMathSymbol{"02205}{\varnothing }{\mathord}{circle, slash}% +\UnicodeMathSymbol{"02206}{\increment }{\mathord}{laplacian (delta; nabla\string^2)}% +\UnicodeMathSymbol{"02207}{\nabla }{\mathalpha}{nabla, del, hamilton operator}% +\UnicodeMathSymbol{"02208}{\in }{\mathrel}{set membership, variant}% +\UnicodeMathSymbol{"02209}{\notin }{\mathrel}{negated set membership}% +\UnicodeMathSymbol{"0220A}{\smallin }{\mathrel}{set membership (small set membership)}% +\UnicodeMathSymbol{"0220B}{\ni }{\mathrel}{contains, variant}% +\UnicodeMathSymbol{"0220C}{\nni }{\mathrel}{negated contains, variant}% +\UnicodeMathSymbol{"0220D}{\smallni }{\mathrel}{/ni /owns r: contains (small contains as member)}% +\UnicodeMathSymbol{"0220E}{\QED }{\mathord}{end of proof}% +\UnicodeMathSymbol{"0220F}{\prod }{\mathop}{product operator}% +\UnicodeMathSymbol{"02210}{\coprod }{\mathop}{coproduct operator}% +\UnicodeMathSymbol{"02211}{\sum }{\mathop}{summation operator}% +\UnicodeMathSymbol{"02212}{\minus }{\mathbin}{minus sign}% +\UnicodeMathSymbol{"02213}{\mp }{\mathbin}{minus-or-plus sign}% +\UnicodeMathSymbol{"02214}{\dotplus }{\mathbin}{plus sign, dot above}% +\UnicodeMathSymbol{"02215}{\divslash }{\mathbin}{division slash}% +\UnicodeMathSymbol{"02216}{\smallsetminus }{\mathbin}{small set minus (cf. reverse solidus)}% +\UnicodeMathSymbol{"02217}{\ast }{\mathbin}{centered asterisk}% +\UnicodeMathSymbol{"02218}{\vysmwhtcircle }{\mathbin}{composite function (small circle)}% +\UnicodeMathSymbol{"02219}{\vysmblkcircle }{\mathbin}{bullet operator}% +\UnicodeMathSymbol{"0221A}{\sqrt }{\mathopen}{radical}% +\UnicodeMathSymbol{"0221A}{\surd }{\mathord}{radical}% +\UnicodeMathSymbol{"0221B}{\cuberoot }{\mathopen}{cube root}% +\UnicodeMathSymbol{"0221C}{\fourthroot }{\mathopen}{fourth root}% +\UnicodeMathSymbol{"0221D}{\propto }{\mathrel}{is proportional to}% +\UnicodeMathSymbol{"0221E}{\infty }{\mathord}{infinity}% +\UnicodeMathSymbol{"0221F}{\rightangle }{\mathord}{right (90 degree) angle}% +\UnicodeMathSymbol{"02220}{\angle }{\mathord}{angle}% +\UnicodeMathSymbol{"02221}{\measuredangle }{\mathord}{angle-measured}% +\UnicodeMathSymbol{"02222}{\sphericalangle }{\mathord}{angle-spherical}% +\UnicodeMathSymbol{"02223}{\mid }{\mathrel}{/mid r:}% +\UnicodeMathSymbol{"02224}{\nmid }{\mathrel}{negated mid}% +\UnicodeMathSymbol{"02225}{\parallel }{\mathrel}{parallel}% +\UnicodeMathSymbol{"02226}{\nparallel }{\mathrel}{not parallel}% +\UnicodeMathSymbol{"02227}{\wedge }{\mathbin}{/wedge /land b: logical and}% +\UnicodeMathSymbol{"02228}{\vee }{\mathbin}{/vee /lor b: logical or}% +\UnicodeMathSymbol{"02229}{\cap }{\mathbin}{intersection}% +\UnicodeMathSymbol{"0222A}{\cup }{\mathbin}{union or logical sum}% +\UnicodeMathSymbol{"0222B}{\int }{\mathop}{integral operator}% +\UnicodeMathSymbol{"0222C}{\iint }{\mathop}{double integral operator}% +\UnicodeMathSymbol{"0222D}{\iiint }{\mathop}{triple integral operator}% +\UnicodeMathSymbol{"0222E}{\oint }{\mathop}{contour integral operator}% +\UnicodeMathSymbol{"0222F}{\oiint }{\mathop}{double contour integral operator}% +\UnicodeMathSymbol{"02230}{\oiiint }{\mathop}{triple contour integral operator}% +\UnicodeMathSymbol{"02231}{\intclockwise }{\mathop}{clockwise integral}% +\UnicodeMathSymbol{"02232}{\varointclockwise }{\mathop}{contour integral, clockwise}% +\UnicodeMathSymbol{"02233}{\ointctrclockwise }{\mathop}{contour integral, anticlockwise}% +\UnicodeMathSymbol{"02234}{\therefore }{\mathord}{therefore}% +\UnicodeMathSymbol{"02235}{\because }{\mathord}{because}% +\UnicodeMathSymbol{"02236}{\mathratio }{\mathrel}{ratio}% +\UnicodeMathSymbol{"02237}{\Colon }{\mathrel}{two colons}% +\UnicodeMathSymbol{"02238}{\dotminus }{\mathbin}{minus sign, dot above}% +\UnicodeMathSymbol{"02239}{\dashcolon }{\mathrel}{excess (-:)}% +\UnicodeMathSymbol{"0223A}{\dotsminusdots }{\mathrel}{minus with four dots, geometric properties}% +\UnicodeMathSymbol{"0223B}{\kernelcontraction }{\mathrel}{homothetic}% +\UnicodeMathSymbol{"0223C}{\sim }{\mathrel}{similar}% +\UnicodeMathSymbol{"0223D}{\backsim }{\mathrel}{reverse similar}% +\UnicodeMathSymbol{"0223E}{\invlazys }{\mathbin}{most positive [inverted lazy s]}% +\UnicodeMathSymbol{"0223F}{\sinewave }{\mathord}{sine wave}% +\UnicodeMathSymbol{"02240}{\wr }{\mathbin}{wreath product}% +\UnicodeMathSymbol{"02241}{\nsim }{\mathrel}{not similar}% +\UnicodeMathSymbol{"02242}{\eqsim }{\mathrel}{equals, similar}% +\UnicodeMathSymbol{"02243}{\simeq }{\mathrel}{similar, equals}% +\UnicodeMathSymbol{"02244}{\nsime }{\mathrel}{not similar, equals}% +\UnicodeMathSymbol{"02243}{\sime }{\mathrel}{similar, equals (alias)}% +\UnicodeMathSymbol{"02244}{\nsimeq }{\mathrel}{not similar, equals (alias)}% +\UnicodeMathSymbol{"02245}{\cong }{\mathrel}{congruent with}% +\UnicodeMathSymbol{"02246}{\simneqq }{\mathrel}{similar, not equals [vert only for 9573 entity]}% +\UnicodeMathSymbol{"02247}{\ncong }{\mathrel}{not congruent with}% +\UnicodeMathSymbol{"02248}{\approx }{\mathrel}{approximate}% +\UnicodeMathSymbol{"02249}{\napprox }{\mathrel}{not approximate}% +\UnicodeMathSymbol{"0224A}{\approxeq }{\mathrel}{approximate, equals}% +\UnicodeMathSymbol{"0224B}{\approxident }{\mathrel}{approximately identical to}% +\UnicodeMathSymbol{"0224C}{\backcong }{\mathrel}{all equal to}% +\UnicodeMathSymbol{"0224D}{\asymp }{\mathrel}{asymptotically equal to}% +\UnicodeMathSymbol{"0224E}{\Bumpeq }{\mathrel}{bumpy equals}% +\UnicodeMathSymbol{"0224F}{\bumpeq }{\mathrel}{bumpy equals, equals}% +\UnicodeMathSymbol{"02250}{\doteq }{\mathrel}{equals, single dot above}% +\UnicodeMathSymbol{"02251}{\Doteq }{\mathrel}{/doteqdot /doteq r: equals, even dots}% +\UnicodeMathSymbol{"02252}{\fallingdotseq }{\mathrel}{equals, falling dots}% +\UnicodeMathSymbol{"02253}{\risingdotseq }{\mathrel}{equals, rising dots}% +\UnicodeMathSymbol{"02254}{\coloneq }{\mathrel}{colon, equals}% +\UnicodeMathSymbol{"02255}{\eqcolon }{\mathrel}{equals, colon}% +\UnicodeMathSymbol{"02256}{\eqcirc }{\mathrel}{circle on equals sign}% +\UnicodeMathSymbol{"02257}{\circeq }{\mathrel}{circle, equals}% +\UnicodeMathSymbol{"02258}{\arceq }{\mathrel}{arc, equals; corresponds to}% +\UnicodeMathSymbol{"02259}{\wedgeq }{\mathrel}{corresponds to (wedge, equals)}% +\UnicodeMathSymbol{"0225A}{\veeeq }{\mathrel}{logical or, equals}% +\UnicodeMathSymbol{"0225B}{\stareq }{\mathrel}{star equals}% +\UnicodeMathSymbol{"0225C}{\triangleq }{\mathrel}{triangle, equals}% +\UnicodeMathSymbol{"0225D}{\eqdef }{\mathrel}{equals by definition}% +\UnicodeMathSymbol{"0225E}{\measeq }{\mathrel}{measured by (m over equals)}% +\UnicodeMathSymbol{"0225F}{\questeq }{\mathrel}{equal with questionmark}% +\UnicodeMathSymbol{"02260}{\ne }{\mathrel}{/ne /neq r: not equal}% +\UnicodeMathSymbol{"02261}{\equiv }{\mathrel}{identical with}% +\UnicodeMathSymbol{"02262}{\nequiv }{\mathrel}{not identical with}% +\UnicodeMathSymbol{"02263}{\Equiv }{\mathrel}{strict equivalence (4 lines)}% +\UnicodeMathSymbol{"02264}{\leq }{\mathrel}{/leq /le r: less-than-or-equal}% +\UnicodeMathSymbol{"02265}{\geq }{\mathrel}{/geq /ge r: greater-than-or-equal}% +\UnicodeMathSymbol{"02266}{\leqq }{\mathrel}{less, double equals}% +\UnicodeMathSymbol{"02267}{\geqq }{\mathrel}{greater, double equals}% +\UnicodeMathSymbol{"02268}{\lneqq }{\mathrel}{less, not double equals}% +\UnicodeMathSymbol{"02269}{\gneqq }{\mathrel}{greater, not double equals}% +\UnicodeMathSymbol{"0226A}{\ll }{\mathrel}{much less than, type 2}% +\UnicodeMathSymbol{"0226B}{\gg }{\mathrel}{much greater than, type 2}% +\UnicodeMathSymbol{"0226C}{\between }{\mathrel}{between}% +\UnicodeMathSymbol{"0226D}{\nasymp }{\mathrel}{not asymptotically equal to}% +\UnicodeMathSymbol{"0226E}{\nless }{\mathrel}{not less-than}% +\UnicodeMathSymbol{"0226F}{\ngtr }{\mathrel}{not greater-than}% +\UnicodeMathSymbol{"02270}{\nleq }{\mathrel}{not less-than-or-equal}% +\UnicodeMathSymbol{"02271}{\ngeq }{\mathrel}{not greater-than-or-equal}% +\UnicodeMathSymbol{"02272}{\lesssim }{\mathrel}{less, similar}% +\UnicodeMathSymbol{"02273}{\gtrsim }{\mathrel}{greater, similar}% +\UnicodeMathSymbol{"02274}{\nlesssim }{\mathrel}{not less, similar}% +\UnicodeMathSymbol{"02275}{\ngtrsim }{\mathrel}{not greater, similar}% +\UnicodeMathSymbol{"02276}{\lessgtr }{\mathrel}{less, greater}% +\UnicodeMathSymbol{"02277}{\gtrless }{\mathrel}{greater, less}% +\UnicodeMathSymbol{"02278}{\nlessgtr }{\mathrel}{not less, greater}% +\UnicodeMathSymbol{"02279}{\ngtrless }{\mathrel}{not greater, less}% +\UnicodeMathSymbol{"0227A}{\prec }{\mathrel}{precedes}% +\UnicodeMathSymbol{"0227B}{\succ }{\mathrel}{succeeds}% +\UnicodeMathSymbol{"0227C}{\preccurlyeq }{\mathrel}{precedes, curly equals}% +\UnicodeMathSymbol{"0227D}{\succcurlyeq }{\mathrel}{succeeds, curly equals}% +\UnicodeMathSymbol{"0227E}{\precsim }{\mathrel}{precedes, similar}% +\UnicodeMathSymbol{"0227F}{\succsim }{\mathrel}{succeeds, similar}% +\UnicodeMathSymbol{"02280}{\nprec }{\mathrel}{not precedes}% +\UnicodeMathSymbol{"02281}{\nsucc }{\mathrel}{not succeeds}% +\UnicodeMathSymbol{"02282}{\subset }{\mathrel}{subset or is implied by}% +\UnicodeMathSymbol{"02283}{\supset }{\mathrel}{superset or implies}% +\UnicodeMathSymbol{"02284}{\nsubset }{\mathrel}{not subset, variant [slash negation]}% +\UnicodeMathSymbol{"02285}{\nsupset }{\mathrel}{not superset, variant [slash negation]}% +\UnicodeMathSymbol{"02286}{\subseteq }{\mathrel}{subset, equals}% +\UnicodeMathSymbol{"02287}{\supseteq }{\mathrel}{superset, equals}% +\UnicodeMathSymbol{"02288}{\nsubseteq }{\mathrel}{not subset, equals}% +\UnicodeMathSymbol{"02289}{\nsupseteq }{\mathrel}{not superset, equals}% +\UnicodeMathSymbol{"0228A}{\subsetneq }{\mathrel}{subset, not equals}% +\UnicodeMathSymbol{"0228B}{\supsetneq }{\mathrel}{superset, not equals}% +\UnicodeMathSymbol{"0228C}{\cupleftarrow }{\mathbin}{multiset}% +\UnicodeMathSymbol{"0228D}{\cupdot }{\mathbin}{union, with dot}% +\UnicodeMathSymbol{"0228E}{\uplus }{\mathbin}{plus sign in union}% +\UnicodeMathSymbol{"0228F}{\sqsubset }{\mathrel}{square subset}% +\UnicodeMathSymbol{"02290}{\sqsupset }{\mathrel}{square superset}% +\UnicodeMathSymbol{"02291}{\sqsubseteq }{\mathrel}{square subset, equals}% +\UnicodeMathSymbol{"02292}{\sqsupseteq }{\mathrel}{square superset, equals}% +\UnicodeMathSymbol{"02293}{\sqcap }{\mathbin}{square intersection}% +\UnicodeMathSymbol{"02294}{\sqcup }{\mathbin}{square union}% +\UnicodeMathSymbol{"02295}{\oplus }{\mathbin}{plus sign in circle}% +\UnicodeMathSymbol{"02296}{\ominus }{\mathbin}{minus sign in circle}% +\UnicodeMathSymbol{"02297}{\otimes }{\mathbin}{multiply sign in circle}% +\UnicodeMathSymbol{"02298}{\oslash }{\mathbin}{solidus in circle}% +\UnicodeMathSymbol{"02299}{\odot }{\mathbin}{middle dot in circle}% +\UnicodeMathSymbol{"0229A}{\circledcirc }{\mathbin}{small circle in circle}% +\UnicodeMathSymbol{"0229B}{\circledast }{\mathbin}{asterisk in circle}% +\UnicodeMathSymbol{"0229C}{\circledequal }{\mathbin}{equal in circle}% +\UnicodeMathSymbol{"0229D}{\circleddash }{\mathbin}{hyphen in circle}% +\UnicodeMathSymbol{"0229E}{\boxplus }{\mathbin}{plus sign in box}% +\UnicodeMathSymbol{"0229F}{\boxminus }{\mathbin}{minus sign in box}% +\UnicodeMathSymbol{"022A0}{\boxtimes }{\mathbin}{multiply sign in box}% +\UnicodeMathSymbol{"022A1}{\boxdot }{\mathbin}{/dotsquare /boxdot b: small dot in box}% +\UnicodeMathSymbol{"022A2}{\vdash }{\mathrel}{vertical, dash}% +\UnicodeMathSymbol{"022A3}{\dashv }{\mathrel}{dash, vertical}% +\UnicodeMathSymbol{"022A4}{\top }{\mathord}{top}% +\UnicodeMathSymbol{"022A5}{\bot }{\mathord}{bottom}% +\UnicodeMathSymbol{"022A6}{\assert }{\mathrel}{assertion (vertical, short dash)}% +\UnicodeMathSymbol{"022A7}{\models }{\mathrel}{models (vertical, short double dash)}% +\UnicodeMathSymbol{"022A8}{\vDash }{\mathrel}{vertical, double dash}% +\UnicodeMathSymbol{"022A9}{\Vdash }{\mathrel}{double vertical, dash}% +\UnicodeMathSymbol{"022AA}{\Vvdash }{\mathrel}{triple vertical, dash}% +\UnicodeMathSymbol{"022AB}{\VDash }{\mathrel}{double vert, double dash}% +\UnicodeMathSymbol{"022AC}{\nvdash }{\mathrel}{not vertical, dash}% +\UnicodeMathSymbol{"022AD}{\nvDash }{\mathrel}{not vertical, double dash}% +\UnicodeMathSymbol{"022AE}{\nVdash }{\mathrel}{not double vertical, dash}% +\UnicodeMathSymbol{"022AF}{\nVDash }{\mathrel}{not double vert, double dash}% +\UnicodeMathSymbol{"022B0}{\prurel }{\mathrel}{element precedes under relation}% +\UnicodeMathSymbol{"022B1}{\scurel }{\mathrel}{succeeds under relation}% +\UnicodeMathSymbol{"022B2}{\vartriangleleft }{\mathrel}{left triangle, open, variant}% +\UnicodeMathSymbol{"022B3}{\vartriangleright }{\mathrel}{right triangle, open, variant}% +\UnicodeMathSymbol{"022B4}{\trianglelefteq }{\mathrel}{left triangle, equals}% +\UnicodeMathSymbol{"022B5}{\trianglerighteq }{\mathrel}{right triangle, equals}% +\UnicodeMathSymbol{"022B6}{\origof }{\mathrel}{original of}% +\UnicodeMathSymbol{"022B7}{\imageof }{\mathrel}{image of}% +\UnicodeMathSymbol{"022B8}{\multimap }{\mathrel}{/multimap a:}% +\UnicodeMathSymbol{"022B9}{\hermitmatrix }{\mathord}{hermitian conjugate matrix}% +\UnicodeMathSymbol{"022BA}{\intercal }{\mathbin}{intercal}% +\UnicodeMathSymbol{"022BB}{\veebar }{\mathbin}{logical or, bar below (large vee); exclusive disjunction}% +\UnicodeMathSymbol{"022BC}{\barwedge }{\mathbin}{bar, wedge (large wedge)}% +\UnicodeMathSymbol{"022BD}{\barvee }{\mathbin}{bar, vee (large vee)}% +\UnicodeMathSymbol{"022BE}{\measuredrightangle }{\mathord}{right angle-measured [with arc]}% +\UnicodeMathSymbol{"022BF}{\varlrtriangle }{\mathord}{right triangle}% +\UnicodeMathSymbol{"022C0}{\bigwedge }{\mathop}{logical and operator}% +\UnicodeMathSymbol{"022C1}{\bigvee }{\mathop}{logical or operator}% +\UnicodeMathSymbol{"022C2}{\bigcap }{\mathop}{intersection operator}% +\UnicodeMathSymbol{"022C3}{\bigcup }{\mathop}{union operator}% +\UnicodeMathSymbol{"022C4}{\smwhtdiamond }{\mathbin}{white diamond}% +\UnicodeMathSymbol{"022C5}{\cdot }{\mathbin}{small middle dot}% +\UnicodeMathSymbol{"022C6}{\star }{\mathbin}{small star, filled, low}% +\UnicodeMathSymbol{"022C7}{\divideontimes }{\mathbin}{division on times}% +\UnicodeMathSymbol{"022C8}{\bowtie }{\mathrel}{bowtie}% +\UnicodeMathSymbol{"022C9}{\ltimes }{\mathbin}{times sign, left closed}% +\UnicodeMathSymbol{"022CA}{\rtimes }{\mathbin}{times sign, right closed}% +\UnicodeMathSymbol{"022CB}{\leftthreetimes }{\mathbin}{left semidirect product}% +\UnicodeMathSymbol{"022CC}{\rightthreetimes }{\mathbin}{right semidirect product}% +\UnicodeMathSymbol{"022CD}{\backsimeq }{\mathrel}{reverse similar, equals}% +\UnicodeMathSymbol{"022CE}{\curlyvee }{\mathbin}{curly logical or}% +\UnicodeMathSymbol{"022CF}{\curlywedge }{\mathbin}{curly logical and}% +\UnicodeMathSymbol{"022D0}{\Subset }{\mathrel}{double subset}% +\UnicodeMathSymbol{"022D1}{\Supset }{\mathrel}{double superset}% +\UnicodeMathSymbol{"022D2}{\Cap }{\mathbin}{/cap /doublecap b: double intersection}% +\UnicodeMathSymbol{"022D3}{\Cup }{\mathbin}{/cup /doublecup b: double union}% +\UnicodeMathSymbol{"022D4}{\pitchfork }{\mathrel}{pitchfork}% +\UnicodeMathSymbol{"022D5}{\equalparallel }{\mathrel}{parallel, equal; equal or parallel}% +\UnicodeMathSymbol{"022D6}{\lessdot }{\mathrel}{less than, with dot}% +\UnicodeMathSymbol{"022D7}{\gtrdot }{\mathrel}{greater than, with dot}% +\UnicodeMathSymbol{"022D8}{\lll }{\mathrel}{/ll /lll /llless r: triple less-than}% +\UnicodeMathSymbol{"022D9}{\ggg }{\mathrel}{/ggg /gg /gggtr r: triple greater-than}% +\UnicodeMathSymbol{"022DA}{\lesseqgtr }{\mathrel}{less, equals, greater}% +\UnicodeMathSymbol{"022DB}{\gtreqless }{\mathrel}{greater, equals, less}% +\UnicodeMathSymbol{"022DC}{\eqless }{\mathrel}{equal-or-less}% +\UnicodeMathSymbol{"022DD}{\eqgtr }{\mathrel}{equal-or-greater}% +\UnicodeMathSymbol{"022DE}{\curlyeqprec }{\mathrel}{curly equals, precedes}% +\UnicodeMathSymbol{"022DF}{\curlyeqsucc }{\mathrel}{curly equals, succeeds}% +\UnicodeMathSymbol{"022E0}{\npreccurlyeq }{\mathrel}{not precedes, curly equals}% +\UnicodeMathSymbol{"022E1}{\nsucccurlyeq }{\mathrel}{not succeeds, curly equals}% +\UnicodeMathSymbol{"022E2}{\nsqsubseteq }{\mathrel}{not, square subset, equals}% +\UnicodeMathSymbol{"022E3}{\nsqsupseteq }{\mathrel}{not, square superset, equals}% +\UnicodeMathSymbol{"022E4}{\sqsubsetneq }{\mathrel}{square subset, not equals}% +\UnicodeMathSymbol{"022E5}{\sqsupsetneq }{\mathrel}{square superset, not equals}% +\UnicodeMathSymbol{"022E6}{\lnsim }{\mathrel}{less, not similar}% +\UnicodeMathSymbol{"022E7}{\gnsim }{\mathrel}{greater, not similar}% +\UnicodeMathSymbol{"022E8}{\precnsim }{\mathrel}{precedes, not similar}% +\UnicodeMathSymbol{"022E9}{\succnsim }{\mathrel}{succeeds, not similar}% +\UnicodeMathSymbol{"022EA}{\nvartriangleleft }{\mathrel}{not left triangle}% +\UnicodeMathSymbol{"022EB}{\nvartriangleright }{\mathrel}{not right triangle}% +\UnicodeMathSymbol{"022EC}{\ntrianglelefteq }{\mathrel}{not left triangle, equals}% +\UnicodeMathSymbol{"022ED}{\ntrianglerighteq }{\mathrel}{not right triangle, equals}% +\UnicodeMathSymbol{"022EE}{\vdots }{\mathrel}{vertical ellipsis}% +\UnicodeMathSymbol{"022EF}{\unicodecdots }{\mathord}{three dots, centered}% +\UnicodeMathSymbol{"022F0}{\adots }{\mathrel}{three dots, ascending}% +\UnicodeMathSymbol{"022F1}{\ddots }{\mathrel}{three dots, descending}% +\UnicodeMathSymbol{"022F2}{\disin }{\mathrel}{element of with long horizontal stroke}% +\UnicodeMathSymbol{"022F3}{\varisins }{\mathrel}{element of with vertical bar at end of horizontal stroke}% +\UnicodeMathSymbol{"022F4}{\isins }{\mathrel}{small element of with vertical bar at end of horizontal stroke}% +\UnicodeMathSymbol{"022F5}{\isindot }{\mathrel}{element of with dot above}% +\UnicodeMathSymbol{"022F6}{\varisinobar }{\mathrel}{element of with overbar}% +\UnicodeMathSymbol{"022F7}{\isinobar }{\mathrel}{small element of with overbar}% +\UnicodeMathSymbol{"022F8}{\isinvb }{\mathrel}{element of with underbar}% +\UnicodeMathSymbol{"022F9}{\isinE }{\mathrel}{element of with two horizontal strokes}% +\UnicodeMathSymbol{"022FA}{\nisd }{\mathrel}{contains with long horizontal stroke}% +\UnicodeMathSymbol{"022FB}{\varnis }{\mathrel}{contains with vertical bar at end of horizontal stroke}% +\UnicodeMathSymbol{"022FC}{\nis }{\mathrel}{small contains with vertical bar at end of horizontal stroke}% +\UnicodeMathSymbol{"022FD}{\varniobar }{\mathrel}{contains with overbar}% +\UnicodeMathSymbol{"022FE}{\niobar }{\mathrel}{small contains with overbar}% +\UnicodeMathSymbol{"022FF}{\bagmember }{\mathrel}{z notation bag membership}% +\UnicodeMathSymbol{"02300}{\diameter }{\mathord}{diameter sign}% +\UnicodeMathSymbol{"02302}{\house }{\mathord}{house}% +\UnicodeMathSymbol{"02305}{\varbarwedge }{\mathbin}{/barwedge b: logical and, bar above [projective (bar over small wedge)]}% +\UnicodeMathSymbol{"02306}{\vardoublebarwedge }{\mathbin}{/doublebarwedge b: logical and, double bar above [perspective (double bar over small wedge)]}% +\UnicodeMathSymbol{"02308}{\lceil }{\mathopen}{left ceiling}% +\UnicodeMathSymbol{"02309}{\rceil }{\mathclose}{right ceiling}% +\UnicodeMathSymbol{"0230A}{\lfloor }{\mathopen}{left floor}% +\UnicodeMathSymbol{"0230B}{\rfloor }{\mathclose}{right floor}% +\UnicodeMathSymbol{"02310}{\invnot }{\mathord}{reverse not}% +\UnicodeMathSymbol{"02311}{\sqlozenge }{\mathord}{square lozenge}% +\UnicodeMathSymbol{"02312}{\profline }{\mathord}{profile of a line}% +\UnicodeMathSymbol{"02313}{\profsurf }{\mathord}{profile of a surface}% +\UnicodeMathSymbol{"02317}{\viewdata }{\mathord}{viewdata square}% +\UnicodeMathSymbol{"02319}{\turnednot }{\mathord}{turned not sign}% +\UnicodeMathSymbol{"0231C}{\ulcorner }{\mathopen}{upper left corner}% +\UnicodeMathSymbol{"0231D}{\urcorner }{\mathclose}{upper right corner}% +\UnicodeMathSymbol{"0231E}{\llcorner }{\mathopen}{lower left corner}% +\UnicodeMathSymbol{"0231F}{\lrcorner }{\mathclose}{lower right corner}% +\UnicodeMathSymbol{"02320}{\inttop }{\mathord}{top half integral}% +\UnicodeMathSymbol{"02321}{\intbottom }{\mathord}{bottom half integral}% +\UnicodeMathSymbol{"02322}{\frown }{\mathrel}{down curve}% +\UnicodeMathSymbol{"02323}{\smile }{\mathrel}{up curve}% +\UnicodeMathSymbol{"0232C}{\varhexagonlrbonds }{\mathord}{six carbon ring, corner down, double bonds lower right etc}% +\UnicodeMathSymbol{"02332}{\conictaper }{\mathord}{conical taper }% +\UnicodeMathSymbol{"02336}{\topbot }{\mathord}{top and bottom}% +\UnicodeMathSymbol{"0233D}{\obar }{\mathbin}{circle with vertical bar}% +\UnicodeMathSymbol{"0233F}{\APLnotslash }{\mathrel}{solidus, bar through (apl functional symbol slash bar)}% +\UnicodeMathSymbol{"02340}{\APLnotbackslash }{\mathord}{apl functional symbol backslash bar}% +\UnicodeMathSymbol{"02353}{\APLboxupcaret }{\mathord}{boxed up caret}% +\UnicodeMathSymbol{"02370}{\APLboxquestion }{\mathord}{boxed question mark}% +\UnicodeMathSymbol{"0237C}{\rangledownzigzagarrow }{\mathord}{right angle with downwards zigzag arrow}% +\UnicodeMathSymbol{"02394}{\hexagon }{\mathord}{horizontal benzene ring [hexagon flat open]}% +\UnicodeMathSymbol{"0239B}{\lparenuend }{\mathord}{left parenthesis upper hook}% +\UnicodeMathSymbol{"0239C}{\lparenextender }{\mathord}{left parenthesis extension}% +\UnicodeMathSymbol{"0239D}{\lparenlend }{\mathord}{left parenthesis lower hook}% +\UnicodeMathSymbol{"0239E}{\rparenuend }{\mathord}{right parenthesis upper hook}% +\UnicodeMathSymbol{"0239F}{\rparenextender }{\mathord}{right parenthesis extension}% +\UnicodeMathSymbol{"023A0}{\rparenlend }{\mathord}{right parenthesis lower hook}% +\UnicodeMathSymbol{"023A1}{\lbrackuend }{\mathord}{left square bracket upper corner}% +\UnicodeMathSymbol{"023A2}{\lbrackextender }{\mathord}{left square bracket extension}% +\UnicodeMathSymbol{"023A3}{\lbracklend }{\mathord}{left square bracket lower corner}% +\UnicodeMathSymbol{"023A4}{\rbrackuend }{\mathord}{right square bracket upper corner}% +\UnicodeMathSymbol{"023A5}{\rbrackextender }{\mathord}{right square bracket extension}% +\UnicodeMathSymbol{"023A6}{\rbracklend }{\mathord}{right square bracket lower corner}% +\UnicodeMathSymbol{"023A7}{\lbraceuend }{\mathord}{left curly bracket upper hook}% +\UnicodeMathSymbol{"023A8}{\lbracemid }{\mathord}{left curly bracket middle piece}% +\UnicodeMathSymbol{"023A9}{\lbracelend }{\mathord}{left curly bracket lower hook}% +\UnicodeMathSymbol{"023AA}{\vbraceextender }{\mathord}{curly bracket extension}% +\UnicodeMathSymbol{"023AB}{\rbraceuend }{\mathord}{right curly bracket upper hook}% +\UnicodeMathSymbol{"023AC}{\rbracemid }{\mathord}{right curly bracket middle piece}% +\UnicodeMathSymbol{"023AD}{\rbracelend }{\mathord}{right curly bracket lower hook}% +\UnicodeMathSymbol{"023AE}{\intextender }{\mathord}{integral extension}% +\UnicodeMathSymbol{"023AF}{\harrowextender }{\mathord}{horizontal line extension (used to extend arrows)}% +\UnicodeMathSymbol{"023B0}{\lmoustache }{\mathopen}{upper left or lower right curly bracket section}% +\UnicodeMathSymbol{"023B1}{\rmoustache }{\mathclose}{upper right or lower left curly bracket section}% +\UnicodeMathSymbol{"023B2}{\sumtop }{\mathord}{summation top}% +\UnicodeMathSymbol{"023B3}{\sumbottom }{\mathord}{summation bottom}% +\UnicodeMathSymbol{"023B4}{\overbracket }{\mathover}{top square bracket}% +\UnicodeMathSymbol{"023B5}{\underbracket }{\mathunder}{bottom square bracket}% +\UnicodeMathSymbol{"023B6}{\bbrktbrk }{\mathord}{bottom square bracket over top square bracket}% +\UnicodeMathSymbol{"023B7}{\sqrtbottom }{\mathord}{radical symbol bottom}% +\UnicodeMathSymbol{"023B8}{\lvboxline }{\mathord}{left vertical box line}% +\UnicodeMathSymbol{"023B9}{\rvboxline }{\mathord}{right vertical box line}% +\UnicodeMathSymbol{"023CE}{\varcarriagereturn }{\mathord}{return symbol}% +\UnicodeMathSymbol{"023DC}{\overparen }{\mathover}{top parenthesis (mathematical use)}% +\UnicodeMathSymbol{"023DD}{\underparen }{\mathunder}{bottom parenthesis (mathematical use)}% +\UnicodeMathSymbol{"023DE}{\overbrace }{\mathover}{top curly bracket (mathematical use)}% +\UnicodeMathSymbol{"023DF}{\underbrace }{\mathunder}{bottom curly bracket (mathematical use)}% +\UnicodeMathSymbol{"023E0}{\obrbrak }{\mathord}{top tortoise shell bracket (mathematical use)}% +\UnicodeMathSymbol{"023E1}{\ubrbrak }{\mathord}{bottom tortoise shell bracket (mathematical use)}% +\UnicodeMathSymbol{"023E2}{\trapezium }{\mathord}{white trapezium}% +\UnicodeMathSymbol{"023E3}{\benzenr }{\mathord}{benzene ring with circle}% +\UnicodeMathSymbol{"023E4}{\strns }{\mathord}{straightness}% +\UnicodeMathSymbol{"023E5}{\fltns }{\mathord}{flatness}% +\UnicodeMathSymbol{"023E6}{\accurrent }{\mathord}{ac current}% +\UnicodeMathSymbol{"023E7}{\elinters }{\mathord}{electrical intersection}% +\UnicodeMathSymbol{"02422}{\blanksymbol }{\mathord}{blank symbol}% +\UnicodeMathSymbol{"02423}{\mathvisiblespace }{\mathord}{open box}% +\UnicodeMathSymbol{"02506}{\bdtriplevdash }{\mathord}{doubly broken vert}% +\UnicodeMathSymbol{"02580}{\blockuphalf }{\mathord}{upper half block}% +\UnicodeMathSymbol{"02584}{\blocklowhalf }{\mathord}{lower half block}% +\UnicodeMathSymbol{"02588}{\blockfull }{\mathord}{full block}% +\UnicodeMathSymbol{"0258C}{\blocklefthalf }{\mathord}{left half block}% +\UnicodeMathSymbol{"02590}{\blockrighthalf }{\mathord}{right half block}% +\UnicodeMathSymbol{"02591}{\blockqtrshaded }{\mathord}{25\% shaded block}% +\UnicodeMathSymbol{"02592}{\blockhalfshaded }{\mathord}{50\% shaded block}% +\UnicodeMathSymbol{"02593}{\blockthreeqtrshaded }{\mathord}{75\% shaded block}% +\UnicodeMathSymbol{"025A0}{\mdlgblksquare }{\mathord}{square, filled}% +\UnicodeMathSymbol{"025A1}{\mdlgwhtsquare }{\mathord}{square, open}% +\UnicodeMathSymbol{"025A2}{\squoval }{\mathord}{white square with rounded corners}% +\UnicodeMathSymbol{"025A3}{\blackinwhitesquare }{\mathord}{white square containing black small square}% +\UnicodeMathSymbol{"025A4}{\squarehfill }{\mathord}{square, horizontal rule filled}% +\UnicodeMathSymbol{"025A5}{\squarevfill }{\mathord}{square, vertical rule filled}% +\UnicodeMathSymbol{"025A6}{\squarehvfill }{\mathord}{square with orthogonal crosshatch fill}% +\UnicodeMathSymbol{"025A7}{\squarenwsefill }{\mathord}{square, nw-to-se rule filled}% +\UnicodeMathSymbol{"025A8}{\squareneswfill }{\mathord}{square, ne-to-sw rule filled}% +\UnicodeMathSymbol{"025A9}{\squarecrossfill }{\mathord}{square with diagonal crosshatch fill}% +\UnicodeMathSymbol{"025AA}{\smblksquare }{\mathord}{/blacksquare - sq bullet, filled}% +\UnicodeMathSymbol{"025AB}{\smwhtsquare }{\mathord}{white small square}% +\UnicodeMathSymbol{"025AC}{\hrectangleblack }{\mathord}{black rectangle}% +\UnicodeMathSymbol{"025AD}{\hrectangle }{\mathord}{horizontal rectangle, open}% +\UnicodeMathSymbol{"025AE}{\vrectangleblack }{\mathord}{black vertical rectangle}% +\UnicodeMathSymbol{"025AF}{\vrectangle }{\mathord}{rectangle, white (vertical)}% +\UnicodeMathSymbol{"025B0}{\parallelogramblack }{\mathord}{black parallelogram}% +\UnicodeMathSymbol{"025B1}{\parallelogram }{\mathord}{parallelogram, open}% +\UnicodeMathSymbol{"025B2}{\bigblacktriangleup }{\mathord}{black up-pointing triangle}% +\UnicodeMathSymbol{"025B3}{\bigtriangleup }{\mathbin}{big up triangle, open}% +\UnicodeMathSymbol{"025B4}{\blacktriangle }{\mathord}{up triangle, filled}% +\UnicodeMathSymbol{"025B5}{\vartriangle }{\mathrel}{/triangle - up triangle, open}% +\UnicodeMathSymbol{"025B6}{\blacktriangleright }{\mathord}{(large) right triangle, filled}% +\UnicodeMathSymbol{"025B7}{\triangleright }{\mathbin}{(large) right triangle, open; z notation range restriction}% +\UnicodeMathSymbol{"025B8}{\smallblacktriangleright }{\mathord}{right triangle, filled}% +\UnicodeMathSymbol{"025B9}{\smalltriangleright }{\mathord}{right triangle, open}% +\UnicodeMathSymbol{"025BA}{\blackpointerright }{\mathord}{black right-pointing pointer}% +\UnicodeMathSymbol{"025BB}{\whitepointerright }{\mathord}{white right-pointing pointer}% +\UnicodeMathSymbol{"025BC}{\bigblacktriangledown }{\mathord}{big down triangle, filled}% +\UnicodeMathSymbol{"025BD}{\bigtriangledown }{\mathord}{big down triangle, open}% +\UnicodeMathSymbol{"025BE}{\blacktriangledown }{\mathord}{down triangle, filled}% +\UnicodeMathSymbol{"025BF}{\triangledown }{\mathord}{down triangle, open}% +\UnicodeMathSymbol{"025C0}{\blacktriangleleft }{\mathord}{(large) left triangle, filled}% +\UnicodeMathSymbol{"025C1}{\triangleleft }{\mathbin}{(large) left triangle, open; z notation domain restriction}% +\UnicodeMathSymbol{"025C2}{\smallblacktriangleleft }{\mathord}{left triangle, filled}% +\UnicodeMathSymbol{"025C3}{\smalltriangleleft }{\mathord}{left triangle, open}% +\UnicodeMathSymbol{"025C4}{\blackpointerleft }{\mathord}{black left-pointing pointer}% +\UnicodeMathSymbol{"025C5}{\whitepointerleft }{\mathord}{white left-pointing pointer}% +\UnicodeMathSymbol{"025C6}{\mdlgblkdiamond }{\mathord}{black diamond}% +\UnicodeMathSymbol{"025C7}{\mdlgwhtdiamond }{\mathord}{white diamond; diamond, open}% +\UnicodeMathSymbol{"025C8}{\blackinwhitediamond }{\mathord}{white diamond containing black small diamond}% +\UnicodeMathSymbol{"025C9}{\fisheye }{\mathord}{fisheye}% +\UnicodeMathSymbol{"025CA}{\mdlgwhtlozenge }{\mathord}{lozenge or total mark}% +\UnicodeMathSymbol{"025CB}{\mdlgwhtcircle }{\mathbin}{medium large circle}% +\UnicodeMathSymbol{"025CC}{\dottedcircle }{\mathord}{dotted circle}% +\UnicodeMathSymbol{"025CD}{\circlevertfill }{\mathord}{circle with vertical fill}% +\UnicodeMathSymbol{"025CE}{\bullseye }{\mathord}{bullseye}% +\UnicodeMathSymbol{"025CF}{\mdlgblkcircle }{\mathord}{circle, filled}% +\UnicodeMathSymbol{"025D0}{\circlelefthalfblack }{\mathord}{circle, filled left half [harvey ball]}% +\UnicodeMathSymbol{"025D1}{\circlerighthalfblack }{\mathord}{circle, filled right half}% +\UnicodeMathSymbol{"025D2}{\circlebottomhalfblack }{\mathord}{circle, filled bottom half}% +\UnicodeMathSymbol{"025D3}{\circletophalfblack }{\mathord}{circle, filled top half}% +\UnicodeMathSymbol{"025D4}{\circleurquadblack }{\mathord}{circle with upper right quadrant black}% +\UnicodeMathSymbol{"025D5}{\blackcircleulquadwhite }{\mathord}{circle with all but upper left quadrant black}% +\UnicodeMathSymbol{"025D6}{\blacklefthalfcircle }{\mathord}{left half black circle}% +\UnicodeMathSymbol{"025D7}{\blackrighthalfcircle }{\mathord}{right half black circle}% +\UnicodeMathSymbol{"025D8}{\inversebullet }{\mathord}{inverse bullet }% +\UnicodeMathSymbol{"025D9}{\inversewhitecircle }{\mathord}{inverse white circle}% +\UnicodeMathSymbol{"025DA}{\invwhiteupperhalfcircle }{\mathord}{upper half inverse white circle}% +\UnicodeMathSymbol{"025DB}{\invwhitelowerhalfcircle }{\mathord}{lower half inverse white circle}% +\UnicodeMathSymbol{"025DC}{\ularc }{\mathord}{upper left quadrant circular arc}% +\UnicodeMathSymbol{"025DD}{\urarc }{\mathord}{upper right quadrant circular arc}% +\UnicodeMathSymbol{"025DE}{\lrarc }{\mathord}{lower right quadrant circular arc}% +\UnicodeMathSymbol{"025DF}{\llarc }{\mathord}{lower left quadrant circular arc}% +\UnicodeMathSymbol{"025E0}{\topsemicircle }{\mathord}{upper half circle}% +\UnicodeMathSymbol{"025E1}{\botsemicircle }{\mathord}{lower half circle}% +\UnicodeMathSymbol{"025E2}{\lrblacktriangle }{\mathord}{lower right triangle, filled}% +\UnicodeMathSymbol{"025E3}{\llblacktriangle }{\mathord}{lower left triangle, filled}% +\UnicodeMathSymbol{"025E4}{\ulblacktriangle }{\mathord}{upper left triangle, filled}% +\UnicodeMathSymbol{"025E5}{\urblacktriangle }{\mathord}{upper right triangle, filled}% +\UnicodeMathSymbol{"025E6}{\smwhtcircle }{\mathord}{white bullet}% +\UnicodeMathSymbol{"025E7}{\squareleftblack }{\mathord}{square, filled left half}% +\UnicodeMathSymbol{"025E8}{\squarerightblack }{\mathord}{square, filled right half}% +\UnicodeMathSymbol{"025E9}{\squareulblack }{\mathord}{square, filled top left corner}% +\UnicodeMathSymbol{"025EA}{\squarelrblack }{\mathord}{square, filled bottom right corner}% +\UnicodeMathSymbol{"025EB}{\boxbar }{\mathbin}{vertical bar in box}% +\UnicodeMathSymbol{"025EC}{\trianglecdot }{\mathord}{triangle with centered dot}% +\UnicodeMathSymbol{"025ED}{\triangleleftblack }{\mathord}{up-pointing triangle with left half black}% +\UnicodeMathSymbol{"025EE}{\trianglerightblack }{\mathord}{up-pointing triangle with right half black}% +\UnicodeMathSymbol{"025EF}{\lgwhtcircle }{\mathord}{large circle}% +\UnicodeMathSymbol{"025F0}{\squareulquad }{\mathord}{white square with upper left quadrant}% +\UnicodeMathSymbol{"025F1}{\squarellquad }{\mathord}{white square with lower left quadrant}% +\UnicodeMathSymbol{"025F2}{\squarelrquad }{\mathord}{white square with lower right quadrant}% +\UnicodeMathSymbol{"025F3}{\squareurquad }{\mathord}{white square with upper right quadrant}% +\UnicodeMathSymbol{"025F4}{\circleulquad }{\mathord}{white circle with upper left quadrant}% +\UnicodeMathSymbol{"025F5}{\circlellquad }{\mathord}{white circle with lower left quadrant}% +\UnicodeMathSymbol{"025F6}{\circlelrquad }{\mathord}{white circle with lower right quadrant}% +\UnicodeMathSymbol{"025F7}{\circleurquad }{\mathord}{white circle with upper right quadrant}% +\UnicodeMathSymbol{"025F8}{\ultriangle }{\mathord}{upper left triangle}% +\UnicodeMathSymbol{"025F9}{\urtriangle }{\mathord}{upper right triangle}% +\UnicodeMathSymbol{"025FA}{\lltriangle }{\mathord}{lower left triangle}% +\UnicodeMathSymbol{"025FB}{\mdwhtsquare }{\mathord}{white medium square}% +\UnicodeMathSymbol{"025FC}{\mdblksquare }{\mathord}{black medium square}% +\UnicodeMathSymbol{"025FD}{\mdsmwhtsquare }{\mathord}{white medium small square}% +\UnicodeMathSymbol{"025FE}{\mdsmblksquare }{\mathord}{black medium small square}% +\UnicodeMathSymbol{"025FF}{\lrtriangle }{\mathord}{lower right triangle}% +\UnicodeMathSymbol{"02605}{\bigstar }{\mathord}{star, filled}% +\UnicodeMathSymbol{"02606}{\bigwhitestar }{\mathord}{star, open}% +\UnicodeMathSymbol{"02609}{\astrosun }{\mathord}{sun}% +\UnicodeMathSymbol{"02621}{\danger }{\mathord}{dangerous bend (caution sign)}% +\UnicodeMathSymbol{"0263B}{\blacksmiley }{\mathord}{black smiling face}% +\UnicodeMathSymbol{"0263C}{\sun }{\mathord}{white sun with rays}% +\UnicodeMathSymbol{"0263D}{\rightmoon }{\mathord}{first quarter moon}% +\UnicodeMathSymbol{"0263E}{\leftmoon }{\mathord}{last quarter moon}% +\UnicodeMathSymbol{"02640}{\female }{\mathord}{venus, female}% +\UnicodeMathSymbol{"02642}{\male }{\mathord}{mars, male}% +\UnicodeMathSymbol{"02660}{\spadesuit }{\mathord}{spades suit symbol}% +\UnicodeMathSymbol{"02661}{\heartsuit }{\mathord}{heart suit symbol}% +\UnicodeMathSymbol{"02662}{\diamondsuit }{\mathord}{diamond suit symbol}% +\UnicodeMathSymbol{"02663}{\clubsuit }{\mathord}{club suit symbol}% +\UnicodeMathSymbol{"02664}{\varspadesuit }{\mathord}{spade, white (card suit)}% +\UnicodeMathSymbol{"02665}{\varheartsuit }{\mathord}{filled heart (card suit)}% +\UnicodeMathSymbol{"02666}{\vardiamondsuit }{\mathord}{filled diamond (card suit)}% +\UnicodeMathSymbol{"02667}{\varclubsuit }{\mathord}{club, white (card suit)}% +\UnicodeMathSymbol{"02669}{\quarternote }{\mathord}{music note (sung text sign)}% +\UnicodeMathSymbol{"0266A}{\eighthnote }{\mathord}{eighth note}% +\UnicodeMathSymbol{"0266B}{\twonotes }{\mathord}{beamed eighth notes}% +\UnicodeMathSymbol{"0266D}{\flat }{\mathord}{musical flat}% +\UnicodeMathSymbol{"0266E}{\natural }{\mathord}{music natural}% +\UnicodeMathSymbol{"0266F}{\sharp }{\mathord}{musical sharp}% +\UnicodeMathSymbol{"0267E}{\acidfree }{\mathord}{permanent paper sign}% +\UnicodeMathSymbol{"02680}{\dicei }{\mathord}{die face-1}% +\UnicodeMathSymbol{"02681}{\diceii }{\mathord}{die face-2}% +\UnicodeMathSymbol{"02682}{\diceiii }{\mathord}{die face-3}% +\UnicodeMathSymbol{"02683}{\diceiv }{\mathord}{die face-4}% +\UnicodeMathSymbol{"02684}{\dicev }{\mathord}{die face-5}% +\UnicodeMathSymbol{"02685}{\dicevi }{\mathord}{die face-6}% +\UnicodeMathSymbol{"02686}{\circledrightdot }{\mathord}{white circle with dot right}% +\UnicodeMathSymbol{"02687}{\circledtwodots }{\mathord}{white circle with two dots}% +\UnicodeMathSymbol{"02688}{\blackcircledrightdot }{\mathord}{black circle with white dot right}% +\UnicodeMathSymbol{"02689}{\blackcircledtwodots }{\mathord}{black circle with two white dots}% +\UnicodeMathSymbol{"026A5}{\Hermaphrodite }{\mathord}{male and female sign}% +\UnicodeMathSymbol{"026AA}{\mdwhtcircle }{\mathord}{medium white circle}% +\UnicodeMathSymbol{"026AB}{\mdblkcircle }{\mathord}{medium black circle}% +\UnicodeMathSymbol{"026AC}{\mdsmwhtcircle }{\mathord}{medium small white circle}% +\UnicodeMathSymbol{"026B2}{\neuter }{\mathord}{neuter}% +\UnicodeMathSymbol{"02713}{\checkmark }{\mathord}{tick, check mark}% +\UnicodeMathSymbol{"02720}{\maltese }{\mathord}{maltese cross}% +\UnicodeMathSymbol{"0272A}{\circledstar }{\mathord}{circled white star}% +\UnicodeMathSymbol{"02736}{\varstar }{\mathord}{six pointed black star}% +\UnicodeMathSymbol{"0273D}{\dingasterisk }{\mathord}{heavy teardrop-spoked asterisk}% +\UnicodeMathSymbol{"02772}{\lbrbrak }{\mathopen}{light left tortoise shell bracket ornament}% +\UnicodeMathSymbol{"02773}{\rbrbrak }{\mathclose}{light right tortoise shell bracket ornament}% +\UnicodeMathSymbol{"0279B}{\draftingarrow }{\mathord}{right arrow with bold head (drafting)}% +\UnicodeMathSymbol{"027C0}{\threedangle }{\mathord}{three dimensional angle}% +\UnicodeMathSymbol{"027C1}{\whiteinwhitetriangle }{\mathord}{white triangle containing small white triangle}% +\UnicodeMathSymbol{"027C2}{\perp }{\mathrel}{perpendicular}% +\UnicodeMathSymbol{"027C3}{\subsetcirc }{\mathord}{open subset}% +\UnicodeMathSymbol{"027C4}{\supsetcirc }{\mathord}{open superset}% +\UnicodeMathSymbol{"027C5}{\lbag }{\mathopen}{left s-shaped bag delimiter}% +\UnicodeMathSymbol{"027C6}{\rbag }{\mathclose}{right s-shaped bag delimiter}% +\UnicodeMathSymbol{"027C7}{\veedot }{\mathbin}{or with dot inside}% +\UnicodeMathSymbol{"027C8}{\bsolhsub }{\mathrel}{reverse solidus preceding subset}% +\UnicodeMathSymbol{"027C9}{\suphsol }{\mathrel}{superset preceding solidus}% +\UnicodeMathSymbol{"027CC}{\longdivision }{\mathopen}{long division}% +\UnicodeMathSymbol{"027D0}{\diamondcdot }{\mathord}{white diamond with centred dot}% +\UnicodeMathSymbol{"027D1}{\wedgedot }{\mathbin}{and with dot}% +\UnicodeMathSymbol{"027D2}{\upin }{\mathrel}{element of opening upwards}% +\UnicodeMathSymbol{"027D3}{\pullback }{\mathrel}{lower right corner with dot}% +\UnicodeMathSymbol{"027D4}{\pushout }{\mathrel}{upper left corner with dot}% +\UnicodeMathSymbol{"027D5}{\leftouterjoin }{\mathop}{left outer join}% +\UnicodeMathSymbol{"027D6}{\rightouterjoin }{\mathop}{right outer join}% +\UnicodeMathSymbol{"027D7}{\fullouterjoin }{\mathop}{full outer join}% +\UnicodeMathSymbol{"027D8}{\bigbot }{\mathop}{large up tack}% +\UnicodeMathSymbol{"027D9}{\bigtop }{\mathop}{large down tack}% +\UnicodeMathSymbol{"027DA}{\DashVDash }{\mathrel}{left and right double turnstile}% +\UnicodeMathSymbol{"027DB}{\dashVdash }{\mathrel}{left and right tack}% +\UnicodeMathSymbol{"027DC}{\multimapinv }{\mathrel}{left multimap}% +\UnicodeMathSymbol{"027DD}{\vlongdash }{\mathrel}{long left tack}% +\UnicodeMathSymbol{"027DE}{\longdashv }{\mathrel}{long right tack}% +\UnicodeMathSymbol{"027DF}{\cirbot }{\mathrel}{up tack with circle above}% +\UnicodeMathSymbol{"027E0}{\lozengeminus }{\mathbin}{lozenge divided by horizontal rule}% +\UnicodeMathSymbol{"027E1}{\concavediamond }{\mathbin}{white concave-sided diamond}% +\UnicodeMathSymbol{"027E2}{\concavediamondtickleft }{\mathbin}{white concave-sided diamond with leftwards tick}% +\UnicodeMathSymbol{"027E3}{\concavediamondtickright }{\mathbin}{white concave-sided diamond with rightwards tick}% +\UnicodeMathSymbol{"027E4}{\whitesquaretickleft }{\mathbin}{white square with leftwards tick}% +\UnicodeMathSymbol{"027E5}{\whitesquaretickright }{\mathbin}{white square with rightwards tick}% +\UnicodeMathSymbol{"027E6}{\lBrack }{\mathopen}{mathematical left white square bracket}% +\UnicodeMathSymbol{"027E7}{\rBrack }{\mathclose}{mathematical right white square bracket}% +\UnicodeMathSymbol{"027E8}{\langle }{\mathopen}{mathematical left angle bracket}% +\UnicodeMathSymbol{"027E9}{\rangle }{\mathclose}{mathematical right angle bracket}% +\UnicodeMathSymbol{"027EA}{\lAngle }{\mathopen}{mathematical left double angle bracket}% +\UnicodeMathSymbol{"027EB}{\rAngle }{\mathclose}{mathematical right double angle bracket}% +\UnicodeMathSymbol{"027EC}{\Lbrbrak }{\mathopen}{mathematical left white tortoise shell bracket}% +\UnicodeMathSymbol{"027ED}{\Rbrbrak }{\mathclose}{mathematical right white tortoise shell bracket}% +\UnicodeMathSymbol{"027EE}{\lgroup }{\mathopen}{mathematical left flattened parenthesis}% +\UnicodeMathSymbol{"027EF}{\rgroup }{\mathclose}{mathematical right flattened parenthesis}% +\UnicodeMathSymbol{"027F0}{\UUparrow }{\mathrel}{upwards quadruple arrow}% +\UnicodeMathSymbol{"027F1}{\DDownarrow }{\mathrel}{downwards quadruple arrow}% +\UnicodeMathSymbol{"027F2}{\acwgapcirclearrow }{\mathrel}{anticlockwise gapped circle arrow}% +\UnicodeMathSymbol{"027F3}{\cwgapcirclearrow }{\mathrel}{clockwise gapped circle arrow}% +\UnicodeMathSymbol{"027F4}{\rightarrowonoplus }{\mathrel}{right arrow with circled plus}% +\UnicodeMathSymbol{"027F5}{\longleftarrow }{\mathrel}{long leftwards arrow}% +\UnicodeMathSymbol{"027F6}{\longrightarrow }{\mathrel}{long rightwards arrow}% +\UnicodeMathSymbol{"027F7}{\longleftrightarrow }{\mathrel}{long left right arrow}% +\UnicodeMathSymbol{"027F8}{\Longleftarrow }{\mathrel}{long leftwards double arrow}% +\UnicodeMathSymbol{"027F9}{\Longrightarrow }{\mathrel}{long rightwards double arrow}% +\UnicodeMathSymbol{"027FA}{\Longleftrightarrow }{\mathrel}{long left right double arrow}% +\UnicodeMathSymbol{"027FB}{\longmapsfrom }{\mathrel}{long leftwards arrow from bar}% +\UnicodeMathSymbol{"027FC}{\longmapsto }{\mathrel}{long rightwards arrow from bar}% +\UnicodeMathSymbol{"027FD}{\Longmapsfrom }{\mathrel}{long leftwards double arrow from bar}% +\UnicodeMathSymbol{"027FE}{\Longmapsto }{\mathrel}{long rightwards double arrow from bar}% +\UnicodeMathSymbol{"027FF}{\longrightsquigarrow }{\mathrel}{long rightwards squiggle arrow}% +\UnicodeMathSymbol{"02900}{\nvtwoheadrightarrow }{\mathrel}{rightwards two-headed arrow with vertical stroke}% +\UnicodeMathSymbol{"02901}{\nVtwoheadrightarrow }{\mathrel}{rightwards two-headed arrow with double vertical stroke}% +\UnicodeMathSymbol{"02902}{\nvLeftarrow }{\mathrel}{leftwards double arrow with vertical stroke}% +\UnicodeMathSymbol{"02903}{\nvRightarrow }{\mathrel}{rightwards double arrow with vertical stroke}% +\UnicodeMathSymbol{"02904}{\nvLeftrightarrow }{\mathrel}{left right double arrow with vertical stroke}% +\UnicodeMathSymbol{"02905}{\twoheadmapsto }{\mathrel}{rightwards two-headed arrow from bar}% +\UnicodeMathSymbol{"02906}{\Mapsfrom }{\mathrel}{leftwards double arrow from bar}% +\UnicodeMathSymbol{"02907}{\Mapsto }{\mathrel}{rightwards double arrow from bar}% +\UnicodeMathSymbol{"02908}{\downarrowbarred }{\mathrel}{downwards arrow with horizontal stroke}% +\UnicodeMathSymbol{"02909}{\uparrowbarred }{\mathrel}{upwards arrow with horizontal stroke}% +\UnicodeMathSymbol{"0290A}{\Uuparrow }{\mathrel}{upwards triple arrow}% +\UnicodeMathSymbol{"0290B}{\Ddownarrow }{\mathrel}{downwards triple arrow}% +\UnicodeMathSymbol{"0290C}{\leftbkarrow }{\mathrel}{leftwards double dash arrow}% +\UnicodeMathSymbol{"0290D}{\rightbkarrow }{\mathrel}{rightwards double dash arrow}% +\UnicodeMathSymbol{"0290E}{\leftdbkarrow }{\mathrel}{leftwards triple dash arrow}% +\UnicodeMathSymbol{"0290F}{\dbkarrow }{\mathrel}{rightwards triple dash arrow}% +\UnicodeMathSymbol{"02910}{\drbkarrow }{\mathrel}{rightwards two-headed triple dash arrow}% +\UnicodeMathSymbol{"02911}{\rightdotarrow }{\mathrel}{rightwards arrow with dotted stem}% +\UnicodeMathSymbol{"02912}{\baruparrow }{\mathrel}{upwards arrow to bar}% +\UnicodeMathSymbol{"02913}{\downarrowbar }{\mathrel}{downwards arrow to bar}% +\UnicodeMathSymbol{"02914}{\nvrightarrowtail }{\mathrel}{rightwards arrow with tail with vertical stroke}% +\UnicodeMathSymbol{"02915}{\nVrightarrowtail }{\mathrel}{rightwards arrow with tail with double vertical stroke}% +\UnicodeMathSymbol{"02916}{\twoheadrightarrowtail }{\mathrel}{rightwards two-headed arrow with tail}% +\UnicodeMathSymbol{"02917}{\nvtwoheadrightarrowtail }{\mathrel}{rightwards two-headed arrow with tail with vertical stroke}% +\UnicodeMathSymbol{"02918}{\nVtwoheadrightarrowtail }{\mathrel}{rightwards two-headed arrow with tail with double vertical stroke}% +\UnicodeMathSymbol{"02919}{\lefttail }{\mathrel}{leftwards arrow-tail}% +\UnicodeMathSymbol{"0291A}{\righttail }{\mathrel}{rightwards arrow-tail}% +\UnicodeMathSymbol{"0291B}{\leftdbltail }{\mathrel}{leftwards double arrow-tail}% +\UnicodeMathSymbol{"0291C}{\rightdbltail }{\mathrel}{rightwards double arrow-tail}% +\UnicodeMathSymbol{"0291D}{\diamondleftarrow }{\mathrel}{leftwards arrow to black diamond}% +\UnicodeMathSymbol{"0291E}{\rightarrowdiamond }{\mathrel}{rightwards arrow to black diamond}% +\UnicodeMathSymbol{"0291F}{\diamondleftarrowbar }{\mathrel}{leftwards arrow from bar to black diamond}% +\UnicodeMathSymbol{"02920}{\barrightarrowdiamond }{\mathrel}{rightwards arrow from bar to black diamond}% +\UnicodeMathSymbol{"02921}{\nwsearrow }{\mathrel}{north west and south east arrow}% +\UnicodeMathSymbol{"02922}{\neswarrow }{\mathrel}{north east and south west arrow}% +\UnicodeMathSymbol{"02923}{\hknwarrow }{\mathrel}{north west arrow with hook}% +\UnicodeMathSymbol{"02924}{\hknearrow }{\mathrel}{north east arrow with hook}% +\UnicodeMathSymbol{"02925}{\hksearrow }{\mathrel}{south east arrow with hook}% +\UnicodeMathSymbol{"02926}{\hkswarrow }{\mathrel}{south west arrow with hook}% +\UnicodeMathSymbol{"02927}{\tona }{\mathrel}{north west arrow and north east arrow}% +\UnicodeMathSymbol{"02928}{\toea }{\mathrel}{north east arrow and south east arrow}% +\UnicodeMathSymbol{"02929}{\tosa }{\mathrel}{south east arrow and south west arrow}% +\UnicodeMathSymbol{"0292A}{\towa }{\mathrel}{south west arrow and north west arrow}% +\UnicodeMathSymbol{"0292B}{\rdiagovfdiag }{\mathord}{rising diagonal crossing falling diagonal}% +\UnicodeMathSymbol{"0292C}{\fdiagovrdiag }{\mathord}{falling diagonal crossing rising diagonal}% +\UnicodeMathSymbol{"0292D}{\seovnearrow }{\mathord}{south east arrow crossing north east arrow}% +\UnicodeMathSymbol{"0292E}{\neovsearrow }{\mathord}{north east arrow crossing south east arrow}% +\UnicodeMathSymbol{"0292F}{\fdiagovnearrow }{\mathord}{falling diagonal crossing north east arrow}% +\UnicodeMathSymbol{"02930}{\rdiagovsearrow }{\mathord}{rising diagonal crossing south east arrow}% +\UnicodeMathSymbol{"02931}{\neovnwarrow }{\mathord}{north east arrow crossing north west arrow}% +\UnicodeMathSymbol{"02932}{\nwovnearrow }{\mathord}{north west arrow crossing north east arrow}% +\UnicodeMathSymbol{"02933}{\rightcurvedarrow }{\mathrel}{wave arrow pointing directly right}% +\UnicodeMathSymbol{"02934}{\uprightcurvearrow }{\mathord}{arrow pointing rightwards then curving upwards}% +\UnicodeMathSymbol{"02935}{\downrightcurvedarrow }{\mathord}{arrow pointing rightwards then curving downwards}% +\UnicodeMathSymbol{"02936}{\leftdowncurvedarrow }{\mathrel}{arrow pointing downwards then curving leftwards}% +\UnicodeMathSymbol{"02937}{\rightdowncurvedarrow }{\mathrel}{arrow pointing downwards then curving rightwards}% +\UnicodeMathSymbol{"02938}{\cwrightarcarrow }{\mathrel}{right-side arc clockwise arrow}% +\UnicodeMathSymbol{"02939}{\acwleftarcarrow }{\mathrel}{left-side arc anticlockwise arrow}% +\UnicodeMathSymbol{"0293A}{\acwoverarcarrow }{\mathrel}{top arc anticlockwise arrow}% +\UnicodeMathSymbol{"0293B}{\acwunderarcarrow }{\mathrel}{bottom arc anticlockwise arrow}% +\UnicodeMathSymbol{"0293C}{\curvearrowrightminus }{\mathrel}{top arc clockwise arrow with minus}% +\UnicodeMathSymbol{"0293D}{\curvearrowleftplus }{\mathrel}{top arc anticlockwise arrow with plus}% +\UnicodeMathSymbol{"0293E}{\cwundercurvearrow }{\mathrel}{lower right semicircular clockwise arrow}% +\UnicodeMathSymbol{"0293F}{\ccwundercurvearrow }{\mathrel}{lower left semicircular anticlockwise arrow}% +\UnicodeMathSymbol{"02940}{\acwcirclearrow }{\mathrel}{anticlockwise closed circle arrow}% +\UnicodeMathSymbol{"02941}{\cwcirclearrow }{\mathrel}{clockwise closed circle arrow}% +\UnicodeMathSymbol{"02942}{\rightarrowshortleftarrow }{\mathrel}{rightwards arrow above short leftwards arrow}% +\UnicodeMathSymbol{"02943}{\leftarrowshortrightarrow }{\mathrel}{leftwards arrow above short rightwards arrow}% +\UnicodeMathSymbol{"02944}{\shortrightarrowleftarrow }{\mathrel}{short rightwards arrow above leftwards arrow}% +\UnicodeMathSymbol{"02945}{\rightarrowplus }{\mathrel}{rightwards arrow with plus below}% +\UnicodeMathSymbol{"02946}{\leftarrowplus }{\mathrel}{leftwards arrow with plus below}% +\UnicodeMathSymbol{"02947}{\rightarrowx }{\mathrel}{rightwards arrow through x}% +\UnicodeMathSymbol{"02948}{\leftrightarrowcircle }{\mathrel}{left right arrow through small circle}% +\UnicodeMathSymbol{"02949}{\twoheaduparrowcircle }{\mathrel}{upwards two-headed arrow from small circle}% +\UnicodeMathSymbol{"0294A}{\leftrightharpoonupdown }{\mathrel}{left barb up right barb down harpoon}% +\UnicodeMathSymbol{"0294B}{\leftrightharpoondownup }{\mathrel}{left barb down right barb up harpoon}% +\UnicodeMathSymbol{"0294C}{\updownharpoonrightleft }{\mathrel}{up barb right down barb left harpoon}% +\UnicodeMathSymbol{"0294D}{\updownharpoonleftright }{\mathrel}{up barb left down barb right harpoon}% +\UnicodeMathSymbol{"0294E}{\leftrightharpoonupup }{\mathrel}{left barb up right barb up harpoon}% +\UnicodeMathSymbol{"0294F}{\updownharpoonrightright }{\mathrel}{up barb right down barb right harpoon}% +\UnicodeMathSymbol{"02950}{\leftrightharpoondowndown }{\mathrel}{left barb down right barb down harpoon}% +\UnicodeMathSymbol{"02951}{\updownharpoonleftleft }{\mathrel}{up barb left down barb left harpoon}% +\UnicodeMathSymbol{"02952}{\barleftharpoonup }{\mathrel}{leftwards harpoon with barb up to bar}% +\UnicodeMathSymbol{"02953}{\rightharpoonupbar }{\mathrel}{rightwards harpoon with barb up to bar}% +\UnicodeMathSymbol{"02954}{\barupharpoonright }{\mathrel}{upwards harpoon with barb right to bar}% +\UnicodeMathSymbol{"02955}{\downharpoonrightbar }{\mathrel}{downwards harpoon with barb right to bar}% +\UnicodeMathSymbol{"02956}{\barleftharpoondown }{\mathrel}{leftwards harpoon with barb down to bar}% +\UnicodeMathSymbol{"02957}{\rightharpoondownbar }{\mathrel}{rightwards harpoon with barb down to bar}% +\UnicodeMathSymbol{"02958}{\barupharpoonleft }{\mathrel}{upwards harpoon with barb left to bar}% +\UnicodeMathSymbol{"02959}{\downharpoonleftbar }{\mathrel}{downwards harpoon with barb left to bar}% +\UnicodeMathSymbol{"0295A}{\leftharpoonupbar }{\mathrel}{leftwards harpoon with barb up from bar}% +\UnicodeMathSymbol{"0295B}{\barrightharpoonup }{\mathrel}{rightwards harpoon with barb up from bar}% +\UnicodeMathSymbol{"0295C}{\upharpoonrightbar }{\mathrel}{upwards harpoon with barb right from bar}% +\UnicodeMathSymbol{"0295D}{\bardownharpoonright }{\mathrel}{downwards harpoon with barb right from bar}% +\UnicodeMathSymbol{"0295E}{\leftharpoondownbar }{\mathrel}{leftwards harpoon with barb down from bar}% +\UnicodeMathSymbol{"0295F}{\barrightharpoondown }{\mathrel}{rightwards harpoon with barb down from bar}% +\UnicodeMathSymbol{"02960}{\upharpoonleftbar }{\mathrel}{upwards harpoon with barb left from bar}% +\UnicodeMathSymbol{"02961}{\bardownharpoonleft }{\mathrel}{downwards harpoon with barb left from bar}% +\UnicodeMathSymbol{"02962}{\leftharpoonsupdown }{\mathrel}{leftwards harpoon with barb up above leftwards harpoon with barb down}% +\UnicodeMathSymbol{"02963}{\upharpoonsleftright }{\mathrel}{upwards harpoon with barb left beside upwards harpoon with barb right}% +\UnicodeMathSymbol{"02964}{\rightharpoonsupdown }{\mathrel}{rightwards harpoon with barb up above rightwards harpoon with barb down}% +\UnicodeMathSymbol{"02965}{\downharpoonsleftright }{\mathrel}{downwards harpoon with barb left beside downwards harpoon with barb right}% +\UnicodeMathSymbol{"02966}{\leftrightharpoonsup }{\mathrel}{leftwards harpoon with barb up above rightwards harpoon with barb up}% +\UnicodeMathSymbol{"02967}{\leftrightharpoonsdown }{\mathrel}{leftwards harpoon with barb down above rightwards harpoon with barb down}% +\UnicodeMathSymbol{"02968}{\rightleftharpoonsup }{\mathrel}{rightwards harpoon with barb up above leftwards harpoon with barb up}% +\UnicodeMathSymbol{"02969}{\rightleftharpoonsdown }{\mathrel}{rightwards harpoon with barb down above leftwards harpoon with barb down}% +\UnicodeMathSymbol{"0296A}{\leftharpoonupdash }{\mathrel}{leftwards harpoon with barb up above long dash}% +\UnicodeMathSymbol{"0296B}{\dashleftharpoondown }{\mathrel}{leftwards harpoon with barb down below long dash}% +\UnicodeMathSymbol{"0296C}{\rightharpoonupdash }{\mathrel}{rightwards harpoon with barb up above long dash}% +\UnicodeMathSymbol{"0296D}{\dashrightharpoondown }{\mathrel}{rightwards harpoon with barb down below long dash}% +\UnicodeMathSymbol{"0296E}{\updownharpoonsleftright }{\mathrel}{upwards harpoon with barb left beside downwards harpoon with barb right}% +\UnicodeMathSymbol{"0296F}{\downupharpoonsleftright }{\mathrel}{downwards harpoon with barb left beside upwards harpoon with barb right}% +\UnicodeMathSymbol{"02970}{\rightimply }{\mathrel}{right double arrow with rounded head}% +\UnicodeMathSymbol{"02971}{\equalrightarrow }{\mathrel}{equals sign above rightwards arrow}% +\UnicodeMathSymbol{"02972}{\similarrightarrow }{\mathrel}{tilde operator above rightwards arrow}% +\UnicodeMathSymbol{"02973}{\leftarrowsimilar }{\mathrel}{leftwards arrow above tilde operator}% +\UnicodeMathSymbol{"02974}{\rightarrowsimilar }{\mathrel}{rightwards arrow above tilde operator}% +\UnicodeMathSymbol{"02975}{\rightarrowapprox }{\mathrel}{rightwards arrow above almost equal to}% +\UnicodeMathSymbol{"02976}{\ltlarr }{\mathrel}{less-than above leftwards arrow}% +\UnicodeMathSymbol{"02977}{\leftarrowless }{\mathrel}{leftwards arrow through less-than}% +\UnicodeMathSymbol{"02978}{\gtrarr }{\mathrel}{greater-than above rightwards arrow}% +\UnicodeMathSymbol{"02979}{\subrarr }{\mathrel}{subset above rightwards arrow}% +\UnicodeMathSymbol{"0297A}{\leftarrowsubset }{\mathrel}{leftwards arrow through subset}% +\UnicodeMathSymbol{"0297B}{\suplarr }{\mathrel}{superset above leftwards arrow}% +\UnicodeMathSymbol{"0297C}{\leftfishtail }{\mathrel}{left fish tail}% +\UnicodeMathSymbol{"0297D}{\rightfishtail }{\mathrel}{right fish tail}% +\UnicodeMathSymbol{"0297E}{\upfishtail }{\mathrel}{up fish tail}% +\UnicodeMathSymbol{"0297F}{\downfishtail }{\mathrel}{down fish tail}% +\UnicodeMathSymbol{"02980}{\Vvert }{\mathfence}{triple vertical bar delimiter}% +\UnicodeMathSymbol{"02981}{\mdsmblkcircle }{\mathord}{z notation spot}% +\UnicodeMathSymbol{"02982}{\typecolon }{\mathrel}{z notation type colon}% +\UnicodeMathSymbol{"02983}{\lBrace }{\mathopen}{left white curly bracket}% +\UnicodeMathSymbol{"02984}{\rBrace }{\mathclose}{right white curly bracket}% +\UnicodeMathSymbol{"02985}{\lParen }{\mathopen}{left white parenthesis}% +\UnicodeMathSymbol{"02986}{\rParen }{\mathclose}{right white parenthesis}% +\UnicodeMathSymbol{"02987}{\llparenthesis }{\mathopen}{z notation left image bracket}% +\UnicodeMathSymbol{"02988}{\rrparenthesis }{\mathclose}{z notation right image bracket}% +\UnicodeMathSymbol{"02989}{\llangle }{\mathopen}{z notation left binding bracket}% +\UnicodeMathSymbol{"0298A}{\rrangle }{\mathclose}{z notation right binding bracket}% +\UnicodeMathSymbol{"0298B}{\lbrackubar }{\mathopen}{left square bracket with underbar}% +\UnicodeMathSymbol{"0298C}{\rbrackubar }{\mathclose}{right square bracket with underbar}% +\UnicodeMathSymbol{"0298D}{\lbrackultick }{\mathopen}{left square bracket with tick in top corner}% +\UnicodeMathSymbol{"0298E}{\rbracklrtick }{\mathclose}{right square bracket with tick in bottom corner}% +\UnicodeMathSymbol{"0298F}{\lbracklltick }{\mathopen}{left square bracket with tick in bottom corner}% +\UnicodeMathSymbol{"02990}{\rbrackurtick }{\mathclose}{right square bracket with tick in top corner}% +\UnicodeMathSymbol{"02991}{\langledot }{\mathopen}{left angle bracket with dot}% +\UnicodeMathSymbol{"02992}{\rangledot }{\mathclose}{right angle bracket with dot}% +\UnicodeMathSymbol{"02993}{\lparenless }{\mathopen}{left arc less-than bracket}% +\UnicodeMathSymbol{"02994}{\rparengtr }{\mathclose}{right arc greater-than bracket}% +\UnicodeMathSymbol{"02995}{\Lparengtr }{\mathopen}{double left arc greater-than bracket}% +\UnicodeMathSymbol{"02996}{\Rparenless }{\mathclose}{double right arc less-than bracket}% +\UnicodeMathSymbol{"02997}{\lblkbrbrak }{\mathopen}{left black tortoise shell bracket}% +\UnicodeMathSymbol{"02998}{\rblkbrbrak }{\mathclose}{right black tortoise shell bracket}% +\UnicodeMathSymbol{"02999}{\fourvdots }{\mathord}{dotted fence}% +\UnicodeMathSymbol{"0299A}{\vzigzag }{\mathord}{vertical zigzag line}% +\UnicodeMathSymbol{"0299B}{\measuredangleleft }{\mathord}{measured angle opening left}% +\UnicodeMathSymbol{"0299C}{\rightanglesqr }{\mathord}{right angle variant with square}% +\UnicodeMathSymbol{"0299D}{\rightanglemdot }{\mathord}{measured right angle with dot}% +\UnicodeMathSymbol{"0299E}{\angles }{\mathord}{angle with s inside}% +\UnicodeMathSymbol{"0299F}{\angdnr }{\mathord}{acute angle}% +\UnicodeMathSymbol{"029A0}{\gtlpar }{\mathord}{spherical angle opening left}% +\UnicodeMathSymbol{"029A1}{\sphericalangleup }{\mathord}{spherical angle opening up}% +\UnicodeMathSymbol{"029A2}{\turnangle }{\mathord}{turned angle}% +\UnicodeMathSymbol{"029A3}{\revangle }{\mathord}{reversed angle}% +\UnicodeMathSymbol{"029A4}{\angleubar }{\mathord}{angle with underbar}% +\UnicodeMathSymbol{"029A5}{\revangleubar }{\mathord}{reversed angle with underbar}% +\UnicodeMathSymbol{"029A6}{\wideangledown }{\mathord}{oblique angle opening up}% +\UnicodeMathSymbol{"029A7}{\wideangleup }{\mathord}{oblique angle opening down}% +\UnicodeMathSymbol{"029A8}{\measanglerutone }{\mathord}{measured angle with open arm ending in arrow pointing up and right}% +\UnicodeMathSymbol{"029A9}{\measanglelutonw }{\mathord}{measured angle with open arm ending in arrow pointing up and left}% +\UnicodeMathSymbol{"029AA}{\measanglerdtose }{\mathord}{measured angle with open arm ending in arrow pointing down and right}% +\UnicodeMathSymbol{"029AB}{\measangleldtosw }{\mathord}{measured angle with open arm ending in arrow pointing down and left}% +\UnicodeMathSymbol{"029AC}{\measangleurtone }{\mathord}{measured angle with open arm ending in arrow pointing right and up}% +\UnicodeMathSymbol{"029AD}{\measangleultonw }{\mathord}{measured angle with open arm ending in arrow pointing left and up}% +\UnicodeMathSymbol{"029AE}{\measangledrtose }{\mathord}{measured angle with open arm ending in arrow pointing right and down}% +\UnicodeMathSymbol{"029AF}{\measangledltosw }{\mathord}{measured angle with open arm ending in arrow pointing left and down}% +\UnicodeMathSymbol{"029B0}{\revemptyset }{\mathord}{reversed empty set}% +\UnicodeMathSymbol{"029B1}{\emptysetobar }{\mathord}{empty set with overbar}% +\UnicodeMathSymbol{"029B2}{\emptysetocirc }{\mathord}{empty set with small circle above}% +\UnicodeMathSymbol{"029B3}{\emptysetoarr }{\mathord}{empty set with right arrow above}% +\UnicodeMathSymbol{"029B4}{\emptysetoarrl }{\mathord}{empty set with left arrow above}% +\UnicodeMathSymbol{"029B5}{\circlehbar }{\mathbin}{circle with horizontal bar}% +\UnicodeMathSymbol{"029B6}{\circledvert }{\mathbin}{circled vertical bar}% +\UnicodeMathSymbol{"029B7}{\circledparallel }{\mathbin}{circled parallel}% +\UnicodeMathSymbol{"029B8}{\obslash }{\mathbin}{circled reverse solidus}% +\UnicodeMathSymbol{"029B9}{\operp }{\mathbin}{circled perpendicular}% +\UnicodeMathSymbol{"029BA}{\obot }{\mathord}{circle divided by horizontal bar and top half divided by vertical bar}% +\UnicodeMathSymbol{"029BB}{\olcross }{\mathord}{circle with superimposed x}% +\UnicodeMathSymbol{"029BC}{\odotslashdot }{\mathord}{circled anticlockwise-rotated division sign}% +\UnicodeMathSymbol{"029BD}{\uparrowoncircle }{\mathord}{up arrow through circle}% +\UnicodeMathSymbol{"029BE}{\circledwhitebullet }{\mathord}{circled white bullet}% +\UnicodeMathSymbol{"029BF}{\circledbullet }{\mathord}{circled bullet}% +\UnicodeMathSymbol{"029C0}{\olessthan }{\mathbin}{circled less-than}% +\UnicodeMathSymbol{"029C1}{\ogreaterthan }{\mathbin}{circled greater-than}% +\UnicodeMathSymbol{"029C2}{\cirscir }{\mathord}{circle with small circle to the right}% +\UnicodeMathSymbol{"029C3}{\cirE }{\mathord}{circle with two horizontal strokes to the right}% +\UnicodeMathSymbol{"029C4}{\boxdiag }{\mathbin}{squared rising diagonal slash}% +\UnicodeMathSymbol{"029C5}{\boxbslash }{\mathbin}{squared falling diagonal slash}% +\UnicodeMathSymbol{"029C6}{\boxast }{\mathbin}{squared asterisk}% +\UnicodeMathSymbol{"029C7}{\boxcircle }{\mathbin}{squared small circle}% +\UnicodeMathSymbol{"029C8}{\boxbox }{\mathbin}{squared square}% +\UnicodeMathSymbol{"029C9}{\boxonbox }{\mathord}{two joined squares}% +\UnicodeMathSymbol{"029CA}{\triangleodot }{\mathord}{triangle with dot above}% +\UnicodeMathSymbol{"029CB}{\triangleubar }{\mathord}{triangle with underbar}% +\UnicodeMathSymbol{"029CC}{\triangles }{\mathord}{s in triangle}% +\UnicodeMathSymbol{"029CD}{\triangleserifs }{\mathbin}{triangle with serifs at bottom}% +\UnicodeMathSymbol{"029CE}{\rtriltri }{\mathrel}{right triangle above left triangle}% +\UnicodeMathSymbol{"029CF}{\ltrivb }{\mathrel}{left triangle beside vertical bar}% +\UnicodeMathSymbol{"029D0}{\vbrtri }{\mathrel}{vertical bar beside right triangle}% +\UnicodeMathSymbol{"029D1}{\lfbowtie }{\mathrel}{left black bowtie}% +\UnicodeMathSymbol{"029D2}{\rfbowtie }{\mathrel}{right black bowtie}% +\UnicodeMathSymbol{"029D3}{\fbowtie }{\mathrel}{black bowtie}% +\UnicodeMathSymbol{"029D4}{\lftimes }{\mathrel}{left black times}% +\UnicodeMathSymbol{"029D5}{\rftimes }{\mathrel}{right black times}% +\UnicodeMathSymbol{"029D6}{\hourglass }{\mathbin}{white hourglass}% +\UnicodeMathSymbol{"029D7}{\blackhourglass }{\mathbin}{black hourglass}% +\UnicodeMathSymbol{"029D8}{\lvzigzag }{\mathopen}{left wiggly fence}% +\UnicodeMathSymbol{"029D9}{\rvzigzag }{\mathclose}{right wiggly fence}% +\UnicodeMathSymbol{"029DA}{\Lvzigzag }{\mathopen}{left double wiggly fence}% +\UnicodeMathSymbol{"029DB}{\Rvzigzag }{\mathclose}{right double wiggly fence}% +\UnicodeMathSymbol{"029DC}{\iinfin }{\mathord}{incomplete infinity}% +\UnicodeMathSymbol{"029DD}{\tieinfty }{\mathord}{tie over infinity}% +\UnicodeMathSymbol{"029DE}{\nvinfty }{\mathord}{infinity negated with vertical bar}% +\UnicodeMathSymbol{"029DF}{\dualmap }{\mathrel}{double-ended multimap}% +\UnicodeMathSymbol{"029E0}{\laplac }{\mathord}{square with contoured outline}% +\UnicodeMathSymbol{"029E1}{\lrtriangleeq }{\mathrel}{increases as}% +\UnicodeMathSymbol{"029E2}{\shuffle }{\mathbin}{shuffle product}% +\UnicodeMathSymbol{"029E3}{\eparsl }{\mathrel}{equals sign and slanted parallel}% +\UnicodeMathSymbol{"029E4}{\smeparsl }{\mathrel}{equals sign and slanted parallel with tilde above}% +\UnicodeMathSymbol{"029E5}{\eqvparsl }{\mathrel}{identical to and slanted parallel}% +\UnicodeMathSymbol{"029E6}{\gleichstark }{\mathrel}{gleich stark}% +\UnicodeMathSymbol{"029E7}{\thermod }{\mathord}{thermodynamic}% +\UnicodeMathSymbol{"029E8}{\downtriangleleftblack }{\mathord}{down-pointing triangle with left half black}% +\UnicodeMathSymbol{"029E9}{\downtrianglerightblack }{\mathord}{down-pointing triangle with right half black}% +\UnicodeMathSymbol{"029EA}{\blackdiamonddownarrow }{\mathord}{black diamond with down arrow}% +\UnicodeMathSymbol{"029EB}{\mdlgblklozenge }{\mathbin}{black lozenge}% +\UnicodeMathSymbol{"029EC}{\circledownarrow }{\mathord}{white circle with down arrow}% +\UnicodeMathSymbol{"029ED}{\blackcircledownarrow }{\mathord}{black circle with down arrow}% +\UnicodeMathSymbol{"029EE}{\errbarsquare }{\mathord}{error-barred white square}% +\UnicodeMathSymbol{"029EF}{\errbarblacksquare }{\mathord}{error-barred black square}% +\UnicodeMathSymbol{"029F0}{\errbardiamond }{\mathord}{error-barred white diamond}% +\UnicodeMathSymbol{"029F1}{\errbarblackdiamond }{\mathord}{error-barred black diamond}% +\UnicodeMathSymbol{"029F2}{\errbarcircle }{\mathord}{error-barred white circle}% +\UnicodeMathSymbol{"029F3}{\errbarblackcircle }{\mathord}{error-barred black circle}% +\UnicodeMathSymbol{"029F4}{\ruledelayed }{\mathrel}{rule-delayed}% +\UnicodeMathSymbol{"029F5}{\setminus }{\mathbin}{reverse solidus operator}% +\UnicodeMathSymbol{"029F6}{\dsol }{\mathbin}{solidus with overbar}% +\UnicodeMathSymbol{"029F7}{\rsolbar }{\mathbin}{reverse solidus with horizontal stroke}% +\UnicodeMathSymbol{"029F8}{\xsol }{\mathop}{big solidus}% +\UnicodeMathSymbol{"029F9}{\xbsol }{\mathop}{big reverse solidus}% +\UnicodeMathSymbol{"029FA}{\doubleplus }{\mathbin}{double plus}% +\UnicodeMathSymbol{"029FB}{\tripleplus }{\mathbin}{triple plus}% +\UnicodeMathSymbol{"029FC}{\lcurvyangle }{\mathopen}{left pointing curved angle bracket}% +\UnicodeMathSymbol{"029FD}{\rcurvyangle }{\mathclose}{right pointing curved angle bracket}% +\UnicodeMathSymbol{"029FE}{\tplus }{\mathbin}{tiny}% +\UnicodeMathSymbol{"029FF}{\tminus }{\mathbin}{miny}% +\UnicodeMathSymbol{"02A00}{\bigodot }{\mathop}{n-ary circled dot operator}% +\UnicodeMathSymbol{"02A01}{\bigoplus }{\mathop}{n-ary circled plus operator}% +\UnicodeMathSymbol{"02A02}{\bigotimes }{\mathop}{n-ary circled times operator}% +\UnicodeMathSymbol{"02A03}{\bigcupdot }{\mathop}{n-ary union operator with dot}% +\UnicodeMathSymbol{"02A04}{\biguplus }{\mathop}{n-ary union operator with plus}% +\UnicodeMathSymbol{"02A05}{\bigsqcap }{\mathop}{n-ary square intersection operator}% +\UnicodeMathSymbol{"02A06}{\bigsqcup }{\mathop}{n-ary square union operator}% +\UnicodeMathSymbol{"02A07}{\conjquant }{\mathop}{two logical and operator}% +\UnicodeMathSymbol{"02A08}{\disjquant }{\mathop}{two logical or operator}% +\UnicodeMathSymbol{"02A09}{\bigtimes }{\mathop}{n-ary times operator}% +\UnicodeMathSymbol{"02A0A}{\modtwosum }{\mathop}{modulo two sum}% +\UnicodeMathSymbol{"02A0B}{\sumint }{\mathop}{summation with integral}% +\UnicodeMathSymbol{"02A0C}{\iiiint }{\mathop}{quadruple integral operator}% +\UnicodeMathSymbol{"02A0D}{\intbar }{\mathop}{finite part integral}% +\UnicodeMathSymbol{"02A0E}{\intBar }{\mathop}{integral with double stroke}% +\UnicodeMathSymbol{"02A0F}{\fint }{\mathop}{integral average with slash}% +\UnicodeMathSymbol{"02A10}{\cirfnint }{\mathop}{circulation function}% +\UnicodeMathSymbol{"02A11}{\awint }{\mathop}{anticlockwise integration}% +\UnicodeMathSymbol{"02A12}{\rppolint }{\mathop}{line integration with rectangular path around pole}% +\UnicodeMathSymbol{"02A13}{\scpolint }{\mathop}{line integration with semicircular path around pole}% +\UnicodeMathSymbol{"02A14}{\npolint }{\mathop}{line integration not including the pole}% +\UnicodeMathSymbol{"02A15}{\pointint }{\mathop}{integral around a point operator}% +\UnicodeMathSymbol{"02A16}{\sqint }{\mathop}{quaternion integral operator}% +\UnicodeMathSymbol{"02A17}{\intlarhk }{\mathop}{integral with leftwards arrow with hook}% +\UnicodeMathSymbol{"02A18}{\intx }{\mathop}{integral with times sign}% +\UnicodeMathSymbol{"02A19}{\intcap }{\mathop}{integral with intersection}% +\UnicodeMathSymbol{"02A1A}{\intcup }{\mathop}{integral with union}% +\UnicodeMathSymbol{"02A1B}{\upint }{\mathop}{integral with overbar}% +\UnicodeMathSymbol{"02A1C}{\lowint }{\mathop}{integral with underbar}% +\UnicodeMathSymbol{"02A1D}{\Join }{\mathop}{join}% +\UnicodeMathSymbol{"02A1E}{\bigtriangleleft }{\mathop}{large left triangle operator}% +\UnicodeMathSymbol{"02A1F}{\zcmp }{\mathop}{z notation schema composition}% +\UnicodeMathSymbol{"02A20}{\zpipe }{\mathop}{z notation schema piping}% +\UnicodeMathSymbol{"02A21}{\zproject }{\mathop}{z notation schema projection}% +\UnicodeMathSymbol{"02A22}{\ringplus }{\mathbin}{plus sign with small circle above}% +\UnicodeMathSymbol{"02A23}{\plushat }{\mathbin}{plus sign with circumflex accent above}% +\UnicodeMathSymbol{"02A24}{\simplus }{\mathbin}{plus sign with tilde above}% +\UnicodeMathSymbol{"02A25}{\plusdot }{\mathbin}{plus sign with dot below}% +\UnicodeMathSymbol{"02A26}{\plussim }{\mathbin}{plus sign with tilde below}% +\UnicodeMathSymbol{"02A27}{\plussubtwo }{\mathbin}{plus sign with subscript two}% +\UnicodeMathSymbol{"02A28}{\plustrif }{\mathbin}{plus sign with black triangle}% +\UnicodeMathSymbol{"02A29}{\commaminus }{\mathbin}{minus sign with comma above}% +\UnicodeMathSymbol{"02A2A}{\minusdot }{\mathbin}{minus sign with dot below}% +\UnicodeMathSymbol{"02A2B}{\minusfdots }{\mathbin}{minus sign with falling dots}% +\UnicodeMathSymbol{"02A2C}{\minusrdots }{\mathbin}{minus sign with rising dots}% +\UnicodeMathSymbol{"02A2D}{\opluslhrim }{\mathbin}{plus sign in left half circle}% +\UnicodeMathSymbol{"02A2E}{\oplusrhrim }{\mathbin}{plus sign in right half circle}% +\UnicodeMathSymbol{"02A2F}{\vectimes }{\mathbin}{vector or cross product}% +\UnicodeMathSymbol{"02A30}{\dottimes }{\mathbin}{multiplication sign with dot above}% +\UnicodeMathSymbol{"02A31}{\timesbar }{\mathbin}{multiplication sign with underbar}% +\UnicodeMathSymbol{"02A32}{\btimes }{\mathbin}{semidirect product with bottom closed}% +\UnicodeMathSymbol{"02A33}{\smashtimes }{\mathbin}{smash product}% +\UnicodeMathSymbol{"02A34}{\otimeslhrim }{\mathbin}{multiplication sign in left half circle}% +\UnicodeMathSymbol{"02A35}{\otimesrhrim }{\mathbin}{multiplication sign in right half circle}% +\UnicodeMathSymbol{"02A36}{\otimeshat }{\mathbin}{circled multiplication sign with circumflex accent}% +\UnicodeMathSymbol{"02A37}{\Otimes }{\mathbin}{multiplication sign in double circle}% +\UnicodeMathSymbol{"02A38}{\odiv }{\mathbin}{circled division sign}% +\UnicodeMathSymbol{"02A39}{\triangleplus }{\mathbin}{plus sign in triangle}% +\UnicodeMathSymbol{"02A3A}{\triangleminus }{\mathbin}{minus sign in triangle}% +\UnicodeMathSymbol{"02A3B}{\triangletimes }{\mathbin}{multiplication sign in triangle}% +\UnicodeMathSymbol{"02A3C}{\intprod }{\mathbin}{interior product}% +\UnicodeMathSymbol{"02A3D}{\intprodr }{\mathbin}{righthand interior product}% +\UnicodeMathSymbol{"02A3E}{\fcmp }{\mathbin}{z notation relational composition}% +\UnicodeMathSymbol{"02A3F}{\amalg }{\mathbin}{amalgamation or coproduct}% +\UnicodeMathSymbol{"02A40}{\capdot }{\mathbin}{intersection with dot}% +\UnicodeMathSymbol{"02A41}{\uminus }{\mathbin}{union with minus sign}% +\UnicodeMathSymbol{"02A42}{\barcup }{\mathbin}{union with overbar}% +\UnicodeMathSymbol{"02A43}{\barcap }{\mathbin}{intersection with overbar}% +\UnicodeMathSymbol{"02A44}{\capwedge }{\mathbin}{intersection with logical and}% +\UnicodeMathSymbol{"02A45}{\cupvee }{\mathbin}{union with logical or}% +\UnicodeMathSymbol{"02A46}{\cupovercap }{\mathbin}{union above intersection}% +\UnicodeMathSymbol{"02A47}{\capovercup }{\mathbin}{intersection above union}% +\UnicodeMathSymbol{"02A48}{\cupbarcap }{\mathbin}{union above bar above intersection}% +\UnicodeMathSymbol{"02A49}{\capbarcup }{\mathbin}{intersection above bar above union}% +\UnicodeMathSymbol{"02A4A}{\twocups }{\mathbin}{union beside and joined with union}% +\UnicodeMathSymbol{"02A4B}{\twocaps }{\mathbin}{intersection beside and joined with intersection}% +\UnicodeMathSymbol{"02A4C}{\closedvarcup }{\mathbin}{closed union with serifs}% +\UnicodeMathSymbol{"02A4D}{\closedvarcap }{\mathbin}{closed intersection with serifs}% +\UnicodeMathSymbol{"02A4E}{\Sqcap }{\mathbin}{double square intersection}% +\UnicodeMathSymbol{"02A4F}{\Sqcup }{\mathbin}{double square union}% +\UnicodeMathSymbol{"02A50}{\closedvarcupsmashprod }{\mathbin}{closed union with serifs and smash product}% +\UnicodeMathSymbol{"02A51}{\wedgeodot }{\mathbin}{logical and with dot above}% +\UnicodeMathSymbol{"02A52}{\veeodot }{\mathbin}{logical or with dot above}% +\UnicodeMathSymbol{"02A53}{\Wedge }{\mathbin}{double logical and}% +\UnicodeMathSymbol{"02A54}{\Vee }{\mathbin}{double logical or}% +\UnicodeMathSymbol{"02A55}{\wedgeonwedge }{\mathbin}{two intersecting logical and}% +\UnicodeMathSymbol{"02A56}{\veeonvee }{\mathbin}{two intersecting logical or}% +\UnicodeMathSymbol{"02A57}{\bigslopedvee }{\mathbin}{sloping large or}% +\UnicodeMathSymbol{"02A58}{\bigslopedwedge }{\mathbin}{sloping large and}% +\UnicodeMathSymbol{"02A59}{\veeonwedge }{\mathrel}{logical or overlapping logical and}% +\UnicodeMathSymbol{"02A5A}{\wedgemidvert }{\mathbin}{logical and with middle stem}% +\UnicodeMathSymbol{"02A5B}{\veemidvert }{\mathbin}{logical or with middle stem}% +\UnicodeMathSymbol{"02A5C}{\midbarwedge }{\mathbin}{ogical and with horizontal dash}% +\UnicodeMathSymbol{"02A5D}{\midbarvee }{\mathbin}{logical or with horizontal dash}% +\UnicodeMathSymbol{"02A5E}{\doublebarwedge }{\mathbin}{logical and with double overbar}% +\UnicodeMathSymbol{"02A5F}{\wedgebar }{\mathbin}{logical and with underbar}% +\UnicodeMathSymbol{"02A60}{\wedgedoublebar }{\mathbin}{logical and with double underbar}% +\UnicodeMathSymbol{"02A61}{\varveebar }{\mathbin}{small vee with underbar}% +\UnicodeMathSymbol{"02A62}{\doublebarvee }{\mathbin}{logical or with double overbar}% +\UnicodeMathSymbol{"02A63}{\veedoublebar }{\mathbin}{logical or with double underbar}% +\UnicodeMathSymbol{"02A64}{\dsub }{\mathbin}{z notation domain antirestriction}% +\UnicodeMathSymbol{"02A65}{\rsub }{\mathbin}{z notation range antirestriction}% +\UnicodeMathSymbol{"02A66}{\eqdot }{\mathrel}{equals sign with dot below}% +\UnicodeMathSymbol{"02A67}{\dotequiv }{\mathrel}{identical with dot above}% +\UnicodeMathSymbol{"02A68}{\equivVert }{\mathrel}{triple horizontal bar with double vertical stroke}% +\UnicodeMathSymbol{"02A69}{\equivVvert }{\mathrel}{triple horizontal bar with triple vertical stroke}% +\UnicodeMathSymbol{"02A6A}{\dotsim }{\mathrel}{tilde operator with dot above}% +\UnicodeMathSymbol{"02A6B}{\simrdots }{\mathrel}{tilde operator with rising dots}% +\UnicodeMathSymbol{"02A6C}{\simminussim }{\mathrel}{similar minus similar}% +\UnicodeMathSymbol{"02A6D}{\congdot }{\mathrel}{congruent with dot above}% +\UnicodeMathSymbol{"02A6E}{\asteq }{\mathrel}{equals with asterisk}% +\UnicodeMathSymbol{"02A6F}{\hatapprox }{\mathrel}{almost equal to with circumflex accent}% +\UnicodeMathSymbol{"02A70}{\approxeqq }{\mathrel}{approximately equal or equal to}% +\UnicodeMathSymbol{"02A71}{\eqqplus }{\mathbin}{equals sign above plus sign}% +\UnicodeMathSymbol{"02A72}{\pluseqq }{\mathbin}{plus sign above equals sign}% +\UnicodeMathSymbol{"02A73}{\eqqsim }{\mathrel}{equals sign above tilde operator}% +\UnicodeMathSymbol{"02A74}{\Coloneq }{\mathrel}{double colon equal}% +\UnicodeMathSymbol{"02A75}{\eqeq }{\mathrel}{two consecutive equals signs}% +\UnicodeMathSymbol{"02A76}{\eqeqeq }{\mathrel}{three consecutive equals signs}% +\UnicodeMathSymbol{"02A77}{\ddotseq }{\mathrel}{equals sign with two dots above and two dots below}% +\UnicodeMathSymbol{"02A78}{\equivDD }{\mathrel}{equivalent with four dots above}% +\UnicodeMathSymbol{"02A79}{\ltcir }{\mathrel}{less-than with circle inside}% +\UnicodeMathSymbol{"02A7A}{\gtcir }{\mathrel}{greater-than with circle inside}% +\UnicodeMathSymbol{"02A7B}{\ltquest }{\mathrel}{less-than with question mark above}% +\UnicodeMathSymbol{"02A7C}{\gtquest }{\mathrel}{greater-than with question mark above}% +\UnicodeMathSymbol{"02A7D}{\leqslant }{\mathrel}{less-than or slanted equal to}% +\UnicodeMathSymbol{"02A7E}{\geqslant }{\mathrel}{greater-than or slanted equal to}% +\UnicodeMathSymbol{"02A7F}{\lesdot }{\mathrel}{less-than or slanted equal to with dot inside}% +\UnicodeMathSymbol{"02A80}{\gesdot }{\mathrel}{greater-than or slanted equal to with dot inside}% +\UnicodeMathSymbol{"02A81}{\lesdoto }{\mathrel}{less-than or slanted equal to with dot above}% +\UnicodeMathSymbol{"02A82}{\gesdoto }{\mathrel}{greater-than or slanted equal to with dot above}% +\UnicodeMathSymbol{"02A83}{\lesdotor }{\mathrel}{less-than or slanted equal to with dot above right}% +\UnicodeMathSymbol{"02A84}{\gesdotol }{\mathrel}{greater-than or slanted equal to with dot above left}% +\UnicodeMathSymbol{"02A85}{\lessapprox }{\mathrel}{less-than or approximate}% +\UnicodeMathSymbol{"02A86}{\gtrapprox }{\mathrel}{greater-than or approximate}% +\UnicodeMathSymbol{"02A87}{\lneq }{\mathrel}{less-than and single-line not equal to}% +\UnicodeMathSymbol{"02A88}{\gneq }{\mathrel}{greater-than and single-line not equal to}% +\UnicodeMathSymbol{"02A89}{\lnapprox }{\mathrel}{less-than and not approximate}% +\UnicodeMathSymbol{"02A8A}{\gnapprox }{\mathrel}{greater-than and not approximate}% +\UnicodeMathSymbol{"02A8B}{\lesseqqgtr }{\mathrel}{less-than above double-line equal above greater-than}% +\UnicodeMathSymbol{"02A8C}{\gtreqqless }{\mathrel}{greater-than above double-line equal above less-than}% +\UnicodeMathSymbol{"02A8D}{\lsime }{\mathrel}{less-than above similar or equal}% +\UnicodeMathSymbol{"02A8E}{\gsime }{\mathrel}{greater-than above similar or equal}% +\UnicodeMathSymbol{"02A8F}{\lsimg }{\mathrel}{less-than above similar above greater-than}% +\UnicodeMathSymbol{"02A90}{\gsiml }{\mathrel}{greater-than above similar above less-than}% +\UnicodeMathSymbol{"02A91}{\lgE }{\mathrel}{less-than above greater-than above double-line equal}% +\UnicodeMathSymbol{"02A92}{\glE }{\mathrel}{greater-than above less-than above double-line equal}% +\UnicodeMathSymbol{"02A93}{\lesges }{\mathrel}{less-than above slanted equal above greater-than above slanted equal}% +\UnicodeMathSymbol{"02A94}{\gesles }{\mathrel}{greater-than above slanted equal above less-than above slanted equal}% +\UnicodeMathSymbol{"02A95}{\eqslantless }{\mathrel}{slanted equal to or less-than}% +\UnicodeMathSymbol{"02A96}{\eqslantgtr }{\mathrel}{slanted equal to or greater-than}% +\UnicodeMathSymbol{"02A97}{\elsdot }{\mathrel}{slanted equal to or less-than with dot inside}% +\UnicodeMathSymbol{"02A98}{\egsdot }{\mathrel}{slanted equal to or greater-than with dot inside}% +\UnicodeMathSymbol{"02A99}{\eqqless }{\mathrel}{double-line equal to or less-than}% +\UnicodeMathSymbol{"02A9A}{\eqqgtr }{\mathrel}{double-line equal to or greater-than}% +\UnicodeMathSymbol{"02A9B}{\eqqslantless }{\mathrel}{double-line slanted equal to or less-than}% +\UnicodeMathSymbol{"02A9C}{\eqqslantgtr }{\mathrel}{double-line slanted equal to or greater-than}% +\UnicodeMathSymbol{"02A9D}{\simless }{\mathrel}{similar or less-than}% +\UnicodeMathSymbol{"02A9E}{\simgtr }{\mathrel}{similar or greater-than}% +\UnicodeMathSymbol{"02A9F}{\simlE }{\mathrel}{similar above less-than above equals sign}% +\UnicodeMathSymbol{"02AA0}{\simgE }{\mathrel}{similar above greater-than above equals sign}% +\UnicodeMathSymbol{"02AA1}{\Lt }{\mathrel}{double nested less-than}% +\UnicodeMathSymbol{"02AA2}{\Gt }{\mathrel}{double nested greater-than}% +\UnicodeMathSymbol{"02AA3}{\partialmeetcontraction }{\mathrel}{double less-than with underbar}% +\UnicodeMathSymbol{"02AA4}{\glj }{\mathrel}{greater-than overlapping less-than}% +\UnicodeMathSymbol{"02AA5}{\gla }{\mathrel}{greater-than beside less-than}% +\UnicodeMathSymbol{"02AA6}{\ltcc }{\mathrel}{less-than closed by curve}% +\UnicodeMathSymbol{"02AA7}{\gtcc }{\mathrel}{greater-than closed by curve}% +\UnicodeMathSymbol{"02AA8}{\lescc }{\mathrel}{less-than closed by curve above slanted equal}% +\UnicodeMathSymbol{"02AA9}{\gescc }{\mathrel}{greater-than closed by curve above slanted equal}% +\UnicodeMathSymbol{"02AAA}{\smt }{\mathrel}{smaller than}% +\UnicodeMathSymbol{"02AAB}{\lat }{\mathrel}{larger than}% +\UnicodeMathSymbol{"02AAC}{\smte }{\mathrel}{smaller than or equal to}% +\UnicodeMathSymbol{"02AAD}{\late }{\mathrel}{larger than or equal to}% +\UnicodeMathSymbol{"02AAE}{\bumpeqq }{\mathrel}{equals sign with bumpy above}% +\UnicodeMathSymbol{"02AAF}{\preceq }{\mathrel}{precedes above single-line equals sign}% +\UnicodeMathSymbol{"02AB0}{\succeq }{\mathrel}{succeeds above single-line equals sign}% +\UnicodeMathSymbol{"02AB1}{\precneq }{\mathrel}{precedes above single-line not equal to}% +\UnicodeMathSymbol{"02AB2}{\succneq }{\mathrel}{succeeds above single-line not equal to}% +\UnicodeMathSymbol{"02AB3}{\preceqq }{\mathrel}{precedes above equals sign}% +\UnicodeMathSymbol{"02AB4}{\succeqq }{\mathrel}{succeeds above equals sign}% +\UnicodeMathSymbol{"02AB5}{\precneqq }{\mathrel}{precedes above not equal to}% +\UnicodeMathSymbol{"02AB6}{\succneqq }{\mathrel}{succeeds above not equal to}% +\UnicodeMathSymbol{"02AB7}{\precapprox }{\mathrel}{precedes above almost equal to}% +\UnicodeMathSymbol{"02AB8}{\succapprox }{\mathrel}{succeeds above almost equal to}% +\UnicodeMathSymbol{"02AB9}{\precnapprox }{\mathrel}{precedes above not almost equal to}% +\UnicodeMathSymbol{"02ABA}{\succnapprox }{\mathrel}{succeeds above not almost equal to}% +\UnicodeMathSymbol{"02ABB}{\Prec }{\mathrel}{double precedes}% +\UnicodeMathSymbol{"02ABC}{\Succ }{\mathrel}{double succeeds}% +\UnicodeMathSymbol{"02ABD}{\subsetdot }{\mathrel}{subset with dot}% +\UnicodeMathSymbol{"02ABE}{\supsetdot }{\mathrel}{superset with dot}% +\UnicodeMathSymbol{"02ABF}{\subsetplus }{\mathrel}{subset with plus sign below}% +\UnicodeMathSymbol{"02AC0}{\supsetplus }{\mathrel}{superset with plus sign below}% +\UnicodeMathSymbol{"02AC1}{\submult }{\mathrel}{subset with multiplication sign below}% +\UnicodeMathSymbol{"02AC2}{\supmult }{\mathrel}{superset with multiplication sign below}% +\UnicodeMathSymbol{"02AC3}{\subedot }{\mathrel}{subset of or equal to with dot above}% +\UnicodeMathSymbol{"02AC4}{\supedot }{\mathrel}{superset of or equal to with dot above}% +\UnicodeMathSymbol{"02AC5}{\subseteqq }{\mathrel}{subset of above equals sign}% +\UnicodeMathSymbol{"02AC6}{\supseteqq }{\mathrel}{superset of above equals sign}% +\UnicodeMathSymbol{"02AC7}{\subsim }{\mathrel}{subset of above tilde operator}% +\UnicodeMathSymbol{"02AC8}{\supsim }{\mathrel}{superset of above tilde operator}% +\UnicodeMathSymbol{"02AC9}{\subsetapprox }{\mathrel}{subset of above almost equal to}% +\UnicodeMathSymbol{"02ACA}{\supsetapprox }{\mathrel}{superset of above almost equal to}% +\UnicodeMathSymbol{"02ACB}{\subsetneqq }{\mathrel}{subset of above not equal to}% +\UnicodeMathSymbol{"02ACC}{\supsetneqq }{\mathrel}{superset of above not equal to}% +\UnicodeMathSymbol{"02ACD}{\lsqhook }{\mathrel}{square left open box operator}% +\UnicodeMathSymbol{"02ACE}{\rsqhook }{\mathrel}{square right open box operator}% +\UnicodeMathSymbol{"02ACF}{\csub }{\mathrel}{closed subset}% +\UnicodeMathSymbol{"02AD0}{\csup }{\mathrel}{closed superset}% +\UnicodeMathSymbol{"02AD1}{\csube }{\mathrel}{closed subset or equal to}% +\UnicodeMathSymbol{"02AD2}{\csupe }{\mathrel}{closed superset or equal to}% +\UnicodeMathSymbol{"02AD3}{\subsup }{\mathrel}{subset above superset}% +\UnicodeMathSymbol{"02AD4}{\supsub }{\mathrel}{superset above subset}% +\UnicodeMathSymbol{"02AD5}{\subsub }{\mathrel}{subset above subset}% +\UnicodeMathSymbol{"02AD6}{\supsup }{\mathrel}{superset above superset}% +\UnicodeMathSymbol{"02AD7}{\suphsub }{\mathrel}{superset beside subset}% +\UnicodeMathSymbol{"02AD8}{\supdsub }{\mathrel}{superset beside and joined by dash with subset}% +\UnicodeMathSymbol{"02AD9}{\forkv }{\mathrel}{element of opening downwards}% +\UnicodeMathSymbol{"02ADA}{\topfork }{\mathrel}{pitchfork with tee top}% +\UnicodeMathSymbol{"02ADB}{\mlcp }{\mathrel}{transversal intersection}% +\UnicodeMathSymbol{"02ADC}{\forks }{\mathrel}{forking}% +\UnicodeMathSymbol{"02ADD}{\forksnot }{\mathrel}{nonforking}% +\UnicodeMathSymbol{"02ADE}{\shortlefttack }{\mathrel}{short left tack}% +\UnicodeMathSymbol{"02ADF}{\shortdowntack }{\mathrel}{short down tack}% +\UnicodeMathSymbol{"02AE0}{\shortuptack }{\mathrel}{short up tack}% +\UnicodeMathSymbol{"02AE1}{\perps }{\mathord}{perpendicular with s}% +\UnicodeMathSymbol{"02AE2}{\vDdash }{\mathrel}{vertical bar triple right turnstile}% +\UnicodeMathSymbol{"02AE3}{\dashV }{\mathrel}{double vertical bar left turnstile}% +\UnicodeMathSymbol{"02AE4}{\Dashv }{\mathrel}{vertical bar double left turnstile}% +\UnicodeMathSymbol{"02AE5}{\DashV }{\mathrel}{double vertical bar double left turnstile}% +\UnicodeMathSymbol{"02AE6}{\varVdash }{\mathrel}{long dash from left member of double vertical}% +\UnicodeMathSymbol{"02AE7}{\Barv }{\mathrel}{short down tack with overbar}% +\UnicodeMathSymbol{"02AE8}{\vBar }{\mathrel}{short up tack with underbar}% +\UnicodeMathSymbol{"02AE9}{\vBarv }{\mathrel}{short up tack above short down tack}% +\UnicodeMathSymbol{"02AEA}{\barV }{\mathrel}{double down tack}% +\UnicodeMathSymbol{"02AEB}{\Vbar }{\mathrel}{double up tack}% +\UnicodeMathSymbol{"02AEC}{\Not }{\mathrel}{double stroke not sign}% +\UnicodeMathSymbol{"02AED}{\bNot }{\mathrel}{reversed double stroke not sign}% +\UnicodeMathSymbol{"02AEE}{\revnmid }{\mathrel}{does not divide with reversed negation slash}% +\UnicodeMathSymbol{"02AEF}{\cirmid }{\mathrel}{vertical line with circle above}% +\UnicodeMathSymbol{"02AF0}{\midcir }{\mathrel}{vertical line with circle below}% +\UnicodeMathSymbol{"02AF1}{\topcir }{\mathord}{down tack with circle below}% +\UnicodeMathSymbol{"02AF2}{\nhpar }{\mathrel}{parallel with horizontal stroke}% +\UnicodeMathSymbol{"02AF3}{\parsim }{\mathrel}{parallel with tilde operator}% +\UnicodeMathSymbol{"02AF4}{\interleave }{\mathbin}{triple vertical bar binary relation}% +\UnicodeMathSymbol{"02AF5}{\nhVvert }{\mathbin}{triple vertical bar with horizontal stroke}% +\UnicodeMathSymbol{"02AF6}{\threedotcolon }{\mathbin}{triple colon operator}% +\UnicodeMathSymbol{"02AF7}{\lllnest }{\mathrel}{stacked very much less-than}% +\UnicodeMathSymbol{"02AF8}{\gggnest }{\mathrel}{stacked very much greater-than}% +\UnicodeMathSymbol{"02AF9}{\leqqslant }{\mathrel}{double-line slanted less-than or equal to}% +\UnicodeMathSymbol{"02AFA}{\geqqslant }{\mathrel}{double-line slanted greater-than or equal to}% +\UnicodeMathSymbol{"02AFB}{\trslash }{\mathbin}{triple solidus binary relation}% +\UnicodeMathSymbol{"02AFC}{\biginterleave }{\mathop}{large triple vertical bar operator}% +\UnicodeMathSymbol{"02AFD}{\sslash }{\mathbin}{double solidus operator}% +\UnicodeMathSymbol{"02AFE}{\talloblong }{\mathbin}{white vertical bar}% +\UnicodeMathSymbol{"02AFF}{\bigtalloblong }{\mathop}{n-ary white vertical bar}% +\UnicodeMathSymbol{"02B12}{\squaretopblack }{\mathord}{square with top half black}% +\UnicodeMathSymbol{"02B13}{\squarebotblack }{\mathord}{square with bottom half black}% +\UnicodeMathSymbol{"02B14}{\squareurblack }{\mathord}{square with upper right diagonal half black}% +\UnicodeMathSymbol{"02B15}{\squarellblack }{\mathord}{square with lower left diagonal half black}% +\UnicodeMathSymbol{"02B16}{\diamondleftblack }{\mathord}{diamond with left half black}% +\UnicodeMathSymbol{"02B17}{\diamondrightblack }{\mathord}{diamond with right half black}% +\UnicodeMathSymbol{"02B18}{\diamondtopblack }{\mathord}{diamond with top half black}% +\UnicodeMathSymbol{"02B19}{\diamondbotblack }{\mathord}{diamond with bottom half black}% +\UnicodeMathSymbol{"02B1A}{\dottedsquare }{\mathord}{dotted square}% +\UnicodeMathSymbol{"02B1B}{\lgblksquare }{\mathord}{black large square}% +\UnicodeMathSymbol{"02B1C}{\lgwhtsquare }{\mathord}{white large square}% +\UnicodeMathSymbol{"02B1D}{\vysmblksquare }{\mathord}{black very small square}% +\UnicodeMathSymbol{"02B1E}{\vysmwhtsquare }{\mathord}{white very small square}% +\UnicodeMathSymbol{"02B1F}{\pentagonblack }{\mathord}{black pentagon}% +\UnicodeMathSymbol{"02B20}{\pentagon }{\mathord}{white pentagon}% +\UnicodeMathSymbol{"02B21}{\varhexagon }{\mathord}{white hexagon}% +\UnicodeMathSymbol{"02B22}{\varhexagonblack }{\mathord}{black hexagon}% +\UnicodeMathSymbol{"02B23}{\hexagonblack }{\mathord}{horizontal black hexagon}% +\UnicodeMathSymbol{"02B24}{\lgblkcircle }{\mathord}{black large circle}% +\UnicodeMathSymbol{"02B25}{\mdblkdiamond }{\mathord}{black medium diamond}% +\UnicodeMathSymbol{"02B26}{\mdwhtdiamond }{\mathord}{white medium diamond}% +\UnicodeMathSymbol{"02B27}{\mdblklozenge }{\mathord}{black medium lozenge}% +\UnicodeMathSymbol{"02B28}{\mdwhtlozenge }{\mathord}{white medium lozenge}% +\UnicodeMathSymbol{"02B29}{\smblkdiamond }{\mathord}{black small diamond}% +\UnicodeMathSymbol{"02B2A}{\smblklozenge }{\mathord}{black small lozenge}% +\UnicodeMathSymbol{"02B2B}{\smwhtlozenge }{\mathord}{white small lozenge}% +\UnicodeMathSymbol{"02B2C}{\blkhorzoval }{\mathord}{black horizontal ellipse}% +\UnicodeMathSymbol{"02B2D}{\whthorzoval }{\mathord}{white horizontal ellipse}% +\UnicodeMathSymbol{"02B2E}{\blkvertoval }{\mathord}{black vertical ellipse}% +\UnicodeMathSymbol{"02B2F}{\whtvertoval }{\mathord}{white vertical ellipse}% +\UnicodeMathSymbol{"02B30}{\circleonleftarrow }{\mathrel}{left arrow with small circle}% +\UnicodeMathSymbol{"02B31}{\leftthreearrows }{\mathrel}{three leftwards arrows}% +\UnicodeMathSymbol{"02B32}{\leftarrowonoplus }{\mathrel}{left arrow with circled plus}% +\UnicodeMathSymbol{"02B33}{\longleftsquigarrow }{\mathrel}{long leftwards squiggle arrow}% +\UnicodeMathSymbol{"02B34}{\nvtwoheadleftarrow }{\mathrel}{leftwards two-headed arrow with vertical stroke}% +\UnicodeMathSymbol{"02B35}{\nVtwoheadleftarrow }{\mathrel}{leftwards two-headed arrow with double vertical stroke}% +\UnicodeMathSymbol{"02B36}{\twoheadmapsfrom }{\mathrel}{leftwards two-headed arrow from bar}% +\UnicodeMathSymbol{"02B37}{\twoheadleftdbkarrow }{\mathrel}{leftwards two-headed triple-dash arrow}% +\UnicodeMathSymbol{"02B38}{\leftdotarrow }{\mathrel}{leftwards arrow with dotted stem}% +\UnicodeMathSymbol{"02B39}{\nvleftarrowtail }{\mathrel}{leftwards arrow with tail with vertical stroke}% +\UnicodeMathSymbol{"02B3A}{\nVleftarrowtail }{\mathrel}{leftwards arrow with tail with double vertical stroke}% +\UnicodeMathSymbol{"02B3B}{\twoheadleftarrowtail }{\mathrel}{leftwards two-headed arrow with tail}% +\UnicodeMathSymbol{"02B3C}{\nvtwoheadleftarrowtail }{\mathrel}{leftwards two-headed arrow with tail with vertical stroke}% +\UnicodeMathSymbol{"02B3D}{\nVtwoheadleftarrowtail }{\mathrel}{leftwards two-headed arrow with tail with double vertical stroke}% +\UnicodeMathSymbol{"02B3E}{\leftarrowx }{\mathrel}{leftwards arrow through x}% +\UnicodeMathSymbol{"02B3F}{\leftcurvedarrow }{\mathrel}{wave arrow pointing directly left}% +\UnicodeMathSymbol{"02B40}{\equalleftarrow }{\mathrel}{equals sign above leftwards arrow}% +\UnicodeMathSymbol{"02B41}{\bsimilarleftarrow }{\mathrel}{reverse tilde operator above leftwards arrow}% +\UnicodeMathSymbol{"02B42}{\leftarrowbackapprox }{\mathrel}{leftwards arrow above reverse almost equal to}% +\UnicodeMathSymbol{"02B43}{\rightarrowgtr }{\mathrel}{rightwards arrow through greater-than}% +\UnicodeMathSymbol{"02B44}{\rightarrowsupset }{\mathrel}{rightwards arrow through subset}% +\UnicodeMathSymbol{"02B45}{\LLeftarrow }{\mathrel}{leftwards quadruple arrow}% +\UnicodeMathSymbol{"02B46}{\RRightarrow }{\mathrel}{rightwards quadruple arrow}% +\UnicodeMathSymbol{"02B47}{\bsimilarrightarrow }{\mathrel}{reverse tilde operator above rightwards arrow}% +\UnicodeMathSymbol{"02B48}{\rightarrowbackapprox }{\mathrel}{rightwards arrow above reverse almost equal to}% +\UnicodeMathSymbol{"02B49}{\similarleftarrow }{\mathrel}{tilde operator above leftwards arrow}% +\UnicodeMathSymbol{"02B4A}{\leftarrowapprox }{\mathrel}{leftwards arrow above almost equal to}% +\UnicodeMathSymbol{"02B4B}{\leftarrowbsimilar }{\mathrel}{leftwards arrow above reverse tilde operator}% +\UnicodeMathSymbol{"02B4C}{\rightarrowbsimilar }{\mathrel}{righttwards arrow above reverse tilde operator}% +\UnicodeMathSymbol{"02B50}{\medwhitestar }{\mathord}{white medium star}% +\UnicodeMathSymbol{"02B51}{\medblackstar }{\mathord}{black medium star}% +\UnicodeMathSymbol{"02B52}{\smwhitestar }{\mathord}{white small star}% +\UnicodeMathSymbol{"02B53}{\rightpentagonblack }{\mathord}{black right-pointing pentagon}% +\UnicodeMathSymbol{"02B54}{\rightpentagon }{\mathord}{white right-pointing pentagon}% +\UnicodeMathSymbol{"03012}{\postalmark }{\mathord}{postal mark}% +\UnicodeMathSymbol{"03030}{\hzigzag }{\mathord}{zigzag}% +\UnicodeMathSymbol{"1D400}{\mbfA }{\mathalpha}{mathematical bold capital a}% +\UnicodeMathSymbol{"1D401}{\mbfB }{\mathalpha}{mathematical bold capital b}% +\UnicodeMathSymbol{"1D402}{\mbfC }{\mathalpha}{mathematical bold capital c}% +\UnicodeMathSymbol{"1D403}{\mbfD }{\mathalpha}{mathematical bold capital d}% +\UnicodeMathSymbol{"1D404}{\mbfE }{\mathalpha}{mathematical bold capital e}% +\UnicodeMathSymbol{"1D405}{\mbfF }{\mathalpha}{mathematical bold capital f}% +\UnicodeMathSymbol{"1D406}{\mbfG }{\mathalpha}{mathematical bold capital g}% +\UnicodeMathSymbol{"1D407}{\mbfH }{\mathalpha}{mathematical bold capital h}% +\UnicodeMathSymbol{"1D408}{\mbfI }{\mathalpha}{mathematical bold capital i}% +\UnicodeMathSymbol{"1D409}{\mbfJ }{\mathalpha}{mathematical bold capital j}% +\UnicodeMathSymbol{"1D40A}{\mbfK }{\mathalpha}{mathematical bold capital k}% +\UnicodeMathSymbol{"1D40B}{\mbfL }{\mathalpha}{mathematical bold capital l}% +\UnicodeMathSymbol{"1D40C}{\mbfM }{\mathalpha}{mathematical bold capital m}% +\UnicodeMathSymbol{"1D40D}{\mbfN }{\mathalpha}{mathematical bold capital n}% +\UnicodeMathSymbol{"1D40E}{\mbfO }{\mathalpha}{mathematical bold capital o}% +\UnicodeMathSymbol{"1D40F}{\mbfP }{\mathalpha}{mathematical bold capital p}% +\UnicodeMathSymbol{"1D410}{\mbfQ }{\mathalpha}{mathematical bold capital q}% +\UnicodeMathSymbol{"1D411}{\mbfR }{\mathalpha}{mathematical bold capital r}% +\UnicodeMathSymbol{"1D412}{\mbfS }{\mathalpha}{mathematical bold capital s}% +\UnicodeMathSymbol{"1D413}{\mbfT }{\mathalpha}{mathematical bold capital t}% +\UnicodeMathSymbol{"1D414}{\mbfU }{\mathalpha}{mathematical bold capital u}% +\UnicodeMathSymbol{"1D415}{\mbfV }{\mathalpha}{mathematical bold capital v}% +\UnicodeMathSymbol{"1D416}{\mbfW }{\mathalpha}{mathematical bold capital w}% +\UnicodeMathSymbol{"1D417}{\mbfX }{\mathalpha}{mathematical bold capital x}% +\UnicodeMathSymbol{"1D418}{\mbfY }{\mathalpha}{mathematical bold capital y}% +\UnicodeMathSymbol{"1D419}{\mbfZ }{\mathalpha}{mathematical bold capital z}% +\UnicodeMathSymbol{"1D41A}{\mbfa }{\mathalpha}{mathematical bold small a}% +\UnicodeMathSymbol{"1D41B}{\mbfb }{\mathalpha}{mathematical bold small b}% +\UnicodeMathSymbol{"1D41C}{\mbfc }{\mathalpha}{mathematical bold small c}% +\UnicodeMathSymbol{"1D41D}{\mbfd }{\mathalpha}{mathematical bold small d}% +\UnicodeMathSymbol{"1D41E}{\mbfe }{\mathalpha}{mathematical bold small e}% +\UnicodeMathSymbol{"1D41F}{\mbff }{\mathalpha}{mathematical bold small f}% +\UnicodeMathSymbol{"1D420}{\mbfg }{\mathalpha}{mathematical bold small g}% +\UnicodeMathSymbol{"1D421}{\mbfh }{\mathalpha}{mathematical bold small h}% +\UnicodeMathSymbol{"1D422}{\mbfi }{\mathalpha}{mathematical bold small i}% +\UnicodeMathSymbol{"1D423}{\mbfj }{\mathalpha}{mathematical bold small j}% +\UnicodeMathSymbol{"1D424}{\mbfk }{\mathalpha}{mathematical bold small k}% +\UnicodeMathSymbol{"1D425}{\mbfl }{\mathalpha}{mathematical bold small l}% +\UnicodeMathSymbol{"1D426}{\mbfm }{\mathalpha}{mathematical bold small m}% +\UnicodeMathSymbol{"1D427}{\mbfn }{\mathalpha}{mathematical bold small n}% +\UnicodeMathSymbol{"1D428}{\mbfo }{\mathalpha}{mathematical bold small o}% +\UnicodeMathSymbol{"1D429}{\mbfp }{\mathalpha}{mathematical bold small p}% +\UnicodeMathSymbol{"1D42A}{\mbfq }{\mathalpha}{mathematical bold small q}% +\UnicodeMathSymbol{"1D42B}{\mbfr }{\mathalpha}{mathematical bold small r}% +\UnicodeMathSymbol{"1D42C}{\mbfs }{\mathalpha}{mathematical bold small s}% +\UnicodeMathSymbol{"1D42D}{\mbft }{\mathalpha}{mathematical bold small t}% +\UnicodeMathSymbol{"1D42E}{\mbfu }{\mathalpha}{mathematical bold small u}% +\UnicodeMathSymbol{"1D42F}{\mbfv }{\mathalpha}{mathematical bold small v}% +\UnicodeMathSymbol{"1D430}{\mbfw }{\mathalpha}{mathematical bold small w}% +\UnicodeMathSymbol{"1D431}{\mbfx }{\mathalpha}{mathematical bold small x}% +\UnicodeMathSymbol{"1D432}{\mbfy }{\mathalpha}{mathematical bold small y}% +\UnicodeMathSymbol{"1D433}{\mbfz }{\mathalpha}{mathematical bold small z}% +\UnicodeMathSymbol{"1D434}{\mitA }{\mathalpha}{mathematical italic capital a}% +\UnicodeMathSymbol{"1D435}{\mitB }{\mathalpha}{mathematical italic capital b}% +\UnicodeMathSymbol{"1D436}{\mitC }{\mathalpha}{mathematical italic capital c}% +\UnicodeMathSymbol{"1D437}{\mitD }{\mathalpha}{mathematical italic capital d}% +\UnicodeMathSymbol{"1D438}{\mitE }{\mathalpha}{mathematical italic capital e}% +\UnicodeMathSymbol{"1D439}{\mitF }{\mathalpha}{mathematical italic capital f}% +\UnicodeMathSymbol{"1D43A}{\mitG }{\mathalpha}{mathematical italic capital g}% +\UnicodeMathSymbol{"1D43B}{\mitH }{\mathalpha}{mathematical italic capital h}% +\UnicodeMathSymbol{"1D43C}{\mitI }{\mathalpha}{mathematical italic capital i}% +\UnicodeMathSymbol{"1D43D}{\mitJ }{\mathalpha}{mathematical italic capital j}% +\UnicodeMathSymbol{"1D43E}{\mitK }{\mathalpha}{mathematical italic capital k}% +\UnicodeMathSymbol{"1D43F}{\mitL }{\mathalpha}{mathematical italic capital l}% +\UnicodeMathSymbol{"1D440}{\mitM }{\mathalpha}{mathematical italic capital m}% +\UnicodeMathSymbol{"1D441}{\mitN }{\mathalpha}{mathematical italic capital n}% +\UnicodeMathSymbol{"1D442}{\mitO }{\mathalpha}{mathematical italic capital o}% +\UnicodeMathSymbol{"1D443}{\mitP }{\mathalpha}{mathematical italic capital p}% +\UnicodeMathSymbol{"1D444}{\mitQ }{\mathalpha}{mathematical italic capital q}% +\UnicodeMathSymbol{"1D445}{\mitR }{\mathalpha}{mathematical italic capital r}% +\UnicodeMathSymbol{"1D446}{\mitS }{\mathalpha}{mathematical italic capital s}% +\UnicodeMathSymbol{"1D447}{\mitT }{\mathalpha}{mathematical italic capital t}% +\UnicodeMathSymbol{"1D448}{\mitU }{\mathalpha}{mathematical italic capital u}% +\UnicodeMathSymbol{"1D449}{\mitV }{\mathalpha}{mathematical italic capital v}% +\UnicodeMathSymbol{"1D44A}{\mitW }{\mathalpha}{mathematical italic capital w}% +\UnicodeMathSymbol{"1D44B}{\mitX }{\mathalpha}{mathematical italic capital x}% +\UnicodeMathSymbol{"1D44C}{\mitY }{\mathalpha}{mathematical italic capital y}% +\UnicodeMathSymbol{"1D44D}{\mitZ }{\mathalpha}{mathematical italic capital z}% +\UnicodeMathSymbol{"1D44E}{\mita }{\mathalpha}{mathematical italic small a}% +\UnicodeMathSymbol{"1D44F}{\mitb }{\mathalpha}{mathematical italic small b}% +\UnicodeMathSymbol{"1D450}{\mitc }{\mathalpha}{mathematical italic small c}% +\UnicodeMathSymbol{"1D451}{\mitd }{\mathalpha}{mathematical italic small d}% +\UnicodeMathSymbol{"1D452}{\mite }{\mathalpha}{mathematical italic small e}% +\UnicodeMathSymbol{"1D453}{\mitf }{\mathalpha}{mathematical italic small f}% +\UnicodeMathSymbol{"1D454}{\mitg }{\mathalpha}{mathematical italic small g}% +\UnicodeMathSymbol{"1D456}{\miti }{\mathalpha}{mathematical italic small i}% +\UnicodeMathSymbol{"1D457}{\mitj }{\mathalpha}{mathematical italic small j}% +\UnicodeMathSymbol{"1D458}{\mitk }{\mathalpha}{mathematical italic small k}% +\UnicodeMathSymbol{"1D459}{\mitl }{\mathalpha}{mathematical italic small l}% +\UnicodeMathSymbol{"1D45A}{\mitm }{\mathalpha}{mathematical italic small m}% +\UnicodeMathSymbol{"1D45B}{\mitn }{\mathalpha}{mathematical italic small n}% +\UnicodeMathSymbol{"1D45C}{\mito }{\mathalpha}{mathematical italic small o}% +\UnicodeMathSymbol{"1D45D}{\mitp }{\mathalpha}{mathematical italic small p}% +\UnicodeMathSymbol{"1D45E}{\mitq }{\mathalpha}{mathematical italic small q}% +\UnicodeMathSymbol{"1D45F}{\mitr }{\mathalpha}{mathematical italic small r}% +\UnicodeMathSymbol{"1D460}{\mits }{\mathalpha}{mathematical italic small s}% +\UnicodeMathSymbol{"1D461}{\mitt }{\mathalpha}{mathematical italic small t}% +\UnicodeMathSymbol{"1D462}{\mitu }{\mathalpha}{mathematical italic small u}% +\UnicodeMathSymbol{"1D463}{\mitv }{\mathalpha}{mathematical italic small v}% +\UnicodeMathSymbol{"1D464}{\mitw }{\mathalpha}{mathematical italic small w}% +\UnicodeMathSymbol{"1D465}{\mitx }{\mathalpha}{mathematical italic small x}% +\UnicodeMathSymbol{"1D466}{\mity }{\mathalpha}{mathematical italic small y}% +\UnicodeMathSymbol{"1D467}{\mitz }{\mathalpha}{mathematical italic small z}% +\UnicodeMathSymbol{"1D468}{\mbfitA }{\mathalpha}{mathematical bold italic capital a}% +\UnicodeMathSymbol{"1D469}{\mbfitB }{\mathalpha}{mathematical bold italic capital b}% +\UnicodeMathSymbol{"1D46A}{\mbfitC }{\mathalpha}{mathematical bold italic capital c}% +\UnicodeMathSymbol{"1D46B}{\mbfitD }{\mathalpha}{mathematical bold italic capital d}% +\UnicodeMathSymbol{"1D46C}{\mbfitE }{\mathalpha}{mathematical bold italic capital e}% +\UnicodeMathSymbol{"1D46D}{\mbfitF }{\mathalpha}{mathematical bold italic capital f}% +\UnicodeMathSymbol{"1D46E}{\mbfitG }{\mathalpha}{mathematical bold italic capital g}% +\UnicodeMathSymbol{"1D46F}{\mbfitH }{\mathalpha}{mathematical bold italic capital h}% +\UnicodeMathSymbol{"1D470}{\mbfitI }{\mathalpha}{mathematical bold italic capital i}% +\UnicodeMathSymbol{"1D471}{\mbfitJ }{\mathalpha}{mathematical bold italic capital j}% +\UnicodeMathSymbol{"1D472}{\mbfitK }{\mathalpha}{mathematical bold italic capital k}% +\UnicodeMathSymbol{"1D473}{\mbfitL }{\mathalpha}{mathematical bold italic capital l}% +\UnicodeMathSymbol{"1D474}{\mbfitM }{\mathalpha}{mathematical bold italic capital m}% +\UnicodeMathSymbol{"1D475}{\mbfitN }{\mathalpha}{mathematical bold italic capital n}% +\UnicodeMathSymbol{"1D476}{\mbfitO }{\mathalpha}{mathematical bold italic capital o}% +\UnicodeMathSymbol{"1D477}{\mbfitP }{\mathalpha}{mathematical bold italic capital p}% +\UnicodeMathSymbol{"1D478}{\mbfitQ }{\mathalpha}{mathematical bold italic capital q}% +\UnicodeMathSymbol{"1D479}{\mbfitR }{\mathalpha}{mathematical bold italic capital r}% +\UnicodeMathSymbol{"1D47A}{\mbfitS }{\mathalpha}{mathematical bold italic capital s}% +\UnicodeMathSymbol{"1D47B}{\mbfitT }{\mathalpha}{mathematical bold italic capital t}% +\UnicodeMathSymbol{"1D47C}{\mbfitU }{\mathalpha}{mathematical bold italic capital u}% +\UnicodeMathSymbol{"1D47D}{\mbfitV }{\mathalpha}{mathematical bold italic capital v}% +\UnicodeMathSymbol{"1D47E}{\mbfitW }{\mathalpha}{mathematical bold italic capital w}% +\UnicodeMathSymbol{"1D47F}{\mbfitX }{\mathalpha}{mathematical bold italic capital x}% +\UnicodeMathSymbol{"1D480}{\mbfitY }{\mathalpha}{mathematical bold italic capital y}% +\UnicodeMathSymbol{"1D481}{\mbfitZ }{\mathalpha}{mathematical bold italic capital z}% +\UnicodeMathSymbol{"1D482}{\mbfita }{\mathalpha}{mathematical bold italic small a}% +\UnicodeMathSymbol{"1D483}{\mbfitb }{\mathalpha}{mathematical bold italic small b}% +\UnicodeMathSymbol{"1D484}{\mbfitc }{\mathalpha}{mathematical bold italic small c}% +\UnicodeMathSymbol{"1D485}{\mbfitd }{\mathalpha}{mathematical bold italic small d}% +\UnicodeMathSymbol{"1D486}{\mbfite }{\mathalpha}{mathematical bold italic small e}% +\UnicodeMathSymbol{"1D487}{\mbfitf }{\mathalpha}{mathematical bold italic small f}% +\UnicodeMathSymbol{"1D488}{\mbfitg }{\mathalpha}{mathematical bold italic small g}% +\UnicodeMathSymbol{"1D489}{\mbfith }{\mathalpha}{mathematical bold italic small h}% +\UnicodeMathSymbol{"1D48A}{\mbfiti }{\mathalpha}{mathematical bold italic small i}% +\UnicodeMathSymbol{"1D48B}{\mbfitj }{\mathalpha}{mathematical bold italic small j}% +\UnicodeMathSymbol{"1D48C}{\mbfitk }{\mathalpha}{mathematical bold italic small k}% +\UnicodeMathSymbol{"1D48D}{\mbfitl }{\mathalpha}{mathematical bold italic small l}% +\UnicodeMathSymbol{"1D48E}{\mbfitm }{\mathalpha}{mathematical bold italic small m}% +\UnicodeMathSymbol{"1D48F}{\mbfitn }{\mathalpha}{mathematical bold italic small n}% +\UnicodeMathSymbol{"1D490}{\mbfito }{\mathalpha}{mathematical bold italic small o}% +\UnicodeMathSymbol{"1D491}{\mbfitp }{\mathalpha}{mathematical bold italic small p}% +\UnicodeMathSymbol{"1D492}{\mbfitq }{\mathalpha}{mathematical bold italic small q}% +\UnicodeMathSymbol{"1D493}{\mbfitr }{\mathalpha}{mathematical bold italic small r}% +\UnicodeMathSymbol{"1D494}{\mbfits }{\mathalpha}{mathematical bold italic small s}% +\UnicodeMathSymbol{"1D495}{\mbfitt }{\mathalpha}{mathematical bold italic small t}% +\UnicodeMathSymbol{"1D496}{\mbfitu }{\mathalpha}{mathematical bold italic small u}% +\UnicodeMathSymbol{"1D497}{\mbfitv }{\mathalpha}{mathematical bold italic small v}% +\UnicodeMathSymbol{"1D498}{\mbfitw }{\mathalpha}{mathematical bold italic small w}% +\UnicodeMathSymbol{"1D499}{\mbfitx }{\mathalpha}{mathematical bold italic small x}% +\UnicodeMathSymbol{"1D49A}{\mbfity }{\mathalpha}{mathematical bold italic small y}% +\UnicodeMathSymbol{"1D49B}{\mbfitz }{\mathalpha}{mathematical bold italic small z}% +\UnicodeMathSymbol{"1D49C}{\mscrA }{\mathalpha}{mathematical script capital a}% +\UnicodeMathSymbol{"1D49E}{\mscrC }{\mathalpha}{mathematical script capital c}% +\UnicodeMathSymbol{"1D49F}{\mscrD }{\mathalpha}{mathematical script capital d}% +\UnicodeMathSymbol{"1D4A2}{\mscrG }{\mathalpha}{mathematical script capital g}% +\UnicodeMathSymbol{"1D4A5}{\mscrJ }{\mathalpha}{mathematical script capital j}% +\UnicodeMathSymbol{"1D4A6}{\mscrK }{\mathalpha}{mathematical script capital k}% +\UnicodeMathSymbol{"1D4A9}{\mscrN }{\mathalpha}{mathematical script capital n}% +\UnicodeMathSymbol{"1D4AA}{\mscrO }{\mathalpha}{mathematical script capital o}% +\UnicodeMathSymbol{"1D4AB}{\mscrP }{\mathalpha}{mathematical script capital p}% +\UnicodeMathSymbol{"1D4AC}{\mscrQ }{\mathalpha}{mathematical script capital q}% +\UnicodeMathSymbol{"1D4AE}{\mscrS }{\mathalpha}{mathematical script capital s}% +\UnicodeMathSymbol{"1D4AF}{\mscrT }{\mathalpha}{mathematical script capital t}% +\UnicodeMathSymbol{"1D4B0}{\mscrU }{\mathalpha}{mathematical script capital u}% +\UnicodeMathSymbol{"1D4B1}{\mscrV }{\mathalpha}{mathematical script capital v}% +\UnicodeMathSymbol{"1D4B2}{\mscrW }{\mathalpha}{mathematical script capital w}% +\UnicodeMathSymbol{"1D4B3}{\mscrX }{\mathalpha}{mathematical script capital x}% +\UnicodeMathSymbol{"1D4B4}{\mscrY }{\mathalpha}{mathematical script capital y}% +\UnicodeMathSymbol{"1D4B5}{\mscrZ }{\mathalpha}{mathematical script capital z}% +\UnicodeMathSymbol{"1D4B6}{\mscra }{\mathalpha}{mathematical script small a}% +\UnicodeMathSymbol{"1D4B7}{\mscrb }{\mathalpha}{mathematical script small b}% +\UnicodeMathSymbol{"1D4B8}{\mscrc }{\mathalpha}{mathematical script small c}% +\UnicodeMathSymbol{"1D4B9}{\mscrd }{\mathalpha}{mathematical script small d}% +\UnicodeMathSymbol{"1D4BB}{\mscrf }{\mathalpha}{mathematical script small f}% +\UnicodeMathSymbol{"1D4BD}{\mscrh }{\mathalpha}{mathematical script small h}% +\UnicodeMathSymbol{"1D4BE}{\mscri }{\mathalpha}{mathematical script small i}% +\UnicodeMathSymbol{"1D4BF}{\mscrj }{\mathalpha}{mathematical script small j}% +\UnicodeMathSymbol{"1D4C0}{\mscrk }{\mathalpha}{mathematical script small k}% +\UnicodeMathSymbol{"1D4C1}{\mscrl }{\mathalpha}{mathematical script small l}% +\UnicodeMathSymbol{"1D4C2}{\mscrm }{\mathalpha}{mathematical script small m}% +\UnicodeMathSymbol{"1D4C3}{\mscrn }{\mathalpha}{mathematical script small n}% +\UnicodeMathSymbol{"1D4C5}{\mscrp }{\mathalpha}{mathematical script small p}% +\UnicodeMathSymbol{"1D4C6}{\mscrq }{\mathalpha}{mathematical script small q}% +\UnicodeMathSymbol{"1D4C7}{\mscrr }{\mathalpha}{mathematical script small r}% +\UnicodeMathSymbol{"1D4C8}{\mscrs }{\mathalpha}{mathematical script small s}% +\UnicodeMathSymbol{"1D4C9}{\mscrt }{\mathalpha}{mathematical script small t}% +\UnicodeMathSymbol{"1D4CA}{\mscru }{\mathalpha}{mathematical script small u}% +\UnicodeMathSymbol{"1D4CB}{\mscrv }{\mathalpha}{mathematical script small v}% +\UnicodeMathSymbol{"1D4CC}{\mscrw }{\mathalpha}{mathematical script small w}% +\UnicodeMathSymbol{"1D4CD}{\mscrx }{\mathalpha}{mathematical script small x}% +\UnicodeMathSymbol{"1D4CE}{\mscry }{\mathalpha}{mathematical script small y}% +\UnicodeMathSymbol{"1D4CF}{\mscrz }{\mathalpha}{mathematical script small z}% +\UnicodeMathSymbol{"1D4D0}{\mbfscrA }{\mathalpha}{mathematical bold script capital a}% +\UnicodeMathSymbol{"1D4D1}{\mbfscrB }{\mathalpha}{mathematical bold script capital b}% +\UnicodeMathSymbol{"1D4D2}{\mbfscrC }{\mathalpha}{mathematical bold script capital c}% +\UnicodeMathSymbol{"1D4D3}{\mbfscrD }{\mathalpha}{mathematical bold script capital d}% +\UnicodeMathSymbol{"1D4D4}{\mbfscrE }{\mathalpha}{mathematical bold script capital e}% +\UnicodeMathSymbol{"1D4D5}{\mbfscrF }{\mathalpha}{mathematical bold script capital f}% +\UnicodeMathSymbol{"1D4D6}{\mbfscrG }{\mathalpha}{mathematical bold script capital g}% +\UnicodeMathSymbol{"1D4D7}{\mbfscrH }{\mathalpha}{mathematical bold script capital h}% +\UnicodeMathSymbol{"1D4D8}{\mbfscrI }{\mathalpha}{mathematical bold script capital i}% +\UnicodeMathSymbol{"1D4D9}{\mbfscrJ }{\mathalpha}{mathematical bold script capital j}% +\UnicodeMathSymbol{"1D4DA}{\mbfscrK }{\mathalpha}{mathematical bold script capital k}% +\UnicodeMathSymbol{"1D4DB}{\mbfscrL }{\mathalpha}{mathematical bold script capital l}% +\UnicodeMathSymbol{"1D4DC}{\mbfscrM }{\mathalpha}{mathematical bold script capital m}% +\UnicodeMathSymbol{"1D4DD}{\mbfscrN }{\mathalpha}{mathematical bold script capital n}% +\UnicodeMathSymbol{"1D4DE}{\mbfscrO }{\mathalpha}{mathematical bold script capital o}% +\UnicodeMathSymbol{"1D4DF}{\mbfscrP }{\mathalpha}{mathematical bold script capital p}% +\UnicodeMathSymbol{"1D4E0}{\mbfscrQ }{\mathalpha}{mathematical bold script capital q}% +\UnicodeMathSymbol{"1D4E1}{\mbfscrR }{\mathalpha}{mathematical bold script capital r}% +\UnicodeMathSymbol{"1D4E2}{\mbfscrS }{\mathalpha}{mathematical bold script capital s}% +\UnicodeMathSymbol{"1D4E3}{\mbfscrT }{\mathalpha}{mathematical bold script capital t}% +\UnicodeMathSymbol{"1D4E4}{\mbfscrU }{\mathalpha}{mathematical bold script capital u}% +\UnicodeMathSymbol{"1D4E5}{\mbfscrV }{\mathalpha}{mathematical bold script capital v}% +\UnicodeMathSymbol{"1D4E6}{\mbfscrW }{\mathalpha}{mathematical bold script capital w}% +\UnicodeMathSymbol{"1D4E7}{\mbfscrX }{\mathalpha}{mathematical bold script capital x}% +\UnicodeMathSymbol{"1D4E8}{\mbfscrY }{\mathalpha}{mathematical bold script capital y}% +\UnicodeMathSymbol{"1D4E9}{\mbfscrZ }{\mathalpha}{mathematical bold script capital z}% +\UnicodeMathSymbol{"1D4EA}{\mbfscra }{\mathalpha}{mathematical bold script small a}% +\UnicodeMathSymbol{"1D4EB}{\mbfscrb }{\mathalpha}{mathematical bold script small b}% +\UnicodeMathSymbol{"1D4EC}{\mbfscrc }{\mathalpha}{mathematical bold script small c}% +\UnicodeMathSymbol{"1D4ED}{\mbfscrd }{\mathalpha}{mathematical bold script small d}% +\UnicodeMathSymbol{"1D4EE}{\mbfscre }{\mathalpha}{mathematical bold script small e}% +\UnicodeMathSymbol{"1D4EF}{\mbfscrf }{\mathalpha}{mathematical bold script small f}% +\UnicodeMathSymbol{"1D4F0}{\mbfscrg }{\mathalpha}{mathematical bold script small g}% +\UnicodeMathSymbol{"1D4F1}{\mbfscrh }{\mathalpha}{mathematical bold script small h}% +\UnicodeMathSymbol{"1D4F2}{\mbfscri }{\mathalpha}{mathematical bold script small i}% +\UnicodeMathSymbol{"1D4F3}{\mbfscrj }{\mathalpha}{mathematical bold script small j}% +\UnicodeMathSymbol{"1D4F4}{\mbfscrk }{\mathalpha}{mathematical bold script small k}% +\UnicodeMathSymbol{"1D4F5}{\mbfscrl }{\mathalpha}{mathematical bold script small l}% +\UnicodeMathSymbol{"1D4F6}{\mbfscrm }{\mathalpha}{mathematical bold script small m}% +\UnicodeMathSymbol{"1D4F7}{\mbfscrn }{\mathalpha}{mathematical bold script small n}% +\UnicodeMathSymbol{"1D4F8}{\mbfscro }{\mathalpha}{mathematical bold script small o}% +\UnicodeMathSymbol{"1D4F9}{\mbfscrp }{\mathalpha}{mathematical bold script small p}% +\UnicodeMathSymbol{"1D4FA}{\mbfscrq }{\mathalpha}{mathematical bold script small q}% +\UnicodeMathSymbol{"1D4FB}{\mbfscrr }{\mathalpha}{mathematical bold script small r}% +\UnicodeMathSymbol{"1D4FC}{\mbfscrs }{\mathalpha}{mathematical bold script small s}% +\UnicodeMathSymbol{"1D4FD}{\mbfscrt }{\mathalpha}{mathematical bold script small t}% +\UnicodeMathSymbol{"1D4FE}{\mbfscru }{\mathalpha}{mathematical bold script small u}% +\UnicodeMathSymbol{"1D4FF}{\mbfscrv }{\mathalpha}{mathematical bold script small v}% +\UnicodeMathSymbol{"1D500}{\mbfscrw }{\mathalpha}{mathematical bold script small w}% +\UnicodeMathSymbol{"1D501}{\mbfscrx }{\mathalpha}{mathematical bold script small x}% +\UnicodeMathSymbol{"1D502}{\mbfscry }{\mathalpha}{mathematical bold script small y}% +\UnicodeMathSymbol{"1D503}{\mbfscrz }{\mathalpha}{mathematical bold script small z}% +\UnicodeMathSymbol{"1D504}{\mfrakA }{\mathalpha}{mathematical fraktur capital a}% +\UnicodeMathSymbol{"1D505}{\mfrakB }{\mathalpha}{mathematical fraktur capital b}% +\UnicodeMathSymbol{"1D507}{\mfrakD }{\mathalpha}{mathematical fraktur capital d}% +\UnicodeMathSymbol{"1D508}{\mfrakE }{\mathalpha}{mathematical fraktur capital e}% +\UnicodeMathSymbol{"1D509}{\mfrakF }{\mathalpha}{mathematical fraktur capital f}% +\UnicodeMathSymbol{"1D50A}{\mfrakG }{\mathalpha}{mathematical fraktur capital g}% +\UnicodeMathSymbol{"1D50D}{\mfrakJ }{\mathalpha}{mathematical fraktur capital j}% +\UnicodeMathSymbol{"1D50E}{\mfrakK }{\mathalpha}{mathematical fraktur capital k}% +\UnicodeMathSymbol{"1D50F}{\mfrakL }{\mathalpha}{mathematical fraktur capital l}% +\UnicodeMathSymbol{"1D510}{\mfrakM }{\mathalpha}{mathematical fraktur capital m}% +\UnicodeMathSymbol{"1D511}{\mfrakN }{\mathalpha}{mathematical fraktur capital n}% +\UnicodeMathSymbol{"1D512}{\mfrakO }{\mathalpha}{mathematical fraktur capital o}% +\UnicodeMathSymbol{"1D513}{\mfrakP }{\mathalpha}{mathematical fraktur capital p}% +\UnicodeMathSymbol{"1D514}{\mfrakQ }{\mathalpha}{mathematical fraktur capital q}% +\UnicodeMathSymbol{"1D516}{\mfrakS }{\mathalpha}{mathematical fraktur capital s}% +\UnicodeMathSymbol{"1D517}{\mfrakT }{\mathalpha}{mathematical fraktur capital t}% +\UnicodeMathSymbol{"1D518}{\mfrakU }{\mathalpha}{mathematical fraktur capital u}% +\UnicodeMathSymbol{"1D519}{\mfrakV }{\mathalpha}{mathematical fraktur capital v}% +\UnicodeMathSymbol{"1D51A}{\mfrakW }{\mathalpha}{mathematical fraktur capital w}% +\UnicodeMathSymbol{"1D51B}{\mfrakX }{\mathalpha}{mathematical fraktur capital x}% +\UnicodeMathSymbol{"1D51C}{\mfrakY }{\mathalpha}{mathematical fraktur capital y}% +\UnicodeMathSymbol{"1D51E}{\mfraka }{\mathalpha}{mathematical fraktur small a}% +\UnicodeMathSymbol{"1D51F}{\mfrakb }{\mathalpha}{mathematical fraktur small b}% +\UnicodeMathSymbol{"1D520}{\mfrakc }{\mathalpha}{mathematical fraktur small c}% +\UnicodeMathSymbol{"1D521}{\mfrakd }{\mathalpha}{mathematical fraktur small d}% +\UnicodeMathSymbol{"1D522}{\mfrake }{\mathalpha}{mathematical fraktur small e}% +\UnicodeMathSymbol{"1D523}{\mfrakf }{\mathalpha}{mathematical fraktur small f}% +\UnicodeMathSymbol{"1D524}{\mfrakg }{\mathalpha}{mathematical fraktur small g}% +\UnicodeMathSymbol{"1D525}{\mfrakh }{\mathalpha}{mathematical fraktur small h}% +\UnicodeMathSymbol{"1D526}{\mfraki }{\mathalpha}{mathematical fraktur small i}% +\UnicodeMathSymbol{"1D527}{\mfrakj }{\mathalpha}{mathematical fraktur small j}% +\UnicodeMathSymbol{"1D528}{\mfrakk }{\mathalpha}{mathematical fraktur small k}% +\UnicodeMathSymbol{"1D529}{\mfrakl }{\mathalpha}{mathematical fraktur small l}% +\UnicodeMathSymbol{"1D52A}{\mfrakm }{\mathalpha}{mathematical fraktur small m}% +\UnicodeMathSymbol{"1D52B}{\mfrakn }{\mathalpha}{mathematical fraktur small n}% +\UnicodeMathSymbol{"1D52C}{\mfrako }{\mathalpha}{mathematical fraktur small o}% +\UnicodeMathSymbol{"1D52D}{\mfrakp }{\mathalpha}{mathematical fraktur small p}% +\UnicodeMathSymbol{"1D52E}{\mfrakq }{\mathalpha}{mathematical fraktur small q}% +\UnicodeMathSymbol{"1D52F}{\mfrakr }{\mathalpha}{mathematical fraktur small r}% +\UnicodeMathSymbol{"1D530}{\mfraks }{\mathalpha}{mathematical fraktur small s}% +\UnicodeMathSymbol{"1D531}{\mfrakt }{\mathalpha}{mathematical fraktur small t}% +\UnicodeMathSymbol{"1D532}{\mfraku }{\mathalpha}{mathematical fraktur small u}% +\UnicodeMathSymbol{"1D533}{\mfrakv }{\mathalpha}{mathematical fraktur small v}% +\UnicodeMathSymbol{"1D534}{\mfrakw }{\mathalpha}{mathematical fraktur small w}% +\UnicodeMathSymbol{"1D535}{\mfrakx }{\mathalpha}{mathematical fraktur small x}% +\UnicodeMathSymbol{"1D536}{\mfraky }{\mathalpha}{mathematical fraktur small y}% +\UnicodeMathSymbol{"1D537}{\mfrakz }{\mathalpha}{mathematical fraktur small z}% +\UnicodeMathSymbol{"1D538}{\BbbA }{\mathalpha}{mathematical double-struck capital a}% +\UnicodeMathSymbol{"1D539}{\BbbB }{\mathalpha}{mathematical double-struck capital b}% +\UnicodeMathSymbol{"1D53B}{\BbbD }{\mathalpha}{mathematical double-struck capital d}% +\UnicodeMathSymbol{"1D53C}{\BbbE }{\mathalpha}{mathematical double-struck capital e}% +\UnicodeMathSymbol{"1D53D}{\BbbF }{\mathalpha}{mathematical double-struck capital f}% +\UnicodeMathSymbol{"1D53E}{\BbbG }{\mathalpha}{mathematical double-struck capital g}% +\UnicodeMathSymbol{"1D540}{\BbbI }{\mathalpha}{mathematical double-struck capital i}% +\UnicodeMathSymbol{"1D541}{\BbbJ }{\mathalpha}{mathematical double-struck capital j}% +\UnicodeMathSymbol{"1D542}{\BbbK }{\mathalpha}{mathematical double-struck capital k}% +\UnicodeMathSymbol{"1D543}{\BbbL }{\mathalpha}{mathematical double-struck capital l}% +\UnicodeMathSymbol{"1D544}{\BbbM }{\mathalpha}{mathematical double-struck capital m}% +\UnicodeMathSymbol{"1D546}{\BbbO }{\mathalpha}{mathematical double-struck capital o}% +\UnicodeMathSymbol{"1D54A}{\BbbS }{\mathalpha}{mathematical double-struck capital s}% +\UnicodeMathSymbol{"1D54B}{\BbbT }{\mathalpha}{mathematical double-struck capital t}% +\UnicodeMathSymbol{"1D54C}{\BbbU }{\mathalpha}{mathematical double-struck capital u}% +\UnicodeMathSymbol{"1D54D}{\BbbV }{\mathalpha}{mathematical double-struck capital v}% +\UnicodeMathSymbol{"1D54E}{\BbbW }{\mathalpha}{mathematical double-struck capital w}% +\UnicodeMathSymbol{"1D54F}{\BbbX }{\mathalpha}{mathematical double-struck capital x}% +\UnicodeMathSymbol{"1D550}{\BbbY }{\mathalpha}{mathematical double-struck capital y}% +\UnicodeMathSymbol{"1D552}{\Bbba }{\mathalpha}{mathematical double-struck small a}% +\UnicodeMathSymbol{"1D553}{\Bbbb }{\mathalpha}{mathematical double-struck small b}% +\UnicodeMathSymbol{"1D554}{\Bbbc }{\mathalpha}{mathematical double-struck small c}% +\UnicodeMathSymbol{"1D555}{\Bbbd }{\mathalpha}{mathematical double-struck small d}% +\UnicodeMathSymbol{"1D556}{\Bbbe }{\mathalpha}{mathematical double-struck small e}% +\UnicodeMathSymbol{"1D557}{\Bbbf }{\mathalpha}{mathematical double-struck small f}% +\UnicodeMathSymbol{"1D558}{\Bbbg }{\mathalpha}{mathematical double-struck small g}% +\UnicodeMathSymbol{"1D559}{\Bbbh }{\mathalpha}{mathematical double-struck small h}% +\UnicodeMathSymbol{"1D55A}{\Bbbi }{\mathalpha}{mathematical double-struck small i}% +\UnicodeMathSymbol{"1D55B}{\Bbbj }{\mathalpha}{mathematical double-struck small j}% +\UnicodeMathSymbol{"1D55C}{\Bbbk }{\mathalpha}{mathematical double-struck small k}% +\UnicodeMathSymbol{"1D55D}{\Bbbl }{\mathalpha}{mathematical double-struck small l}% +\UnicodeMathSymbol{"1D55E}{\Bbbm }{\mathalpha}{mathematical double-struck small m}% +\UnicodeMathSymbol{"1D55F}{\Bbbn }{\mathalpha}{mathematical double-struck small n}% +\UnicodeMathSymbol{"1D560}{\Bbbo }{\mathalpha}{mathematical double-struck small o}% +\UnicodeMathSymbol{"1D561}{\Bbbp }{\mathalpha}{mathematical double-struck small p}% +\UnicodeMathSymbol{"1D562}{\Bbbq }{\mathalpha}{mathematical double-struck small q}% +\UnicodeMathSymbol{"1D563}{\Bbbr }{\mathalpha}{mathematical double-struck small r}% +\UnicodeMathSymbol{"1D564}{\Bbbs }{\mathalpha}{mathematical double-struck small s}% +\UnicodeMathSymbol{"1D565}{\Bbbt }{\mathalpha}{mathematical double-struck small t}% +\UnicodeMathSymbol{"1D566}{\Bbbu }{\mathalpha}{mathematical double-struck small u}% +\UnicodeMathSymbol{"1D567}{\Bbbv }{\mathalpha}{mathematical double-struck small v}% +\UnicodeMathSymbol{"1D568}{\Bbbw }{\mathalpha}{mathematical double-struck small w}% +\UnicodeMathSymbol{"1D569}{\Bbbx }{\mathalpha}{mathematical double-struck small x}% +\UnicodeMathSymbol{"1D56A}{\Bbby }{\mathalpha}{mathematical double-struck small y}% +\UnicodeMathSymbol{"1D56B}{\Bbbz }{\mathalpha}{mathematical double-struck small z}% +\UnicodeMathSymbol{"1D56C}{\mbffrakA }{\mathalpha}{mathematical bold fraktur capital a}% +\UnicodeMathSymbol{"1D56D}{\mbffrakB }{\mathalpha}{mathematical bold fraktur capital b}% +\UnicodeMathSymbol{"1D56E}{\mbffrakC }{\mathalpha}{mathematical bold fraktur capital c}% +\UnicodeMathSymbol{"1D56F}{\mbffrakD }{\mathalpha}{mathematical bold fraktur capital d}% +\UnicodeMathSymbol{"1D570}{\mbffrakE }{\mathalpha}{mathematical bold fraktur capital e}% +\UnicodeMathSymbol{"1D571}{\mbffrakF }{\mathalpha}{mathematical bold fraktur capital f}% +\UnicodeMathSymbol{"1D572}{\mbffrakG }{\mathalpha}{mathematical bold fraktur capital g}% +\UnicodeMathSymbol{"1D573}{\mbffrakH }{\mathalpha}{mathematical bold fraktur capital h}% +\UnicodeMathSymbol{"1D574}{\mbffrakI }{\mathalpha}{mathematical bold fraktur capital i}% +\UnicodeMathSymbol{"1D575}{\mbffrakJ }{\mathalpha}{mathematical bold fraktur capital j}% +\UnicodeMathSymbol{"1D576}{\mbffrakK }{\mathalpha}{mathematical bold fraktur capital k}% +\UnicodeMathSymbol{"1D577}{\mbffrakL }{\mathalpha}{mathematical bold fraktur capital l}% +\UnicodeMathSymbol{"1D578}{\mbffrakM }{\mathalpha}{mathematical bold fraktur capital m}% +\UnicodeMathSymbol{"1D579}{\mbffrakN }{\mathalpha}{mathematical bold fraktur capital n}% +\UnicodeMathSymbol{"1D57A}{\mbffrakO }{\mathalpha}{mathematical bold fraktur capital o}% +\UnicodeMathSymbol{"1D57B}{\mbffrakP }{\mathalpha}{mathematical bold fraktur capital p}% +\UnicodeMathSymbol{"1D57C}{\mbffrakQ }{\mathalpha}{mathematical bold fraktur capital q}% +\UnicodeMathSymbol{"1D57D}{\mbffrakR }{\mathalpha}{mathematical bold fraktur capital r}% +\UnicodeMathSymbol{"1D57E}{\mbffrakS }{\mathalpha}{mathematical bold fraktur capital s}% +\UnicodeMathSymbol{"1D57F}{\mbffrakT }{\mathalpha}{mathematical bold fraktur capital t}% +\UnicodeMathSymbol{"1D580}{\mbffrakU }{\mathalpha}{mathematical bold fraktur capital u}% +\UnicodeMathSymbol{"1D581}{\mbffrakV }{\mathalpha}{mathematical bold fraktur capital v}% +\UnicodeMathSymbol{"1D582}{\mbffrakW }{\mathalpha}{mathematical bold fraktur capital w}% +\UnicodeMathSymbol{"1D583}{\mbffrakX }{\mathalpha}{mathematical bold fraktur capital x}% +\UnicodeMathSymbol{"1D584}{\mbffrakY }{\mathalpha}{mathematical bold fraktur capital y}% +\UnicodeMathSymbol{"1D585}{\mbffrakZ }{\mathalpha}{mathematical bold fraktur capital z}% +\UnicodeMathSymbol{"1D586}{\mbffraka }{\mathalpha}{mathematical bold fraktur small a}% +\UnicodeMathSymbol{"1D587}{\mbffrakb }{\mathalpha}{mathematical bold fraktur small b}% +\UnicodeMathSymbol{"1D588}{\mbffrakc }{\mathalpha}{mathematical bold fraktur small c}% +\UnicodeMathSymbol{"1D589}{\mbffrakd }{\mathalpha}{mathematical bold fraktur small d}% +\UnicodeMathSymbol{"1D58A}{\mbffrake }{\mathalpha}{mathematical bold fraktur small e}% +\UnicodeMathSymbol{"1D58B}{\mbffrakf }{\mathalpha}{mathematical bold fraktur small f}% +\UnicodeMathSymbol{"1D58C}{\mbffrakg }{\mathalpha}{mathematical bold fraktur small g}% +\UnicodeMathSymbol{"1D58D}{\mbffrakh }{\mathalpha}{mathematical bold fraktur small h}% +\UnicodeMathSymbol{"1D58E}{\mbffraki }{\mathalpha}{mathematical bold fraktur small i}% +\UnicodeMathSymbol{"1D58F}{\mbffrakj }{\mathalpha}{mathematical bold fraktur small j}% +\UnicodeMathSymbol{"1D590}{\mbffrakk }{\mathalpha}{mathematical bold fraktur small k}% +\UnicodeMathSymbol{"1D591}{\mbffrakl }{\mathalpha}{mathematical bold fraktur small l}% +\UnicodeMathSymbol{"1D592}{\mbffrakm }{\mathalpha}{mathematical bold fraktur small m}% +\UnicodeMathSymbol{"1D593}{\mbffrakn }{\mathalpha}{mathematical bold fraktur small n}% +\UnicodeMathSymbol{"1D594}{\mbffrako }{\mathalpha}{mathematical bold fraktur small o}% +\UnicodeMathSymbol{"1D595}{\mbffrakp }{\mathalpha}{mathematical bold fraktur small p}% +\UnicodeMathSymbol{"1D596}{\mbffrakq }{\mathalpha}{mathematical bold fraktur small q}% +\UnicodeMathSymbol{"1D597}{\mbffrakr }{\mathalpha}{mathematical bold fraktur small r}% +\UnicodeMathSymbol{"1D598}{\mbffraks }{\mathalpha}{mathematical bold fraktur small s}% +\UnicodeMathSymbol{"1D599}{\mbffrakt }{\mathalpha}{mathematical bold fraktur small t}% +\UnicodeMathSymbol{"1D59A}{\mbffraku }{\mathalpha}{mathematical bold fraktur small u}% +\UnicodeMathSymbol{"1D59B}{\mbffrakv }{\mathalpha}{mathematical bold fraktur small v}% +\UnicodeMathSymbol{"1D59C}{\mbffrakw }{\mathalpha}{mathematical bold fraktur small w}% +\UnicodeMathSymbol{"1D59D}{\mbffrakx }{\mathalpha}{mathematical bold fraktur small x}% +\UnicodeMathSymbol{"1D59E}{\mbffraky }{\mathalpha}{mathematical bold fraktur small y}% +\UnicodeMathSymbol{"1D59F}{\mbffrakz }{\mathalpha}{mathematical bold fraktur small z}% +\UnicodeMathSymbol{"1D5A0}{\msansA }{\mathalpha}{mathematical sans-serif capital a}% +\UnicodeMathSymbol{"1D5A1}{\msansB }{\mathalpha}{mathematical sans-serif capital b}% +\UnicodeMathSymbol{"1D5A2}{\msansC }{\mathalpha}{mathematical sans-serif capital c}% +\UnicodeMathSymbol{"1D5A3}{\msansD }{\mathalpha}{mathematical sans-serif capital d}% +\UnicodeMathSymbol{"1D5A4}{\msansE }{\mathalpha}{mathematical sans-serif capital e}% +\UnicodeMathSymbol{"1D5A5}{\msansF }{\mathalpha}{mathematical sans-serif capital f}% +\UnicodeMathSymbol{"1D5A6}{\msansG }{\mathalpha}{mathematical sans-serif capital g}% +\UnicodeMathSymbol{"1D5A7}{\msansH }{\mathalpha}{mathematical sans-serif capital h}% +\UnicodeMathSymbol{"1D5A8}{\msansI }{\mathalpha}{mathematical sans-serif capital i}% +\UnicodeMathSymbol{"1D5A9}{\msansJ }{\mathalpha}{mathematical sans-serif capital j}% +\UnicodeMathSymbol{"1D5AA}{\msansK }{\mathalpha}{mathematical sans-serif capital k}% +\UnicodeMathSymbol{"1D5AB}{\msansL }{\mathalpha}{mathematical sans-serif capital l}% +\UnicodeMathSymbol{"1D5AC}{\msansM }{\mathalpha}{mathematical sans-serif capital m}% +\UnicodeMathSymbol{"1D5AD}{\msansN }{\mathalpha}{mathematical sans-serif capital n}% +\UnicodeMathSymbol{"1D5AE}{\msansO }{\mathalpha}{mathematical sans-serif capital o}% +\UnicodeMathSymbol{"1D5AF}{\msansP }{\mathalpha}{mathematical sans-serif capital p}% +\UnicodeMathSymbol{"1D5B0}{\msansQ }{\mathalpha}{mathematical sans-serif capital q}% +\UnicodeMathSymbol{"1D5B1}{\msansR }{\mathalpha}{mathematical sans-serif capital r}% +\UnicodeMathSymbol{"1D5B2}{\msansS }{\mathalpha}{mathematical sans-serif capital s}% +\UnicodeMathSymbol{"1D5B3}{\msansT }{\mathalpha}{mathematical sans-serif capital t}% +\UnicodeMathSymbol{"1D5B4}{\msansU }{\mathalpha}{mathematical sans-serif capital u}% +\UnicodeMathSymbol{"1D5B5}{\msansV }{\mathalpha}{mathematical sans-serif capital v}% +\UnicodeMathSymbol{"1D5B6}{\msansW }{\mathalpha}{mathematical sans-serif capital w}% +\UnicodeMathSymbol{"1D5B7}{\msansX }{\mathalpha}{mathematical sans-serif capital x}% +\UnicodeMathSymbol{"1D5B8}{\msansY }{\mathalpha}{mathematical sans-serif capital y}% +\UnicodeMathSymbol{"1D5B9}{\msansZ }{\mathalpha}{mathematical sans-serif capital z}% +\UnicodeMathSymbol{"1D5BA}{\msansa }{\mathalpha}{mathematical sans-serif small a}% +\UnicodeMathSymbol{"1D5BB}{\msansb }{\mathalpha}{mathematical sans-serif small b}% +\UnicodeMathSymbol{"1D5BC}{\msansc }{\mathalpha}{mathematical sans-serif small c}% +\UnicodeMathSymbol{"1D5BD}{\msansd }{\mathalpha}{mathematical sans-serif small d}% +\UnicodeMathSymbol{"1D5BE}{\msanse }{\mathalpha}{mathematical sans-serif small e}% +\UnicodeMathSymbol{"1D5BF}{\msansf }{\mathalpha}{mathematical sans-serif small f}% +\UnicodeMathSymbol{"1D5C0}{\msansg }{\mathalpha}{mathematical sans-serif small g}% +\UnicodeMathSymbol{"1D5C1}{\msansh }{\mathalpha}{mathematical sans-serif small h}% +\UnicodeMathSymbol{"1D5C2}{\msansi }{\mathalpha}{mathematical sans-serif small i}% +\UnicodeMathSymbol{"1D5C3}{\msansj }{\mathalpha}{mathematical sans-serif small j}% +\UnicodeMathSymbol{"1D5C4}{\msansk }{\mathalpha}{mathematical sans-serif small k}% +\UnicodeMathSymbol{"1D5C5}{\msansl }{\mathalpha}{mathematical sans-serif small l}% +\UnicodeMathSymbol{"1D5C6}{\msansm }{\mathalpha}{mathematical sans-serif small m}% +\UnicodeMathSymbol{"1D5C7}{\msansn }{\mathalpha}{mathematical sans-serif small n}% +\UnicodeMathSymbol{"1D5C8}{\msanso }{\mathalpha}{mathematical sans-serif small o}% +\UnicodeMathSymbol{"1D5C9}{\msansp }{\mathalpha}{mathematical sans-serif small p}% +\UnicodeMathSymbol{"1D5CA}{\msansq }{\mathalpha}{mathematical sans-serif small q}% +\UnicodeMathSymbol{"1D5CB}{\msansr }{\mathalpha}{mathematical sans-serif small r}% +\UnicodeMathSymbol{"1D5CC}{\msanss }{\mathalpha}{mathematical sans-serif small s}% +\UnicodeMathSymbol{"1D5CD}{\msanst }{\mathalpha}{mathematical sans-serif small t}% +\UnicodeMathSymbol{"1D5CE}{\msansu }{\mathalpha}{mathematical sans-serif small u}% +\UnicodeMathSymbol{"1D5CF}{\msansv }{\mathalpha}{mathematical sans-serif small v}% +\UnicodeMathSymbol{"1D5D0}{\msansw }{\mathalpha}{mathematical sans-serif small w}% +\UnicodeMathSymbol{"1D5D1}{\msansx }{\mathalpha}{mathematical sans-serif small x}% +\UnicodeMathSymbol{"1D5D2}{\msansy }{\mathalpha}{mathematical sans-serif small y}% +\UnicodeMathSymbol{"1D5D3}{\msansz }{\mathalpha}{mathematical sans-serif small z}% +\UnicodeMathSymbol{"1D5D4}{\mbfsansA }{\mathalpha}{mathematical sans-serif bold capital a}% +\UnicodeMathSymbol{"1D5D5}{\mbfsansB }{\mathalpha}{mathematical sans-serif bold capital b}% +\UnicodeMathSymbol{"1D5D6}{\mbfsansC }{\mathalpha}{mathematical sans-serif bold capital c}% +\UnicodeMathSymbol{"1D5D7}{\mbfsansD }{\mathalpha}{mathematical sans-serif bold capital d}% +\UnicodeMathSymbol{"1D5D8}{\mbfsansE }{\mathalpha}{mathematical sans-serif bold capital e}% +\UnicodeMathSymbol{"1D5D9}{\mbfsansF }{\mathalpha}{mathematical sans-serif bold capital f}% +\UnicodeMathSymbol{"1D5DA}{\mbfsansG }{\mathalpha}{mathematical sans-serif bold capital g}% +\UnicodeMathSymbol{"1D5DB}{\mbfsansH }{\mathalpha}{mathematical sans-serif bold capital h}% +\UnicodeMathSymbol{"1D5DC}{\mbfsansI }{\mathalpha}{mathematical sans-serif bold capital i}% +\UnicodeMathSymbol{"1D5DD}{\mbfsansJ }{\mathalpha}{mathematical sans-serif bold capital j}% +\UnicodeMathSymbol{"1D5DE}{\mbfsansK }{\mathalpha}{mathematical sans-serif bold capital k}% +\UnicodeMathSymbol{"1D5DF}{\mbfsansL }{\mathalpha}{mathematical sans-serif bold capital l}% +\UnicodeMathSymbol{"1D5E0}{\mbfsansM }{\mathalpha}{mathematical sans-serif bold capital m}% +\UnicodeMathSymbol{"1D5E1}{\mbfsansN }{\mathalpha}{mathematical sans-serif bold capital n}% +\UnicodeMathSymbol{"1D5E2}{\mbfsansO }{\mathalpha}{mathematical sans-serif bold capital o}% +\UnicodeMathSymbol{"1D5E3}{\mbfsansP }{\mathalpha}{mathematical sans-serif bold capital p}% +\UnicodeMathSymbol{"1D5E4}{\mbfsansQ }{\mathalpha}{mathematical sans-serif bold capital q}% +\UnicodeMathSymbol{"1D5E5}{\mbfsansR }{\mathalpha}{mathematical sans-serif bold capital r}% +\UnicodeMathSymbol{"1D5E6}{\mbfsansS }{\mathalpha}{mathematical sans-serif bold capital s}% +\UnicodeMathSymbol{"1D5E7}{\mbfsansT }{\mathalpha}{mathematical sans-serif bold capital t}% +\UnicodeMathSymbol{"1D5E8}{\mbfsansU }{\mathalpha}{mathematical sans-serif bold capital u}% +\UnicodeMathSymbol{"1D5E9}{\mbfsansV }{\mathalpha}{mathematical sans-serif bold capital v}% +\UnicodeMathSymbol{"1D5EA}{\mbfsansW }{\mathalpha}{mathematical sans-serif bold capital w}% +\UnicodeMathSymbol{"1D5EB}{\mbfsansX }{\mathalpha}{mathematical sans-serif bold capital x}% +\UnicodeMathSymbol{"1D5EC}{\mbfsansY }{\mathalpha}{mathematical sans-serif bold capital y}% +\UnicodeMathSymbol{"1D5ED}{\mbfsansZ }{\mathalpha}{mathematical sans-serif bold capital z}% +\UnicodeMathSymbol{"1D5EE}{\mbfsansa }{\mathalpha}{mathematical sans-serif bold small a}% +\UnicodeMathSymbol{"1D5EF}{\mbfsansb }{\mathalpha}{mathematical sans-serif bold small b}% +\UnicodeMathSymbol{"1D5F0}{\mbfsansc }{\mathalpha}{mathematical sans-serif bold small c}% +\UnicodeMathSymbol{"1D5F1}{\mbfsansd }{\mathalpha}{mathematical sans-serif bold small d}% +\UnicodeMathSymbol{"1D5F2}{\mbfsanse }{\mathalpha}{mathematical sans-serif bold small e}% +\UnicodeMathSymbol{"1D5F3}{\mbfsansf }{\mathalpha}{mathematical sans-serif bold small f}% +\UnicodeMathSymbol{"1D5F4}{\mbfsansg }{\mathalpha}{mathematical sans-serif bold small g}% +\UnicodeMathSymbol{"1D5F5}{\mbfsansh }{\mathalpha}{mathematical sans-serif bold small h}% +\UnicodeMathSymbol{"1D5F6}{\mbfsansi }{\mathalpha}{mathematical sans-serif bold small i}% +\UnicodeMathSymbol{"1D5F7}{\mbfsansj }{\mathalpha}{mathematical sans-serif bold small j}% +\UnicodeMathSymbol{"1D5F8}{\mbfsansk }{\mathalpha}{mathematical sans-serif bold small k}% +\UnicodeMathSymbol{"1D5F9}{\mbfsansl }{\mathalpha}{mathematical sans-serif bold small l}% +\UnicodeMathSymbol{"1D5FA}{\mbfsansm }{\mathalpha}{mathematical sans-serif bold small m}% +\UnicodeMathSymbol{"1D5FB}{\mbfsansn }{\mathalpha}{mathematical sans-serif bold small n}% +\UnicodeMathSymbol{"1D5FC}{\mbfsanso }{\mathalpha}{mathematical sans-serif bold small o}% +\UnicodeMathSymbol{"1D5FD}{\mbfsansp }{\mathalpha}{mathematical sans-serif bold small p}% +\UnicodeMathSymbol{"1D5FE}{\mbfsansq }{\mathalpha}{mathematical sans-serif bold small q}% +\UnicodeMathSymbol{"1D5FF}{\mbfsansr }{\mathalpha}{mathematical sans-serif bold small r}% +\UnicodeMathSymbol{"1D600}{\mbfsanss }{\mathalpha}{mathematical sans-serif bold small s}% +\UnicodeMathSymbol{"1D601}{\mbfsanst }{\mathalpha}{mathematical sans-serif bold small t}% +\UnicodeMathSymbol{"1D602}{\mbfsansu }{\mathalpha}{mathematical sans-serif bold small u}% +\UnicodeMathSymbol{"1D603}{\mbfsansv }{\mathalpha}{mathematical sans-serif bold small v}% +\UnicodeMathSymbol{"1D604}{\mbfsansw }{\mathalpha}{mathematical sans-serif bold small w}% +\UnicodeMathSymbol{"1D605}{\mbfsansx }{\mathalpha}{mathematical sans-serif bold small x}% +\UnicodeMathSymbol{"1D606}{\mbfsansy }{\mathalpha}{mathematical sans-serif bold small y}% +\UnicodeMathSymbol{"1D607}{\mbfsansz }{\mathalpha}{mathematical sans-serif bold small z}% +\UnicodeMathSymbol{"1D608}{\mitsansA }{\mathalpha}{mathematical sans-serif italic capital a}% +\UnicodeMathSymbol{"1D609}{\mitsansB }{\mathalpha}{mathematical sans-serif italic capital b}% +\UnicodeMathSymbol{"1D60A}{\mitsansC }{\mathalpha}{mathematical sans-serif italic capital c}% +\UnicodeMathSymbol{"1D60B}{\mitsansD }{\mathalpha}{mathematical sans-serif italic capital d}% +\UnicodeMathSymbol{"1D60C}{\mitsansE }{\mathalpha}{mathematical sans-serif italic capital e}% +\UnicodeMathSymbol{"1D60D}{\mitsansF }{\mathalpha}{mathematical sans-serif italic capital f}% +\UnicodeMathSymbol{"1D60E}{\mitsansG }{\mathalpha}{mathematical sans-serif italic capital g}% +\UnicodeMathSymbol{"1D60F}{\mitsansH }{\mathalpha}{mathematical sans-serif italic capital h}% +\UnicodeMathSymbol{"1D610}{\mitsansI }{\mathalpha}{mathematical sans-serif italic capital i}% +\UnicodeMathSymbol{"1D611}{\mitsansJ }{\mathalpha}{mathematical sans-serif italic capital j}% +\UnicodeMathSymbol{"1D612}{\mitsansK }{\mathalpha}{mathematical sans-serif italic capital k}% +\UnicodeMathSymbol{"1D613}{\mitsansL }{\mathalpha}{mathematical sans-serif italic capital l}% +\UnicodeMathSymbol{"1D614}{\mitsansM }{\mathalpha}{mathematical sans-serif italic capital m}% +\UnicodeMathSymbol{"1D615}{\mitsansN }{\mathalpha}{mathematical sans-serif italic capital n}% +\UnicodeMathSymbol{"1D616}{\mitsansO }{\mathalpha}{mathematical sans-serif italic capital o}% +\UnicodeMathSymbol{"1D617}{\mitsansP }{\mathalpha}{mathematical sans-serif italic capital p}% +\UnicodeMathSymbol{"1D618}{\mitsansQ }{\mathalpha}{mathematical sans-serif italic capital q}% +\UnicodeMathSymbol{"1D619}{\mitsansR }{\mathalpha}{mathematical sans-serif italic capital r}% +\UnicodeMathSymbol{"1D61A}{\mitsansS }{\mathalpha}{mathematical sans-serif italic capital s}% +\UnicodeMathSymbol{"1D61B}{\mitsansT }{\mathalpha}{mathematical sans-serif italic capital t}% +\UnicodeMathSymbol{"1D61C}{\mitsansU }{\mathalpha}{mathematical sans-serif italic capital u}% +\UnicodeMathSymbol{"1D61D}{\mitsansV }{\mathalpha}{mathematical sans-serif italic capital v}% +\UnicodeMathSymbol{"1D61E}{\mitsansW }{\mathalpha}{mathematical sans-serif italic capital w}% +\UnicodeMathSymbol{"1D61F}{\mitsansX }{\mathalpha}{mathematical sans-serif italic capital x}% +\UnicodeMathSymbol{"1D620}{\mitsansY }{\mathalpha}{mathematical sans-serif italic capital y}% +\UnicodeMathSymbol{"1D621}{\mitsansZ }{\mathalpha}{mathematical sans-serif italic capital z}% +\UnicodeMathSymbol{"1D622}{\mitsansa }{\mathalpha}{mathematical sans-serif italic small a}% +\UnicodeMathSymbol{"1D623}{\mitsansb }{\mathalpha}{mathematical sans-serif italic small b}% +\UnicodeMathSymbol{"1D624}{\mitsansc }{\mathalpha}{mathematical sans-serif italic small c}% +\UnicodeMathSymbol{"1D625}{\mitsansd }{\mathalpha}{mathematical sans-serif italic small d}% +\UnicodeMathSymbol{"1D626}{\mitsanse }{\mathalpha}{mathematical sans-serif italic small e}% +\UnicodeMathSymbol{"1D627}{\mitsansf }{\mathalpha}{mathematical sans-serif italic small f}% +\UnicodeMathSymbol{"1D628}{\mitsansg }{\mathalpha}{mathematical sans-serif italic small g}% +\UnicodeMathSymbol{"1D629}{\mitsansh }{\mathalpha}{mathematical sans-serif italic small h}% +\UnicodeMathSymbol{"1D62A}{\mitsansi }{\mathalpha}{mathematical sans-serif italic small i}% +\UnicodeMathSymbol{"1D62B}{\mitsansj }{\mathalpha}{mathematical sans-serif italic small j}% +\UnicodeMathSymbol{"1D62C}{\mitsansk }{\mathalpha}{mathematical sans-serif italic small k}% +\UnicodeMathSymbol{"1D62D}{\mitsansl }{\mathalpha}{mathematical sans-serif italic small l}% +\UnicodeMathSymbol{"1D62E}{\mitsansm }{\mathalpha}{mathematical sans-serif italic small m}% +\UnicodeMathSymbol{"1D62F}{\mitsansn }{\mathalpha}{mathematical sans-serif italic small n}% +\UnicodeMathSymbol{"1D630}{\mitsanso }{\mathalpha}{mathematical sans-serif italic small o}% +\UnicodeMathSymbol{"1D631}{\mitsansp }{\mathalpha}{mathematical sans-serif italic small p}% +\UnicodeMathSymbol{"1D632}{\mitsansq }{\mathalpha}{mathematical sans-serif italic small q}% +\UnicodeMathSymbol{"1D633}{\mitsansr }{\mathalpha}{mathematical sans-serif italic small r}% +\UnicodeMathSymbol{"1D634}{\mitsanss }{\mathalpha}{mathematical sans-serif italic small s}% +\UnicodeMathSymbol{"1D635}{\mitsanst }{\mathalpha}{mathematical sans-serif italic small t}% +\UnicodeMathSymbol{"1D636}{\mitsansu }{\mathalpha}{mathematical sans-serif italic small u}% +\UnicodeMathSymbol{"1D637}{\mitsansv }{\mathalpha}{mathematical sans-serif italic small v}% +\UnicodeMathSymbol{"1D638}{\mitsansw }{\mathalpha}{mathematical sans-serif italic small w}% +\UnicodeMathSymbol{"1D639}{\mitsansx }{\mathalpha}{mathematical sans-serif italic small x}% +\UnicodeMathSymbol{"1D63A}{\mitsansy }{\mathalpha}{mathematical sans-serif italic small y}% +\UnicodeMathSymbol{"1D63B}{\mitsansz }{\mathalpha}{mathematical sans-serif italic small z}% +\UnicodeMathSymbol{"1D63C}{\mbfitsansA }{\mathalpha}{mathematical sans-serif bold italic capital a}% +\UnicodeMathSymbol{"1D63D}{\mbfitsansB }{\mathalpha}{mathematical sans-serif bold italic capital b}% +\UnicodeMathSymbol{"1D63E}{\mbfitsansC }{\mathalpha}{mathematical sans-serif bold italic capital c}% +\UnicodeMathSymbol{"1D63F}{\mbfitsansD }{\mathalpha}{mathematical sans-serif bold italic capital d}% +\UnicodeMathSymbol{"1D640}{\mbfitsansE }{\mathalpha}{mathematical sans-serif bold italic capital e}% +\UnicodeMathSymbol{"1D641}{\mbfitsansF }{\mathalpha}{mathematical sans-serif bold italic capital f}% +\UnicodeMathSymbol{"1D642}{\mbfitsansG }{\mathalpha}{mathematical sans-serif bold italic capital g}% +\UnicodeMathSymbol{"1D643}{\mbfitsansH }{\mathalpha}{mathematical sans-serif bold italic capital h}% +\UnicodeMathSymbol{"1D644}{\mbfitsansI }{\mathalpha}{mathematical sans-serif bold italic capital i}% +\UnicodeMathSymbol{"1D645}{\mbfitsansJ }{\mathalpha}{mathematical sans-serif bold italic capital j}% +\UnicodeMathSymbol{"1D646}{\mbfitsansK }{\mathalpha}{mathematical sans-serif bold italic capital k}% +\UnicodeMathSymbol{"1D647}{\mbfitsansL }{\mathalpha}{mathematical sans-serif bold italic capital l}% +\UnicodeMathSymbol{"1D648}{\mbfitsansM }{\mathalpha}{mathematical sans-serif bold italic capital m}% +\UnicodeMathSymbol{"1D649}{\mbfitsansN }{\mathalpha}{mathematical sans-serif bold italic capital n}% +\UnicodeMathSymbol{"1D64A}{\mbfitsansO }{\mathalpha}{mathematical sans-serif bold italic capital o}% +\UnicodeMathSymbol{"1D64B}{\mbfitsansP }{\mathalpha}{mathematical sans-serif bold italic capital p}% +\UnicodeMathSymbol{"1D64C}{\mbfitsansQ }{\mathalpha}{mathematical sans-serif bold italic capital q}% +\UnicodeMathSymbol{"1D64D}{\mbfitsansR }{\mathalpha}{mathematical sans-serif bold italic capital r}% +\UnicodeMathSymbol{"1D64E}{\mbfitsansS }{\mathalpha}{mathematical sans-serif bold italic capital s}% +\UnicodeMathSymbol{"1D64F}{\mbfitsansT }{\mathalpha}{mathematical sans-serif bold italic capital t}% +\UnicodeMathSymbol{"1D650}{\mbfitsansU }{\mathalpha}{mathematical sans-serif bold italic capital u}% +\UnicodeMathSymbol{"1D651}{\mbfitsansV }{\mathalpha}{mathematical sans-serif bold italic capital v}% +\UnicodeMathSymbol{"1D652}{\mbfitsansW }{\mathalpha}{mathematical sans-serif bold italic capital w}% +\UnicodeMathSymbol{"1D653}{\mbfitsansX }{\mathalpha}{mathematical sans-serif bold italic capital x}% +\UnicodeMathSymbol{"1D654}{\mbfitsansY }{\mathalpha}{mathematical sans-serif bold italic capital y}% +\UnicodeMathSymbol{"1D655}{\mbfitsansZ }{\mathalpha}{mathematical sans-serif bold italic capital z}% +\UnicodeMathSymbol{"1D656}{\mbfitsansa }{\mathalpha}{mathematical sans-serif bold italic small a}% +\UnicodeMathSymbol{"1D657}{\mbfitsansb }{\mathalpha}{mathematical sans-serif bold italic small b}% +\UnicodeMathSymbol{"1D658}{\mbfitsansc }{\mathalpha}{mathematical sans-serif bold italic small c}% +\UnicodeMathSymbol{"1D659}{\mbfitsansd }{\mathalpha}{mathematical sans-serif bold italic small d}% +\UnicodeMathSymbol{"1D65A}{\mbfitsanse }{\mathalpha}{mathematical sans-serif bold italic small e}% +\UnicodeMathSymbol{"1D65B}{\mbfitsansf }{\mathalpha}{mathematical sans-serif bold italic small f}% +\UnicodeMathSymbol{"1D65C}{\mbfitsansg }{\mathalpha}{mathematical sans-serif bold italic small g}% +\UnicodeMathSymbol{"1D65D}{\mbfitsansh }{\mathalpha}{mathematical sans-serif bold italic small h}% +\UnicodeMathSymbol{"1D65E}{\mbfitsansi }{\mathalpha}{mathematical sans-serif bold italic small i}% +\UnicodeMathSymbol{"1D65F}{\mbfitsansj }{\mathalpha}{mathematical sans-serif bold italic small j}% +\UnicodeMathSymbol{"1D660}{\mbfitsansk }{\mathalpha}{mathematical sans-serif bold italic small k}% +\UnicodeMathSymbol{"1D661}{\mbfitsansl }{\mathalpha}{mathematical sans-serif bold italic small l}% +\UnicodeMathSymbol{"1D662}{\mbfitsansm }{\mathalpha}{mathematical sans-serif bold italic small m}% +\UnicodeMathSymbol{"1D663}{\mbfitsansn }{\mathalpha}{mathematical sans-serif bold italic small n}% +\UnicodeMathSymbol{"1D664}{\mbfitsanso }{\mathalpha}{mathematical sans-serif bold italic small o}% +\UnicodeMathSymbol{"1D665}{\mbfitsansp }{\mathalpha}{mathematical sans-serif bold italic small p}% +\UnicodeMathSymbol{"1D666}{\mbfitsansq }{\mathalpha}{mathematical sans-serif bold italic small q}% +\UnicodeMathSymbol{"1D667}{\mbfitsansr }{\mathalpha}{mathematical sans-serif bold italic small r}% +\UnicodeMathSymbol{"1D668}{\mbfitsanss }{\mathalpha}{mathematical sans-serif bold italic small s}% +\UnicodeMathSymbol{"1D669}{\mbfitsanst }{\mathalpha}{mathematical sans-serif bold italic small t}% +\UnicodeMathSymbol{"1D66A}{\mbfitsansu }{\mathalpha}{mathematical sans-serif bold italic small u}% +\UnicodeMathSymbol{"1D66B}{\mbfitsansv }{\mathalpha}{mathematical sans-serif bold italic small v}% +\UnicodeMathSymbol{"1D66C}{\mbfitsansw }{\mathalpha}{mathematical sans-serif bold italic small w}% +\UnicodeMathSymbol{"1D66D}{\mbfitsansx }{\mathalpha}{mathematical sans-serif bold italic small x}% +\UnicodeMathSymbol{"1D66E}{\mbfitsansy }{\mathalpha}{mathematical sans-serif bold italic small y}% +\UnicodeMathSymbol{"1D66F}{\mbfitsansz }{\mathalpha}{mathematical sans-serif bold italic small z}% +\UnicodeMathSymbol{"1D670}{\mttA }{\mathalpha}{mathematical monospace capital a}% +\UnicodeMathSymbol{"1D671}{\mttB }{\mathalpha}{mathematical monospace capital b}% +\UnicodeMathSymbol{"1D672}{\mttC }{\mathalpha}{mathematical monospace capital c}% +\UnicodeMathSymbol{"1D673}{\mttD }{\mathalpha}{mathematical monospace capital d}% +\UnicodeMathSymbol{"1D674}{\mttE }{\mathalpha}{mathematical monospace capital e}% +\UnicodeMathSymbol{"1D675}{\mttF }{\mathalpha}{mathematical monospace capital f}% +\UnicodeMathSymbol{"1D676}{\mttG }{\mathalpha}{mathematical monospace capital g}% +\UnicodeMathSymbol{"1D677}{\mttH }{\mathalpha}{mathematical monospace capital h}% +\UnicodeMathSymbol{"1D678}{\mttI }{\mathalpha}{mathematical monospace capital i}% +\UnicodeMathSymbol{"1D679}{\mttJ }{\mathalpha}{mathematical monospace capital j}% +\UnicodeMathSymbol{"1D67A}{\mttK }{\mathalpha}{mathematical monospace capital k}% +\UnicodeMathSymbol{"1D67B}{\mttL }{\mathalpha}{mathematical monospace capital l}% +\UnicodeMathSymbol{"1D67C}{\mttM }{\mathalpha}{mathematical monospace capital m}% +\UnicodeMathSymbol{"1D67D}{\mttN }{\mathalpha}{mathematical monospace capital n}% +\UnicodeMathSymbol{"1D67E}{\mttO }{\mathalpha}{mathematical monospace capital o}% +\UnicodeMathSymbol{"1D67F}{\mttP }{\mathalpha}{mathematical monospace capital p}% +\UnicodeMathSymbol{"1D680}{\mttQ }{\mathalpha}{mathematical monospace capital q}% +\UnicodeMathSymbol{"1D681}{\mttR }{\mathalpha}{mathematical monospace capital r}% +\UnicodeMathSymbol{"1D682}{\mttS }{\mathalpha}{mathematical monospace capital s}% +\UnicodeMathSymbol{"1D683}{\mttT }{\mathalpha}{mathematical monospace capital t}% +\UnicodeMathSymbol{"1D684}{\mttU }{\mathalpha}{mathematical monospace capital u}% +\UnicodeMathSymbol{"1D685}{\mttV }{\mathalpha}{mathematical monospace capital v}% +\UnicodeMathSymbol{"1D686}{\mttW }{\mathalpha}{mathematical monospace capital w}% +\UnicodeMathSymbol{"1D687}{\mttX }{\mathalpha}{mathematical monospace capital x}% +\UnicodeMathSymbol{"1D688}{\mttY }{\mathalpha}{mathematical monospace capital y}% +\UnicodeMathSymbol{"1D689}{\mttZ }{\mathalpha}{mathematical monospace capital z}% +\UnicodeMathSymbol{"1D68A}{\mtta }{\mathalpha}{mathematical monospace small a}% +\UnicodeMathSymbol{"1D68B}{\mttb }{\mathalpha}{mathematical monospace small b}% +\UnicodeMathSymbol{"1D68C}{\mttc }{\mathalpha}{mathematical monospace small c}% +\UnicodeMathSymbol{"1D68D}{\mttd }{\mathalpha}{mathematical monospace small d}% +\UnicodeMathSymbol{"1D68E}{\mtte }{\mathalpha}{mathematical monospace small e}% +\UnicodeMathSymbol{"1D68F}{\mttf }{\mathalpha}{mathematical monospace small f}% +\UnicodeMathSymbol{"1D690}{\mttg }{\mathalpha}{mathematical monospace small g}% +\UnicodeMathSymbol{"1D691}{\mtth }{\mathalpha}{mathematical monospace small h}% +\UnicodeMathSymbol{"1D692}{\mtti }{\mathalpha}{mathematical monospace small i}% +\UnicodeMathSymbol{"1D693}{\mttj }{\mathalpha}{mathematical monospace small j}% +\UnicodeMathSymbol{"1D694}{\mttk }{\mathalpha}{mathematical monospace small k}% +\UnicodeMathSymbol{"1D695}{\mttl }{\mathalpha}{mathematical monospace small l}% +\UnicodeMathSymbol{"1D696}{\mttm }{\mathalpha}{mathematical monospace small m}% +\UnicodeMathSymbol{"1D697}{\mttn }{\mathalpha}{mathematical monospace small n}% +\UnicodeMathSymbol{"1D698}{\mtto }{\mathalpha}{mathematical monospace small o}% +\UnicodeMathSymbol{"1D699}{\mttp }{\mathalpha}{mathematical monospace small p}% +\UnicodeMathSymbol{"1D69A}{\mttq }{\mathalpha}{mathematical monospace small q}% +\UnicodeMathSymbol{"1D69B}{\mttr }{\mathalpha}{mathematical monospace small r}% +\UnicodeMathSymbol{"1D69C}{\mtts }{\mathalpha}{mathematical monospace small s}% +\UnicodeMathSymbol{"1D69D}{\mttt }{\mathalpha}{mathematical monospace small t}% +\UnicodeMathSymbol{"1D69E}{\mttu }{\mathalpha}{mathematical monospace small u}% +\UnicodeMathSymbol{"1D69F}{\mttv }{\mathalpha}{mathematical monospace small v}% +\UnicodeMathSymbol{"1D6A0}{\mttw }{\mathalpha}{mathematical monospace small w}% +\UnicodeMathSymbol{"1D6A1}{\mttx }{\mathalpha}{mathematical monospace small x}% +\UnicodeMathSymbol{"1D6A2}{\mtty }{\mathalpha}{mathematical monospace small y}% +\UnicodeMathSymbol{"1D6A3}{\mttz }{\mathalpha}{mathematical monospace small z}% +\UnicodeMathSymbol{"1D6A4}{\imath }{\mathalpha}{mathematical italic small dotless i}% +\UnicodeMathSymbol{"1D6A5}{\jmath }{\mathalpha}{mathematical italic small dotless j}% +\UnicodeMathSymbol{"1D6A8}{\mbfAlpha }{\mathalpha}{mathematical bold capital alpha}% +\UnicodeMathSymbol{"1D6A9}{\mbfBeta }{\mathalpha}{mathematical bold capital beta}% +\UnicodeMathSymbol{"1D6AA}{\mbfGamma }{\mathalpha}{mathematical bold capital gamma}% +\UnicodeMathSymbol{"1D6AB}{\mbfDelta }{\mathalpha}{mathematical bold capital delta}% +\UnicodeMathSymbol{"1D6AC}{\mbfEpsilon }{\mathalpha}{mathematical bold capital epsilon}% +\UnicodeMathSymbol{"1D6AD}{\mbfZeta }{\mathalpha}{mathematical bold capital zeta}% +\UnicodeMathSymbol{"1D6AE}{\mbfEta }{\mathalpha}{mathematical bold capital eta}% +\UnicodeMathSymbol{"1D6AF}{\mbfTheta }{\mathalpha}{mathematical bold capital theta}% +\UnicodeMathSymbol{"1D6B0}{\mbfIota }{\mathalpha}{mathematical bold capital iota}% +\UnicodeMathSymbol{"1D6B1}{\mbfKappa }{\mathalpha}{mathematical bold capital kappa}% +\UnicodeMathSymbol{"1D6B2}{\mbfLambda }{\mathalpha}{mathematical bold capital lambda}% +\UnicodeMathSymbol{"1D6B3}{\mbfMu }{\mathalpha}{mathematical bold capital mu}% +\UnicodeMathSymbol{"1D6B4}{\mbfNu }{\mathalpha}{mathematical bold capital nu}% +\UnicodeMathSymbol{"1D6B5}{\mbfXi }{\mathalpha}{mathematical bold capital xi}% +\UnicodeMathSymbol{"1D6B6}{\mbfOmicron }{\mathalpha}{mathematical bold capital omicron}% +\UnicodeMathSymbol{"1D6B7}{\mbfPi }{\mathalpha}{mathematical bold capital pi}% +\UnicodeMathSymbol{"1D6B8}{\mbfRho }{\mathalpha}{mathematical bold capital rho}% +\UnicodeMathSymbol{"1D6B9}{\mbfvarTheta }{\mathalpha}{mathematical bold capital theta symbol}% +\UnicodeMathSymbol{"1D6BA}{\mbfSigma }{\mathalpha}{mathematical bold capital sigma}% +\UnicodeMathSymbol{"1D6BB}{\mbfTau }{\mathalpha}{mathematical bold capital tau}% +\UnicodeMathSymbol{"1D6BC}{\mbfUpsilon }{\mathalpha}{mathematical bold capital upsilon}% +\UnicodeMathSymbol{"1D6BD}{\mbfPhi }{\mathalpha}{mathematical bold capital phi}% +\UnicodeMathSymbol{"1D6BE}{\mbfChi }{\mathalpha}{mathematical bold capital chi}% +\UnicodeMathSymbol{"1D6BF}{\mbfPsi }{\mathalpha}{mathematical bold capital psi}% +\UnicodeMathSymbol{"1D6C0}{\mbfOmega }{\mathalpha}{mathematical bold capital omega}% +\UnicodeMathSymbol{"1D6C1}{\mbfnabla }{\mathalpha}{mathematical bold nabla}% +\UnicodeMathSymbol{"1D6C2}{\mbfalpha }{\mathalpha}{mathematical bold small alpha}% +\UnicodeMathSymbol{"1D6C3}{\mbfbeta }{\mathalpha}{mathematical bold small beta}% +\UnicodeMathSymbol{"1D6C4}{\mbfgamma }{\mathalpha}{mathematical bold small gamma}% +\UnicodeMathSymbol{"1D6C5}{\mbfdelta }{\mathalpha}{mathematical bold small delta}% +\UnicodeMathSymbol{"1D6C6}{\mbfvarepsilon }{\mathalpha}{mathematical bold small varepsilon}% +\UnicodeMathSymbol{"1D6C7}{\mbfzeta }{\mathalpha}{mathematical bold small zeta}% +\UnicodeMathSymbol{"1D6C8}{\mbfeta }{\mathalpha}{mathematical bold small eta}% +\UnicodeMathSymbol{"1D6C9}{\mbftheta }{\mathalpha}{mathematical bold small theta}% +\UnicodeMathSymbol{"1D6CA}{\mbfiota }{\mathalpha}{mathematical bold small iota}% +\UnicodeMathSymbol{"1D6CB}{\mbfkappa }{\mathalpha}{mathematical bold small kappa}% +\UnicodeMathSymbol{"1D6CC}{\mbflambda }{\mathalpha}{mathematical bold small lambda}% +\UnicodeMathSymbol{"1D6CD}{\mbfmu }{\mathalpha}{mathematical bold small mu}% +\UnicodeMathSymbol{"1D6CE}{\mbfnu }{\mathalpha}{mathematical bold small nu}% +\UnicodeMathSymbol{"1D6CF}{\mbfxi }{\mathalpha}{mathematical bold small xi}% +\UnicodeMathSymbol{"1D6D0}{\mbfomicron }{\mathalpha}{mathematical bold small omicron}% +\UnicodeMathSymbol{"1D6D1}{\mbfpi }{\mathalpha}{mathematical bold small pi}% +\UnicodeMathSymbol{"1D6D2}{\mbfrho }{\mathalpha}{mathematical bold small rho}% +\UnicodeMathSymbol{"1D6D3}{\mbfvarsigma }{\mathalpha}{mathematical bold small final sigma}% +\UnicodeMathSymbol{"1D6D4}{\mbfsigma }{\mathalpha}{mathematical bold small sigma}% +\UnicodeMathSymbol{"1D6D5}{\mbftau }{\mathalpha}{mathematical bold small tau}% +\UnicodeMathSymbol{"1D6D6}{\mbfupsilon }{\mathalpha}{mathematical bold small upsilon}% +\UnicodeMathSymbol{"1D6D7}{\mbfvarphi }{\mathalpha}{mathematical bold small phi}% +\UnicodeMathSymbol{"1D6D8}{\mbfchi }{\mathalpha}{mathematical bold small chi}% +\UnicodeMathSymbol{"1D6D9}{\mbfpsi }{\mathalpha}{mathematical bold small psi}% +\UnicodeMathSymbol{"1D6DA}{\mbfomega }{\mathalpha}{mathematical bold small omega}% +\UnicodeMathSymbol{"1D6DB}{\mbfpartial }{\mathalpha}{mathematical bold partial differential}% +\UnicodeMathSymbol{"1D6DC}{\mbfepsilon }{\mathalpha}{mathematical bold varepsilon symbol}% +\UnicodeMathSymbol{"1D6DD}{\mbfvartheta }{\mathalpha}{mathematical bold theta symbol}% +\UnicodeMathSymbol{"1D6DE}{\mbfvarkappa }{\mathalpha}{mathematical bold kappa symbol}% +\UnicodeMathSymbol{"1D6DF}{\mbfphi }{\mathalpha}{mathematical bold phi symbol}% +\UnicodeMathSymbol{"1D6E0}{\mbfvarrho }{\mathalpha}{mathematical bold rho symbol}% +\UnicodeMathSymbol{"1D6E1}{\mbfvarpi }{\mathalpha}{mathematical bold pi symbol}% +\UnicodeMathSymbol{"1D6E2}{\mitAlpha }{\mathalpha}{mathematical italic capital alpha}% +\UnicodeMathSymbol{"1D6E3}{\mitBeta }{\mathalpha}{mathematical italic capital beta}% +\UnicodeMathSymbol{"1D6E4}{\mitGamma }{\mathalpha}{mathematical italic capital gamma}% +\UnicodeMathSymbol{"1D6E5}{\mitDelta }{\mathalpha}{mathematical italic capital delta}% +\UnicodeMathSymbol{"1D6E6}{\mitEpsilon }{\mathalpha}{mathematical italic capital epsilon}% +\UnicodeMathSymbol{"1D6E7}{\mitZeta }{\mathalpha}{mathematical italic capital zeta}% +\UnicodeMathSymbol{"1D6E8}{\mitEta }{\mathalpha}{mathematical italic capital eta}% +\UnicodeMathSymbol{"1D6E9}{\mitTheta }{\mathalpha}{mathematical italic capital theta}% +\UnicodeMathSymbol{"1D6EA}{\mitIota }{\mathalpha}{mathematical italic capital iota}% +\UnicodeMathSymbol{"1D6EB}{\mitKappa }{\mathalpha}{mathematical italic capital kappa}% +\UnicodeMathSymbol{"1D6EC}{\mitLambda }{\mathalpha}{mathematical italic capital lambda}% +\UnicodeMathSymbol{"1D6ED}{\mitMu }{\mathalpha}{mathematical italic capital mu}% +\UnicodeMathSymbol{"1D6EE}{\mitNu }{\mathalpha}{mathematical italic capital nu}% +\UnicodeMathSymbol{"1D6EF}{\mitXi }{\mathalpha}{mathematical italic capital xi}% +\UnicodeMathSymbol{"1D6F0}{\mitOmicron }{\mathalpha}{mathematical italic capital omicron}% +\UnicodeMathSymbol{"1D6F1}{\mitPi }{\mathalpha}{mathematical italic capital pi}% +\UnicodeMathSymbol{"1D6F2}{\mitRho }{\mathalpha}{mathematical italic capital rho}% +\UnicodeMathSymbol{"1D6F3}{\mitvarTheta }{\mathalpha}{mathematical italic capital theta symbol}% +\UnicodeMathSymbol{"1D6F4}{\mitSigma }{\mathalpha}{mathematical italic capital sigma}% +\UnicodeMathSymbol{"1D6F5}{\mitTau }{\mathalpha}{mathematical italic capital tau}% +\UnicodeMathSymbol{"1D6F6}{\mitUpsilon }{\mathalpha}{mathematical italic capital upsilon}% +\UnicodeMathSymbol{"1D6F7}{\mitPhi }{\mathalpha}{mathematical italic capital phi}% +\UnicodeMathSymbol{"1D6F8}{\mitChi }{\mathalpha}{mathematical italic capital chi}% +\UnicodeMathSymbol{"1D6F9}{\mitPsi }{\mathalpha}{mathematical italic capital psi}% +\UnicodeMathSymbol{"1D6FA}{\mitOmega }{\mathalpha}{mathematical italic capital omega}% +\UnicodeMathSymbol{"1D6FB}{\mitnabla }{\mathalpha}{mathematical italic nabla}% +\UnicodeMathSymbol{"1D6FC}{\mitalpha }{\mathalpha}{mathematical italic small alpha}% +\UnicodeMathSymbol{"1D6FD}{\mitbeta }{\mathalpha}{mathematical italic small beta}% +\UnicodeMathSymbol{"1D6FE}{\mitgamma }{\mathalpha}{mathematical italic small gamma}% +\UnicodeMathSymbol{"1D6FF}{\mitdelta }{\mathalpha}{mathematical italic small delta}% +\UnicodeMathSymbol{"1D700}{\mitvarepsilon }{\mathalpha}{mathematical italic small varepsilon}% +\UnicodeMathSymbol{"1D701}{\mitzeta }{\mathalpha}{mathematical italic small zeta}% +\UnicodeMathSymbol{"1D702}{\miteta }{\mathalpha}{mathematical italic small eta}% +\UnicodeMathSymbol{"1D703}{\mittheta }{\mathalpha}{mathematical italic small theta}% +\UnicodeMathSymbol{"1D704}{\mitiota }{\mathalpha}{mathematical italic small iota}% +\UnicodeMathSymbol{"1D705}{\mitkappa }{\mathalpha}{mathematical italic small kappa}% +\UnicodeMathSymbol{"1D706}{\mitlambda }{\mathalpha}{mathematical italic small lambda}% +\UnicodeMathSymbol{"1D707}{\mitmu }{\mathalpha}{mathematical italic small mu}% +\UnicodeMathSymbol{"1D708}{\mitnu }{\mathalpha}{mathematical italic small nu}% +\UnicodeMathSymbol{"1D709}{\mitxi }{\mathalpha}{mathematical italic small xi}% +\UnicodeMathSymbol{"1D70A}{\mitomicron }{\mathalpha}{mathematical italic small omicron}% +\UnicodeMathSymbol{"1D70B}{\mitpi }{\mathalpha}{mathematical italic small pi}% +\UnicodeMathSymbol{"1D70C}{\mitrho }{\mathalpha}{mathematical italic small rho}% +\UnicodeMathSymbol{"1D70D}{\mitvarsigma }{\mathalpha}{mathematical italic small final sigma}% +\UnicodeMathSymbol{"1D70E}{\mitsigma }{\mathalpha}{mathematical italic small sigma}% +\UnicodeMathSymbol{"1D70F}{\mittau }{\mathalpha}{mathematical italic small tau}% +\UnicodeMathSymbol{"1D710}{\mitupsilon }{\mathalpha}{mathematical italic small upsilon}% +\UnicodeMathSymbol{"1D711}{\mitvarphi }{\mathalpha}{mathematical italic small phi}% +\UnicodeMathSymbol{"1D712}{\mitchi }{\mathalpha}{mathematical italic small chi}% +\UnicodeMathSymbol{"1D713}{\mitpsi }{\mathalpha}{mathematical italic small psi}% +\UnicodeMathSymbol{"1D714}{\mitomega }{\mathalpha}{mathematical italic small omega}% +\UnicodeMathSymbol{"1D715}{\mitpartial }{\mathalpha}{mathematical italic partial differential}% +\UnicodeMathSymbol{"1D716}{\mitepsilon }{\mathalpha}{mathematical italic varepsilon symbol}% +\UnicodeMathSymbol{"1D717}{\mitvartheta }{\mathalpha}{mathematical italic theta symbol}% +\UnicodeMathSymbol{"1D718}{\mitvarkappa }{\mathalpha}{mathematical italic kappa symbol}% +\UnicodeMathSymbol{"1D719}{\mitphi }{\mathalpha}{mathematical italic phi symbol}% +\UnicodeMathSymbol{"1D71A}{\mitvarrho }{\mathalpha}{mathematical italic rho symbol}% +\UnicodeMathSymbol{"1D71B}{\mitvarpi }{\mathalpha}{mathematical italic pi symbol}% +\UnicodeMathSymbol{"1D71C}{\mbfitAlpha }{\mathalpha}{mathematical bold italic capital alpha}% +\UnicodeMathSymbol{"1D71D}{\mbfitBeta }{\mathalpha}{mathematical bold italic capital beta}% +\UnicodeMathSymbol{"1D71E}{\mbfitGamma }{\mathalpha}{mathematical bold italic capital gamma}% +\UnicodeMathSymbol{"1D71F}{\mbfitDelta }{\mathalpha}{mathematical bold italic capital delta}% +\UnicodeMathSymbol{"1D720}{\mbfitEpsilon }{\mathalpha}{mathematical bold italic capital epsilon}% +\UnicodeMathSymbol{"1D721}{\mbfitZeta }{\mathalpha}{mathematical bold italic capital zeta}% +\UnicodeMathSymbol{"1D722}{\mbfitEta }{\mathalpha}{mathematical bold italic capital eta}% +\UnicodeMathSymbol{"1D723}{\mbfitTheta }{\mathalpha}{mathematical bold italic capital theta}% +\UnicodeMathSymbol{"1D724}{\mbfitIota }{\mathalpha}{mathematical bold italic capital iota}% +\UnicodeMathSymbol{"1D725}{\mbfitKappa }{\mathalpha}{mathematical bold italic capital kappa}% +\UnicodeMathSymbol{"1D726}{\mbfitLambda }{\mathalpha}{mathematical bold italic capital lambda}% +\UnicodeMathSymbol{"1D727}{\mbfitMu }{\mathalpha}{mathematical bold italic capital mu}% +\UnicodeMathSymbol{"1D728}{\mbfitNu }{\mathalpha}{mathematical bold italic capital nu}% +\UnicodeMathSymbol{"1D729}{\mbfitXi }{\mathalpha}{mathematical bold italic capital xi}% +\UnicodeMathSymbol{"1D72A}{\mbfitOmicron }{\mathalpha}{mathematical bold italic capital omicron}% +\UnicodeMathSymbol{"1D72B}{\mbfitPi }{\mathalpha}{mathematical bold italic capital pi}% +\UnicodeMathSymbol{"1D72C}{\mbfitRho }{\mathalpha}{mathematical bold italic capital rho}% +\UnicodeMathSymbol{"1D72D}{\mbfitvarTheta }{\mathalpha}{mathematical bold italic capital theta symbol}% +\UnicodeMathSymbol{"1D72E}{\mbfitSigma }{\mathalpha}{mathematical bold italic capital sigma}% +\UnicodeMathSymbol{"1D72F}{\mbfitTau }{\mathalpha}{mathematical bold italic capital tau}% +\UnicodeMathSymbol{"1D730}{\mbfitUpsilon }{\mathalpha}{mathematical bold italic capital upsilon}% +\UnicodeMathSymbol{"1D731}{\mbfitPhi }{\mathalpha}{mathematical bold italic capital phi}% +\UnicodeMathSymbol{"1D732}{\mbfitChi }{\mathalpha}{mathematical bold italic capital chi}% +\UnicodeMathSymbol{"1D733}{\mbfitPsi }{\mathalpha}{mathematical bold italic capital psi}% +\UnicodeMathSymbol{"1D734}{\mbfitOmega }{\mathalpha}{mathematical bold italic capital omega}% +\UnicodeMathSymbol{"1D735}{\mbfitnabla }{\mathalpha}{mathematical bold italic nabla}% +\UnicodeMathSymbol{"1D736}{\mbfitalpha }{\mathalpha}{mathematical bold italic small alpha}% +\UnicodeMathSymbol{"1D737}{\mbfitbeta }{\mathalpha}{mathematical bold italic small beta}% +\UnicodeMathSymbol{"1D738}{\mbfitgamma }{\mathalpha}{mathematical bold italic small gamma}% +\UnicodeMathSymbol{"1D739}{\mbfitdelta }{\mathalpha}{mathematical bold italic small delta}% +\UnicodeMathSymbol{"1D73A}{\mbfitvarepsilon }{\mathalpha}{mathematical bold italic small varepsilon}% +\UnicodeMathSymbol{"1D73B}{\mbfitzeta }{\mathalpha}{mathematical bold italic small zeta}% +\UnicodeMathSymbol{"1D73C}{\mbfiteta }{\mathalpha}{mathematical bold italic small eta}% +\UnicodeMathSymbol{"1D73D}{\mbfittheta }{\mathalpha}{mathematical bold italic small theta}% +\UnicodeMathSymbol{"1D73E}{\mbfitiota }{\mathalpha}{mathematical bold italic small iota}% +\UnicodeMathSymbol{"1D73F}{\mbfitkappa }{\mathalpha}{mathematical bold italic small kappa}% +\UnicodeMathSymbol{"1D740}{\mbfitlambda }{\mathalpha}{mathematical bold italic small lambda}% +\UnicodeMathSymbol{"1D741}{\mbfitmu }{\mathalpha}{mathematical bold italic small mu}% +\UnicodeMathSymbol{"1D742}{\mbfitnu }{\mathalpha}{mathematical bold italic small nu}% +\UnicodeMathSymbol{"1D743}{\mbfitxi }{\mathalpha}{mathematical bold italic small xi}% +\UnicodeMathSymbol{"1D744}{\mbfitomicron }{\mathalpha}{mathematical bold italic small omicron}% +\UnicodeMathSymbol{"1D745}{\mbfitpi }{\mathalpha}{mathematical bold italic small pi}% +\UnicodeMathSymbol{"1D746}{\mbfitrho }{\mathalpha}{mathematical bold italic small rho}% +\UnicodeMathSymbol{"1D747}{\mbfitvarsigma }{\mathalpha}{mathematical bold italic small final sigma}% +\UnicodeMathSymbol{"1D748}{\mbfitsigma }{\mathalpha}{mathematical bold italic small sigma}% +\UnicodeMathSymbol{"1D749}{\mbfittau }{\mathalpha}{mathematical bold italic small tau}% +\UnicodeMathSymbol{"1D74A}{\mbfitupsilon }{\mathalpha}{mathematical bold italic small upsilon}% +\UnicodeMathSymbol{"1D74B}{\mbfitvarphi }{\mathalpha}{mathematical bold italic small phi}% +\UnicodeMathSymbol{"1D74C}{\mbfitchi }{\mathalpha}{mathematical bold italic small chi}% +\UnicodeMathSymbol{"1D74D}{\mbfitpsi }{\mathalpha}{mathematical bold italic small psi}% +\UnicodeMathSymbol{"1D74E}{\mbfitomega }{\mathalpha}{mathematical bold italic small omega}% +\UnicodeMathSymbol{"1D74F}{\mbfitpartial }{\mathalpha}{mathematical bold italic partial differential}% +\UnicodeMathSymbol{"1D750}{\mbfitepsilon }{\mathalpha}{mathematical bold italic varepsilon symbol}% +\UnicodeMathSymbol{"1D751}{\mbfitvartheta }{\mathalpha}{mathematical bold italic theta symbol}% +\UnicodeMathSymbol{"1D752}{\mbfitvarkappa }{\mathalpha}{mathematical bold italic kappa symbol}% +\UnicodeMathSymbol{"1D753}{\mbfitphi }{\mathalpha}{mathematical bold italic phi symbol}% +\UnicodeMathSymbol{"1D754}{\mbfitvarrho }{\mathalpha}{mathematical bold italic rho symbol}% +\UnicodeMathSymbol{"1D755}{\mbfitvarpi }{\mathalpha}{mathematical bold italic pi symbol}% +\UnicodeMathSymbol{"1D756}{\mbfsansAlpha }{\mathalpha}{mathematical sans-serif bold capital alpha}% +\UnicodeMathSymbol{"1D757}{\mbfsansBeta }{\mathalpha}{mathematical sans-serif bold capital beta}% +\UnicodeMathSymbol{"1D758}{\mbfsansGamma }{\mathalpha}{mathematical sans-serif bold capital gamma}% +\UnicodeMathSymbol{"1D759}{\mbfsansDelta }{\mathalpha}{mathematical sans-serif bold capital delta}% +\UnicodeMathSymbol{"1D75A}{\mbfsansEpsilon }{\mathalpha}{mathematical sans-serif bold capital epsilon}% +\UnicodeMathSymbol{"1D75B}{\mbfsansZeta }{\mathalpha}{mathematical sans-serif bold capital zeta}% +\UnicodeMathSymbol{"1D75C}{\mbfsansEta }{\mathalpha}{mathematical sans-serif bold capital eta}% +\UnicodeMathSymbol{"1D75D}{\mbfsansTheta }{\mathalpha}{mathematical sans-serif bold capital theta}% +\UnicodeMathSymbol{"1D75E}{\mbfsansIota }{\mathalpha}{mathematical sans-serif bold capital iota}% +\UnicodeMathSymbol{"1D75F}{\mbfsansKappa }{\mathalpha}{mathematical sans-serif bold capital kappa}% +\UnicodeMathSymbol{"1D760}{\mbfsansLambda }{\mathalpha}{mathematical sans-serif bold capital lambda}% +\UnicodeMathSymbol{"1D761}{\mbfsansMu }{\mathalpha}{mathematical sans-serif bold capital mu}% +\UnicodeMathSymbol{"1D762}{\mbfsansNu }{\mathalpha}{mathematical sans-serif bold capital nu}% +\UnicodeMathSymbol{"1D763}{\mbfsansXi }{\mathalpha}{mathematical sans-serif bold capital xi}% +\UnicodeMathSymbol{"1D764}{\mbfsansOmicron }{\mathalpha}{mathematical sans-serif bold capital omicron}% +\UnicodeMathSymbol{"1D765}{\mbfsansPi }{\mathalpha}{mathematical sans-serif bold capital pi}% +\UnicodeMathSymbol{"1D766}{\mbfsansRho }{\mathalpha}{mathematical sans-serif bold capital rho}% +\UnicodeMathSymbol{"1D767}{\mbfsansvarTheta }{\mathalpha}{mathematical sans-serif bold capital theta symbol}% +\UnicodeMathSymbol{"1D768}{\mbfsansSigma }{\mathalpha}{mathematical sans-serif bold capital sigma}% +\UnicodeMathSymbol{"1D769}{\mbfsansTau }{\mathalpha}{mathematical sans-serif bold capital tau}% +\UnicodeMathSymbol{"1D76A}{\mbfsansUpsilon }{\mathalpha}{mathematical sans-serif bold capital upsilon}% +\UnicodeMathSymbol{"1D76B}{\mbfsansPhi }{\mathalpha}{mathematical sans-serif bold capital phi}% +\UnicodeMathSymbol{"1D76C}{\mbfsansChi }{\mathalpha}{mathematical sans-serif bold capital chi}% +\UnicodeMathSymbol{"1D76D}{\mbfsansPsi }{\mathalpha}{mathematical sans-serif bold capital psi}% +\UnicodeMathSymbol{"1D76E}{\mbfsansOmega }{\mathalpha}{mathematical sans-serif bold capital omega}% +\UnicodeMathSymbol{"1D76F}{\mbfsansnabla }{\mathalpha}{mathematical sans-serif bold nabla}% +\UnicodeMathSymbol{"1D770}{\mbfsansalpha }{\mathalpha}{mathematical sans-serif bold small alpha}% +\UnicodeMathSymbol{"1D771}{\mbfsansbeta }{\mathalpha}{mathematical sans-serif bold small beta}% +\UnicodeMathSymbol{"1D772}{\mbfsansgamma }{\mathalpha}{mathematical sans-serif bold small gamma}% +\UnicodeMathSymbol{"1D773}{\mbfsansdelta }{\mathalpha}{mathematical sans-serif bold small delta}% +\UnicodeMathSymbol{"1D774}{\mbfsansvarepsilon }{\mathalpha}{mathematical sans-serif bold small varepsilon}% +\UnicodeMathSymbol{"1D775}{\mbfsanszeta }{\mathalpha}{mathematical sans-serif bold small zeta}% +\UnicodeMathSymbol{"1D776}{\mbfsanseta }{\mathalpha}{mathematical sans-serif bold small eta}% +\UnicodeMathSymbol{"1D777}{\mbfsanstheta }{\mathalpha}{mathematical sans-serif bold small theta}% +\UnicodeMathSymbol{"1D778}{\mbfsansiota }{\mathalpha}{mathematical sans-serif bold small iota}% +\UnicodeMathSymbol{"1D779}{\mbfsanskappa }{\mathalpha}{mathematical sans-serif bold small kappa}% +\UnicodeMathSymbol{"1D77A}{\mbfsanslambda }{\mathalpha}{mathematical sans-serif bold small lambda}% +\UnicodeMathSymbol{"1D77B}{\mbfsansmu }{\mathalpha}{mathematical sans-serif bold small mu}% +\UnicodeMathSymbol{"1D77C}{\mbfsansnu }{\mathalpha}{mathematical sans-serif bold small nu}% +\UnicodeMathSymbol{"1D77D}{\mbfsansxi }{\mathalpha}{mathematical sans-serif bold small xi}% +\UnicodeMathSymbol{"1D77E}{\mbfsansomicron }{\mathalpha}{mathematical sans-serif bold small omicron}% +\UnicodeMathSymbol{"1D77F}{\mbfsanspi }{\mathalpha}{mathematical sans-serif bold small pi}% +\UnicodeMathSymbol{"1D780}{\mbfsansrho }{\mathalpha}{mathematical sans-serif bold small rho}% +\UnicodeMathSymbol{"1D781}{\mbfsansvarsigma }{\mathalpha}{mathematical sans-serif bold small final sigma}% +\UnicodeMathSymbol{"1D782}{\mbfsanssigma }{\mathalpha}{mathematical sans-serif bold small sigma}% +\UnicodeMathSymbol{"1D783}{\mbfsanstau }{\mathalpha}{mathematical sans-serif bold small tau}% +\UnicodeMathSymbol{"1D784}{\mbfsansupsilon }{\mathalpha}{mathematical sans-serif bold small upsilon}% +\UnicodeMathSymbol{"1D785}{\mbfsansvarphi }{\mathalpha}{mathematical sans-serif bold small phi}% +\UnicodeMathSymbol{"1D786}{\mbfsanschi }{\mathalpha}{mathematical sans-serif bold small chi}% +\UnicodeMathSymbol{"1D787}{\mbfsanspsi }{\mathalpha}{mathematical sans-serif bold small psi}% +\UnicodeMathSymbol{"1D788}{\mbfsansomega }{\mathalpha}{mathematical sans-serif bold small omega}% +\UnicodeMathSymbol{"1D789}{\mbfsanspartial }{\mathalpha}{mathematical sans-serif bold partial differential}% +\UnicodeMathSymbol{"1D78A}{\mbfsansepsilon }{\mathalpha}{mathematical sans-serif bold varepsilon symbol}% +\UnicodeMathSymbol{"1D78B}{\mbfsansvartheta }{\mathalpha}{mathematical sans-serif bold theta symbol}% +\UnicodeMathSymbol{"1D78C}{\mbfsansvarkappa }{\mathalpha}{mathematical sans-serif bold kappa symbol}% +\UnicodeMathSymbol{"1D78D}{\mbfsansphi }{\mathalpha}{mathematical sans-serif bold phi symbol}% +\UnicodeMathSymbol{"1D78E}{\mbfsansvarrho }{\mathalpha}{mathematical sans-serif bold rho symbol}% +\UnicodeMathSymbol{"1D78F}{\mbfsansvarpi }{\mathalpha}{mathematical sans-serif bold pi symbol}% +\UnicodeMathSymbol{"1D790}{\mbfitsansAlpha }{\mathalpha}{mathematical sans-serif bold italic capital alpha}% +\UnicodeMathSymbol{"1D791}{\mbfitsansBeta }{\mathalpha}{mathematical sans-serif bold italic capital beta}% +\UnicodeMathSymbol{"1D792}{\mbfitsansGamma }{\mathalpha}{mathematical sans-serif bold italic capital gamma}% +\UnicodeMathSymbol{"1D793}{\mbfitsansDelta }{\mathalpha}{mathematical sans-serif bold italic capital delta}% +\UnicodeMathSymbol{"1D794}{\mbfitsansEpsilon }{\mathalpha}{mathematical sans-serif bold italic capital epsilon}% +\UnicodeMathSymbol{"1D795}{\mbfitsansZeta }{\mathalpha}{mathematical sans-serif bold italic capital zeta}% +\UnicodeMathSymbol{"1D796}{\mbfitsansEta }{\mathalpha}{mathematical sans-serif bold italic capital eta}% +\UnicodeMathSymbol{"1D797}{\mbfitsansTheta }{\mathalpha}{mathematical sans-serif bold italic capital theta}% +\UnicodeMathSymbol{"1D798}{\mbfitsansIota }{\mathalpha}{mathematical sans-serif bold italic capital iota}% +\UnicodeMathSymbol{"1D799}{\mbfitsansKappa }{\mathalpha}{mathematical sans-serif bold italic capital kappa}% +\UnicodeMathSymbol{"1D79A}{\mbfitsansLambda }{\mathalpha}{mathematical sans-serif bold italic capital lambda}% +\UnicodeMathSymbol{"1D79B}{\mbfitsansMu }{\mathalpha}{mathematical sans-serif bold italic capital mu}% +\UnicodeMathSymbol{"1D79C}{\mbfitsansNu }{\mathalpha}{mathematical sans-serif bold italic capital nu}% +\UnicodeMathSymbol{"1D79D}{\mbfitsansXi }{\mathalpha}{mathematical sans-serif bold italic capital xi}% +\UnicodeMathSymbol{"1D79E}{\mbfitsansOmicron }{\mathalpha}{mathematical sans-serif bold italic capital omicron}% +\UnicodeMathSymbol{"1D79F}{\mbfitsansPi }{\mathalpha}{mathematical sans-serif bold italic capital pi}% +\UnicodeMathSymbol{"1D7A0}{\mbfitsansRho }{\mathalpha}{mathematical sans-serif bold italic capital rho}% +\UnicodeMathSymbol{"1D7A1}{\mbfitsansvarTheta }{\mathalpha}{mathematical sans-serif bold italic capital theta symbol}% +\UnicodeMathSymbol{"1D7A2}{\mbfitsansSigma }{\mathalpha}{mathematical sans-serif bold italic capital sigma}% +\UnicodeMathSymbol{"1D7A3}{\mbfitsansTau }{\mathalpha}{mathematical sans-serif bold italic capital tau}% +\UnicodeMathSymbol{"1D7A4}{\mbfitsansUpsilon }{\mathalpha}{mathematical sans-serif bold italic capital upsilon}% +\UnicodeMathSymbol{"1D7A5}{\mbfitsansPhi }{\mathalpha}{mathematical sans-serif bold italic capital phi}% +\UnicodeMathSymbol{"1D7A6}{\mbfitsansChi }{\mathalpha}{mathematical sans-serif bold italic capital chi}% +\UnicodeMathSymbol{"1D7A7}{\mbfitsansPsi }{\mathalpha}{mathematical sans-serif bold italic capital psi}% +\UnicodeMathSymbol{"1D7A8}{\mbfitsansOmega }{\mathalpha}{mathematical sans-serif bold italic capital omega}% +\UnicodeMathSymbol{"1D7A9}{\mbfitsansnabla }{\mathalpha}{mathematical sans-serif bold italic nabla}% +\UnicodeMathSymbol{"1D7AA}{\mbfitsansalpha }{\mathalpha}{mathematical sans-serif bold italic small alpha}% +\UnicodeMathSymbol{"1D7AB}{\mbfitsansbeta }{\mathalpha}{mathematical sans-serif bold italic small beta}% +\UnicodeMathSymbol{"1D7AC}{\mbfitsansgamma }{\mathalpha}{mathematical sans-serif bold italic small gamma}% +\UnicodeMathSymbol{"1D7AD}{\mbfitsansdelta }{\mathalpha}{mathematical sans-serif bold italic small delta}% +\UnicodeMathSymbol{"1D7AE}{\mbfitsansvarepsilon }{\mathalpha}{mathematical sans-serif bold italic small varepsilon}% +\UnicodeMathSymbol{"1D7AF}{\mbfitsanszeta }{\mathalpha}{mathematical sans-serif bold italic small zeta}% +\UnicodeMathSymbol{"1D7B0}{\mbfitsanseta }{\mathalpha}{mathematical sans-serif bold italic small eta}% +\UnicodeMathSymbol{"1D7B1}{\mbfitsanstheta }{\mathalpha}{mathematical sans-serif bold italic small theta}% +\UnicodeMathSymbol{"1D7B2}{\mbfitsansiota }{\mathalpha}{mathematical sans-serif bold italic small iota}% +\UnicodeMathSymbol{"1D7B3}{\mbfitsanskappa }{\mathalpha}{mathematical sans-serif bold italic small kappa}% +\UnicodeMathSymbol{"1D7B4}{\mbfitsanslambda }{\mathalpha}{mathematical sans-serif bold italic small lambda}% +\UnicodeMathSymbol{"1D7B5}{\mbfitsansmu }{\mathalpha}{mathematical sans-serif bold italic small mu}% +\UnicodeMathSymbol{"1D7B6}{\mbfitsansnu }{\mathalpha}{mathematical sans-serif bold italic small nu}% +\UnicodeMathSymbol{"1D7B7}{\mbfitsansxi }{\mathalpha}{mathematical sans-serif bold italic small xi}% +\UnicodeMathSymbol{"1D7B8}{\mbfitsansomicron }{\mathalpha}{mathematical sans-serif bold italic small omicron}% +\UnicodeMathSymbol{"1D7B9}{\mbfitsanspi }{\mathalpha}{mathematical sans-serif bold italic small pi}% +\UnicodeMathSymbol{"1D7BA}{\mbfitsansrho }{\mathalpha}{mathematical sans-serif bold italic small rho}% +\UnicodeMathSymbol{"1D7BB}{\mbfitsansvarsigma }{\mathalpha}{mathematical sans-serif bold italic small final sigma}% +\UnicodeMathSymbol{"1D7BC}{\mbfitsanssigma }{\mathalpha}{mathematical sans-serif bold italic small sigma}% +\UnicodeMathSymbol{"1D7BD}{\mbfitsanstau }{\mathalpha}{mathematical sans-serif bold italic small tau}% +\UnicodeMathSymbol{"1D7BE}{\mbfitsansupsilon }{\mathalpha}{mathematical sans-serif bold italic small upsilon}% +\UnicodeMathSymbol{"1D7BF}{\mbfitsansvarphi }{\mathalpha}{mathematical sans-serif bold italic small phi}% +\UnicodeMathSymbol{"1D7C0}{\mbfitsanschi }{\mathalpha}{mathematical sans-serif bold italic small chi}% +\UnicodeMathSymbol{"1D7C1}{\mbfitsanspsi }{\mathalpha}{mathematical sans-serif bold italic small psi}% +\UnicodeMathSymbol{"1D7C2}{\mbfitsansomega }{\mathalpha}{mathematical sans-serif bold italic small omega}% +\UnicodeMathSymbol{"1D7C3}{\mbfitsanspartial }{\mathalpha}{mathematical sans-serif bold italic partial differential}% +\UnicodeMathSymbol{"1D7C4}{\mbfitsansepsilon }{\mathalpha}{mathematical sans-serif bold italic varepsilon symbol}% +\UnicodeMathSymbol{"1D7C5}{\mbfitsansvartheta }{\mathalpha}{mathematical sans-serif bold italic theta symbol}% +\UnicodeMathSymbol{"1D7C6}{\mbfitsansvarkappa }{\mathalpha}{mathematical sans-serif bold italic kappa symbol}% +\UnicodeMathSymbol{"1D7C7}{\mbfitsansphi }{\mathalpha}{mathematical sans-serif bold italic phi symbol}% +\UnicodeMathSymbol{"1D7C8}{\mbfitsansvarrho }{\mathalpha}{mathematical sans-serif bold italic rho symbol}% +\UnicodeMathSymbol{"1D7C9}{\mbfitsansvarpi }{\mathalpha}{mathematical sans-serif bold italic pi symbol}% +\UnicodeMathSymbol{"1D7CA}{\mbfDigamma }{\mathalpha}{mathematical bold capital digamma}% +\UnicodeMathSymbol{"1D7CB}{\mbfdigamma }{\mathalpha}{mathematical bold small digamma}% +\UnicodeMathSymbol{"1D7CE}{\mbfzero }{\mathord}{mathematical bold digit 0}% +\UnicodeMathSymbol{"1D7CF}{\mbfone }{\mathord}{mathematical bold digit 1}% +\UnicodeMathSymbol{"1D7D0}{\mbftwo }{\mathord}{mathematical bold digit 2}% +\UnicodeMathSymbol{"1D7D1}{\mbfthree }{\mathord}{mathematical bold digit 3}% +\UnicodeMathSymbol{"1D7D2}{\mbffour }{\mathord}{mathematical bold digit 4}% +\UnicodeMathSymbol{"1D7D3}{\mbffive }{\mathord}{mathematical bold digit 5}% +\UnicodeMathSymbol{"1D7D4}{\mbfsix }{\mathord}{mathematical bold digit 6}% +\UnicodeMathSymbol{"1D7D5}{\mbfseven }{\mathord}{mathematical bold digit 7}% +\UnicodeMathSymbol{"1D7D6}{\mbfeight }{\mathord}{mathematical bold digit 8}% +\UnicodeMathSymbol{"1D7D7}{\mbfnine }{\mathord}{mathematical bold digit 9}% +\UnicodeMathSymbol{"1D7D8}{\Bbbzero }{\mathord}{mathematical double-struck digit 0}% +\UnicodeMathSymbol{"1D7D9}{\Bbbone }{\mathord}{mathematical double-struck digit 1}% +\UnicodeMathSymbol{"1D7DA}{\Bbbtwo }{\mathord}{mathematical double-struck digit 2}% +\UnicodeMathSymbol{"1D7DB}{\Bbbthree }{\mathord}{mathematical double-struck digit 3}% +\UnicodeMathSymbol{"1D7DC}{\Bbbfour }{\mathord}{mathematical double-struck digit 4}% +\UnicodeMathSymbol{"1D7DD}{\Bbbfive }{\mathord}{mathematical double-struck digit 5}% +\UnicodeMathSymbol{"1D7DE}{\Bbbsix }{\mathord}{mathematical double-struck digit 6}% +\UnicodeMathSymbol{"1D7DF}{\Bbbseven }{\mathord}{mathematical double-struck digit 7}% +\UnicodeMathSymbol{"1D7E0}{\Bbbeight }{\mathord}{mathematical double-struck digit 8}% +\UnicodeMathSymbol{"1D7E1}{\Bbbnine }{\mathord}{mathematical double-struck digit 9}% +\UnicodeMathSymbol{"1D7E2}{\msanszero }{\mathord}{mathematical sans-serif digit 0}% +\UnicodeMathSymbol{"1D7E3}{\msansone }{\mathord}{mathematical sans-serif digit 1}% +\UnicodeMathSymbol{"1D7E4}{\msanstwo }{\mathord}{mathematical sans-serif digit 2}% +\UnicodeMathSymbol{"1D7E5}{\msansthree }{\mathord}{mathematical sans-serif digit 3}% +\UnicodeMathSymbol{"1D7E6}{\msansfour }{\mathord}{mathematical sans-serif digit 4}% +\UnicodeMathSymbol{"1D7E7}{\msansfive }{\mathord}{mathematical sans-serif digit 5}% +\UnicodeMathSymbol{"1D7E8}{\msanssix }{\mathord}{mathematical sans-serif digit 6}% +\UnicodeMathSymbol{"1D7E9}{\msansseven }{\mathord}{mathematical sans-serif digit 7}% +\UnicodeMathSymbol{"1D7EA}{\msanseight }{\mathord}{mathematical sans-serif digit 8}% +\UnicodeMathSymbol{"1D7EB}{\msansnine }{\mathord}{mathematical sans-serif digit 9}% +\UnicodeMathSymbol{"1D7EC}{\mbfsanszero }{\mathord}{mathematical sans-serif bold digit 0}% +\UnicodeMathSymbol{"1D7ED}{\mbfsansone }{\mathord}{mathematical sans-serif bold digit 1}% +\UnicodeMathSymbol{"1D7EE}{\mbfsanstwo }{\mathord}{mathematical sans-serif bold digit 2}% +\UnicodeMathSymbol{"1D7EF}{\mbfsansthree }{\mathord}{mathematical sans-serif bold digit 3}% +\UnicodeMathSymbol{"1D7F0}{\mbfsansfour }{\mathord}{mathematical sans-serif bold digit 4}% +\UnicodeMathSymbol{"1D7F1}{\mbfsansfive }{\mathord}{mathematical sans-serif bold digit 5}% +\UnicodeMathSymbol{"1D7F2}{\mbfsanssix }{\mathord}{mathematical sans-serif bold digit 6}% +\UnicodeMathSymbol{"1D7F3}{\mbfsansseven }{\mathord}{mathematical sans-serif bold digit 7}% +\UnicodeMathSymbol{"1D7F4}{\mbfsanseight }{\mathord}{mathematical sans-serif bold digit 8}% +\UnicodeMathSymbol{"1D7F5}{\mbfsansnine }{\mathord}{mathematical sans-serif bold digit 9}% +\UnicodeMathSymbol{"1D7F6}{\mttzero }{\mathord}{mathematical monospace digit 0}% +\UnicodeMathSymbol{"1D7F7}{\mttone }{\mathord}{mathematical monospace digit 1}% +\UnicodeMathSymbol{"1D7F8}{\mtttwo }{\mathord}{mathematical monospace digit 2}% +\UnicodeMathSymbol{"1D7F9}{\mttthree }{\mathord}{mathematical monospace digit 3}% +\UnicodeMathSymbol{"1D7FA}{\mttfour }{\mathord}{mathematical monospace digit 4}% +\UnicodeMathSymbol{"1D7FB}{\mttfive }{\mathord}{mathematical monospace digit 5}% +\UnicodeMathSymbol{"1D7FC}{\mttsix }{\mathord}{mathematical monospace digit 6}% +\UnicodeMathSymbol{"1D7FD}{\mttseven }{\mathord}{mathematical monospace digit 7}% +\UnicodeMathSymbol{"1D7FE}{\mtteight }{\mathord}{mathematical monospace digit 8}% +\UnicodeMathSymbol{"1D7FF}{\mttnine }{\mathord}{mathematical monospace digit 9}% +\UnicodeMathSymbol{"1EEF0}{\arabicmaj }{\mathop}{arabic mathematical operator meem with hah with tatweel}% +\UnicodeMathSymbol{"1EEF1}{\arabichad }{\mathop}{arabic mathematical operator hah with dal}% + +% /© +% +% ------------------------------------------------ +% The UNICODE-MATH package <wspr.io/unicode-math> +% ------------------------------------------------ +% This package is free software and may be redistributed and/or modified under +% the conditions of the LaTeX Project Public License, version 1.3c or higher +% (your choice): <http://www.latex-project.org/lppl/>. +% ------------------------------------------------ +% Copyright 2006-2019 Will Robertson, LPPL "maintainer" +% Copyright 2010-2017 Philipp Stephani +% Copyright 2011-2017 Joseph Wright +% Copyright 2012-2015 Khaled Hosny +% ------------------------------------------------ +% +% ©/ + diff --git a/Master/texmf-dist/tex/luatex/optex/usebib.opm b/Master/texmf-dist/tex/luatex/optex/usebib.opm new file mode 100644 index 00000000000..4ff38c87369 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/usebib.opm @@ -0,0 +1,334 @@ +% opmac-bib +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Petr Olsak, version Feb. 2018 (beta) + +% This is module for OPmac macros, see http://petr.olsak.net/opmac.html +% The command: +% \usebib/<sorttype> (<style>) (bibfiles> +% for direct reading .bib files by OPmac macros (without bibTeX) is implemented here. +% The implementation depends on librarian.tex package by Paul Isambert. +% Use: +% \input opmac \input opmac-bib +% or simply: +% \input opmac-bib +% before using the command \usebib. +% For more information see the end of this file. + +\ifx\MakeReference\udefined \else \endinput \fi +\ifx\OPmacversion\undefined \input opmac \fi +\ifx\printbib\undefined + \errmessage{Please, upgrade OPmac to version Apr. 2014 or newer} + \endinput\fi + +% we needn't \errmessage when bad TeX engnine is detected during \input librarian: + +\def\tmp{} +\let\errmessageori=\errmessage +\def\errmessage#1{\def\tmp{error}} +\let\newwriteori=\newwrite % we need not to create \jobname.lbr: +\def\newwrite#1{\csname lb@restoreat\endcsname \endinput} +\catcode`\_=12 +\input librarian +\catcode`\_=11 +\let\errmessage=\errmessageori +\let\newwrite=\newwriteori +\ifx\tmp\empty\else + \def\usebib/#1 (#2) #3 {% + \opwarning{eTeX and (pdfTeX or XeTeX or LuaTeX) not detected}% + \immediate\write16{\space\space + But librarian package needs it. \noexpand\usebib ignored.}% + } + \endinput \fi + +% The \usebib command: + +\def\usebib/#1 (#2) #3 {% + \ifx\citelist\empty + \opwarning{No cited items. \noexpand\usebib ignored}% + \else + \bgroup \par + \ifx\bibpart\undefined \def\bibpart{none}\fi + \catcode`<=12 + \ifx\savedttchar\undefined\else \catcode\savedttchar=12 \fi + \def\opmacbibstyle{#2}% + \input bib-#2.opm + \bibtexhook + \let\citeI=\relax \xdef\citelist{\citelist\citelistB}% + \global\let\addcitelist=\writeXcite + \def\tmp##1[*]##2\relax{\def\tmp{##2}}\expandafter\tmp\citelist[*]\relax + \ifx\tmp\empty\else % there was \nocite[*] used. + \setbox0=\vbox{\def\citelist{}\adef@{\readbibentry}% + \input #3.bib + \expandafter}\expandafter\def\expandafter\citelist\expandafter{\citelist}% + \fi + \def\citeI[##1]{\csname lb@cite\endcsname{##1}{\bibpart}{}{}}\citelist + \BibFile{#3}% + \if s#1\def\warntwobytes{}\def\warnthreebytes{}% \scantokens is used during sorting + \SortList{\bibpart}\fi + \ReadList{\bibpart}% + \egroup + \fi +} +\def\readbibentry#1#{\readbibentryA} +\def\readbibentryA#1{\readbibentryB#1,,\relax!.} +\def\readbibentryB#1#2,#3\relax!.{\addto\citelist{\citeI[#1#2]}} + +% Corrections in librarian macros: + +\tmpnum=\catcode`\@ \catcode`\@=11 +\def\lb@checkmissingentries#1,{% we needn't \errmessage here, only \opmacwarning + \def\lb@temp{#1}% + \unless\ifx\lb@temp\lb@eoe + \lb@ifcs{#1}{fields}% + {}% + {\opwarning{\string\usebib: entry [#1] isn't found in .bib file(s)}}% + \expandafter\lb@checkmissingentries + \fi +} +\def\lb@readentry#1#2#3,{% space before key have to be ingnored + \def\lb@temp{#2#3}% we need case sensitive keys + \def\lb@next{\expandafter\lb@gotoat\lb@gobbletoeoe}% + \lb@ifcs\lb@temp{requested}% + {\let\lb@entrykey\lb@temp + \lb@ifcs\lb@entrykey{fields}{}% + {\lb@defcs\lb@entrykey{fields}{}% + \lowercase{\lb@addfield{entrytype}{#1}}% + \let\lb@next\lb@analyzeentry}}{}% + \lb@next +} +\let\lb@compareA=\lb@compare +\let\lb@preparesortA=\lb@preparesort +\def\lb@compare#1\lb@eoe#2\lb@eoe{% SpecialSort: + \ifx\lb@sorttype\lb@namestring + \ifx\sortfield\undefined \lb@compareA#1\lb@eoe#2\lb@eoe + \else + \expandafter\RetrieveFieldInFor\expandafter{\sortfield}\lb@entrykey\lb@temp + \ifx\lb@temp\empty \toks1={#1\lb@eoe}\else \toks1=\expandafter{\lb@temp\lb@eoe}\fi + \expandafter\RetrieveFieldInFor\expandafter{\sortfield}\lb@currententry\lb@temp + \ifx\lb@temp\empty \toks2={#2\lb@eoe}\else \toks2=\expandafter{\lb@temp\lb@eoe}\fi + \edef\lb@temp{\noexpand\lb@compareA\space\the\toks1 \space\the\toks2}\lb@temp + \fi + \else \lb@compareA#1\lb@eoe#2\lb@eoe \fi +} +\def\lb@preparesort#1#2\lb@eoe{% + \if#1-% + \def\lb@sorttype{#2}% + \else + \def\lb@sorttype{#1#2}% + \fi + \lb@preparesortA#1#2\lb@eoe +} +\def\SpecialSort#1{\def\sortfield{#1}} +\def\WriteImmediateInfo#1{} % the existence of .lbr file bocks new reading of .bib +\catcode`\@=\tmpnum + +% Main action per every entry: + +\def\MakeReference{\par \ifnum\bibnum>0 \bibskip \fi + \advance\bibnum by1 + \isdefined{bim:\the\bibnum}\iftrue + \edef\tmpb{\csname bim:\the\bibnum\endcsname}% + \bibmark=\expandafter{\tmpb}% + \else \bibmark={}\fi + \noindent \edef\tmpb{\EntryKey}% + \printbib \dest[cite:\the\bibnum]% + \bgroup + \RetrieveFieldIn{entrytype}\entrytype + \csname print:BEGIN\endcsname + \isdefined{print:\entrytype}\iftrue + \csname print:\entrytype\endcsname + \else + \ifx\entrytype\empty \else + \opwarning{Entrytype @\entrytype\space from [\EntryKey] undefined}% + \csname print:misc\endcsname + \fi\fi + \csname print:END\endcsname + \ifx\wref\wrefrelax\else \immediate\wref\Xbib{{\EntryKey}{\the\bibnum}{\the\bibmark}}\fi + \egroup \par +} + +% The \bprinta, \bprintb, \bprintc, \bprintv commands used in the style files: + +\def\bprinta {\bprintb*} +\def\bprintb #1[#2#3]{% + \def\bibfieldname{#2#3}% + \if!#2\relax + \def\bibfieldname{#3}% + \RetrieveFieldIn{#3}\bibfield + \ifx\bibfield\empty\else + \RetrieveFieldIn{#3number}\namecount + \def\bibfield{\csname Read#3\expandafter\endcsname\csname #3name\endcsname}% + \fi + \else + \RetrieveFieldIn{#2#3}\bibfield + \fi + \if^#1^% + \ifx\bibfield\empty \expandafter\expandafter\expandafter \doemptyfield + \else \expandafter\expandafter\expandafter \dofullfield \fi + \else \expandafter \bprintaA + \fi +} +\def\dofullfield#1#2{\def\dofield##1{#1}\expandafter\dofield\expandafter{\bibfield}} +\def\doemptyfield#1#2{\def\dofield##1{#2}\expandafter\dofield\expandafter{\bibfield}} +\let\Readauthor=\ReadAuthor \let\Readeditor=\ReadEditor +\def\bprintaA #1#2{\ifx\bibfield\empty #2\else\bprintaB #1**\eee\fi} +\def\bprintaB #1*#2*#3\eee{\if^#3^#1\else\expandafter\bprintaC\expandafter{\bibfield}{#1}{#2}\fi} +\def\bprintaC #1#2#3{#2#1#3} +\def\bprintc#1#2{\bprintcA#1#2**\relax} +\def\bprintcA#1#2*#3*#4\relax{\ifx#1\empty \else \if^#4^#2\else#2#1#3\fi\fi} +\def\bprintv [#1]#2#3{\def\tmpa{#2}\def\tmpb{#3}\bprintvA #1,,} +\def\bprintvA #1,{% + \if^#1^\tmpb\else + \RetrieveFieldIn{#1}\tmp + \ifx \tmp\empty + \else \tmpa \def\tmpb{}\def\tmpa{}% + \fi + \expandafter \bprintvA + \fi +} + +% Various macros + multilinguas: + +\def\bibwarning{\opwarning{Missing field \string"\bibfieldname\string" in [\EntryKey]}} + +\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname} +\def\mtdef#1#2#3#4{\sdef{_mt:#1:en}{#2} \sdef{_mt:#1:cs}{#3} + \if$#4$\slet{_mt:#1:sk}{_mt:#1:cs} + \else \sdef{_mt:#1:sk}{#4} + \fi +} + +\endinput + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The following command is implemented here: + + \usebib/<sorttype> (<style>) <bibfiles> + +where <sorttype> is one letter 'c' (references ordered by citation order in +the text) or 's' (references ordered by key in the style file), +<style> is the part of the name `opmac-bib-<style>.tex' of the style file +and <bibfiles> are one or more .bib file names without suffix separated by +comma without space. Example: + + \usebib/s (simple) mybase,yourbase + +This command reads the <bibfiles> directly and creates the list of +bibliographics references (only those declared by by \cite[] or \nocite[] +in the text). The formatting of such references is defined in the style +file. The usage is mentioned in OPmac documentation too. + +The principle "first entry wins" is used. Suppose + + \usebib/s (simple) local,global + +If an entry with the same label is declared in local.bib and in +global.bib too then the first wins. So, you can set an exceptions in your +local.bib file for your document, for example. + + +Notes for style writers: +------------------------ + +The opmac-bib-<style>.tex file must define the commands: + +\authorname ... formatting of one name in the authors list. The macro can + use the following data: \NameCount (the number of the currently + processed author name in the list), 0\namecount (the total number of the + authors in the list), \Lastname, \Firstname, \Von, \Junior (the parts of + the name). See the documentation of the librarian package for more info. + +\editorname ... the same as \authorname, but for editors list. + +print:<entrytype> (defined by \sdef) for formatting the entry of <entrytype>. + The <entrytype> have to be lowercase. This command can use the command: + +\bprinta [<fieldname>] {<if defined>} {<if not defined>}. The part <if defined> + is executed if <fieldname> is declared in .bib file for the entry which is + currently processed. Else the part <if not defined> is processed. + The part <if defined> can include the * parameter which is replaced + by the value of the <fieldname>. The part <if not defined> can include + the \bibwarning command if the <fieldname> is mandatory. +\bprintb [<fieldname>] {<if defined>} {<if not defined>}. The same as + \bprinta, but the ##1 parameter is used instead *. Differences: ##1 + parameter can be used more than once and can be enclosed in nested + braces. The * parameter can be used at most once and cannot be enclosed + in braces. Warning: if the \bprintb commands are nested (\bprintb in + \bprintb), then you need to write ####1 parameter for internal \bprintb. + But if \bprinta commands are nested then the * parameter is not dubbled. +\pbprintc \macro {<if non-empty>}. The <if non-empty> part is executed if + \macro is non-empty. The * parameter can be used, it is replaced by + the \macro. +\bprintv [<field1>,<field2>,...] {<if defined>} {<if not defined>}. + The part <if defined> is executed if <field1> or <filed2> or ... + is defined, else the second part <if not defined> is executed. + There is one filed name or the list field names separated by commas. + The parts cannot include any parameter. + +There are two special fieldnames: !author and !editor. The processed list of +authors or editors (by repeatedly calling \authorname or \editorname) are +used here insted of raw data. + +You can define print:BEGIN and/or print:END which is executed at the begin or +end of each <entrytype>. The formatting does not solve the numbering and +paragraph indentation of the entry. This is processed by \printbib macro +used in OPmac (and may be redefined by the author or document designer). + +You can declare \bimark={something} in the print:END macro. This bibmark is +saved to the .ref file (created by OPmac) and used in the next TeX run as \cite +marks when \nonumcitations is set. + +The whole style file is read in the group during \usebib command is executed +before typesetting the reference list. Each definition or setting is local +here. + +If you are using non-standard fieldnames in .bib database and bib. style, +you has to declare them by \CreateField {<fieldname>}. + +You can declare \SortingOrder in the manner documented by librarian package. + +If your style adds some words or abbreviations you can make them +multilingual by saying \mtext{<label>} instead such word and +\mtdef{<label>} {<English>} {<Czech>} {<Slovak>} declaration. +The right part is printed by current value of the \language regiter. +You can add more languages by re-defining the \mtdef command +and by \sdef{lan:<language number>}{<language mark>}. See the opmac.tex +for inspiration. + +If you are using \nonumcitations, then the \bibmark toks register have to be +prepared in the style file (in print:BEGIN, print:END, in \authorname etc.) +This value will be used in the \cite[] places in the document. + +The example of the style file is in opmac-bib-simple.tex. + +User or author of the bib. style can create the hidden field which has a +precedence while sorting names. Example: + + \CreateField {sortedby} + \SpecialSort {sortedby} + +Suppose that the .bib file includes: + + ... + author = "Jan Chadima", + sortedby = "Hzzadima Jan", + ... + +Now, this author is sorted between H and I, because the Ch digraph in this +name has to be sorted by this rule. + +If you need (for example) to place the autocitations before other citations, +then you can mark your entries in .bib file by sortedby = "@", because this +character is sorted before A. + + +History: +-------- + +Apr. 2014: released +Jan. 2016: "first entry wins" implemented +Apr. 2016: \readentry -> \readbibentry, \usebib->\MakeReference +Feb. 2018: \input librarian does not create \jobname.lbr + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end of the opmac-bib.tex diff --git a/Master/texmf-dist/tex/luatex/optex/verbatim.opm b/Master/texmf-dist/tex/luatex/optex/verbatim.opm new file mode 100644 index 00000000000..acc7922a8da --- /dev/null +++ b/Master/texmf-dist/tex/luatex/optex/verbatim.opm @@ -0,0 +1,189 @@ +%% This is part of OpTeX project, see http://petr.olsak.net/optex + +\_codedecl \begtt {Verbatim <2020-02-14>} + +\_newdimen\_ttindent \_ttindent=\_parindent + % indentation in \begtt...\endtt and \verbinput +\_def\_ttskip{\medskip} % space above and below \begtt, \verbinput +\_mathchardef\_ttpenalty=100 % penalty between lines in \begtt, \verbinput + +\_def\_code#1{\_unexpanded\_ea{\_csname _code \_endcsname{#1}}} +\_protected\_sdef{_code }#1{{\_escapechar=-1 \_ea}% + \_ea\_printinverbatim\_ea{\_detokenize{#1}}} +\_def\_printinverbatim#1{\_leavevmode\_hbox{\_tt \_the\_intthook\_relax #1}} + +\_public \code ; + +\_newcount\_ttline \_ttline=-1 +\_newcount\_viline +\_newread\_vifile + +\_newcatcodetable \_verbatimcatcodes +\_def\_setverb{\_begingroup + \_def\do##1{\_catcode`##1=12 } + \_dospecials + \_savecatcodetable\_verbatimcatcodes % all characters are normal + \_endgroup +} +\_setverb +\_def\_setverb{\_catcodetable\_verbatimcatcodes }% + +% \begtt ... \endtt + +\_eoldef \_begtt #1{% + \_par \_vskip\_parskip \_ttskip \_bgroup \_wipeepar + \_setverb \_adef{ }{\ }% + \_parindent=\_ttindent \_parskip=0pt + \_the\_tthook #1% + \_ifnum\_ttline<0 \_else + \_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font + \_toksapp\_everypar{\_global\_advance\_ttline by1 \_printttline}\_fi + \_def\par##1{\_endgraf\_ifx##1\_egroup\_else\_penalty\_ttpenalty\_leavevmode\_fi ##1}% + \_obeylines \_startverb} + +\_catcode`\|=0 \_catcode`\\=12 + |_def|_startverb#1\endtt{|_tt|_the|_ptthook#1|_endtt} +|_normalcatcodes + +\def\_endtt{\_egroup\_par\_ttskip\_testparA} +\_def\_testparA{\_ea\_testparB\_romannumeral-`\.} +\_def\_testparB{\_futurelet\_tmpa\_testparC} +\_def\_testparC{\_ifx\_tmpa\_par\_else\afternoindent\_fi} + +\_def\_printttline{\_llap{\_sevenrm\_the\_ttline\_kern.9em}} + +\_newtoks\_tthook +\_newtoks\_ptthook +\_newtoks\_intthook + +\_def\_activettchar#1{% + \_ifx\_savedttchar\_undefined\_else \_catcode\_savedttchar=\_savedttcharc \_fi + \_chardef\_savedttchar=`#1% + \_chardef\_savedttcharc=\_catcode`#1% + \_adef{#1}{{\_setverb\_adef{ }{\ }\_catcode`#1=13 \_ea}\_readverb}% + \_bgroup\_lccode`\~=`#1\_lowercase{\_egroup\_def\_readverb ##1~}{\_printinverbatim{##1}}% + \_catcode`#1=13 +} + +\_newcount\_viline +\_newread\_vifile + +\_def\_verbinput (#1) #2 {\_par \_def\_tmpa{#2}% + \_ifx\_vifilename\_tmpa \_else + \_openin\_vifile=#2 + \_global\_viline=0 \_global\_let\_vifilename=\_tmpa + \_ifeof\_vifile + \_opwarning{\_noexpand\verbinput - file "#2" is unable to reading} + \_ea\_ea\_ea\_skiptorelax + \_fi + \_fi + \_viscanparameter #1+\_relax +} +\_def\_skiptorelax#1\_relax{} + +\_def \_viscanparameter #1+#2\_relax{% + \_if$#2$\_viscanminus(#1)\_else \_viscanplus(#1+#2)\_fi +} +\_def\_viscanplus(#1+#2+){% + \_if$#1$\_tmpnum=\_viline + \_else \_ifnum#1<0 \_tmpnum=\_viline \_advance\_tmpnum by-#1 + \_else \_tmpnum=#1 + \_advance\_tmpnum by-1 + \_ifnum\_tmpnum<0 \_tmpnum=0 \_fi % (0+13) = (1+13) + \_fi \_fi + \_edef\_vinolines{\_the\_tmpnum}% + \_if$#2$\_def\_vidolines{0}\_else\_edef\_vidolines{#2}\_fi + \_doverbinput +} +\_def\_viscanminus(#1-#2){% + \_if$#1$\_tmpnum=0 + \_else \_tmpnum=#1 \_advance\_tmpnum by-1 \_fi + \_ifnum\_tmpnum<0 \_tmpnum=0 \_fi % (0-13) = (1-13) + \_edef\_vinolines{\_the\_tmpnum}% + \_if$#2$\_tmpnum=0 + \_else \_tmpnum=#2 \_advance\_tmpnum by-\_vinolines \_fi + \_edef\_vidolines{\_the\_tmpnum}% + \_doverbinput +} +\_def\_doverbinput{% + \_tmpnum=\_vinolines + \_advance\_tmpnum by-\_viline + \_ifnum\_tmpnum<0 + \_openin\_vifile=\_vifilename\_space + \_global\_viline=0 + \_else + \_edef\_vinolines{\_the\_tmpnum}% + \_fi + \_vskip\_parskip \_ttskip \_bgroup \_wipeepar + \_setverb \_adef{ }{\ }% + \_ifx\_savedttchar\_undefined \_else \_catcode\_savedttchar=12 \_fi + \_parindent=\_ttindent \_parskip=0pt + \_the\_tthook\_relax + \_ifnum\_ttline<-1 \_else + \_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font + \_everypar\_ea{\_the\_everypar \_glob\_advance\_ttline by1 \_printttline}\_fi + \_def\par##1{\_endgraf\_ifx##1\_egroup\_else\_penalty\_ttpenalty\_leavevmode\_fi ##1}% + \_obeylines \_tmpnum=0 \_lccode`\~=`\^^M \_lowercase{\_def\_tmpb{~}}% + \_loop \_ifeof\_vifile \_tmpnum=\_vinolines\_space \_fi + \_ifnum\_tmpnum<\_vinolines\_space + \_vireadline \_advance\_tmpnum by1 \_repeat %% skip line + \_ifnum\_ttline=-1 \_ttline=\_viline \_let\_glob=\_relax \_else\_let\_glob=\_global \_fi + \_tmpnum=0 \_ifnum\_vidolines=0 \_tmpnum=-1 \_fi + \_ifeof\_vifile \_tmpnum=\_vidolines\_space \_fi + \_loop \_ifnum\_tmpnum<\_vidolines\_space + \_vireadline + \_ifeof\_vifile \_tmpnum=\_vidolines\_space \_else \_viprintline \_fi %% print line + \_ifnum\_vidolines=0 \_else\_advance\_tmpnum by1 \_fi + \_repeat + \_tt\_ea\_the\_ea\_ptthook\_tmpb\_egroup\_par\_ttskip\_testparA +} +\_def\_vireadline{\_read\_vifile to \_tmp \_global\_advance\_viline by1 } +\_def\_viprintline{\_ea\_addto\_ea\_tmpb\_ea{\_tmp}} + +\_public + \begtt \activettchar \tthook \ptthook \intthook \verbinput ; + + + +\_endcode %--------------------------------------- + +`\code{text}` is a macro which writes verbatim-like inline text and it is +robust to use it in parameters of macros or section names etc. User have to +escape the following characters: percent, hash mark, escape, space (if there +are more than one consecutive spaces) and `{`, `}` (if these braces are +unbalanced in the `\code` parameter). For example + +\begtt + \code{\\text, \%\#} ... \text, %# + \code{@{..}*&^$ $} ... prints the same without escaping, but you can + escape these characters too, if you want. + \code{a \ b} ... two spaces between a b, the second one must be escaped + \code{xy\{z} ... unbalanced brace must be escaped +\endtt + +If you set a character as `\activettchar` then it can be used as boundary +character of inline code. The text betweent these boundary characters are +printed without any change. For example +\code{\`}`\print % whatever #&`\code{\`} does `\print % whatever #&` +if `\activettchar`\code{\`} was declared. + +But this in/line verbatim text cannot be used inside parameters of +macros, for example inside section names. Use `\code` in such situation. + + +\secc Implementation notes + +If the code is used in non-detokenized `\write` parameter, we must to +`detokenize` its parameter and write `\code` as prefix again. The second +(internal) `\code` is a macro with the name followed by a space. So + +\begtt + \code{\\aha\%} ... writes: \code {\\aha\%} into workong file. +\endtt + +This can be read again without any chnge of meaning of the parameter (the +second space after `\code` sequence will be ingnored). + +If the `\code` is used in normal horizontal mode, then escape characters are +ignored using `\ecsapechar=-1 \detokenize`. + diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index ad43ab551a4..01a692897b4 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -898,6 +898,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'onepagem', "die 'skipping, use piff'", 'opacity-pro', "die 'skipping, adobe required (dps)'", 'opensans', "&MAKEcopy", + 'optex', "&MAKEflatten", 'optima', "die 'skipping, nonfree font'", 'osa', "die 'skipping, relies on endfloat.cfg and non-unique filenames'", 'osmanian', "die 'skipping, no good license info'", @@ -3250,6 +3251,7 @@ $standardttf = '\.ttf|\.TTC'; 'mathspic' => 'mathspic.1', 'mkjobtexmf' => 'mkjobtexmf.man', 'musixtnt' => '\.1$', + 'optex' => '\.1$', 'pedigree-perl' => '\.1$', 'perltex' => 'perltex.1', 'pdfbook2' => '\.1$', |