123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /*************************************************************
- *
- * Copyright (c) 2021-2022 The MathJax Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- /**
- * @fileoverview Mappings for the textcomp package.
- *
- * @author v.sorge@mathjax.org (Volker Sorge)
- */
- import {CommandMap} from '../SymbolMap.js';
- import {TexConstant} from '../TexConstants.js';
- import {TextMacrosMethods} from '../textmacros/TextMacrosMethods.js';
- import TexParser from '../TexParser.js';
- import ParseUtil from '../ParseUtil.js';
- import {TextParser} from '../textmacros/TextParser.js';
- /**
- * Identifiers from the Textcomp package.
- */
- new CommandMap('textcomp-macros', {
- // Table 3: Predefined LATEX 2ε Text-Mode Commands
- 'textasciicircum': ['Insert', '\u005E'],
- 'textasciitilde': ['Insert', '\u007E'],
- 'textasteriskcentered': ['Insert', '\u002A'],
- 'textbackslash': ['Insert', '\u005C'],
- 'textbar': ['Insert', '\u007C'],
- 'textbraceleft': ['Insert', '\u007B'],
- 'textbraceright': ['Insert', '\u007D'],
- 'textbullet': ['Insert', '\u2022'],
- 'textdagger': ['Insert', '\u2020'],
- 'textdaggerdbl': ['Insert', '\u2021'],
- 'textellipsis': ['Insert', '\u2026'],
- 'textemdash': ['Insert', '\u2014'],
- 'textendash': ['Insert', '\u2013'],
- 'textexclamdown': ['Insert', '\u00A1'],
- 'textgreater': ['Insert', '\u003E'],
- 'textless': ['Insert', '\u003C'],
- 'textordfeminine': ['Insert', '\u00AA'],
- 'textordmasculine': ['Insert', '\u00BA'],
- 'textparagraph': ['Insert', '\u00B6'],
- 'textperiodcentered': ['Insert', '\u00B7'],
- 'textquestiondown': ['Insert', '\u00BF'],
- 'textquotedblleft': ['Insert', '\u201C'],
- 'textquotedblright': ['Insert', '\u201D'],
- 'textquoteleft': ['Insert', '\u2018'],
- 'textquoteright': ['Insert', '\u2019'],
- 'textsection': ['Insert', '\u00A7'],
- 'textunderscore': ['Insert', '\u005F'],
- 'textvisiblespace': ['Insert', '\u2423'],
- // Table 12: textcomp Diacritics
- 'textacutedbl': ['Insert', '\u02DD'],
- 'textasciiacute': ['Insert', '\u00B4'],
- 'textasciibreve': ['Insert', '\u02D8'],
- 'textasciicaron': ['Insert', '\u02C7'],
- 'textasciidieresis': ['Insert', '\u00A8'],
- 'textasciimacron': ['Insert', '\u00AF'],
- 'textgravedbl': ['Insert', '\u02F5'],
- 'texttildelow': ['Insert', '\u02F7'],
- // Table 13: textcomp Currency Symbols
- 'textbaht': ['Insert', '\u0E3F'],
- 'textcent': ['Insert', '\u00A2'],
- 'textcolonmonetary': ['Insert', '\u20A1'],
- 'textcurrency': ['Insert', '\u00A4'],
- 'textdollar': ['Insert', '\u0024'],
- 'textdong': ['Insert', '\u20AB'],
- 'texteuro': ['Insert', '\u20AC'],
- 'textflorin': ['Insert', '\u0192'],
- 'textguarani': ['Insert', '\u20B2'],
- 'textlira': ['Insert', '\u20A4'],
- 'textnaira': ['Insert', '\u20A6'],
- 'textpeso': ['Insert', '\u20B1'],
- 'textsterling': ['Insert', '\u00A3'],
- 'textwon': ['Insert', '\u20A9'],
- 'textyen': ['Insert', '\u00A5'],
- // Table 15: textcomp Legal Symbols
- 'textcircledP': ['Insert', '\u2117'],
- 'textcompwordmark': ['Insert', '\u200C'],
- 'textcopyleft': ['Insert', '\u{1F12F}'],
- 'textcopyright': ['Insert', '\u00A9'],
- 'textregistered': ['Insert', '\u00AE'],
- 'textservicemark': ['Insert', '\u2120'],
- 'texttrademark': ['Insert', '\u2122'],
- // Table 20: Miscellaneous textcomp Symbol
- 'textbardbl': ['Insert', '\u2016'],
- 'textbigcircle': ['Insert', '\u25EF'],
- 'textblank': ['Insert', '\u2422'],
- 'textbrokenbar': ['Insert', '\u00A6'],
- 'textdiscount': ['Insert', '\u2052'],
- 'textestimated': ['Insert', '\u212E'],
- 'textinterrobang': ['Insert', '\u203D'],
- 'textinterrobangdown': ['Insert', '\u2E18'],
- 'textmusicalnote': ['Insert', '\u266A'],
- 'textnumero': ['Insert', '\u2116'],
- 'textopenbullet': ['Insert', '\u25E6'],
- 'textpertenthousand': ['Insert', '\u2031'],
- 'textperthousand': ['Insert', '\u2030'],
- 'textrecipe': ['Insert', '\u211E'],
- 'textreferencemark': ['Insert', '\u203B'],
- // 'textthreequartersemdash'
- // 'texttwelveudash'
- // Table 51: textcomp Text-Mode Delimiters
- 'textlangle': ['Insert', '\u2329'],
- 'textrangle': ['Insert', '\u232A'],
- 'textlbrackdbl': ['Insert', '\u27E6'],
- 'textrbrackdbl': ['Insert', '\u27E7'],
- 'textlquill': ['Insert', '\u2045'],
- 'textrquill': ['Insert', '\u2046'],
- // Table 62: textcomp Text-Mode Math and Science Symbols
- 'textcelsius': ['Insert', '\u2103'],
- 'textdegree': ['Insert', '\u00B0'],
- 'textdiv': ['Insert', '\u00F7'],
- 'textdownarrow': ['Insert', '\u2193'],
- 'textfractionsolidus': ['Insert', '\u2044'],
- 'textleftarrow': ['Insert', '\u2190'],
- 'textlnot': ['Insert', '\u00AC'],
- 'textmho': ['Insert', '\u2127'],
- 'textminus': ['Insert', '\u2212'],
- 'textmu': ['Insert', '\u00B5'],
- 'textohm': ['Insert', '\u2126'],
- 'textonehalf': ['Insert', '\u00BD'],
- 'textonequarter': ['Insert', '\u00BC'],
- 'textonesuperior': ['Insert', '\u00B9'],
- 'textpm': ['Insert', '\u00B1'],
- 'textrightarrow': ['Insert', '\u2192'],
- 'textsurd': ['Insert', '\u221A'],
- 'textthreequarters': ['Insert', '\u00BE'],
- 'textthreesuperior': ['Insert', '\u00B3'],
- 'texttimes': ['Insert', '\u00D7'],
- 'texttwosuperior': ['Insert', '\u00B2'],
- 'textuparrow': ['Insert', '\u2191'],
- // Table 110: textcomp Genealogical Symbols
- 'textborn': ['Insert', '\u002A'],
- 'textdied': ['Insert', '\u2020'],
- 'textdivorced': ['Insert', '\u26AE'],
- // 'textleaf'
- 'textmarried': ['Insert', '\u26AD'],
- // This is not the correct glyph
- 'textcentoldstyle': ['Insert', '\u00A2', TexConstant.Variant.OLDSTYLE],
- // This is not the correct glyph
- 'textdollaroldstyle': ['Insert', '\u0024', TexConstant.Variant.OLDSTYLE],
- // Table 16: textcomp Old-Style Numerals
- 'textzerooldstyle': ['Insert', '0', TexConstant.Variant.OLDSTYLE],
- 'textoneoldstyle': ['Insert', '1', TexConstant.Variant.OLDSTYLE],
- 'texttwooldstyle': ['Insert', '2', TexConstant.Variant.OLDSTYLE],
- 'textthreeoldstyle': ['Insert', '3', TexConstant.Variant.OLDSTYLE],
- 'textfouroldstyle': ['Insert', '4', TexConstant.Variant.OLDSTYLE],
- 'textfiveoldstyle': ['Insert', '5', TexConstant.Variant.OLDSTYLE],
- 'textsixoldstyle': ['Insert', '6', TexConstant.Variant.OLDSTYLE],
- 'textsevenoldstyle': ['Insert', '7', TexConstant.Variant.OLDSTYLE],
- 'texteightoldstyle': ['Insert', '8', TexConstant.Variant.OLDSTYLE],
- 'textnineoldstyle': ['Insert', '9', TexConstant.Variant.OLDSTYLE]
- }, {
- Insert: function(parser: TexParser, name: string, c: string, font: string) {
- if (parser instanceof TextParser) {
- if (!font) {
- TextMacrosMethods.Insert(parser, name, c);
- return;
- }
- parser.saveText();
- }
- parser.Push(ParseUtil.internalText(
- parser, c, font ? {mathvariant: font} : {}));
- }
- });
|