|
|
@@ -0,0 +1,1966 @@
|
|
|
+/* eslint-disable */
|
|
|
+/**
|
|
|
+ * Parser.js
|
|
|
+ * Copyright 2012-13 Mayank Lahiri
|
|
|
+ * mlahiri@gmail.com
|
|
|
+ * Released under the BSD License.
|
|
|
+ *
|
|
|
+ * Modifications 2016 Sharelatex
|
|
|
+ * Modifications 2017-2020 Overleaf
|
|
|
+ *
|
|
|
+ * A forgiving Bibtex parser that can:
|
|
|
+ *
|
|
|
+ * (1) operate in streaming or block mode, extracting entries as dictionaries.
|
|
|
+ * (2) convert Latex special characters to UTF-8.
|
|
|
+ * (3) best-effort parse malformed entries.
|
|
|
+ * (4) run in a CommonJS environment or a browser, without any dependencies.
|
|
|
+ * (5) be advanced-compiled by Google Closure Compiler.
|
|
|
+ *
|
|
|
+ * Handwritten as a labor of love, not auto-generated from a grammar.
|
|
|
+ *
|
|
|
+ * Modes of usage:
|
|
|
+ *
|
|
|
+ * (1) Synchronous, string
|
|
|
+ *
|
|
|
+ * var entries = BibtexParser(text);
|
|
|
+ * console.log(entries);
|
|
|
+ *
|
|
|
+ * (2) Asynchronous, stream
|
|
|
+ *
|
|
|
+ * function entryCallback(entry) { console.log(entry); }
|
|
|
+ * var parser = new BibtexParser(entryCallback);
|
|
|
+ * parser.parse(chunk1);
|
|
|
+ * parser.parse(chunk2);
|
|
|
+ * ...
|
|
|
+ *
|
|
|
+ * @param {text|function(Object)} arg0 Either a Bibtex string or callback
|
|
|
+ * function for processing parsed entries.
|
|
|
+ * @param {array} allowedKeys optimization: do not output key/value pairs that are not on this allowlist
|
|
|
+ * @constructor
|
|
|
+ */
|
|
|
+function BibtexParser(arg0, allowedKeys) {
|
|
|
+ // Determine how this function is to be used
|
|
|
+ if (typeof arg0 === 'string') {
|
|
|
+ // Passed a string, synchronous call without 'new'
|
|
|
+ const entries = []
|
|
|
+ function accumulator(entry) {
|
|
|
+ entries.push(entry)
|
|
|
+ }
|
|
|
+ const parser = new BibtexParser(accumulator, allowedKeys)
|
|
|
+ parser.parse(arg0)
|
|
|
+ return {
|
|
|
+ entries,
|
|
|
+ errors: parser.getErrors(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (typeof arg0 !== 'function') {
|
|
|
+ throw 'Invalid parser construction.'
|
|
|
+ }
|
|
|
+ this.ALLOWEDKEYS_ = allowedKeys || []
|
|
|
+ this.reset_(arg0)
|
|
|
+ this.initMacros_()
|
|
|
+ return this
|
|
|
+}
|
|
|
+
|
|
|
+/** @enum {number} */
|
|
|
+BibtexParser.prototype.STATES_ = {
|
|
|
+ ENTRY_OR_JUNK: 0,
|
|
|
+ OBJECT_TYPE: 1,
|
|
|
+ ENTRY_KEY: 2,
|
|
|
+ KV_KEY: 3,
|
|
|
+ EQUALS: 4,
|
|
|
+ KV_VALUE: 5,
|
|
|
+}
|
|
|
+BibtexParser.prototype.reset_ = function (arg0) {
|
|
|
+ /** @private */ this.DATA_ = {}
|
|
|
+ /** @private */ this.CALLBACK_ = arg0
|
|
|
+ /** @private */ this.CHAR_ = 0
|
|
|
+ /** @private */ this.LINE_ = 1
|
|
|
+ /** @private */ this.CHAR_IN_LINE_ = 0
|
|
|
+ /** @private */ this.SKIPWS_ = true
|
|
|
+ /** @private */ this.SKIPCOMMENT_ = true
|
|
|
+ /** @private */ this.SKIPKVPAIR_ = false
|
|
|
+ /** @private */ this.PARSETMP_ = {}
|
|
|
+ /** @private */ this.SKIPTILLEOL_ = false
|
|
|
+ /** @private */ this.VALBRACES_ = null
|
|
|
+ /** @private */ this.BRACETYPE_ = null
|
|
|
+ /** @private */ this.BRACECOUNT_ = 0
|
|
|
+ /** @private */ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ /** @private */ this.ERRORS_ = []
|
|
|
+}
|
|
|
+/** @private */ BibtexParser.prototype.ENTRY_TYPES_ = {
|
|
|
+ inproceedings: 1,
|
|
|
+ proceedings: 2,
|
|
|
+ article: 3,
|
|
|
+ techreport: 4,
|
|
|
+ misc: 5,
|
|
|
+ mastersthesis: 6,
|
|
|
+ book: 7,
|
|
|
+ phdthesis: 8,
|
|
|
+ incollection: 9,
|
|
|
+ unpublished: 10,
|
|
|
+ inbook: 11,
|
|
|
+ manual: 12,
|
|
|
+ periodical: 13,
|
|
|
+ booklet: 14,
|
|
|
+ masterthesis: 15,
|
|
|
+ conference: 16,
|
|
|
+ /* additional fields from biblatex */
|
|
|
+ artwork: 17,
|
|
|
+ audio: 18,
|
|
|
+ bibnote: 19,
|
|
|
+ bookinbook: 20,
|
|
|
+ collection: 21,
|
|
|
+ commentary: 22,
|
|
|
+ customa: 23,
|
|
|
+ customb: 24,
|
|
|
+ customc: 25,
|
|
|
+ customd: 26,
|
|
|
+ custome: 27,
|
|
|
+ customf: 28,
|
|
|
+ image: 29,
|
|
|
+ inreference: 30,
|
|
|
+ jurisdiction: 31,
|
|
|
+ legal: 32,
|
|
|
+ legislation: 33,
|
|
|
+ letter: 34,
|
|
|
+ movie: 35,
|
|
|
+ music: 36,
|
|
|
+ mvbook: 37,
|
|
|
+ mvcollection: 38,
|
|
|
+ mvproceedings: 39,
|
|
|
+ mvreference: 40,
|
|
|
+ online: 41,
|
|
|
+ patent: 42,
|
|
|
+ performance: 43,
|
|
|
+ reference: 44,
|
|
|
+ report: 45,
|
|
|
+ review: 46,
|
|
|
+ set: 47,
|
|
|
+ software: 48,
|
|
|
+ standard: 49,
|
|
|
+ suppbook: 50,
|
|
|
+ suppcollection: 51,
|
|
|
+ thesis: 52,
|
|
|
+ video: 53,
|
|
|
+}
|
|
|
+BibtexParser.prototype.initMacros_ = function () {
|
|
|
+ // macros can be extended by the user via
|
|
|
+ // @string { macroName = "macroValue" }
|
|
|
+ /** @private */ this.MACROS_ = {
|
|
|
+ jan: 'January',
|
|
|
+ feb: 'February',
|
|
|
+ mar: 'March',
|
|
|
+ apr: 'April',
|
|
|
+ may: 'May',
|
|
|
+ jun: 'June',
|
|
|
+ jul: 'July',
|
|
|
+ aug: 'August',
|
|
|
+ sep: 'September',
|
|
|
+ oct: 'October',
|
|
|
+ nov: 'November',
|
|
|
+ dec: 'December',
|
|
|
+ Jan: 'January',
|
|
|
+ Feb: 'February',
|
|
|
+ Mar: 'March',
|
|
|
+ Apr: 'April',
|
|
|
+ May: 'May',
|
|
|
+ Jun: 'June',
|
|
|
+ Jul: 'July',
|
|
|
+ Aug: 'August',
|
|
|
+ Sep: 'September',
|
|
|
+ Oct: 'October',
|
|
|
+ Nov: 'November',
|
|
|
+ Dec: 'December',
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Gets an array of all errors encountered during parsing.
|
|
|
+ * Array entries are of the format:
|
|
|
+ * [ line number, character in line, character in stream, error text ]
|
|
|
+ *
|
|
|
+ * @returns Array<Array>
|
|
|
+ * @public
|
|
|
+ */
|
|
|
+BibtexParser.prototype.getErrors = function () {
|
|
|
+ return this.ERRORS_
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Processes a chunk of data
|
|
|
+ * @public
|
|
|
+ */
|
|
|
+BibtexParser.prototype.parse = function (chunk) {
|
|
|
+ for (let i = 0; i < chunk.length; i++) this.processCharacter_(chunk[i])
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Logs error at current stream position.
|
|
|
+ *
|
|
|
+ * @private
|
|
|
+ */
|
|
|
+BibtexParser.prototype.error_ = function (text) {
|
|
|
+ this.ERRORS_.push([this.LINE_, this.CHAR_IN_LINE_, this.CHAR_, text])
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Called after an entire entry has been parsed from the stream.
|
|
|
+ * Performs post-processing and invokes the entry callback pointed to by
|
|
|
+ * this.CALLBACK_. Parsed (but unprocessed) entry data is in this.DATA_.
|
|
|
+ */
|
|
|
+BibtexParser.prototype.processEntry_ = function () {
|
|
|
+ const data = this.DATA_
|
|
|
+ if (data.Fields)
|
|
|
+ for (const f in data.Fields) {
|
|
|
+ let raw = data.Fields[f]
|
|
|
+
|
|
|
+ // Convert Latex/Bibtex special characters to UTF-8 equivalents
|
|
|
+ for (let i = 0; i < this.CHARCONV_.length; i++) {
|
|
|
+ const re = this.CHARCONV_[i][0]
|
|
|
+ const rep = this.CHARCONV_[i][1]
|
|
|
+ raw = raw.replace(re, rep)
|
|
|
+ }
|
|
|
+
|
|
|
+ // Basic substitutions
|
|
|
+ raw = raw
|
|
|
+ .replace(/[\n\r\t]/g, ' ')
|
|
|
+ .replace(/\s\s+/g, ' ')
|
|
|
+ .replace(/^\s+|\s+$/g, '')
|
|
|
+
|
|
|
+ // Remove braces and backslashes
|
|
|
+ const len = raw.length
|
|
|
+ let processedArr = []
|
|
|
+ for (let i = 0; i < len; i++) {
|
|
|
+ let c = raw[i]
|
|
|
+ let skip = false
|
|
|
+ if (c == '\\' && i < len - 1) c = raw[++i]
|
|
|
+ else {
|
|
|
+ if (c == '{' || c == '}') skip = true
|
|
|
+ }
|
|
|
+ if (!skip) processedArr.push(c)
|
|
|
+ }
|
|
|
+ data.Fields[f] = processedArr.join('')
|
|
|
+ processedArr = null
|
|
|
+ }
|
|
|
+
|
|
|
+ if (data.ObjectType == 'string') {
|
|
|
+ for (const f in data.Fields) {
|
|
|
+ this.MACROS_[f] = data.Fields[f]
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Parsed a new Bibtex entry
|
|
|
+ this.CALLBACK_(data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Processes next character in the stream, invoking the callback after
|
|
|
+ * each entry has been found and processed.
|
|
|
+ *
|
|
|
+ * @private
|
|
|
+ * @param {string} c Next character in input stream
|
|
|
+ */
|
|
|
+BibtexParser.prototype.processCharacter_ = function (c) {
|
|
|
+ // Housekeeping
|
|
|
+ this.CHAR_++
|
|
|
+ this.CHAR_IN_LINE_++
|
|
|
+ if (c == '\n') {
|
|
|
+ this.LINE_++
|
|
|
+ this.CHAR_IN_LINE_ = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ // Convenience states for skipping whitespace when needed
|
|
|
+ if (this.SKIPTILLEOL_) {
|
|
|
+ if (c == '\n') this.SKIPTILLEOL_ = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.SKIPCOMMENT_ && c == '%') {
|
|
|
+ this.SKIPTILLEOL_ = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.SKIPWS_ && /\s/.test(c)) return
|
|
|
+ this.SKIPWS_ = false
|
|
|
+ this.SKIPCOMMENT_ = false
|
|
|
+ this.SKIPTILLEOL_ = false
|
|
|
+
|
|
|
+ // Main state machine
|
|
|
+ let AnotherIteration = true
|
|
|
+ while (AnotherIteration) {
|
|
|
+ // console.log(this.LINE_, this.CHAR_IN_LINE_, this.STATE_, c)
|
|
|
+ AnotherIteration = false
|
|
|
+ switch (this.STATE_) {
|
|
|
+ // -- Scan for an object marker ('@')
|
|
|
+ // -- Reset temporary data structure in case previous entry was garbled
|
|
|
+ case this.STATES_.ENTRY_OR_JUNK:
|
|
|
+ if (c == '@') {
|
|
|
+ // SUCCESS: Parsed a valid start-of-object marker.
|
|
|
+ // NEXT_STATE: OBJECT_TYPE
|
|
|
+ this.STATE_ = this.STATES_.OBJECT_TYPE
|
|
|
+ this.DATA_ = {
|
|
|
+ ObjectType: '',
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.BRACETYPE_ = null
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ break
|
|
|
+
|
|
|
+ // Start at first non-whitespace character after start-of-object '@'
|
|
|
+ // -- Accept [A-Za-z], break on non-matching character
|
|
|
+ // -- Populate this.DATA_.EntryType and this.DATA_.ObjectType
|
|
|
+ case this.STATES_.OBJECT_TYPE:
|
|
|
+ if (/[A-Za-z]/.test(c)) {
|
|
|
+ this.DATA_.ObjectType += c.toLowerCase()
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ } else {
|
|
|
+ // Break from state and validate object type
|
|
|
+ const ot = this.DATA_.ObjectType
|
|
|
+ if (ot == 'comment') {
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ } else {
|
|
|
+ if (ot == 'string') {
|
|
|
+ this.DATA_.ObjectType = ot
|
|
|
+ this.DATA_.Fields = {}
|
|
|
+ this.BRACETYPE_ = c
|
|
|
+ this.BRACECOUNT_ = 1
|
|
|
+ this.STATE_ = this.STATES_.KV_KEY
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.PARSETMP_ = {
|
|
|
+ Key: '',
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (ot == 'preamble') {
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ } else {
|
|
|
+ if (ot in this.ENTRY_TYPES_) {
|
|
|
+ // SUCCESS: Parsed a valid object type.
|
|
|
+ // NEXT_STATE: ENTRY_KEY
|
|
|
+ this.DATA_.ObjectType = 'entry'
|
|
|
+ this.DATA_.EntryType = ot
|
|
|
+ this.DATA_.EntryKey = ''
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_KEY
|
|
|
+ AnotherIteration = true
|
|
|
+ } else {
|
|
|
+ // ERROR: Unrecognized object type.
|
|
|
+ // NEXT_STATE: ENTRY_OR_JUNK
|
|
|
+ this.error_(
|
|
|
+ 'Unrecognized object type: "' + this.DATA_.ObjectType + '"'
|
|
|
+ )
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+
|
|
|
+ // Start at first non-alphabetic character after an entry type
|
|
|
+ // -- Populate this.DATA_.EntryKey
|
|
|
+ case this.STATES_.ENTRY_KEY:
|
|
|
+ if ((c === '{' || c === '(') && this.BRACETYPE_ == null) {
|
|
|
+ this.BRACETYPE_ = c
|
|
|
+ this.BRACECOUNT_ = 1
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (/[,%\s]/.test(c)) {
|
|
|
+ if (this.DATA_.EntryKey.length < 1) {
|
|
|
+ // Skip comments and whitespace before entry key
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ } else {
|
|
|
+ if (this.BRACETYPE_ == null) {
|
|
|
+ // ERROR: No opening brace for object
|
|
|
+ // NEXT_STATE: ENTRY_OR_JUNK
|
|
|
+ this.error_('No opening brace for object.')
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ } else {
|
|
|
+ // SUCCESS: Parsed an entry key
|
|
|
+ // NEXT_STATE: KV_KEY
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ AnotherIteration = true
|
|
|
+ this.STATE_ = this.STATES_.KV_KEY
|
|
|
+ this.PARSETMP_.Key = ''
|
|
|
+ this.DATA_.Fields = {}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.DATA_.EntryKey += c
|
|
|
+ this.SKIPWS_ = false
|
|
|
+ this.SKIPCOMMENT_ = false
|
|
|
+ }
|
|
|
+ break
|
|
|
+
|
|
|
+ // Start at first non-whitespace/comment character after entry key.
|
|
|
+ // -- Populate this.PARSETMP_.Key
|
|
|
+ case this.STATES_.KV_KEY:
|
|
|
+ // Test for end of entry
|
|
|
+ if (
|
|
|
+ (c == '}' && this.BRACETYPE_ == '{') ||
|
|
|
+ (c == ')' && this.BRACETYPE_ == '(')
|
|
|
+ ) {
|
|
|
+ // SUCCESS: Parsed an entry, possible incomplete
|
|
|
+ // NEXT_STATE: ENTRY_OR_JUNK
|
|
|
+ this.processEntry_()
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (/[\-A-Za-z:]/.test(c)) {
|
|
|
+ // Add to key
|
|
|
+ this.PARSETMP_.Key += c
|
|
|
+ this.SKIPWS_ = false
|
|
|
+ this.SKIPCOMMENT_ = false
|
|
|
+ } else {
|
|
|
+ // Either end of key or we haven't encountered start of key
|
|
|
+ if (this.PARSETMP_.Key.length < 1) {
|
|
|
+ // Keep going till we see a key
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ } else {
|
|
|
+ // SUCCESS: Found full key in K/V pair
|
|
|
+ // NEXT_STATE: EQUALS
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.STATE_ = this.STATES_.EQUALS
|
|
|
+ AnotherIteration = true
|
|
|
+
|
|
|
+ if (this.DATA_.ObjectType !== 'string') {
|
|
|
+ // this entry is not a macro
|
|
|
+ // normalize the key to lower case
|
|
|
+ this.PARSETMP_.Key = this.PARSETMP_.Key.toLowerCase()
|
|
|
+
|
|
|
+ // optimization: skip key/value pairs that are not on the allowlist
|
|
|
+ this.SKIPKVPAIR_ =
|
|
|
+ // has allowedKeys set
|
|
|
+ this.ALLOWEDKEYS_.length &&
|
|
|
+ // key is not on the allowlist
|
|
|
+ this.ALLOWEDKEYS_.indexOf(this.PARSETMP_.Key) === -1
|
|
|
+ } else {
|
|
|
+ this.SKIPKVPAIR_ = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+
|
|
|
+ // Start at first non-alphabetic character after K/V pair key.
|
|
|
+ case this.STATES_.EQUALS:
|
|
|
+ if (
|
|
|
+ (c == '}' && this.BRACETYPE_ == '{') ||
|
|
|
+ (c == ')' && this.BRACETYPE_ == '(')
|
|
|
+ ) {
|
|
|
+ // ERROR: K/V pair with key but no value
|
|
|
+ // NEXT_STATE: ENTRY_OR_JUNK
|
|
|
+ this.error_(
|
|
|
+ 'Key-value pair has key "' + this.PARSETMP_.Key + '", but no value.'
|
|
|
+ )
|
|
|
+ this.processEntry_()
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (c == '=') {
|
|
|
+ // SUCCESS: found an equal signs separating key and value
|
|
|
+ // NEXT_STATE: KV_VALUE
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.STATE_ = this.STATES_.KV_VALUE
|
|
|
+ this.PARSETMP_.Value = []
|
|
|
+ this.VALBRACES_ = { '"': [], '{': [] }
|
|
|
+ }
|
|
|
+ break
|
|
|
+
|
|
|
+ // Start at first non-whitespace/comment character after '='
|
|
|
+ // -- Populate this.PARSETMP_.Value
|
|
|
+ case this.STATES_.KV_VALUE:
|
|
|
+ const delim = this.VALBRACES_
|
|
|
+ // valueCharsArray is the list of characters that make up the
|
|
|
+ // current value
|
|
|
+ const valueCharsArray = this.PARSETMP_.Value
|
|
|
+ let doneParsingValue = false
|
|
|
+
|
|
|
+ // Test for special characters
|
|
|
+ if (c == '"' || c == '{' || c == '}' || c == ',') {
|
|
|
+ if (c == ',') {
|
|
|
+ // This comma can mean:
|
|
|
+ // (1) just another comma literal
|
|
|
+ // (2) end of a macro reference
|
|
|
+ if (delim['"'].length + delim['{'].length === 0) {
|
|
|
+ // end of a macro reference
|
|
|
+ const macro = this.PARSETMP_.Value.join('').trim()
|
|
|
+ if (macro in this.MACROS_) {
|
|
|
+ // Successful macro reference
|
|
|
+ this.PARSETMP_.Value = [this.MACROS_[macro]]
|
|
|
+ } else {
|
|
|
+ // Reference to an undefined macro
|
|
|
+ this.error_('Reference to an undefined macro: ' + macro)
|
|
|
+ }
|
|
|
+ doneParsingValue = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (c == '"') {
|
|
|
+ // This quote can mean:
|
|
|
+ // (1) opening delimiter
|
|
|
+ // (2) closing delimiter
|
|
|
+ // (3) literal, if we have a '{' on the stack
|
|
|
+ if (delim['"'].length + delim['{'].length === 0) {
|
|
|
+ // opening delimiter
|
|
|
+ delim['"'].push(this.CHAR_)
|
|
|
+ this.SKIPWS_ = false
|
|
|
+ this.SKIPCOMMENT_ = false
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ delim['"'].length == 1 &&
|
|
|
+ delim['{'].length == 0 &&
|
|
|
+ (valueCharsArray.length == 0 ||
|
|
|
+ valueCharsArray[valueCharsArray.length - 1] != '\\')
|
|
|
+ ) {
|
|
|
+ // closing delimiter
|
|
|
+ doneParsingValue = true
|
|
|
+ } else {
|
|
|
+ // literal, add to value
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (c == '{') {
|
|
|
+ // This brace can mean:
|
|
|
+ // (1) opening delimiter
|
|
|
+ // (2) stacked verbatim delimiter
|
|
|
+ if (
|
|
|
+ valueCharsArray.length == 0 ||
|
|
|
+ valueCharsArray[valueCharsArray.length - 1] != '\\'
|
|
|
+ ) {
|
|
|
+ delim['{'].push(this.CHAR_)
|
|
|
+ this.SKIPWS_ = false
|
|
|
+ this.SKIPCOMMENT_ = false
|
|
|
+ } else {
|
|
|
+ // literal, add to value
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (c == '}') {
|
|
|
+ // This brace can mean:
|
|
|
+ // (1) closing delimiter
|
|
|
+ // (2) closing stacked verbatim delimiter
|
|
|
+ // (3) end of object definition if value was a macro
|
|
|
+ if (delim['"'].length + delim['{'].length === 0) {
|
|
|
+ // end of object definition, after macro
|
|
|
+ const macro = this.PARSETMP_.Value.join('').trim()
|
|
|
+ if (macro in this.MACROS_) {
|
|
|
+ // Successful macro reference
|
|
|
+ this.PARSETMP_.Value = [this.MACROS_[macro]]
|
|
|
+ } else {
|
|
|
+ // Reference to an undefined macro
|
|
|
+ this.error_('Reference to an undefined macro: ' + macro)
|
|
|
+ }
|
|
|
+ AnotherIteration = true
|
|
|
+ doneParsingValue = true
|
|
|
+ } else {
|
|
|
+ // sometimes imported bibs will have {\},{\\}, {\\\}, {\\\\}, etc for whitespace,
|
|
|
+ // which would otherwise break the parsing. we watch for these occurences of
|
|
|
+ // 1+ backslashes in an empty bracket pair to gracefully handle the malformed bib file
|
|
|
+ const doubleSlash =
|
|
|
+ valueCharsArray.length >= 2 &&
|
|
|
+ valueCharsArray[valueCharsArray.length - 1] === '\\' && // for \\}
|
|
|
+ valueCharsArray[valueCharsArray.length - 2] === '\\'
|
|
|
+ const singleSlash =
|
|
|
+ valueCharsArray.length >= 2 &&
|
|
|
+ valueCharsArray[valueCharsArray.length - 1] === '\\' && // for {\}
|
|
|
+ valueCharsArray[valueCharsArray.length - 2] === '{'
|
|
|
+
|
|
|
+ if (
|
|
|
+ valueCharsArray.length == 0 ||
|
|
|
+ valueCharsArray[valueCharsArray.length - 1] != '\\' || // for }
|
|
|
+ doubleSlash ||
|
|
|
+ singleSlash
|
|
|
+ ) {
|
|
|
+ if (delim['{'].length > 0) {
|
|
|
+ // pop stack for stacked verbatim delimiter
|
|
|
+ delim['{'].splice(delim['{'].length - 1, 1)
|
|
|
+ if (delim['{'].length + delim['"'].length == 0) {
|
|
|
+ // closing delimiter
|
|
|
+ doneParsingValue = true
|
|
|
+ } else {
|
|
|
+ // end verbatim block
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // literal, add to value
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // If here, then we are either done parsing the value or
|
|
|
+ // have a literal that should be added to the value.
|
|
|
+ if (doneParsingValue) {
|
|
|
+ // SUCCESS: value parsed
|
|
|
+ // NEXT_STATE: KV_KEY
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ this.STATE_ = this.STATES_.KV_KEY
|
|
|
+ if (!this.SKIPKVPAIR_) {
|
|
|
+ this.DATA_.Fields[this.PARSETMP_.Key] =
|
|
|
+ this.PARSETMP_.Value.join('')
|
|
|
+ }
|
|
|
+ this.PARSETMP_ = { Key: '' }
|
|
|
+ this.VALBRACES_ = null
|
|
|
+ } else {
|
|
|
+ this.PARSETMP_.Value.push(c)
|
|
|
+ if (this.PARSETMP_.Value.length >= 1000 * 20) {
|
|
|
+ this.PARSETMP_.Value = []
|
|
|
+ this.STATE_ = this.STATES_.ENTRY_OR_JUNK
|
|
|
+ this.DATA_ = { ObjectType: '' }
|
|
|
+ this.BRACETYPE_ = null
|
|
|
+ this.SKIPWS_ = true
|
|
|
+ this.SKIPCOMMENT_ = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ } // end switch (this.STATE_)
|
|
|
+ } // end while(AnotherIteration)
|
|
|
+} // end function processCharacter
|
|
|
+
|
|
|
+/** @private */ BibtexParser.prototype.CHARCONV_ = [
|
|
|
+ [/\\space /g, '\u0020'],
|
|
|
+ [/\\textdollar /g, '\u0024'],
|
|
|
+ [/\\textquotesingle /g, '\u0027'],
|
|
|
+ [/\\ast /g, '\u002A'],
|
|
|
+ [/\\textbackslash /g, '\u005C'],
|
|
|
+ [/\\\^\{\}/g, '\u005E'],
|
|
|
+ [/\\textasciigrave /g, '\u0060'],
|
|
|
+ [/\\lbrace /g, '\u007B'],
|
|
|
+ [/\\vert /g, '\u007C'],
|
|
|
+ [/\\rbrace /g, '\u007D'],
|
|
|
+ [/\\textasciitilde /g, '\u007E'],
|
|
|
+ [/\\textexclamdown /g, '\u00A1'],
|
|
|
+ [/\\textcent /g, '\u00A2'],
|
|
|
+ [/\\textsterling /g, '\u00A3'],
|
|
|
+ [/\\textcurrency /g, '\u00A4'],
|
|
|
+ [/\\textyen /g, '\u00A5'],
|
|
|
+ [/\\textbrokenbar /g, '\u00A6'],
|
|
|
+ [/\\textsection /g, '\u00A7'],
|
|
|
+ [/\\textasciidieresis /g, '\u00A8'],
|
|
|
+ [/\\textcopyright /g, '\u00A9'],
|
|
|
+ [/\\textordfeminine /g, '\u00AA'],
|
|
|
+ [/\\guillemotleft /g, '\u00AB'],
|
|
|
+ [/\\lnot /g, '\u00AC'],
|
|
|
+ [/\\textregistered /g, '\u00AE'],
|
|
|
+ [/\\textasciimacron /g, '\u00AF'],
|
|
|
+ [/\\textdegree /g, '\u00B0'],
|
|
|
+ [/\\pm /g, '\u00B1'],
|
|
|
+ [/\\textasciiacute /g, '\u00B4'],
|
|
|
+ [/\\mathrm\{\\mu\}/g, '\u00B5'],
|
|
|
+ [/\\textparagraph /g, '\u00B6'],
|
|
|
+ [/\\cdot /g, '\u00B7'],
|
|
|
+ [/\\c\{\}/g, '\u00B8'],
|
|
|
+ [/\\textordmasculine /g, '\u00BA'],
|
|
|
+ [/\\guillemotright /g, '\u00BB'],
|
|
|
+ [/\\textonequarter /g, '\u00BC'],
|
|
|
+ [/\\textonehalf /g, '\u00BD'],
|
|
|
+ [/\\textthreequarters /g, '\u00BE'],
|
|
|
+ [/\\textquestiondown /g, '\u00BF'],
|
|
|
+ [/\\`\{A\}/g, '\u00C0'],
|
|
|
+ [/\\'\{A\}/g, '\u00C1'],
|
|
|
+ [/\\\^\{A\}/g, '\u00C2'],
|
|
|
+ [/\\~\{A\}/g, '\u00C3'],
|
|
|
+ [/\\"\{A\}/g, '\u00C4'],
|
|
|
+ [/\\AA /g, '\u00C5'],
|
|
|
+ [/\\AE /g, '\u00C6'],
|
|
|
+ [/\\c\{C\}/g, '\u00C7'],
|
|
|
+ [/\\`\{E\}/g, '\u00C8'],
|
|
|
+ [/\\'\{E\}/g, '\u00C9'],
|
|
|
+ [/\\\^\{E\}/g, '\u00CA'],
|
|
|
+ [/\\"\{E\}/g, '\u00CB'],
|
|
|
+ [/\\`\{I\}/g, '\u00CC'],
|
|
|
+ [/\\'\{I\}/g, '\u00CD'],
|
|
|
+ [/\\\^\{I\}/g, '\u00CE'],
|
|
|
+ [/\\"\{I\}/g, '\u00CF'],
|
|
|
+ [/\\DH /g, '\u00D0'],
|
|
|
+ [/\\~\{N\}/g, '\u00D1'],
|
|
|
+ [/\\`\{O\}/g, '\u00D2'],
|
|
|
+ [/\\'\{O\}/g, '\u00D3'],
|
|
|
+ [/\\\^\{O\}/g, '\u00D4'],
|
|
|
+ [/\\~\{O\}/g, '\u00D5'],
|
|
|
+ [/\\"\{O\}/g, '\u00D6'],
|
|
|
+ [/\\texttimes /g, '\u00D7'],
|
|
|
+ [/\\O /g, '\u00D8'],
|
|
|
+ [/\\`\{U\}/g, '\u00D9'],
|
|
|
+ [/\\'\{U\}/g, '\u00DA'],
|
|
|
+ [/\\\^\{U\}/g, '\u00DB'],
|
|
|
+ [/\\"\{U\}/g, '\u00DC'],
|
|
|
+ [/\\'\{Y\}/g, '\u00DD'],
|
|
|
+ [/\\TH /g, '\u00DE'],
|
|
|
+ [/\\ss /g, '\u00DF'],
|
|
|
+ [/\\`\{a\}/g, '\u00E0'],
|
|
|
+ [/\\'\{a\}/g, '\u00E1'],
|
|
|
+ [/\\\^\{a\}/g, '\u00E2'],
|
|
|
+ [/\\~\{a\}/g, '\u00E3'],
|
|
|
+ [/\\"\{a\}/g, '\u00E4'],
|
|
|
+ [/\\aa /g, '\u00E5'],
|
|
|
+ [/\\ae /g, '\u00E6'],
|
|
|
+ [/\\c\{c\}/g, '\u00E7'],
|
|
|
+ [/\\`\{e\}/g, '\u00E8'],
|
|
|
+ [/\\'\{e\}/g, '\u00E9'],
|
|
|
+ [/\\\^\{e\}/g, '\u00EA'],
|
|
|
+ [/\\"\{e\}/g, '\u00EB'],
|
|
|
+ [/\\`\{\\i\}/g, '\u00EC'],
|
|
|
+ [/\\'\{\\i\}/g, '\u00ED'],
|
|
|
+ [/\\\^\{\\i\}/g, '\u00EE'],
|
|
|
+ [/\\"\{\\i\}/g, '\u00EF'],
|
|
|
+ [/\\dh /g, '\u00F0'],
|
|
|
+ [/\\~\{n\}/g, '\u00F1'],
|
|
|
+ [/\\`\{o\}/g, '\u00F2'],
|
|
|
+ [/\\'\{o\}/g, '\u00F3'],
|
|
|
+ [/\\\^\{o\}/g, '\u00F4'],
|
|
|
+ [/\\~\{o\}/g, '\u00F5'],
|
|
|
+ [/\\"\{o\}/g, '\u00F6'],
|
|
|
+ [/\\div /g, '\u00F7'],
|
|
|
+ [/\\o /g, '\u00F8'],
|
|
|
+ [/\\`\{u\}/g, '\u00F9'],
|
|
|
+ [/\\'\{u\}/g, '\u00FA'],
|
|
|
+ [/\\\^\{u\}/g, '\u00FB'],
|
|
|
+ [/\\"\{u\}/g, '\u00FC'],
|
|
|
+ [/\\'\{y\}/g, '\u00FD'],
|
|
|
+ [/\\th /g, '\u00FE'],
|
|
|
+ [/\\"\{y\}/g, '\u00FF'],
|
|
|
+ [/\\=\{A\}/g, '\u0100'],
|
|
|
+ [/\\=\{a\}/g, '\u0101'],
|
|
|
+ [/\\u\{A\}/g, '\u0102'],
|
|
|
+ [/\\u\{a\}/g, '\u0103'],
|
|
|
+ [/\\k\{A\}/g, '\u0104'],
|
|
|
+ [/\\k\{a\}/g, '\u0105'],
|
|
|
+ [/\\'\{C\}/g, '\u0106'],
|
|
|
+ [/\\'\{c\}/g, '\u0107'],
|
|
|
+ [/\\\^\{C\}/g, '\u0108'],
|
|
|
+ [/\\\^\{c\}/g, '\u0109'],
|
|
|
+ [/\\.\{C\}/g, '\u010A'],
|
|
|
+ [/\\.\{c\}/g, '\u010B'],
|
|
|
+ [/\\v\{C\}/g, '\u010C'],
|
|
|
+ [/\\v\{c\}/g, '\u010D'],
|
|
|
+ [/\\v\{D\}/g, '\u010E'],
|
|
|
+ [/\\v\{d\}/g, '\u010F'],
|
|
|
+ [/\\DJ /g, '\u0110'],
|
|
|
+ [/\\dj /g, '\u0111'],
|
|
|
+ [/\\=\{E\}/g, '\u0112'],
|
|
|
+ [/\\=\{e\}/g, '\u0113'],
|
|
|
+ [/\\u\{E\}/g, '\u0114'],
|
|
|
+ [/\\u\{e\}/g, '\u0115'],
|
|
|
+ [/\\.\{E\}/g, '\u0116'],
|
|
|
+ [/\\.\{e\}/g, '\u0117'],
|
|
|
+ [/\\k\{E\}/g, '\u0118'],
|
|
|
+ [/\\k\{e\}/g, '\u0119'],
|
|
|
+ [/\\v\{E\}/g, '\u011A'],
|
|
|
+ [/\\v\{e\}/g, '\u011B'],
|
|
|
+ [/\\\^\{G\}/g, '\u011C'],
|
|
|
+ [/\\\^\{g\}/g, '\u011D'],
|
|
|
+ [/\\u\{G\}/g, '\u011E'],
|
|
|
+ [/\\u\{g\}/g, '\u011F'],
|
|
|
+ [/\\.\{G\}/g, '\u0120'],
|
|
|
+ [/\\.\{g\}/g, '\u0121'],
|
|
|
+ [/\\c\{G\}/g, '\u0122'],
|
|
|
+ [/\\c\{g\}/g, '\u0123'],
|
|
|
+ [/\\\^\{H\}/g, '\u0124'],
|
|
|
+ [/\\\^\{h\}/g, '\u0125'],
|
|
|
+ [/\\Elzxh /g, '\u0127'],
|
|
|
+ [/\\~\{I\}/g, '\u0128'],
|
|
|
+ [/\\~\{\\i\}/g, '\u0129'],
|
|
|
+ [/\\=\{I\}/g, '\u012A'],
|
|
|
+ [/\\=\{\\i\}/g, '\u012B'],
|
|
|
+ [/\\u\{I\}/g, '\u012C'],
|
|
|
+ [/\\u\{\\i\}/g, '\u012D'],
|
|
|
+ [/\\k\{I\}/g, '\u012E'],
|
|
|
+ [/\\k\{i\}/g, '\u012F'],
|
|
|
+ [/\\.\{I\}/g, '\u0130'],
|
|
|
+ [/\\i /g, '\u0131'],
|
|
|
+ [/\\\^\{J\}/g, '\u0134'],
|
|
|
+ [/\\\^\{\\j\}/g, '\u0135'],
|
|
|
+ [/\\c\{K\}/g, '\u0136'],
|
|
|
+ [/\\c\{k\}/g, '\u0137'],
|
|
|
+ [/\\'\{L\}/g, '\u0139'],
|
|
|
+ [/\\'\{l\}/g, '\u013A'],
|
|
|
+ [/\\c\{L\}/g, '\u013B'],
|
|
|
+ [/\\c\{l\}/g, '\u013C'],
|
|
|
+ [/\\v\{L\}/g, '\u013D'],
|
|
|
+ [/\\v\{l\}/g, '\u013E'],
|
|
|
+ [/\\L /g, '\u0141'],
|
|
|
+ [/\\l /g, '\u0142'],
|
|
|
+ [/\\'\{N\}/g, '\u0143'],
|
|
|
+ [/\\'\{n\}/g, '\u0144'],
|
|
|
+ [/\\c\{N\}/g, '\u0145'],
|
|
|
+ [/\\c\{n\}/g, '\u0146'],
|
|
|
+ [/\\v\{N\}/g, '\u0147'],
|
|
|
+ [/\\v\{n\}/g, '\u0148'],
|
|
|
+ [/\\NG /g, '\u014A'],
|
|
|
+ [/\\ng /g, '\u014B'],
|
|
|
+ [/\\=\{O\}/g, '\u014C'],
|
|
|
+ [/\\=\{o\}/g, '\u014D'],
|
|
|
+ [/\\u\{O\}/g, '\u014E'],
|
|
|
+ [/\\u\{o\}/g, '\u014F'],
|
|
|
+ [/\\H\{O\}/g, '\u0150'],
|
|
|
+ [/\\H\{o\}/g, '\u0151'],
|
|
|
+ [/\\OE /g, '\u0152'],
|
|
|
+ [/\\oe /g, '\u0153'],
|
|
|
+ [/\\'\{R\}/g, '\u0154'],
|
|
|
+ [/\\'\{r\}/g, '\u0155'],
|
|
|
+ [/\\c\{R\}/g, '\u0156'],
|
|
|
+ [/\\c\{r\}/g, '\u0157'],
|
|
|
+ [/\\v\{R\}/g, '\u0158'],
|
|
|
+ [/\\v\{r\}/g, '\u0159'],
|
|
|
+ [/\\'\{S\}/g, '\u015A'],
|
|
|
+ [/\\'\{s\}/g, '\u015B'],
|
|
|
+ [/\\\^\{S\}/g, '\u015C'],
|
|
|
+ [/\\\^\{s\}/g, '\u015D'],
|
|
|
+ [/\\c\{S\}/g, '\u015E'],
|
|
|
+ [/\\c\{s\}/g, '\u015F'],
|
|
|
+ [/\\v\{S\}/g, '\u0160'],
|
|
|
+ [/\\v\{s\}/g, '\u0161'],
|
|
|
+ [/\\c\{T\}/g, '\u0162'],
|
|
|
+ [/\\c\{t\}/g, '\u0163'],
|
|
|
+ [/\\v\{T\}/g, '\u0164'],
|
|
|
+ [/\\v\{t\}/g, '\u0165'],
|
|
|
+ [/\\~\{U\}/g, '\u0168'],
|
|
|
+ [/\\~\{u\}/g, '\u0169'],
|
|
|
+ [/\\=\{U\}/g, '\u016A'],
|
|
|
+ [/\\=\{u\}/g, '\u016B'],
|
|
|
+ [/\\u\{U\}/g, '\u016C'],
|
|
|
+ [/\\u\{u\}/g, '\u016D'],
|
|
|
+ [/\\r\{U\}/g, '\u016E'],
|
|
|
+ [/\\r\{u\}/g, '\u016F'],
|
|
|
+ [/\\H\{U\}/g, '\u0170'],
|
|
|
+ [/\\H\{u\}/g, '\u0171'],
|
|
|
+ [/\\k\{U\}/g, '\u0172'],
|
|
|
+ [/\\k\{u\}/g, '\u0173'],
|
|
|
+ [/\\\^\{W\}/g, '\u0174'],
|
|
|
+ [/\\\^\{w\}/g, '\u0175'],
|
|
|
+ [/\\\^\{Y\}/g, '\u0176'],
|
|
|
+ [/\\\^\{y\}/g, '\u0177'],
|
|
|
+ [/\\"\{Y\}/g, '\u0178'],
|
|
|
+ [/\\'\{Z\}/g, '\u0179'],
|
|
|
+ [/\\'\{z\}/g, '\u017A'],
|
|
|
+ [/\\.\{Z\}/g, '\u017B'],
|
|
|
+ [/\\.\{z\}/g, '\u017C'],
|
|
|
+ [/\\v\{Z\}/g, '\u017D'],
|
|
|
+ [/\\v\{z\}/g, '\u017E'],
|
|
|
+ [/\\texthvlig /g, '\u0195'],
|
|
|
+ [/\\textnrleg /g, '\u019E'],
|
|
|
+ [/\\eth /g, '\u01AA'],
|
|
|
+ [/\\textdoublepipe /g, '\u01C2'],
|
|
|
+ [/\\'\{g\}/g, '\u01F5'],
|
|
|
+ [/\\Elztrna /g, '\u0250'],
|
|
|
+ [/\\Elztrnsa /g, '\u0252'],
|
|
|
+ [/\\Elzopeno /g, '\u0254'],
|
|
|
+ [/\\Elzrtld /g, '\u0256'],
|
|
|
+ [/\\Elzschwa /g, '\u0259'],
|
|
|
+ [/\\varepsilon /g, '\u025B'],
|
|
|
+ [/\\Elzpgamma /g, '\u0263'],
|
|
|
+ [/\\Elzpbgam /g, '\u0264'],
|
|
|
+ [/\\Elztrnh /g, '\u0265'],
|
|
|
+ [/\\Elzbtdl /g, '\u026C'],
|
|
|
+ [/\\Elzrtll /g, '\u026D'],
|
|
|
+ [/\\Elztrnm /g, '\u026F'],
|
|
|
+ [/\\Elztrnmlr /g, '\u0270'],
|
|
|
+ [/\\Elzltlmr /g, '\u0271'],
|
|
|
+ [/\\Elzltln /g, '\u0272'],
|
|
|
+ [/\\Elzrtln /g, '\u0273'],
|
|
|
+ [/\\Elzclomeg /g, '\u0277'],
|
|
|
+ [/\\textphi /g, '\u0278'],
|
|
|
+ [/\\Elztrnr /g, '\u0279'],
|
|
|
+ [/\\Elztrnrl /g, '\u027A'],
|
|
|
+ [/\\Elzrttrnr /g, '\u027B'],
|
|
|
+ [/\\Elzrl /g, '\u027C'],
|
|
|
+ [/\\Elzrtlr /g, '\u027D'],
|
|
|
+ [/\\Elzfhr /g, '\u027E'],
|
|
|
+ [/\\Elzrtls /g, '\u0282'],
|
|
|
+ [/\\Elzesh /g, '\u0283'],
|
|
|
+ [/\\Elztrnt /g, '\u0287'],
|
|
|
+ [/\\Elzrtlt /g, '\u0288'],
|
|
|
+ [/\\Elzpupsil /g, '\u028A'],
|
|
|
+ [/\\Elzpscrv /g, '\u028B'],
|
|
|
+ [/\\Elzinvv /g, '\u028C'],
|
|
|
+ [/\\Elzinvw /g, '\u028D'],
|
|
|
+ [/\\Elztrny /g, '\u028E'],
|
|
|
+ [/\\Elzrtlz /g, '\u0290'],
|
|
|
+ [/\\Elzyogh /g, '\u0292'],
|
|
|
+ [/\\Elzglst /g, '\u0294'],
|
|
|
+ [/\\Elzreglst /g, '\u0295'],
|
|
|
+ [/\\Elzinglst /g, '\u0296'],
|
|
|
+ [/\\textturnk /g, '\u029E'],
|
|
|
+ [/\\Elzdyogh /g, '\u02A4'],
|
|
|
+ [/\\Elztesh /g, '\u02A7'],
|
|
|
+ [/\\textasciicaron /g, '\u02C7'],
|
|
|
+ [/\\Elzverts /g, '\u02C8'],
|
|
|
+ [/\\Elzverti /g, '\u02CC'],
|
|
|
+ [/\\Elzlmrk /g, '\u02D0'],
|
|
|
+ [/\\Elzhlmrk /g, '\u02D1'],
|
|
|
+ [/\\Elzsbrhr /g, '\u02D2'],
|
|
|
+ [/\\Elzsblhr /g, '\u02D3'],
|
|
|
+ [/\\Elzrais /g, '\u02D4'],
|
|
|
+ [/\\Elzlow /g, '\u02D5'],
|
|
|
+ [/\\textasciibreve /g, '\u02D8'],
|
|
|
+ [/\\textperiodcentered /g, '\u02D9'],
|
|
|
+ [/\\r\{\}/g, '\u02DA'],
|
|
|
+ [/\\k\{\}/g, '\u02DB'],
|
|
|
+ [/\\texttildelow /g, '\u02DC'],
|
|
|
+ [/\\H\{\}/g, '\u02DD'],
|
|
|
+ [/\\tone\{55\}/g, '\u02E5'],
|
|
|
+ [/\\tone\{44\}/g, '\u02E6'],
|
|
|
+ [/\\tone\{33\}/g, '\u02E7'],
|
|
|
+ [/\\tone\{22\}/g, '\u02E8'],
|
|
|
+ [/\\tone\{11\}/g, '\u02E9'],
|
|
|
+ [/\\cyrchar\\C/g, '\u030F'],
|
|
|
+ [/\\Elzpalh /g, '\u0321'],
|
|
|
+ [/\\Elzrh /g, '\u0322'],
|
|
|
+ [/\\Elzsbbrg /g, '\u032A'],
|
|
|
+ [/\\Elzxl /g, '\u0335'],
|
|
|
+ [/\\Elzbar /g, '\u0336'],
|
|
|
+ [/\\'\{A\}/g, '\u0386'],
|
|
|
+ [/\\'\{E\}/g, '\u0388'],
|
|
|
+ [/\\'\{H\}/g, '\u0389'],
|
|
|
+ [/\\'\{\}\{I\}/g, '\u038A'],
|
|
|
+ [/\\'\{\}O/g, '\u038C'],
|
|
|
+ [/\\mathrm\{'Y\}/g, '\u038E'],
|
|
|
+ [/\\mathrm\{'\\Omega\}/g, '\u038F'],
|
|
|
+ [/\\acute\{\\ddot\{\\iota\}\}/g, '\u0390'],
|
|
|
+ [/\\Alpha /g, '\u0391'],
|
|
|
+ [/\\Beta /g, '\u0392'],
|
|
|
+ [/\\Gamma /g, '\u0393'],
|
|
|
+ [/\\Delta /g, '\u0394'],
|
|
|
+ [/\\Epsilon /g, '\u0395'],
|
|
|
+ [/\\Zeta /g, '\u0396'],
|
|
|
+ [/\\Eta /g, '\u0397'],
|
|
|
+ [/\\Theta /g, '\u0398'],
|
|
|
+ [/\\Iota /g, '\u0399'],
|
|
|
+ [/\\Kappa /g, '\u039A'],
|
|
|
+ [/\\Lambda /g, '\u039B'],
|
|
|
+ [/\\Xi /g, '\u039E'],
|
|
|
+ [/\\Pi /g, '\u03A0'],
|
|
|
+ [/\\Rho /g, '\u03A1'],
|
|
|
+ [/\\Sigma /g, '\u03A3'],
|
|
|
+ [/\\Tau /g, '\u03A4'],
|
|
|
+ [/\\Upsilon /g, '\u03A5'],
|
|
|
+ [/\\Phi /g, '\u03A6'],
|
|
|
+ [/\\Chi /g, '\u03A7'],
|
|
|
+ [/\\Psi /g, '\u03A8'],
|
|
|
+ [/\\Omega /g, '\u03A9'],
|
|
|
+ [/\\mathrm\{\\ddot\{I\}\}/g, '\u03AA'],
|
|
|
+ [/\\mathrm\{\\ddot\{Y\}\}/g, '\u03AB'],
|
|
|
+ [/\\'\{\$\\alpha\$\}/g, '\u03AC'],
|
|
|
+ [/\\acute\{\\epsilon\}/g, '\u03AD'],
|
|
|
+ [/\\acute\{\\eta\}/g, '\u03AE'],
|
|
|
+ [/\\acute\{\\iota\}/g, '\u03AF'],
|
|
|
+ [/\\acute\{\\ddot\{\\upsilon\}\}/g, '\u03B0'],
|
|
|
+ [/\\alpha /g, '\u03B1'],
|
|
|
+ [/\\beta /g, '\u03B2'],
|
|
|
+ [/\\gamma /g, '\u03B3'],
|
|
|
+ [/\\delta /g, '\u03B4'],
|
|
|
+ [/\\epsilon /g, '\u03B5'],
|
|
|
+ [/\\zeta /g, '\u03B6'],
|
|
|
+ [/\\eta /g, '\u03B7'],
|
|
|
+ [/\\texttheta /g, '\u03B8'],
|
|
|
+ [/\\iota /g, '\u03B9'],
|
|
|
+ [/\\kappa /g, '\u03BA'],
|
|
|
+ [/\\lambda /g, '\u03BB'],
|
|
|
+ [/\\mu /g, '\u03BC'],
|
|
|
+ [/\\nu /g, '\u03BD'],
|
|
|
+ [/\\xi /g, '\u03BE'],
|
|
|
+ [/\\pi /g, '\u03C0'],
|
|
|
+ [/\\rho /g, '\u03C1'],
|
|
|
+ [/\\varsigma /g, '\u03C2'],
|
|
|
+ [/\\sigma /g, '\u03C3'],
|
|
|
+ [/\\tau /g, '\u03C4'],
|
|
|
+ [/\\upsilon /g, '\u03C5'],
|
|
|
+ [/\\varphi /g, '\u03C6'],
|
|
|
+ [/\\chi /g, '\u03C7'],
|
|
|
+ [/\\psi /g, '\u03C8'],
|
|
|
+ [/\\omega /g, '\u03C9'],
|
|
|
+ [/\\ddot\{\\iota\}/g, '\u03CA'],
|
|
|
+ [/\\ddot\{\\upsilon\}/g, '\u03CB'],
|
|
|
+ [/\\'\{o\}/g, '\u03CC'],
|
|
|
+ [/\\acute\{\\upsilon\}/g, '\u03CD'],
|
|
|
+ [/\\acute\{\\omega\}/g, '\u03CE'],
|
|
|
+ [/\\Pisymbol\{ppi022\}\{87\}/g, '\u03D0'],
|
|
|
+ [/\\textvartheta /g, '\u03D1'],
|
|
|
+ [/\\Upsilon /g, '\u03D2'],
|
|
|
+ [/\\phi /g, '\u03D5'],
|
|
|
+ [/\\varpi /g, '\u03D6'],
|
|
|
+ [/\\Stigma /g, '\u03DA'],
|
|
|
+ [/\\Digamma /g, '\u03DC'],
|
|
|
+ [/\\digamma /g, '\u03DD'],
|
|
|
+ [/\\Koppa /g, '\u03DE'],
|
|
|
+ [/\\Sampi /g, '\u03E0'],
|
|
|
+ [/\\varkappa /g, '\u03F0'],
|
|
|
+ [/\\varrho /g, '\u03F1'],
|
|
|
+ [/\\textTheta /g, '\u03F4'],
|
|
|
+ [/\\backepsilon /g, '\u03F6'],
|
|
|
+ [/\\cyrchar\\CYRYO /g, '\u0401'],
|
|
|
+ [/\\cyrchar\\CYRDJE /g, '\u0402'],
|
|
|
+ [/\\cyrchar\{\\'\\CYRG\}/g, '\u0403'],
|
|
|
+ [/\\cyrchar\\CYRIE /g, '\u0404'],
|
|
|
+ [/\\cyrchar\\CYRDZE /g, '\u0405'],
|
|
|
+ [/\\cyrchar\\CYRII /g, '\u0406'],
|
|
|
+ [/\\cyrchar\\CYRYI /g, '\u0407'],
|
|
|
+ [/\\cyrchar\\CYRJE /g, '\u0408'],
|
|
|
+ [/\\cyrchar\\CYRLJE /g, '\u0409'],
|
|
|
+ [/\\cyrchar\\CYRNJE /g, '\u040A'],
|
|
|
+ [/\\cyrchar\\CYRTSHE /g, '\u040B'],
|
|
|
+ [/\\cyrchar\{\\'\\CYRK\}/g, '\u040C'],
|
|
|
+ [/\\cyrchar\\CYRUSHRT /g, '\u040E'],
|
|
|
+ [/\\cyrchar\\CYRDZHE /g, '\u040F'],
|
|
|
+ [/\\cyrchar\\CYRA /g, '\u0410'],
|
|
|
+ [/\\cyrchar\\CYRB /g, '\u0411'],
|
|
|
+ [/\\cyrchar\\CYRV /g, '\u0412'],
|
|
|
+ [/\\cyrchar\\CYRG /g, '\u0413'],
|
|
|
+ [/\\cyrchar\\CYRD /g, '\u0414'],
|
|
|
+ [/\\cyrchar\\CYRE /g, '\u0415'],
|
|
|
+ [/\\cyrchar\\CYRZH /g, '\u0416'],
|
|
|
+ [/\\cyrchar\\CYRZ /g, '\u0417'],
|
|
|
+ [/\\cyrchar\\CYRI /g, '\u0418'],
|
|
|
+ [/\\cyrchar\\CYRISHRT /g, '\u0419'],
|
|
|
+ [/\\cyrchar\\CYRK /g, '\u041A'],
|
|
|
+ [/\\cyrchar\\CYRL /g, '\u041B'],
|
|
|
+ [/\\cyrchar\\CYRM /g, '\u041C'],
|
|
|
+ [/\\cyrchar\\CYRN /g, '\u041D'],
|
|
|
+ [/\\cyrchar\\CYRO /g, '\u041E'],
|
|
|
+ [/\\cyrchar\\CYRP /g, '\u041F'],
|
|
|
+ [/\\cyrchar\\CYRR /g, '\u0420'],
|
|
|
+ [/\\cyrchar\\CYRS /g, '\u0421'],
|
|
|
+ [/\\cyrchar\\CYRT /g, '\u0422'],
|
|
|
+ [/\\cyrchar\\CYRU /g, '\u0423'],
|
|
|
+ [/\\cyrchar\\CYRF /g, '\u0424'],
|
|
|
+ [/\\cyrchar\\CYRH /g, '\u0425'],
|
|
|
+ [/\\cyrchar\\CYRC /g, '\u0426'],
|
|
|
+ [/\\cyrchar\\CYRCH /g, '\u0427'],
|
|
|
+ [/\\cyrchar\\CYRSH /g, '\u0428'],
|
|
|
+ [/\\cyrchar\\CYRSHCH /g, '\u0429'],
|
|
|
+ [/\\cyrchar\\CYRHRDSN /g, '\u042A'],
|
|
|
+ [/\\cyrchar\\CYRERY /g, '\u042B'],
|
|
|
+ [/\\cyrchar\\CYRSFTSN /g, '\u042C'],
|
|
|
+ [/\\cyrchar\\CYREREV /g, '\u042D'],
|
|
|
+ [/\\cyrchar\\CYRYU /g, '\u042E'],
|
|
|
+ [/\\cyrchar\\CYRYA /g, '\u042F'],
|
|
|
+ [/\\cyrchar\\cyra /g, '\u0430'],
|
|
|
+ [/\\cyrchar\\cyrb /g, '\u0431'],
|
|
|
+ [/\\cyrchar\\cyrv /g, '\u0432'],
|
|
|
+ [/\\cyrchar\\cyrg /g, '\u0433'],
|
|
|
+ [/\\cyrchar\\cyrd /g, '\u0434'],
|
|
|
+ [/\\cyrchar\\cyre /g, '\u0435'],
|
|
|
+ [/\\cyrchar\\cyrzh /g, '\u0436'],
|
|
|
+ [/\\cyrchar\\cyrz /g, '\u0437'],
|
|
|
+ [/\\cyrchar\\cyri /g, '\u0438'],
|
|
|
+ [/\\cyrchar\\cyrishrt /g, '\u0439'],
|
|
|
+ [/\\cyrchar\\cyrk /g, '\u043A'],
|
|
|
+ [/\\cyrchar\\cyrl /g, '\u043B'],
|
|
|
+ [/\\cyrchar\\cyrm /g, '\u043C'],
|
|
|
+ [/\\cyrchar\\cyrn /g, '\u043D'],
|
|
|
+ [/\\cyrchar\\cyro /g, '\u043E'],
|
|
|
+ [/\\cyrchar\\cyrp /g, '\u043F'],
|
|
|
+ [/\\cyrchar\\cyrr /g, '\u0440'],
|
|
|
+ [/\\cyrchar\\cyrs /g, '\u0441'],
|
|
|
+ [/\\cyrchar\\cyrt /g, '\u0442'],
|
|
|
+ [/\\cyrchar\\cyru /g, '\u0443'],
|
|
|
+ [/\\cyrchar\\cyrf /g, '\u0444'],
|
|
|
+ [/\\cyrchar\\cyrh /g, '\u0445'],
|
|
|
+ [/\\cyrchar\\cyrc /g, '\u0446'],
|
|
|
+ [/\\cyrchar\\cyrch /g, '\u0447'],
|
|
|
+ [/\\cyrchar\\cyrsh /g, '\u0448'],
|
|
|
+ [/\\cyrchar\\cyrshch /g, '\u0449'],
|
|
|
+ [/\\cyrchar\\cyrhrdsn /g, '\u044A'],
|
|
|
+ [/\\cyrchar\\cyrery /g, '\u044B'],
|
|
|
+ [/\\cyrchar\\cyrsftsn /g, '\u044C'],
|
|
|
+ [/\\cyrchar\\cyrerev /g, '\u044D'],
|
|
|
+ [/\\cyrchar\\cyryu /g, '\u044E'],
|
|
|
+ [/\\cyrchar\\cyrya /g, '\u044F'],
|
|
|
+ [/\\cyrchar\\cyryo /g, '\u0451'],
|
|
|
+ [/\\cyrchar\\cyrdje /g, '\u0452'],
|
|
|
+ [/\\cyrchar\{\\'\\cyrg\}/g, '\u0453'],
|
|
|
+ [/\\cyrchar\\cyrie /g, '\u0454'],
|
|
|
+ [/\\cyrchar\\cyrdze /g, '\u0455'],
|
|
|
+ [/\\cyrchar\\cyrii /g, '\u0456'],
|
|
|
+ [/\\cyrchar\\cyryi /g, '\u0457'],
|
|
|
+ [/\\cyrchar\\cyrje /g, '\u0458'],
|
|
|
+ [/\\cyrchar\\cyrlje /g, '\u0459'],
|
|
|
+ [/\\cyrchar\\cyrnje /g, '\u045A'],
|
|
|
+ [/\\cyrchar\\cyrtshe /g, '\u045B'],
|
|
|
+ [/\\cyrchar\{\\'\\cyrk\}/g, '\u045C'],
|
|
|
+ [/\\cyrchar\\cyrushrt /g, '\u045E'],
|
|
|
+ [/\\cyrchar\\cyrdzhe /g, '\u045F'],
|
|
|
+ [/\\cyrchar\\CYROMEGA /g, '\u0460'],
|
|
|
+ [/\\cyrchar\\cyromega /g, '\u0461'],
|
|
|
+ [/\\cyrchar\\CYRYAT /g, '\u0462'],
|
|
|
+ [/\\cyrchar\\CYRIOTE /g, '\u0464'],
|
|
|
+ [/\\cyrchar\\cyriote /g, '\u0465'],
|
|
|
+ [/\\cyrchar\\CYRLYUS /g, '\u0466'],
|
|
|
+ [/\\cyrchar\\cyrlyus /g, '\u0467'],
|
|
|
+ [/\\cyrchar\\CYRIOTLYUS /g, '\u0468'],
|
|
|
+ [/\\cyrchar\\cyriotlyus /g, '\u0469'],
|
|
|
+ [/\\cyrchar\\CYRBYUS /g, '\u046A'],
|
|
|
+ [/\\cyrchar\\CYRIOTBYUS /g, '\u046C'],
|
|
|
+ [/\\cyrchar\\cyriotbyus /g, '\u046D'],
|
|
|
+ [/\\cyrchar\\CYRKSI /g, '\u046E'],
|
|
|
+ [/\\cyrchar\\cyrksi /g, '\u046F'],
|
|
|
+ [/\\cyrchar\\CYRPSI /g, '\u0470'],
|
|
|
+ [/\\cyrchar\\cyrpsi /g, '\u0471'],
|
|
|
+ [/\\cyrchar\\CYRFITA /g, '\u0472'],
|
|
|
+ [/\\cyrchar\\CYRIZH /g, '\u0474'],
|
|
|
+ [/\\cyrchar\\CYRUK /g, '\u0478'],
|
|
|
+ [/\\cyrchar\\cyruk /g, '\u0479'],
|
|
|
+ [/\\cyrchar\\CYROMEGARND /g, '\u047A'],
|
|
|
+ [/\\cyrchar\\cyromegarnd /g, '\u047B'],
|
|
|
+ [/\\cyrchar\\CYROMEGATITLO /g, '\u047C'],
|
|
|
+ [/\\cyrchar\\cyromegatitlo /g, '\u047D'],
|
|
|
+ [/\\cyrchar\\CYROT /g, '\u047E'],
|
|
|
+ [/\\cyrchar\\cyrot /g, '\u047F'],
|
|
|
+ [/\\cyrchar\\CYRKOPPA /g, '\u0480'],
|
|
|
+ [/\\cyrchar\\cyrkoppa /g, '\u0481'],
|
|
|
+ [/\\cyrchar\\cyrthousands /g, '\u0482'],
|
|
|
+ [/\\cyrchar\\cyrhundredthousands /g, '\u0488'],
|
|
|
+ [/\\cyrchar\\cyrmillions /g, '\u0489'],
|
|
|
+ [/\\cyrchar\\CYRSEMISFTSN /g, '\u048C'],
|
|
|
+ [/\\cyrchar\\cyrsemisftsn /g, '\u048D'],
|
|
|
+ [/\\cyrchar\\CYRRTICK /g, '\u048E'],
|
|
|
+ [/\\cyrchar\\cyrrtick /g, '\u048F'],
|
|
|
+ [/\\cyrchar\\CYRGUP /g, '\u0490'],
|
|
|
+ [/\\cyrchar\\cyrgup /g, '\u0491'],
|
|
|
+ [/\\cyrchar\\CYRGHCRS /g, '\u0492'],
|
|
|
+ [/\\cyrchar\\cyrghcrs /g, '\u0493'],
|
|
|
+ [/\\cyrchar\\CYRGHK /g, '\u0494'],
|
|
|
+ [/\\cyrchar\\cyrghk /g, '\u0495'],
|
|
|
+ [/\\cyrchar\\CYRZHDSC /g, '\u0496'],
|
|
|
+ [/\\cyrchar\\cyrzhdsc /g, '\u0497'],
|
|
|
+ [/\\cyrchar\\CYRZDSC /g, '\u0498'],
|
|
|
+ [/\\cyrchar\\cyrzdsc /g, '\u0499'],
|
|
|
+ [/\\cyrchar\\CYRKDSC /g, '\u049A'],
|
|
|
+ [/\\cyrchar\\cyrkdsc /g, '\u049B'],
|
|
|
+ [/\\cyrchar\\CYRKVCRS /g, '\u049C'],
|
|
|
+ [/\\cyrchar\\cyrkvcrs /g, '\u049D'],
|
|
|
+ [/\\cyrchar\\CYRKHCRS /g, '\u049E'],
|
|
|
+ [/\\cyrchar\\cyrkhcrs /g, '\u049F'],
|
|
|
+ [/\\cyrchar\\CYRKBEAK /g, '\u04A0'],
|
|
|
+ [/\\cyrchar\\cyrkbeak /g, '\u04A1'],
|
|
|
+ [/\\cyrchar\\CYRNDSC /g, '\u04A2'],
|
|
|
+ [/\\cyrchar\\cyrndsc /g, '\u04A3'],
|
|
|
+ [/\\cyrchar\\CYRNG /g, '\u04A4'],
|
|
|
+ [/\\cyrchar\\cyrng /g, '\u04A5'],
|
|
|
+ [/\\cyrchar\\CYRPHK /g, '\u04A6'],
|
|
|
+ [/\\cyrchar\\cyrphk /g, '\u04A7'],
|
|
|
+ [/\\cyrchar\\CYRABHHA /g, '\u04A8'],
|
|
|
+ [/\\cyrchar\\cyrabhha /g, '\u04A9'],
|
|
|
+ [/\\cyrchar\\CYRSDSC /g, '\u04AA'],
|
|
|
+ [/\\cyrchar\\cyrsdsc /g, '\u04AB'],
|
|
|
+ [/\\cyrchar\\CYRTDSC /g, '\u04AC'],
|
|
|
+ [/\\cyrchar\\cyrtdsc /g, '\u04AD'],
|
|
|
+ [/\\cyrchar\\CYRY /g, '\u04AE'],
|
|
|
+ [/\\cyrchar\\cyry /g, '\u04AF'],
|
|
|
+ [/\\cyrchar\\CYRYHCRS /g, '\u04B0'],
|
|
|
+ [/\\cyrchar\\cyryhcrs /g, '\u04B1'],
|
|
|
+ [/\\cyrchar\\CYRHDSC /g, '\u04B2'],
|
|
|
+ [/\\cyrchar\\cyrhdsc /g, '\u04B3'],
|
|
|
+ [/\\cyrchar\\CYRTETSE /g, '\u04B4'],
|
|
|
+ [/\\cyrchar\\cyrtetse /g, '\u04B5'],
|
|
|
+ [/\\cyrchar\\CYRCHRDSC /g, '\u04B6'],
|
|
|
+ [/\\cyrchar\\cyrchrdsc /g, '\u04B7'],
|
|
|
+ [/\\cyrchar\\CYRCHVCRS /g, '\u04B8'],
|
|
|
+ [/\\cyrchar\\cyrchvcrs /g, '\u04B9'],
|
|
|
+ [/\\cyrchar\\CYRSHHA /g, '\u04BA'],
|
|
|
+ [/\\cyrchar\\cyrshha /g, '\u04BB'],
|
|
|
+ [/\\cyrchar\\CYRABHCH /g, '\u04BC'],
|
|
|
+ [/\\cyrchar\\cyrabhch /g, '\u04BD'],
|
|
|
+ [/\\cyrchar\\CYRABHCHDSC /g, '\u04BE'],
|
|
|
+ [/\\cyrchar\\cyrabhchdsc /g, '\u04BF'],
|
|
|
+ [/\\cyrchar\\CYRpalochka /g, '\u04C0'],
|
|
|
+ [/\\cyrchar\\CYRKHK /g, '\u04C3'],
|
|
|
+ [/\\cyrchar\\cyrkhk /g, '\u04C4'],
|
|
|
+ [/\\cyrchar\\CYRNHK /g, '\u04C7'],
|
|
|
+ [/\\cyrchar\\cyrnhk /g, '\u04C8'],
|
|
|
+ [/\\cyrchar\\CYRCHLDSC /g, '\u04CB'],
|
|
|
+ [/\\cyrchar\\cyrchldsc /g, '\u04CC'],
|
|
|
+ [/\\cyrchar\\CYRAE /g, '\u04D4'],
|
|
|
+ [/\\cyrchar\\cyrae /g, '\u04D5'],
|
|
|
+ [/\\cyrchar\\CYRSCHWA /g, '\u04D8'],
|
|
|
+ [/\\cyrchar\\cyrschwa /g, '\u04D9'],
|
|
|
+ [/\\cyrchar\\CYRABHDZE /g, '\u04E0'],
|
|
|
+ [/\\cyrchar\\cyrabhdze /g, '\u04E1'],
|
|
|
+ [/\\cyrchar\\CYROTLD /g, '\u04E8'],
|
|
|
+ [/\\cyrchar\\cyrotld /g, '\u04E9'],
|
|
|
+ [/\\hspace\{0.6em\}/g, '\u2002'],
|
|
|
+ [/\\hspace\{1em\}/g, '\u2003'],
|
|
|
+ [/\\hspace\{0.33em\}/g, '\u2004'],
|
|
|
+ [/\\hspace\{0.25em\}/g, '\u2005'],
|
|
|
+ [/\\hspace\{0.166em\}/g, '\u2006'],
|
|
|
+ [/\\hphantom\{0\}/g, '\u2007'],
|
|
|
+ [/\\hphantom\{,\}/g, '\u2008'],
|
|
|
+ [/\\hspace\{0.167em\}/g, '\u2009'],
|
|
|
+ [/\\mkern1mu /g, '\u200A'],
|
|
|
+ [/\\textendash /g, '\u2013'],
|
|
|
+ [/\\textemdash /g, '\u2014'],
|
|
|
+ [/\\rule\{1em\}\{1pt\}/g, '\u2015'],
|
|
|
+ [/\\Vert /g, '\u2016'],
|
|
|
+ [/\\Elzreapos /g, '\u201B'],
|
|
|
+ [/\\textquotedblleft /g, '\u201C'],
|
|
|
+ [/\\textquotedblright /g, '\u201D'],
|
|
|
+ [/\\textdagger /g, '\u2020'],
|
|
|
+ [/\\textdaggerdbl /g, '\u2021'],
|
|
|
+ [/\\textbullet /g, '\u2022'],
|
|
|
+ [/\\ldots /g, '\u2026'],
|
|
|
+ [/\\textperthousand /g, '\u2030'],
|
|
|
+ [/\\textpertenthousand /g, '\u2031'],
|
|
|
+ [/\\backprime /g, '\u2035'],
|
|
|
+ [/\\guilsinglleft /g, '\u2039'],
|
|
|
+ [/\\guilsinglright /g, '\u203A'],
|
|
|
+ [/\\mkern4mu /g, '\u205F'],
|
|
|
+ [/\\nolinebreak /g, '\u2060'],
|
|
|
+ [/\\ensuremath\{\\Elzpes\}/g, '\u20A7'],
|
|
|
+ [/\\mbox\{\\texteuro\} /g, '\u20AC'],
|
|
|
+ [/\\dddot /g, '\u20DB'],
|
|
|
+ [/\\ddddot /g, '\u20DC'],
|
|
|
+ [/\\mathbb\{C\}/g, '\u2102'],
|
|
|
+ [/\\mathscr\{g\}/g, '\u210A'],
|
|
|
+ [/\\mathscr\{H\}/g, '\u210B'],
|
|
|
+ [/\\mathfrak\{H\}/g, '\u210C'],
|
|
|
+ [/\\mathbb\{H\}/g, '\u210D'],
|
|
|
+ [/\\hslash /g, '\u210F'],
|
|
|
+ [/\\mathscr\{I\}/g, '\u2110'],
|
|
|
+ [/\\mathfrak\{I\}/g, '\u2111'],
|
|
|
+ [/\\mathscr\{L\}/g, '\u2112'],
|
|
|
+ [/\\mathscr\{l\}/g, '\u2113'],
|
|
|
+ [/\\mathbb\{N\}/g, '\u2115'],
|
|
|
+ [/\\cyrchar\\textnumero /g, '\u2116'],
|
|
|
+ [/\\wp /g, '\u2118'],
|
|
|
+ [/\\mathbb\{P\}/g, '\u2119'],
|
|
|
+ [/\\mathbb\{Q\}/g, '\u211A'],
|
|
|
+ [/\\mathscr\{R\}/g, '\u211B'],
|
|
|
+ [/\\mathfrak\{R\}/g, '\u211C'],
|
|
|
+ [/\\mathbb\{R\}/g, '\u211D'],
|
|
|
+ [/\\Elzxrat /g, '\u211E'],
|
|
|
+ [/\\texttrademark /g, '\u2122'],
|
|
|
+ [/\\mathbb\{Z\}/g, '\u2124'],
|
|
|
+ [/\\Omega /g, '\u2126'],
|
|
|
+ [/\\mho /g, '\u2127'],
|
|
|
+ [/\\mathfrak\{Z\}/g, '\u2128'],
|
|
|
+ [/\\ElsevierGlyph\{2129\}/g, '\u2129'],
|
|
|
+ [/\\AA /g, '\u212B'],
|
|
|
+ [/\\mathscr\{B\}/g, '\u212C'],
|
|
|
+ [/\\mathfrak\{C\}/g, '\u212D'],
|
|
|
+ [/\\mathscr\{e\}/g, '\u212F'],
|
|
|
+ [/\\mathscr\{E\}/g, '\u2130'],
|
|
|
+ [/\\mathscr\{F\}/g, '\u2131'],
|
|
|
+ [/\\mathscr\{M\}/g, '\u2133'],
|
|
|
+ [/\\mathscr\{o\}/g, '\u2134'],
|
|
|
+ [/\\aleph /g, '\u2135'],
|
|
|
+ [/\\beth /g, '\u2136'],
|
|
|
+ [/\\gimel /g, '\u2137'],
|
|
|
+ [/\\daleth /g, '\u2138'],
|
|
|
+ [/\\textfrac\{1\}\{3\}/g, '\u2153'],
|
|
|
+ [/\\textfrac\{2\}\{3\}/g, '\u2154'],
|
|
|
+ [/\\textfrac\{1\}\{5\}/g, '\u2155'],
|
|
|
+ [/\\textfrac\{2\}\{5\}/g, '\u2156'],
|
|
|
+ [/\\textfrac\{3\}\{5\}/g, '\u2157'],
|
|
|
+ [/\\textfrac\{4\}\{5\}/g, '\u2158'],
|
|
|
+ [/\\textfrac\{1\}\{6\}/g, '\u2159'],
|
|
|
+ [/\\textfrac\{5\}\{6\}/g, '\u215A'],
|
|
|
+ [/\\textfrac\{1\}\{8\}/g, '\u215B'],
|
|
|
+ [/\\textfrac\{3\}\{8\}/g, '\u215C'],
|
|
|
+ [/\\textfrac\{5\}\{8\}/g, '\u215D'],
|
|
|
+ [/\\textfrac\{7\}\{8\}/g, '\u215E'],
|
|
|
+ [/\\leftarrow /g, '\u2190'],
|
|
|
+ [/\\uparrow /g, '\u2191'],
|
|
|
+ [/\\rightarrow /g, '\u2192'],
|
|
|
+ [/\\downarrow /g, '\u2193'],
|
|
|
+ [/\\leftrightarrow /g, '\u2194'],
|
|
|
+ [/\\updownarrow /g, '\u2195'],
|
|
|
+ [/\\nwarrow /g, '\u2196'],
|
|
|
+ [/\\nearrow /g, '\u2197'],
|
|
|
+ [/\\searrow /g, '\u2198'],
|
|
|
+ [/\\swarrow /g, '\u2199'],
|
|
|
+ [/\\nleftarrow /g, '\u219A'],
|
|
|
+ [/\\nrightarrow /g, '\u219B'],
|
|
|
+ [/\\arrowwaveright /g, '\u219C'],
|
|
|
+ [/\\arrowwaveright /g, '\u219D'],
|
|
|
+ [/\\twoheadleftarrow /g, '\u219E'],
|
|
|
+ [/\\twoheadrightarrow /g, '\u21A0'],
|
|
|
+ [/\\leftarrowtail /g, '\u21A2'],
|
|
|
+ [/\\rightarrowtail /g, '\u21A3'],
|
|
|
+ [/\\mapsto /g, '\u21A6'],
|
|
|
+ [/\\hookleftarrow /g, '\u21A9'],
|
|
|
+ [/\\hookrightarrow /g, '\u21AA'],
|
|
|
+ [/\\looparrowleft /g, '\u21AB'],
|
|
|
+ [/\\looparrowright /g, '\u21AC'],
|
|
|
+ [/\\leftrightsquigarrow /g, '\u21AD'],
|
|
|
+ [/\\nleftrightarrow /g, '\u21AE'],
|
|
|
+ [/\\Lsh /g, '\u21B0'],
|
|
|
+ [/\\Rsh /g, '\u21B1'],
|
|
|
+ [/\\ElsevierGlyph\{21B3\}/g, '\u21B3'],
|
|
|
+ [/\\curvearrowleft /g, '\u21B6'],
|
|
|
+ [/\\curvearrowright /g, '\u21B7'],
|
|
|
+ [/\\circlearrowleft /g, '\u21BA'],
|
|
|
+ [/\\circlearrowright /g, '\u21BB'],
|
|
|
+ [/\\leftharpoonup /g, '\u21BC'],
|
|
|
+ [/\\leftharpoondown /g, '\u21BD'],
|
|
|
+ [/\\upharpoonright /g, '\u21BE'],
|
|
|
+ [/\\upharpoonleft /g, '\u21BF'],
|
|
|
+ [/\\rightharpoonup /g, '\u21C0'],
|
|
|
+ [/\\rightharpoondown /g, '\u21C1'],
|
|
|
+ [/\\downharpoonright /g, '\u21C2'],
|
|
|
+ [/\\downharpoonleft /g, '\u21C3'],
|
|
|
+ [/\\rightleftarrows /g, '\u21C4'],
|
|
|
+ [/\\dblarrowupdown /g, '\u21C5'],
|
|
|
+ [/\\leftrightarrows /g, '\u21C6'],
|
|
|
+ [/\\leftleftarrows /g, '\u21C7'],
|
|
|
+ [/\\upuparrows /g, '\u21C8'],
|
|
|
+ [/\\rightrightarrows /g, '\u21C9'],
|
|
|
+ [/\\downdownarrows /g, '\u21CA'],
|
|
|
+ [/\\leftrightharpoons /g, '\u21CB'],
|
|
|
+ [/\\rightleftharpoons /g, '\u21CC'],
|
|
|
+ [/\\nLeftarrow /g, '\u21CD'],
|
|
|
+ [/\\nLeftrightarrow /g, '\u21CE'],
|
|
|
+ [/\\nRightarrow /g, '\u21CF'],
|
|
|
+ [/\\Leftarrow /g, '\u21D0'],
|
|
|
+ [/\\Uparrow /g, '\u21D1'],
|
|
|
+ [/\\Rightarrow /g, '\u21D2'],
|
|
|
+ [/\\Downarrow /g, '\u21D3'],
|
|
|
+ [/\\Leftrightarrow /g, '\u21D4'],
|
|
|
+ [/\\Updownarrow /g, '\u21D5'],
|
|
|
+ [/\\Lleftarrow /g, '\u21DA'],
|
|
|
+ [/\\Rrightarrow /g, '\u21DB'],
|
|
|
+ [/\\rightsquigarrow /g, '\u21DD'],
|
|
|
+ [/\\DownArrowUpArrow /g, '\u21F5'],
|
|
|
+ [/\\forall /g, '\u2200'],
|
|
|
+ [/\\complement /g, '\u2201'],
|
|
|
+ [/\\partial /g, '\u2202'],
|
|
|
+ [/\\exists /g, '\u2203'],
|
|
|
+ [/\\nexists /g, '\u2204'],
|
|
|
+ [/\\varnothing /g, '\u2205'],
|
|
|
+ [/\\nabla /g, '\u2207'],
|
|
|
+ [/\\in /g, '\u2208'],
|
|
|
+ [/\\not\\in /g, '\u2209'],
|
|
|
+ [/\\ni /g, '\u220B'],
|
|
|
+ [/\\not\\ni /g, '\u220C'],
|
|
|
+ [/\\prod /g, '\u220F'],
|
|
|
+ [/\\coprod /g, '\u2210'],
|
|
|
+ [/\\sum /g, '\u2211'],
|
|
|
+ [/\\mp /g, '\u2213'],
|
|
|
+ [/\\dotplus /g, '\u2214'],
|
|
|
+ [/\\setminus /g, '\u2216'],
|
|
|
+ [/\\circ /g, '\u2218'],
|
|
|
+ [/\\bullet /g, '\u2219'],
|
|
|
+ [/\\surd /g, '\u221A'],
|
|
|
+ [/\\propto /g, '\u221D'],
|
|
|
+ [/\\infty /g, '\u221E'],
|
|
|
+ [/\\rightangle /g, '\u221F'],
|
|
|
+ [/\\angle /g, '\u2220'],
|
|
|
+ [/\\measuredangle /g, '\u2221'],
|
|
|
+ [/\\sphericalangle /g, '\u2222'],
|
|
|
+ [/\\mid /g, '\u2223'],
|
|
|
+ [/\\nmid /g, '\u2224'],
|
|
|
+ [/\\parallel /g, '\u2225'],
|
|
|
+ [/\\nparallel /g, '\u2226'],
|
|
|
+ [/\\wedge /g, '\u2227'],
|
|
|
+ [/\\vee /g, '\u2228'],
|
|
|
+ [/\\cap /g, '\u2229'],
|
|
|
+ [/\\cup /g, '\u222A'],
|
|
|
+ [/\\int /g, '\u222B'],
|
|
|
+ [/\\int\\!\\int /g, '\u222C'],
|
|
|
+ [/\\int\\!\\int\\!\\int /g, '\u222D'],
|
|
|
+ [/\\oint /g, '\u222E'],
|
|
|
+ [/\\surfintegral /g, '\u222F'],
|
|
|
+ [/\\volintegral /g, '\u2230'],
|
|
|
+ [/\\clwintegral /g, '\u2231'],
|
|
|
+ [/\\ElsevierGlyph\{2232\}/g, '\u2232'],
|
|
|
+ [/\\ElsevierGlyph\{2233\}/g, '\u2233'],
|
|
|
+ [/\\therefore /g, '\u2234'],
|
|
|
+ [/\\because /g, '\u2235'],
|
|
|
+ [/\\Colon /g, '\u2237'],
|
|
|
+ [/\\ElsevierGlyph\{2238\}/g, '\u2238'],
|
|
|
+ [/\\mathbin\{\{:\}\\!\\!\{\-\}\\!\\!\{:\}\}/g, '\u223A'],
|
|
|
+ [/\\homothetic /g, '\u223B'],
|
|
|
+ [/\\sim /g, '\u223C'],
|
|
|
+ [/\\backsim /g, '\u223D'],
|
|
|
+ [/\\lazysinv /g, '\u223E'],
|
|
|
+ [/\\wr /g, '\u2240'],
|
|
|
+ [/\\not\\sim /g, '\u2241'],
|
|
|
+ [/\\ElsevierGlyph\{2242\}/g, '\u2242'],
|
|
|
+ [/\\NotEqualTilde /g, '\u2242-00338'],
|
|
|
+ [/\\simeq /g, '\u2243'],
|
|
|
+ [/\\not\\simeq /g, '\u2244'],
|
|
|
+ [/\\cong /g, '\u2245'],
|
|
|
+ [/\\approxnotequal /g, '\u2246'],
|
|
|
+ [/\\not\\cong /g, '\u2247'],
|
|
|
+ [/\\approx /g, '\u2248'],
|
|
|
+ [/\\not\\approx /g, '\u2249'],
|
|
|
+ [/\\approxeq /g, '\u224A'],
|
|
|
+ [/\\tildetrpl /g, '\u224B'],
|
|
|
+ [/\\not\\apid /g, '\u224B-00338'],
|
|
|
+ [/\\allequal /g, '\u224C'],
|
|
|
+ [/\\asymp /g, '\u224D'],
|
|
|
+ [/\\Bumpeq /g, '\u224E'],
|
|
|
+ [/\\NotHumpDownHump /g, '\u224E-00338'],
|
|
|
+ [/\\bumpeq /g, '\u224F'],
|
|
|
+ [/\\NotHumpEqual /g, '\u224F-00338'],
|
|
|
+ [/\\doteq /g, '\u2250'],
|
|
|
+ [/\\not\\doteq/g, '\u2250-00338'],
|
|
|
+ [/\\doteqdot /g, '\u2251'],
|
|
|
+ [/\\fallingdotseq /g, '\u2252'],
|
|
|
+ [/\\risingdotseq /g, '\u2253'],
|
|
|
+ [/\\eqcirc /g, '\u2256'],
|
|
|
+ [/\\circeq /g, '\u2257'],
|
|
|
+ [/\\estimates /g, '\u2259'],
|
|
|
+ [/\\ElsevierGlyph\{225A\}/g, '\u225A'],
|
|
|
+ [/\\starequal /g, '\u225B'],
|
|
|
+ [/\\triangleq /g, '\u225C'],
|
|
|
+ [/\\ElsevierGlyph\{225F\}/g, '\u225F'],
|
|
|
+ [/\\not =/g, '\u2260'],
|
|
|
+ [/\\equiv /g, '\u2261'],
|
|
|
+ [/\\not\\equiv /g, '\u2262'],
|
|
|
+ [/\\leq /g, '\u2264'],
|
|
|
+ [/\\geq /g, '\u2265'],
|
|
|
+ [/\\leqq /g, '\u2266'],
|
|
|
+ [/\\geqq /g, '\u2267'],
|
|
|
+ [/\\lneqq /g, '\u2268'],
|
|
|
+ [/\\lvertneqq /g, '\u2268-0FE00'],
|
|
|
+ [/\\gneqq /g, '\u2269'],
|
|
|
+ [/\\gvertneqq /g, '\u2269-0FE00'],
|
|
|
+ [/\\ll /g, '\u226A'],
|
|
|
+ [/\\NotLessLess /g, '\u226A-00338'],
|
|
|
+ [/\\gg /g, '\u226B'],
|
|
|
+ [/\\NotGreaterGreater /g, '\u226B-00338'],
|
|
|
+ [/\\between /g, '\u226C'],
|
|
|
+ [/\\not\\kern\-0.3em\\times /g, '\u226D'],
|
|
|
+ [/\\not</g, '\u226E'],
|
|
|
+ [/\\not>/g, '\u226F'],
|
|
|
+ [/\\not\\leq /g, '\u2270'],
|
|
|
+ [/\\not\\geq /g, '\u2271'],
|
|
|
+ [/\\lessequivlnt /g, '\u2272'],
|
|
|
+ [/\\greaterequivlnt /g, '\u2273'],
|
|
|
+ [/\\ElsevierGlyph\{2274\}/g, '\u2274'],
|
|
|
+ [/\\ElsevierGlyph\{2275\}/g, '\u2275'],
|
|
|
+ [/\\lessgtr /g, '\u2276'],
|
|
|
+ [/\\gtrless /g, '\u2277'],
|
|
|
+ [/\\notlessgreater /g, '\u2278'],
|
|
|
+ [/\\notgreaterless /g, '\u2279'],
|
|
|
+ [/\\prec /g, '\u227A'],
|
|
|
+ [/\\succ /g, '\u227B'],
|
|
|
+ [/\\preccurlyeq /g, '\u227C'],
|
|
|
+ [/\\succcurlyeq /g, '\u227D'],
|
|
|
+ [/\\precapprox /g, '\u227E'],
|
|
|
+ [/\\NotPrecedesTilde /g, '\u227E-00338'],
|
|
|
+ [/\\succapprox /g, '\u227F'],
|
|
|
+ [/\\NotSucceedsTilde /g, '\u227F-00338'],
|
|
|
+ [/\\not\\prec /g, '\u2280'],
|
|
|
+ [/\\not\\succ /g, '\u2281'],
|
|
|
+ [/\\subset /g, '\u2282'],
|
|
|
+ [/\\supset /g, '\u2283'],
|
|
|
+ [/\\not\\subset /g, '\u2284'],
|
|
|
+ [/\\not\\supset /g, '\u2285'],
|
|
|
+ [/\\subseteq /g, '\u2286'],
|
|
|
+ [/\\supseteq /g, '\u2287'],
|
|
|
+ [/\\not\\subseteq /g, '\u2288'],
|
|
|
+ [/\\not\\supseteq /g, '\u2289'],
|
|
|
+ [/\\subsetneq /g, '\u228A'],
|
|
|
+ [/\\varsubsetneqq /g, '\u228A-0FE00'],
|
|
|
+ [/\\supsetneq /g, '\u228B'],
|
|
|
+ [/\\varsupsetneq /g, '\u228B-0FE00'],
|
|
|
+ [/\\uplus /g, '\u228E'],
|
|
|
+ [/\\sqsubset /g, '\u228F'],
|
|
|
+ [/\\NotSquareSubset /g, '\u228F-00338'],
|
|
|
+ [/\\sqsupset /g, '\u2290'],
|
|
|
+ [/\\NotSquareSuperset /g, '\u2290-00338'],
|
|
|
+ [/\\sqsubseteq /g, '\u2291'],
|
|
|
+ [/\\sqsupseteq /g, '\u2292'],
|
|
|
+ [/\\sqcap /g, '\u2293'],
|
|
|
+ [/\\sqcup /g, '\u2294'],
|
|
|
+ [/\\oplus /g, '\u2295'],
|
|
|
+ [/\\ominus /g, '\u2296'],
|
|
|
+ [/\\otimes /g, '\u2297'],
|
|
|
+ [/\\oslash /g, '\u2298'],
|
|
|
+ [/\\odot /g, '\u2299'],
|
|
|
+ [/\\circledcirc /g, '\u229A'],
|
|
|
+ [/\\circledast /g, '\u229B'],
|
|
|
+ [/\\circleddash /g, '\u229D'],
|
|
|
+ [/\\boxplus /g, '\u229E'],
|
|
|
+ [/\\boxminus /g, '\u229F'],
|
|
|
+ [/\\boxtimes /g, '\u22A0'],
|
|
|
+ [/\\boxdot /g, '\u22A1'],
|
|
|
+ [/\\vdash /g, '\u22A2'],
|
|
|
+ [/\\dashv /g, '\u22A3'],
|
|
|
+ [/\\top /g, '\u22A4'],
|
|
|
+ [/\\perp /g, '\u22A5'],
|
|
|
+ [/\\truestate /g, '\u22A7'],
|
|
|
+ [/\\forcesextra /g, '\u22A8'],
|
|
|
+ [/\\Vdash /g, '\u22A9'],
|
|
|
+ [/\\Vvdash /g, '\u22AA'],
|
|
|
+ [/\\VDash /g, '\u22AB'],
|
|
|
+ [/\\nvdash /g, '\u22AC'],
|
|
|
+ [/\\nvDash /g, '\u22AD'],
|
|
|
+ [/\\nVdash /g, '\u22AE'],
|
|
|
+ [/\\nVDash /g, '\u22AF'],
|
|
|
+ [/\\vartriangleleft /g, '\u22B2'],
|
|
|
+ [/\\vartriangleright /g, '\u22B3'],
|
|
|
+ [/\\trianglelefteq /g, '\u22B4'],
|
|
|
+ [/\\trianglerighteq /g, '\u22B5'],
|
|
|
+ [/\\original /g, '\u22B6'],
|
|
|
+ [/\\image /g, '\u22B7'],
|
|
|
+ [/\\multimap /g, '\u22B8'],
|
|
|
+ [/\\hermitconjmatrix /g, '\u22B9'],
|
|
|
+ [/\\intercal /g, '\u22BA'],
|
|
|
+ [/\\veebar /g, '\u22BB'],
|
|
|
+ [/\\rightanglearc /g, '\u22BE'],
|
|
|
+ [/\\ElsevierGlyph\{22C0\}/g, '\u22C0'],
|
|
|
+ [/\\ElsevierGlyph\{22C1\}/g, '\u22C1'],
|
|
|
+ [/\\bigcap /g, '\u22C2'],
|
|
|
+ [/\\bigcup /g, '\u22C3'],
|
|
|
+ [/\\diamond /g, '\u22C4'],
|
|
|
+ [/\\cdot /g, '\u22C5'],
|
|
|
+ [/\\star /g, '\u22C6'],
|
|
|
+ [/\\divideontimes /g, '\u22C7'],
|
|
|
+ [/\\bowtie /g, '\u22C8'],
|
|
|
+ [/\\ltimes /g, '\u22C9'],
|
|
|
+ [/\\rtimes /g, '\u22CA'],
|
|
|
+ [/\\leftthreetimes /g, '\u22CB'],
|
|
|
+ [/\\rightthreetimes /g, '\u22CC'],
|
|
|
+ [/\\backsimeq /g, '\u22CD'],
|
|
|
+ [/\\curlyvee /g, '\u22CE'],
|
|
|
+ [/\\curlywedge /g, '\u22CF'],
|
|
|
+ [/\\Subset /g, '\u22D0'],
|
|
|
+ [/\\Supset /g, '\u22D1'],
|
|
|
+ [/\\Cap /g, '\u22D2'],
|
|
|
+ [/\\Cup /g, '\u22D3'],
|
|
|
+ [/\\pitchfork /g, '\u22D4'],
|
|
|
+ [/\\lessdot /g, '\u22D6'],
|
|
|
+ [/\\gtrdot /g, '\u22D7'],
|
|
|
+ [/\\verymuchless /g, '\u22D8'],
|
|
|
+ [/\\verymuchgreater /g, '\u22D9'],
|
|
|
+ [/\\lesseqgtr /g, '\u22DA'],
|
|
|
+ [/\\gtreqless /g, '\u22DB'],
|
|
|
+ [/\\curlyeqprec /g, '\u22DE'],
|
|
|
+ [/\\curlyeqsucc /g, '\u22DF'],
|
|
|
+ [/\\not\\sqsubseteq /g, '\u22E2'],
|
|
|
+ [/\\not\\sqsupseteq /g, '\u22E3'],
|
|
|
+ [/\\Elzsqspne /g, '\u22E5'],
|
|
|
+ [/\\lnsim /g, '\u22E6'],
|
|
|
+ [/\\gnsim /g, '\u22E7'],
|
|
|
+ [/\\precedesnotsimilar /g, '\u22E8'],
|
|
|
+ [/\\succnsim /g, '\u22E9'],
|
|
|
+ [/\\ntriangleleft /g, '\u22EA'],
|
|
|
+ [/\\ntriangleright /g, '\u22EB'],
|
|
|
+ [/\\ntrianglelefteq /g, '\u22EC'],
|
|
|
+ [/\\ntrianglerighteq /g, '\u22ED'],
|
|
|
+ [/\\vdots /g, '\u22EE'],
|
|
|
+ [/\\cdots /g, '\u22EF'],
|
|
|
+ [/\\upslopeellipsis /g, '\u22F0'],
|
|
|
+ [/\\downslopeellipsis /g, '\u22F1'],
|
|
|
+ [/\\barwedge /g, '\u2305'],
|
|
|
+ [/\\perspcorrespond /g, '\u2306'],
|
|
|
+ [/\\lceil /g, '\u2308'],
|
|
|
+ [/\\rceil /g, '\u2309'],
|
|
|
+ [/\\lfloor /g, '\u230A'],
|
|
|
+ [/\\rfloor /g, '\u230B'],
|
|
|
+ [/\\recorder /g, '\u2315'],
|
|
|
+ [/\\mathchar"2208/g, '\u2316'],
|
|
|
+ [/\\ulcorner /g, '\u231C'],
|
|
|
+ [/\\urcorner /g, '\u231D'],
|
|
|
+ [/\\llcorner /g, '\u231E'],
|
|
|
+ [/\\lrcorner /g, '\u231F'],
|
|
|
+ [/\\frown /g, '\u2322'],
|
|
|
+ [/\\smile /g, '\u2323'],
|
|
|
+ [/\\langle /g, '\u2329'],
|
|
|
+ [/\\rangle /g, '\u232A'],
|
|
|
+ [/\\ElsevierGlyph\{E838\}/g, '\u233D'],
|
|
|
+ [/\\Elzdlcorn /g, '\u23A3'],
|
|
|
+ [/\\lmoustache /g, '\u23B0'],
|
|
|
+ [/\\rmoustache /g, '\u23B1'],
|
|
|
+ [/\\textvisiblespace /g, '\u2423'],
|
|
|
+ [/\\ding\{172\}/g, '\u2460'],
|
|
|
+ [/\\ding\{173\}/g, '\u2461'],
|
|
|
+ [/\\ding\{174\}/g, '\u2462'],
|
|
|
+ [/\\ding\{175\}/g, '\u2463'],
|
|
|
+ [/\\ding\{176\}/g, '\u2464'],
|
|
|
+ [/\\ding\{177\}/g, '\u2465'],
|
|
|
+ [/\\ding\{178\}/g, '\u2466'],
|
|
|
+ [/\\ding\{179\}/g, '\u2467'],
|
|
|
+ [/\\ding\{180\}/g, '\u2468'],
|
|
|
+ [/\\ding\{181\}/g, '\u2469'],
|
|
|
+ [/\\circledS /g, '\u24C8'],
|
|
|
+ [/\\Elzdshfnc /g, '\u2506'],
|
|
|
+ [/\\Elzsqfnw /g, '\u2519'],
|
|
|
+ [/\\diagup /g, '\u2571'],
|
|
|
+ [/\\ding\{110\}/g, '\u25A0'],
|
|
|
+ [/\\square /g, '\u25A1'],
|
|
|
+ [/\\blacksquare /g, '\u25AA'],
|
|
|
+ [/\\fbox\{~~\}/g, '\u25AD'],
|
|
|
+ [/\\Elzvrecto /g, '\u25AF'],
|
|
|
+ [/\\ElsevierGlyph\{E381\}/g, '\u25B1'],
|
|
|
+ [/\\ding\{115\}/g, '\u25B2'],
|
|
|
+ [/\\bigtriangleup /g, '\u25B3'],
|
|
|
+ [/\\blacktriangle /g, '\u25B4'],
|
|
|
+ [/\\vartriangle /g, '\u25B5'],
|
|
|
+ [/\\blacktriangleright /g, '\u25B8'],
|
|
|
+ [/\\triangleright /g, '\u25B9'],
|
|
|
+ [/\\ding\{116\}/g, '\u25BC'],
|
|
|
+ [/\\bigtriangledown /g, '\u25BD'],
|
|
|
+ [/\\blacktriangledown /g, '\u25BE'],
|
|
|
+ [/\\triangledown /g, '\u25BF'],
|
|
|
+ [/\\blacktriangleleft /g, '\u25C2'],
|
|
|
+ [/\\triangleleft /g, '\u25C3'],
|
|
|
+ [/\\ding\{117\}/g, '\u25C6'],
|
|
|
+ [/\\lozenge /g, '\u25CA'],
|
|
|
+ [/\\bigcirc /g, '\u25CB'],
|
|
|
+ [/\\ding\{108\}/g, '\u25CF'],
|
|
|
+ [/\\Elzcirfl /g, '\u25D0'],
|
|
|
+ [/\\Elzcirfr /g, '\u25D1'],
|
|
|
+ [/\\Elzcirfb /g, '\u25D2'],
|
|
|
+ [/\\ding\{119\}/g, '\u25D7'],
|
|
|
+ [/\\Elzrvbull /g, '\u25D8'],
|
|
|
+ [/\\Elzsqfl /g, '\u25E7'],
|
|
|
+ [/\\Elzsqfr /g, '\u25E8'],
|
|
|
+ [/\\Elzsqfse /g, '\u25EA'],
|
|
|
+ [/\\bigcirc /g, '\u25EF'],
|
|
|
+ [/\\ding\{72\}/g, '\u2605'],
|
|
|
+ [/\\ding\{73\}/g, '\u2606'],
|
|
|
+ [/\\ding\{37\}/g, '\u260E'],
|
|
|
+ [/\\ding\{42\}/g, '\u261B'],
|
|
|
+ [/\\ding\{43\}/g, '\u261E'],
|
|
|
+ [/\\rightmoon /g, '\u263E'],
|
|
|
+ [/\\mercury /g, '\u263F'],
|
|
|
+ [/\\venus /g, '\u2640'],
|
|
|
+ [/\\male /g, '\u2642'],
|
|
|
+ [/\\jupiter /g, '\u2643'],
|
|
|
+ [/\\saturn /g, '\u2644'],
|
|
|
+ [/\\uranus /g, '\u2645'],
|
|
|
+ [/\\neptune /g, '\u2646'],
|
|
|
+ [/\\pluto /g, '\u2647'],
|
|
|
+ [/\\aries /g, '\u2648'],
|
|
|
+ [/\\taurus /g, '\u2649'],
|
|
|
+ [/\\gemini /g, '\u264A'],
|
|
|
+ [/\\cancer /g, '\u264B'],
|
|
|
+ [/\\leo /g, '\u264C'],
|
|
|
+ [/\\virgo /g, '\u264D'],
|
|
|
+ [/\\libra /g, '\u264E'],
|
|
|
+ [/\\scorpio /g, '\u264F'],
|
|
|
+ [/\\sagittarius /g, '\u2650'],
|
|
|
+ [/\\capricornus /g, '\u2651'],
|
|
|
+ [/\\aquarius /g, '\u2652'],
|
|
|
+ [/\\pisces /g, '\u2653'],
|
|
|
+ [/\\ding\{171\}/g, '\u2660'],
|
|
|
+ [/\\diamond /g, '\u2662'],
|
|
|
+ [/\\ding\{168\}/g, '\u2663'],
|
|
|
+ [/\\ding\{170\}/g, '\u2665'],
|
|
|
+ [/\\ding\{169\}/g, '\u2666'],
|
|
|
+ [/\\quarternote /g, '\u2669'],
|
|
|
+ [/\\eighthnote /g, '\u266A'],
|
|
|
+ [/\\flat /g, '\u266D'],
|
|
|
+ [/\\natural /g, '\u266E'],
|
|
|
+ [/\\sharp /g, '\u266F'],
|
|
|
+ [/\\ding\{33\}/g, '\u2701'],
|
|
|
+ [/\\ding\{34\}/g, '\u2702'],
|
|
|
+ [/\\ding\{35\}/g, '\u2703'],
|
|
|
+ [/\\ding\{36\}/g, '\u2704'],
|
|
|
+ [/\\ding\{38\}/g, '\u2706'],
|
|
|
+ [/\\ding\{39\}/g, '\u2707'],
|
|
|
+ [/\\ding\{40\}/g, '\u2708'],
|
|
|
+ [/\\ding\{41\}/g, '\u2709'],
|
|
|
+ [/\\ding\{44\}/g, '\u270C'],
|
|
|
+ [/\\ding\{45\}/g, '\u270D'],
|
|
|
+ [/\\ding\{46\}/g, '\u270E'],
|
|
|
+ [/\\ding\{47\}/g, '\u270F'],
|
|
|
+ [/\\ding\{48\}/g, '\u2710'],
|
|
|
+ [/\\ding\{49\}/g, '\u2711'],
|
|
|
+ [/\\ding\{50\}/g, '\u2712'],
|
|
|
+ [/\\ding\{51\}/g, '\u2713'],
|
|
|
+ [/\\ding\{52\}/g, '\u2714'],
|
|
|
+ [/\\ding\{53\}/g, '\u2715'],
|
|
|
+ [/\\ding\{54\}/g, '\u2716'],
|
|
|
+ [/\\ding\{55\}/g, '\u2717'],
|
|
|
+ [/\\ding\{56\}/g, '\u2718'],
|
|
|
+ [/\\ding\{57\}/g, '\u2719'],
|
|
|
+ [/\\ding\{58\}/g, '\u271A'],
|
|
|
+ [/\\ding\{59\}/g, '\u271B'],
|
|
|
+ [/\\ding\{60\}/g, '\u271C'],
|
|
|
+ [/\\ding\{61\}/g, '\u271D'],
|
|
|
+ [/\\ding\{62\}/g, '\u271E'],
|
|
|
+ [/\\ding\{63\}/g, '\u271F'],
|
|
|
+ [/\\ding\{64\}/g, '\u2720'],
|
|
|
+ [/\\ding\{65\}/g, '\u2721'],
|
|
|
+ [/\\ding\{66\}/g, '\u2722'],
|
|
|
+ [/\\ding\{67\}/g, '\u2723'],
|
|
|
+ [/\\ding\{68\}/g, '\u2724'],
|
|
|
+ [/\\ding\{69\}/g, '\u2725'],
|
|
|
+ [/\\ding\{70\}/g, '\u2726'],
|
|
|
+ [/\\ding\{71\}/g, '\u2727'],
|
|
|
+ [/\\ding\{73\}/g, '\u2729'],
|
|
|
+ [/\\ding\{74\}/g, '\u272A'],
|
|
|
+ [/\\ding\{75\}/g, '\u272B'],
|
|
|
+ [/\\ding\{76\}/g, '\u272C'],
|
|
|
+ [/\\ding\{77\}/g, '\u272D'],
|
|
|
+ [/\\ding\{78\}/g, '\u272E'],
|
|
|
+ [/\\ding\{79\}/g, '\u272F'],
|
|
|
+ [/\\ding\{80\}/g, '\u2730'],
|
|
|
+ [/\\ding\{81\}/g, '\u2731'],
|
|
|
+ [/\\ding\{82\}/g, '\u2732'],
|
|
|
+ [/\\ding\{83\}/g, '\u2733'],
|
|
|
+ [/\\ding\{84\}/g, '\u2734'],
|
|
|
+ [/\\ding\{85\}/g, '\u2735'],
|
|
|
+ [/\\ding\{86\}/g, '\u2736'],
|
|
|
+ [/\\ding\{87\}/g, '\u2737'],
|
|
|
+ [/\\ding\{88\}/g, '\u2738'],
|
|
|
+ [/\\ding\{89\}/g, '\u2739'],
|
|
|
+ [/\\ding\{90\}/g, '\u273A'],
|
|
|
+ [/\\ding\{91\}/g, '\u273B'],
|
|
|
+ [/\\ding\{92\}/g, '\u273C'],
|
|
|
+ [/\\ding\{93\}/g, '\u273D'],
|
|
|
+ [/\\ding\{94\}/g, '\u273E'],
|
|
|
+ [/\\ding\{95\}/g, '\u273F'],
|
|
|
+ [/\\ding\{96\}/g, '\u2740'],
|
|
|
+ [/\\ding\{97\}/g, '\u2741'],
|
|
|
+ [/\\ding\{98\}/g, '\u2742'],
|
|
|
+ [/\\ding\{99\}/g, '\u2743'],
|
|
|
+ [/\\ding\{100\}/g, '\u2744'],
|
|
|
+ [/\\ding\{101\}/g, '\u2745'],
|
|
|
+ [/\\ding\{102\}/g, '\u2746'],
|
|
|
+ [/\\ding\{103\}/g, '\u2747'],
|
|
|
+ [/\\ding\{104\}/g, '\u2748'],
|
|
|
+ [/\\ding\{105\}/g, '\u2749'],
|
|
|
+ [/\\ding\{106\}/g, '\u274A'],
|
|
|
+ [/\\ding\{107\}/g, '\u274B'],
|
|
|
+ [/\\ding\{109\}/g, '\u274D'],
|
|
|
+ [/\\ding\{111\}/g, '\u274F'],
|
|
|
+ [/\\ding\{112\}/g, '\u2750'],
|
|
|
+ [/\\ding\{113\}/g, '\u2751'],
|
|
|
+ [/\\ding\{114\}/g, '\u2752'],
|
|
|
+ [/\\ding\{118\}/g, '\u2756'],
|
|
|
+ [/\\ding\{120\}/g, '\u2758'],
|
|
|
+ [/\\ding\{121\}/g, '\u2759'],
|
|
|
+ [/\\ding\{122\}/g, '\u275A'],
|
|
|
+ [/\\ding\{123\}/g, '\u275B'],
|
|
|
+ [/\\ding\{124\}/g, '\u275C'],
|
|
|
+ [/\\ding\{125\}/g, '\u275D'],
|
|
|
+ [/\\ding\{126\}/g, '\u275E'],
|
|
|
+ [/\\ding\{161\}/g, '\u2761'],
|
|
|
+ [/\\ding\{162\}/g, '\u2762'],
|
|
|
+ [/\\ding\{163\}/g, '\u2763'],
|
|
|
+ [/\\ding\{164\}/g, '\u2764'],
|
|
|
+ [/\\ding\{165\}/g, '\u2765'],
|
|
|
+ [/\\ding\{166\}/g, '\u2766'],
|
|
|
+ [/\\ding\{167\}/g, '\u2767'],
|
|
|
+ [/\\ding\{182\}/g, '\u2776'],
|
|
|
+ [/\\ding\{183\}/g, '\u2777'],
|
|
|
+ [/\\ding\{184\}/g, '\u2778'],
|
|
|
+ [/\\ding\{185\}/g, '\u2779'],
|
|
|
+ [/\\ding\{186\}/g, '\u277A'],
|
|
|
+ [/\\ding\{187\}/g, '\u277B'],
|
|
|
+ [/\\ding\{188\}/g, '\u277C'],
|
|
|
+ [/\\ding\{189\}/g, '\u277D'],
|
|
|
+ [/\\ding\{190\}/g, '\u277E'],
|
|
|
+ [/\\ding\{191\}/g, '\u277F'],
|
|
|
+ [/\\ding\{192\}/g, '\u2780'],
|
|
|
+ [/\\ding\{193\}/g, '\u2781'],
|
|
|
+ [/\\ding\{194\}/g, '\u2782'],
|
|
|
+ [/\\ding\{195\}/g, '\u2783'],
|
|
|
+ [/\\ding\{196\}/g, '\u2784'],
|
|
|
+ [/\\ding\{197\}/g, '\u2785'],
|
|
|
+ [/\\ding\{198\}/g, '\u2786'],
|
|
|
+ [/\\ding\{199\}/g, '\u2787'],
|
|
|
+ [/\\ding\{200\}/g, '\u2788'],
|
|
|
+ [/\\ding\{201\}/g, '\u2789'],
|
|
|
+ [/\\ding\{202\}/g, '\u278A'],
|
|
|
+ [/\\ding\{203\}/g, '\u278B'],
|
|
|
+ [/\\ding\{204\}/g, '\u278C'],
|
|
|
+ [/\\ding\{205\}/g, '\u278D'],
|
|
|
+ [/\\ding\{206\}/g, '\u278E'],
|
|
|
+ [/\\ding\{207\}/g, '\u278F'],
|
|
|
+ [/\\ding\{208\}/g, '\u2790'],
|
|
|
+ [/\\ding\{209\}/g, '\u2791'],
|
|
|
+ [/\\ding\{210\}/g, '\u2792'],
|
|
|
+ [/\\ding\{211\}/g, '\u2793'],
|
|
|
+ [/\\ding\{212\}/g, '\u2794'],
|
|
|
+ [/\\ding\{216\}/g, '\u2798'],
|
|
|
+ [/\\ding\{217\}/g, '\u2799'],
|
|
|
+ [/\\ding\{218\}/g, '\u279A'],
|
|
|
+ [/\\ding\{219\}/g, '\u279B'],
|
|
|
+ [/\\ding\{220\}/g, '\u279C'],
|
|
|
+ [/\\ding\{221\}/g, '\u279D'],
|
|
|
+ [/\\ding\{222\}/g, '\u279E'],
|
|
|
+ [/\\ding\{223\}/g, '\u279F'],
|
|
|
+ [/\\ding\{224\}/g, '\u27A0'],
|
|
|
+ [/\\ding\{225\}/g, '\u27A1'],
|
|
|
+ [/\\ding\{226\}/g, '\u27A2'],
|
|
|
+ [/\\ding\{227\}/g, '\u27A3'],
|
|
|
+ [/\\ding\{228\}/g, '\u27A4'],
|
|
|
+ [/\\ding\{229\}/g, '\u27A5'],
|
|
|
+ [/\\ding\{230\}/g, '\u27A6'],
|
|
|
+ [/\\ding\{231\}/g, '\u27A7'],
|
|
|
+ [/\\ding\{232\}/g, '\u27A8'],
|
|
|
+ [/\\ding\{233\}/g, '\u27A9'],
|
|
|
+ [/\\ding\{234\}/g, '\u27AA'],
|
|
|
+ [/\\ding\{235\}/g, '\u27AB'],
|
|
|
+ [/\\ding\{236\}/g, '\u27AC'],
|
|
|
+ [/\\ding\{237\}/g, '\u27AD'],
|
|
|
+ [/\\ding\{238\}/g, '\u27AE'],
|
|
|
+ [/\\ding\{239\}/g, '\u27AF'],
|
|
|
+ [/\\ding\{241\}/g, '\u27B1'],
|
|
|
+ [/\\ding\{242\}/g, '\u27B2'],
|
|
|
+ [/\\ding\{243\}/g, '\u27B3'],
|
|
|
+ [/\\ding\{244\}/g, '\u27B4'],
|
|
|
+ [/\\ding\{245\}/g, '\u27B5'],
|
|
|
+ [/\\ding\{246\}/g, '\u27B6'],
|
|
|
+ [/\\ding\{247\}/g, '\u27B7'],
|
|
|
+ [/\\ding\{248\}/g, '\u27B8'],
|
|
|
+ [/\\ding\{249\}/g, '\u27B9'],
|
|
|
+ [/\\ding\{250\}/g, '\u27BA'],
|
|
|
+ [/\\ding\{251\}/g, '\u27BB'],
|
|
|
+ [/\\ding\{252\}/g, '\u27BC'],
|
|
|
+ [/\\ding\{253\}/g, '\u27BD'],
|
|
|
+ [/\\ding\{254\}/g, '\u27BE'],
|
|
|
+ [/\\longleftarrow /g, '\u27F5'],
|
|
|
+ [/\\longrightarrow /g, '\u27F6'],
|
|
|
+ [/\\longleftrightarrow /g, '\u27F7'],
|
|
|
+ [/\\Longleftarrow /g, '\u27F8'],
|
|
|
+ [/\\Longrightarrow /g, '\u27F9'],
|
|
|
+ [/\\Longleftrightarrow /g, '\u27FA'],
|
|
|
+ [/\\longmapsto /g, '\u27FC'],
|
|
|
+ [/\\sim\\joinrel\\leadsto/g, '\u27FF'],
|
|
|
+ [/\\ElsevierGlyph\{E212\}/g, '\u2905'],
|
|
|
+ [/\\UpArrowBar /g, '\u2912'],
|
|
|
+ [/\\DownArrowBar /g, '\u2913'],
|
|
|
+ [/\\ElsevierGlyph\{E20C\}/g, '\u2923'],
|
|
|
+ [/\\ElsevierGlyph\{E20D\}/g, '\u2924'],
|
|
|
+ [/\\ElsevierGlyph\{E20B\}/g, '\u2925'],
|
|
|
+ [/\\ElsevierGlyph\{E20A\}/g, '\u2926'],
|
|
|
+ [/\\ElsevierGlyph\{E211\}/g, '\u2927'],
|
|
|
+ [/\\ElsevierGlyph\{E20E\}/g, '\u2928'],
|
|
|
+ [/\\ElsevierGlyph\{E20F\}/g, '\u2929'],
|
|
|
+ [/\\ElsevierGlyph\{E210\}/g, '\u292A'],
|
|
|
+ [/\\ElsevierGlyph\{E21C\}/g, '\u2933'],
|
|
|
+ [/\\ElsevierGlyph\{E21D\}/g, '\u2933-00338'],
|
|
|
+ [/\\ElsevierGlyph\{E21A\}/g, '\u2936'],
|
|
|
+ [/\\ElsevierGlyph\{E219\}/g, '\u2937'],
|
|
|
+ [/\\Elolarr /g, '\u2940'],
|
|
|
+ [/\\Elorarr /g, '\u2941'],
|
|
|
+ [/\\ElzRlarr /g, '\u2942'],
|
|
|
+ [/\\ElzrLarr /g, '\u2944'],
|
|
|
+ [/\\Elzrarrx /g, '\u2947'],
|
|
|
+ [/\\LeftRightVector /g, '\u294E'],
|
|
|
+ [/\\RightUpDownVector /g, '\u294F'],
|
|
|
+ [/\\DownLeftRightVector /g, '\u2950'],
|
|
|
+ [/\\LeftUpDownVector /g, '\u2951'],
|
|
|
+ [/\\LeftVectorBar /g, '\u2952'],
|
|
|
+ [/\\RightVectorBar /g, '\u2953'],
|
|
|
+ [/\\RightUpVectorBar /g, '\u2954'],
|
|
|
+ [/\\RightDownVectorBar /g, '\u2955'],
|
|
|
+ [/\\DownLeftVectorBar /g, '\u2956'],
|
|
|
+ [/\\DownRightVectorBar /g, '\u2957'],
|
|
|
+ [/\\LeftUpVectorBar /g, '\u2958'],
|
|
|
+ [/\\LeftDownVectorBar /g, '\u2959'],
|
|
|
+ [/\\LeftTeeVector /g, '\u295A'],
|
|
|
+ [/\\RightTeeVector /g, '\u295B'],
|
|
|
+ [/\\RightUpTeeVector /g, '\u295C'],
|
|
|
+ [/\\RightDownTeeVector /g, '\u295D'],
|
|
|
+ [/\\DownLeftTeeVector /g, '\u295E'],
|
|
|
+ [/\\DownRightTeeVector /g, '\u295F'],
|
|
|
+ [/\\LeftUpTeeVector /g, '\u2960'],
|
|
|
+ [/\\LeftDownTeeVector /g, '\u2961'],
|
|
|
+ [/\\UpEquilibrium /g, '\u296E'],
|
|
|
+ [/\\ReverseUpEquilibrium /g, '\u296F'],
|
|
|
+ [/\\RoundImplies /g, '\u2970'],
|
|
|
+ [/\\ElsevierGlyph\{E214\}/g, '\u297C'],
|
|
|
+ [/\\ElsevierGlyph\{E215\}/g, '\u297D'],
|
|
|
+ [/\\Elztfnc /g, '\u2980'],
|
|
|
+ [/\\ElsevierGlyph\{3018\}/g, '\u2985'],
|
|
|
+ [/\\Elroang /g, '\u2986'],
|
|
|
+ [/\\ElsevierGlyph\{E291\}/g, '\u2994'],
|
|
|
+ [/\\Elzddfnc /g, '\u2999'],
|
|
|
+ [/\\Angle /g, '\u299C'],
|
|
|
+ [/\\Elzlpargt /g, '\u29A0'],
|
|
|
+ [/\\ElsevierGlyph\{E260\}/g, '\u29B5'],
|
|
|
+ [/\\ElsevierGlyph\{E61B\}/g, '\u29B6'],
|
|
|
+ [/\\ElzLap /g, '\u29CA'],
|
|
|
+ [/\\Elzdefas /g, '\u29CB'],
|
|
|
+ [/\\LeftTriangleBar /g, '\u29CF'],
|
|
|
+ [/\\NotLeftTriangleBar /g, '\u29CF-00338'],
|
|
|
+ [/\\RightTriangleBar /g, '\u29D0'],
|
|
|
+ [/\\NotRightTriangleBar /g, '\u29D0-00338'],
|
|
|
+ [/\\ElsevierGlyph\{E372\}/g, '\u29DC'],
|
|
|
+ [/\\blacklozenge /g, '\u29EB'],
|
|
|
+ [/\\RuleDelayed /g, '\u29F4'],
|
|
|
+ [/\\Elxuplus /g, '\u2A04'],
|
|
|
+ [/\\ElzThr /g, '\u2A05'],
|
|
|
+ [/\\Elxsqcup /g, '\u2A06'],
|
|
|
+ [/\\ElzInf /g, '\u2A07'],
|
|
|
+ [/\\ElzSup /g, '\u2A08'],
|
|
|
+ [/\\ElzCint /g, '\u2A0D'],
|
|
|
+ [/\\clockoint /g, '\u2A0F'],
|
|
|
+ [/\\ElsevierGlyph\{E395\}/g, '\u2A10'],
|
|
|
+ [/\\sqrint /g, '\u2A16'],
|
|
|
+ [/\\ElsevierGlyph\{E25A\}/g, '\u2A25'],
|
|
|
+ [/\\ElsevierGlyph\{E25B\}/g, '\u2A2A'],
|
|
|
+ [/\\ElsevierGlyph\{E25C\}/g, '\u2A2D'],
|
|
|
+ [/\\ElsevierGlyph\{E25D\}/g, '\u2A2E'],
|
|
|
+ [/\\ElzTimes /g, '\u2A2F'],
|
|
|
+ [/\\ElsevierGlyph\{E25E\}/g, '\u2A34'],
|
|
|
+ [/\\ElsevierGlyph\{E25E\}/g, '\u2A35'],
|
|
|
+ [/\\ElsevierGlyph\{E259\}/g, '\u2A3C'],
|
|
|
+ [/\\amalg /g, '\u2A3F'],
|
|
|
+ [/\\ElzAnd /g, '\u2A53'],
|
|
|
+ [/\\ElzOr /g, '\u2A54'],
|
|
|
+ [/\\ElsevierGlyph\{E36E\}/g, '\u2A55'],
|
|
|
+ [/\\ElOr /g, '\u2A56'],
|
|
|
+ [/\\perspcorrespond /g, '\u2A5E'],
|
|
|
+ [/\\Elzminhat /g, '\u2A5F'],
|
|
|
+ [/\\ElsevierGlyph\{225A\}/g, '\u2A63'],
|
|
|
+ [/\\stackrel\{*\}\{=\}/g, '\u2A6E'],
|
|
|
+ [/\\Equal /g, '\u2A75'],
|
|
|
+ [/\\leqslant /g, '\u2A7D'],
|
|
|
+ [/\\nleqslant /g, '\u2A7D-00338'],
|
|
|
+ [/\\geqslant /g, '\u2A7E'],
|
|
|
+ [/\\ngeqslant /g, '\u2A7E-00338'],
|
|
|
+ [/\\lessapprox /g, '\u2A85'],
|
|
|
+ [/\\gtrapprox /g, '\u2A86'],
|
|
|
+ [/\\lneq /g, '\u2A87'],
|
|
|
+ [/\\gneq /g, '\u2A88'],
|
|
|
+ [/\\lnapprox /g, '\u2A89'],
|
|
|
+ [/\\gnapprox /g, '\u2A8A'],
|
|
|
+ [/\\lesseqqgtr /g, '\u2A8B'],
|
|
|
+ [/\\gtreqqless /g, '\u2A8C'],
|
|
|
+ [/\\eqslantless /g, '\u2A95'],
|
|
|
+ [/\\eqslantgtr /g, '\u2A96'],
|
|
|
+ [/\\Pisymbol\{ppi020\}\{117\}/g, '\u2A9D'],
|
|
|
+ [/\\Pisymbol\{ppi020\}\{105\}/g, '\u2A9E'],
|
|
|
+ [/\\NestedLessLess /g, '\u2AA1'],
|
|
|
+ [/\\NotNestedLessLess /g, '\u2AA1-00338'],
|
|
|
+ [/\\NestedGreaterGreater /g, '\u2AA2'],
|
|
|
+ [/\\NotNestedGreaterGreater /g, '\u2AA2-00338'],
|
|
|
+ [/\\preceq /g, '\u2AAF'],
|
|
|
+ [/\\not\\preceq /g, '\u2AAF-00338'],
|
|
|
+ [/\\succeq /g, '\u2AB0'],
|
|
|
+ [/\\not\\succeq /g, '\u2AB0-00338'],
|
|
|
+ [/\\precneqq /g, '\u2AB5'],
|
|
|
+ [/\\succneqq /g, '\u2AB6'],
|
|
|
+ [/\\precapprox /g, '\u2AB7'],
|
|
|
+ [/\\succapprox /g, '\u2AB8'],
|
|
|
+ [/\\precnapprox /g, '\u2AB9'],
|
|
|
+ [/\\succnapprox /g, '\u2ABA'],
|
|
|
+ [/\\subseteqq /g, '\u2AC5'],
|
|
|
+ [/\\nsubseteqq /g, '\u2AC5-00338'],
|
|
|
+ [/\\supseteqq /g, '\u2AC6'],
|
|
|
+ [/\\nsupseteqq/g, '\u2AC6-00338'],
|
|
|
+ [/\\subsetneqq /g, '\u2ACB'],
|
|
|
+ [/\\supsetneqq /g, '\u2ACC'],
|
|
|
+ [/\\ElsevierGlyph\{E30D\}/g, '\u2AEB'],
|
|
|
+ [/\\Elztdcol /g, '\u2AF6'],
|
|
|
+ [/\\ElsevierGlyph\{300A\}/g, '\u300A'],
|
|
|
+ [/\\ElsevierGlyph\{300B\}/g, '\u300B'],
|
|
|
+ [/\\ElsevierGlyph\{3018\}/g, '\u3018'],
|
|
|
+ [/\\ElsevierGlyph\{3019\}/g, '\u3019'],
|
|
|
+ [/\\openbracketleft /g, '\u301A'],
|
|
|
+ [/\\openbracketright /g, '\u301B'],
|
|
|
+]
|
|
|
+
|
|
|
+if (typeof module !== 'undefined' && module.exports) {
|
|
|
+ module.exports = BibtexParser
|
|
|
+}
|