From a1b1591a28ed0cdce94258b918ae3c2f5839c6a9 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 19:02:43 +0900 Subject: [PATCH 01/32] add Style --- src/engine/backends/math/src/lib.rs | 3 +- src/engine/dict/build.rs | 59 +- src/engine/dict/data/symbol_map.json | 1650 +++++------------------- src/engine/dict/src/lib.rs | 22 +- src/engine/dict/src/math_symbol_key.rs | 24 + 5 files changed, 438 insertions(+), 1320 deletions(-) create mode 100644 src/engine/dict/src/math_symbol_key.rs diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 5130efac..91918330 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -4,6 +4,7 @@ use kime_engine_backend::{ Key, KeyCode, }; use kime_engine_backend_latin::{load_layout, LatinConfig}; +use kime_engine_dict::math_symbol_key::*; #[derive(Clone)] pub struct MathMode { @@ -58,7 +59,7 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { commit_buf.push_str(symbol); } self.buf.clear(); diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 82bf3d0e..2c726b89 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,5 +1,9 @@ +#[path = "src/math_symbol_key.rs"] +mod math_symbol_key; + +use math_symbol_key::*; use itertools::Itertools; -use serde::Deserialize; +use serde::{Deserialize,Deserializer}; use std::{ collections::BTreeMap, env, @@ -41,10 +45,39 @@ struct UnicodeEntry { tts: String, } +impl<'de> Deserialize<'de> for Style { + fn deserialize>(deserializer: D) -> Result { + use serde::de::Error; + + let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; + let style = styles + .into_iter() + .map(|s| Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + })) + .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + style + } +} + +#[derive(Deserialize)] +struct StySymPair<'a> { + style: Style, + symbol: &'a str, +} + #[derive(Deserialize)] struct KeySymPair<'a> { keyword: &'a str, - symbol: &'a str, + symbols: Vec>, } fn load_hanja_dict() -> BTreeMap> { @@ -133,6 +166,7 @@ fn main() { std::fs::File::create(PathBuf::from(env::var("OUT_DIR").unwrap()).join("dict.rs")).unwrap(), ); + writeln!(out, "use crate::math_symbol_key::*;").unwrap(); writeln!( out, "pub static HANJA_ENTRIES: &[(char, &[(char, &str)])] = &[", @@ -153,17 +187,20 @@ fn main() { writeln!(out, "];").unwrap(); - let symbol_map = include_str!("data/symbol_map.json"); - let mut symbol_map: Vec = serde_json::from_str(symbol_map).unwrap(); - symbol_map.sort_unstable_by_key(|pair| pair.keyword); - - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(&str, &str)] = &[").unwrap(); - - for pair in &symbol_map { - writeln!(out, "(\"{}\", \"{}\"),", pair.keyword, pair.symbol).unwrap(); + let symbol_map_data = include_str!("data/symbol_map.json"); + let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); + let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + for key_sym_pair in &symbol_map_data { + let keyword = &key_sym_pair.keyword; + for sty_sym_pair in &key_sym_pair.symbols { + let style = sty_sym_pair.style; + let symbol = sty_sym_pair.symbol; + symbol_map.push((SymbolKey(keyword,style), symbol)); + } } + symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "];").unwrap(); + writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/data/symbol_map.json b/src/engine/dict/data/symbol_map.json index 2d2aea7c..eb672026 100644 --- a/src/engine/dict/data/symbol_map.json +++ b/src/engine/dict/data/symbol_map.json @@ -1,1305 +1,347 @@ -[ {"keyword":"neg","symbol":"¬"} -, {"keyword":"leq","symbol":"≤"} -, {"keyword":"leqq","symbol":"≦"} -, {"keyword":"leqslant","symbol":"⩽"} -, {"keyword":"lesssim","symbol":"≲"} -, {"keyword":"lessapprox","symbol":"⪅"} -, {"keyword":"prec","symbol":"≺"} -, {"keyword":"preceq","symbol":"⪯"} -, {"keyword":"precsim","symbol":"≾"} -, {"keyword":"geq","symbol":"≥"} -, {"keyword":"geqq","symbol":"≧"} -, {"keyword":"geqslant","symbol":"⩾"} -, {"keyword":"gtrsim","symbol":"≳"} -, {"keyword":"gtrapprox","symbol":"⪆"} -, {"keyword":"succ","symbol":"≻"} -, {"keyword":"succeq","symbol":"⪰"} -, {"keyword":"succsim","symbol":"≿"} -, {"keyword":"nless","symbol":"≮"} -, {"keyword":"nleq","symbol":"≰"} -, {"keyword":"lneq","symbol":"⪇"} -, {"keyword":"lneqq","symbol":"≨"} -, {"keyword":"lnsim","symbol":"⋦"} -, {"keyword":"lnapprox","symbol":"⪉"} -, {"keyword":"nprec","symbol":"⊀"} -, {"keyword":"npreceq","symbol":"⪯̸"} -, {"keyword":"ngtr","symbol":"≯"} -, {"keyword":"ngeq","symbol":"≱"} -, {"keyword":"gneq","symbol":"⪈"} -, {"keyword":"gneqq","symbol":"≩"} -, {"keyword":"gnsim","symbol":"⋧"} -, {"keyword":"gnapprox","symbol":"⪊"} -, {"keyword":"nsucc","symbol":"⊁"} -, {"keyword":"nsucceq","symbol":"⪰̸"} -, {"keyword":"ll","symbol":"≪"} -, {"keyword":"lll","symbol":"⋘"} -, {"keyword":"gg","symbol":"≫"} -, {"keyword":"ggg","symbol":"⋙"} -, {"keyword":"lessgtr","symbol":"≶"} -, {"keyword":"lesseqgtr","symbol":"⋚"} -, {"keyword":"subset","symbol":"⊂"} -, {"keyword":"subseteq","symbol":"⊆"} -, {"keyword":"sqsubset","symbol":"⊏"} -, {"keyword":"sqsubseteq","symbol":"⊑"} -, {"keyword":"nsubset","symbol":"⊄"} -, {"keyword":"nsubseteq","symbol":"⊈"} -, {"keyword":"subsetneq","symbol":"⊊"} -, {"keyword":"supset","symbol":"⊃"} -, {"keyword":"supseteq","symbol":"⊇"} -, {"keyword":"sqsupset","symbol":"⊐"} -, {"keyword":"sqsupseteq","symbol":"⊒"} -, {"keyword":"nsupset","symbol":"⊅"} -, {"keyword":"nsupseteq","symbol":"⊉"} -, {"keyword":"supsetneq","symbol":"⊋"} -, {"keyword":"doteq","symbol":"≐"} -, {"keyword":"equiv","symbol":"≡"} -, {"keyword":"approx","symbol":"≈"} -, {"keyword":"cong","symbol":"≅"} -, {"keyword":"simeq","symbol":"≃"} -, {"keyword":"sim","symbol":"∼"} -, {"keyword":"propto","symbol":"∝"} -, {"keyword":"neq","symbol":"≠"} -, {"keyword":"nequiv","symbol":"≢"} -, {"keyword":"napprox","symbol":"≉"} -, {"keyword":"ncong","symbol":"≇"} -, {"keyword":"nsimeq","symbol":"≄"} -, {"keyword":"nsim","symbol":"≁"} -, {"keyword":"to","symbol":"→"} -, {"keyword":"rightarrow","symbol":"→"} -, {"keyword":"Rightarrow","symbol":"⇒"} -, {"keyword":"longrightarrow","symbol":"⟶"} -, {"keyword":"gets","symbol":"←"} -, {"keyword":"leftarrow","symbol":"←"} -, {"keyword":"Leftarrow","symbol":"⇐"} -, {"keyword":"longleftarrow","symbol":"⟵"} -, {"keyword":"mapsto","symbol":"↦"} -, {"keyword":"longmapsto","symbol":"⟼"} -, {"keyword":"uparrow","symbol":"↑"} -, {"keyword":"downaroow","symbol":"↓"} -, {"keyword":"updownarrow","symbol":"↕"} -, {"keyword":"Uparrow","symbol":"⇑"} -, {"keyword":"Downarrow","symbol":"⇓"} -, {"keyword":"Updownarrow","symbol":"⇕"} -, {"keyword":"partial","symbol":"∂"} -, {"keyword":"nabla","symbol":"∇"} -, {"keyword":"imath","symbol":"ı"} -, {"keyword":"jmath","symbol":"ȷ"} -, {"keyword":"ell","symbol":"ℓ"} -, {"keyword":"Re","symbol":"ℜ"} -, {"keyword":"Im","symbol":"ℑ"} -, {"keyword":"infty","symbol":"∞"} -, {"keyword":"wp","symbol":"℘"} -, {"keyword":"hbar","symbol":"ℏ"} -, {"keyword":"hslash","symbol":"ℏ"} -, {"keyword":"aleph","symbol":"ℵ"} -, {"keyword":"beth","symbol":"ℶ"} -, {"keyword":"gimel","symbol":"ℷ"} -, {"keyword":"langle","symbol":"⟨"} -, {"keyword":"rangle","symbol":"⟩"} -, {"keyword":"lfloor","symbol":"⌊"} -, {"keyword":"rfloor","symbol":"⌋"} -, {"keyword":"lceil","symbol":"⌈"} -, {"keyword":"rceil","symbol":"⌉"} -, {"keyword":"|","symbol":"‖"} -, {"keyword":"^0","symbol":"⁰"} -, {"keyword":"^1","symbol":"¹"} -, {"keyword":"^2","symbol":"²"} -, {"keyword":"^3","symbol":"³"} -, {"keyword":"^4","symbol":"⁴"} -, {"keyword":"^5","symbol":"⁵"} -, {"keyword":"^6","symbol":"⁶"} -, {"keyword":"^7","symbol":"⁷"} -, {"keyword":"^8","symbol":"⁸"} -, {"keyword":"^9","symbol":"⁹"} -, {"keyword":"^+","symbol":"⁺"} -, {"keyword":"^-","symbol":"⁻"} -, {"keyword":"^=","symbol":"⁼"} -, {"keyword":"^(","symbol":"⁽"} -, {"keyword":"^)","symbol":"⁾"} -, {"keyword":"^A","symbol":"ᴬ"} -, {"keyword":"^B","symbol":"ᴮ"} -, {"keyword":"^D","symbol":"ᴰ"} -, {"keyword":"^E","symbol":"ᴱ"} -, {"keyword":"^G","symbol":"ᴳ"} -, {"keyword":"^H","symbol":"ᴴ"} -, {"keyword":"^I","symbol":"ᴵ"} -, {"keyword":"^J","symbol":"ᴶ"} -, {"keyword":"^K","symbol":"ᴷ"} -, {"keyword":"^L","symbol":"ᴸ"} -, {"keyword":"^M","symbol":"ᴹ"} -, {"keyword":"^N","symbol":"ᴺ"} -, {"keyword":"^O","symbol":"ᴼ"} -, {"keyword":"^P","symbol":"ᴾ"} -, {"keyword":"^R","symbol":"ᴿ"} -, {"keyword":"^T","symbol":"ᵀ"} -, {"keyword":"^U","symbol":"ᵁ"} -, {"keyword":"^V","symbol":"ⱽ"} -, {"keyword":"^W","symbol":"ᵂ"} -, {"keyword":"^a","symbol":"ᵃ"} -, {"keyword":"^b","symbol":"ᵇ"} -, {"keyword":"^c","symbol":"ᶜ"} -, {"keyword":"^d","symbol":"ᵈ"} -, {"keyword":"^e","symbol":"ᵉ"} -, {"keyword":"^f","symbol":"ᶠ"} -, {"keyword":"^g","symbol":"ᵍ"} -, {"keyword":"^h","symbol":"ʰ"} -, {"keyword":"^i","symbol":"ⁱ"} -, {"keyword":"^j","symbol":"ʲ"} -, {"keyword":"^k","symbol":"ᵏ"} -, {"keyword":"^l","symbol":"ˡ"} -, {"keyword":"^m","symbol":"ᵐ"} -, {"keyword":"^n","symbol":"ⁿ"} -, {"keyword":"^o","symbol":"ᵒ"} -, {"keyword":"^p","symbol":"ᵖ"} -, {"keyword":"^r","symbol":"ʳ"} -, {"keyword":"^s","symbol":"ˢ"} -, {"keyword":"^t","symbol":"ᵗ"} -, {"keyword":"^u","symbol":"ᵘ"} -, {"keyword":"^v","symbol":"ᵛ"} -, {"keyword":"^w","symbol":"ʷ"} -, {"keyword":"^x","symbol":"ˣ"} -, {"keyword":"^y","symbol":"ʸ"} -, {"keyword":"^z","symbol":"ᶻ"} -, {"keyword":"^beta","symbol":"ᵝ"} -, {"keyword":"^gamma","symbol":"ᵞ"} -, {"keyword":"^delta","symbol":"ᵟ"} -, {"keyword":"^epsilon","symbol":"ᵋ"} -, {"keyword":"^theta","symbol":"ᶿ"} -, {"keyword":"^iota","symbol":"ᶥ"} -, {"keyword":"^upsilon","symbol":"ᶹ"} -, {"keyword":"^phi","symbol":"ᵠ"} -, {"keyword":"^chi","symbol":"ᵡ"} -, {"keyword":"_0","symbol":"₀"} -, {"keyword":"_1","symbol":"₁"} -, {"keyword":"_2","symbol":"₂"} -, {"keyword":"_3","symbol":"₃"} -, {"keyword":"_4","symbol":"₄"} -, {"keyword":"_5","symbol":"₅"} -, {"keyword":"_6","symbol":"₆"} -, {"keyword":"_7","symbol":"₇"} -, {"keyword":"_8","symbol":"₈"} -, {"keyword":"_9","symbol":"₉"} -, {"keyword":"_+","symbol":"₊"} -, {"keyword":"_-","symbol":"₋"} -, {"keyword":"_=","symbol":"₌"} -, {"keyword":"_(","symbol":"₍"} -, {"keyword":"_)","symbol":"₎"} -, {"keyword":"_a","symbol":"ₐ"} -, {"keyword":"_e","symbol":"ₑ"} -, {"keyword":"_h","symbol":"ₕ"} -, {"keyword":"_i","symbol":"ᵢ"} -, {"keyword":"_j","symbol":"ⱼ"} -, {"keyword":"_k","symbol":"ₖ"} -, {"keyword":"_l","symbol":"ₗ"} -, {"keyword":"_m","symbol":"ₘ"} -, {"keyword":"_n","symbol":"ₙ"} -, {"keyword":"_o","symbol":"ₒ"} -, {"keyword":"_p","symbol":"ₚ"} -, {"keyword":"_q","symbol":" "} -, {"keyword":"_r","symbol":"ᵣ"} -, {"keyword":"_s","symbol":"ₛ"} -, {"keyword":"_t","symbol":"ₜ"} -, {"keyword":"_u","symbol":"ᵤ"} -, {"keyword":"_v","symbol":"ᵥ"} -, {"keyword":"_x","symbol":"ₓ"} -, {"keyword":"_schwa","symbol":"ₔ"} -, {"keyword":"_beta","symbol":"ᵦ"} -, {"keyword":"_gamma","symbol":"ᵧ"} -, {"keyword":"_rho","symbol":"ᵨ"} -, {"keyword":"_phi","symbol":"ᵩ"} -, {"keyword":"_chi","symbol":"ᵪ"} -, {"keyword":"[[","symbol":"⟦"} -, {"keyword":"]]","symbol":"⟧"} -, {"keyword":"<","symbol":"⟨"} -, {"keyword":">","symbol":"⟩"} -, {"keyword":"<<","symbol":"⟪"} -, {"keyword":">>","symbol":"⟫"} -, {"keyword":"{{","symbol":"⦃"} -, {"keyword":"}}","symbol":"⦄"} -, {"keyword":"(|","symbol":"⦇"} -, {"keyword":"|)","symbol":"⦈"} -, {"keyword":"((","symbol":"⦅"} -, {"keyword":"))","symbol":"⦆"} -, {"keyword":"(b","symbol":"⟅"} -, {"keyword":")b","symbol":"⟆"} -, {"keyword":"lbag","symbol":"⟅"} -, {"keyword":"rbag","symbol":"⟆"} -, {"keyword":"Alpha","symbol":"Α"} -, {"keyword":"Beta","symbol":"Β"} -, {"keyword":"Gammma","symbol":"Γ"} -, {"keyword":"Delta","symbol":"Δ"} -, {"keyword":"Epsilon","symbol":"Ε"} -, {"keyword":"Zeta","symbol":"Ζ"} -, {"keyword":"Eta","symbol":"Η"} -, {"keyword":"Theta","symbol":"Θ"} -, {"keyword":"Iota","symbol":"Ι"} -, {"keyword":"Kappa","symbol":"Κ"} -, {"keyword":"Lambda","symbol":"Λ"} -, {"keyword":"Mu","symbol":"Μ"} -, {"keyword":"Nu","symbol":"Ν"} -, {"keyword":"Xi","symbol":"Ξ"} -, {"keyword":"Omicron","symbol":"Ο"} -, {"keyword":"Pi","symbol":"Π"} -, {"keyword":"Rho","symbol":"Ρ"} -, {"keyword":"Sigma","symbol":"΢"} -, {"keyword":"Tau","symbol":"Σ"} -, {"keyword":"Upsilon","symbol":"Τ"} -, {"keyword":"Phi","symbol":"Υ"} -, {"keyword":"Chi","symbol":"Φ"} -, {"keyword":"Psi","symbol":"Χ"} -, {"keyword":"Omega","symbol":"Ψ"} -, {"keyword":"alpha","symbol":"α"} -, {"keyword":"beta","symbol":"β"} -, {"keyword":"gamma","symbol":"γ"} -, {"keyword":"delta","symbol":"δ"} -, {"keyword":"varepsilon","symbol":"ε"} -, {"keyword":"zeta","symbol":"ζ"} -, {"keyword":"eta","symbol":"η"} -, {"keyword":"theta","symbol":"θ"} -, {"keyword":"iota","symbol":"ι"} -, {"keyword":"kappa","symbol":"κ"} -, {"keyword":"lambda","symbol":"λ"} -, {"keyword":"mu","symbol":"μ"} -, {"keyword":"nu","symbol":"ν"} -, {"keyword":"xi","symbol":"ξ"} -, {"keyword":"omicron","symbol":"ο"} -, {"keyword":"pi","symbol":"π"} -, {"keyword":"rho","symbol":"ρ"} -, {"keyword":"varsigma","symbol":"ς"} -, {"keyword":"sigma","symbol":"σ"} -, {"keyword":"tau","symbol":"τ"} -, {"keyword":"upsilon","symbol":"υ"} -, {"keyword":"varphi","symbol":"φ"} -, {"keyword":"chi","symbol":"χ"} -, {"keyword":"psi","symbol":"ψ"} -, {"keyword":"omega","symbol":"ω"} -, {"keyword":"vartheta","symbol":"ϑ"} -, {"keyword":"phi","symbol":"ϕ"} -, {"keyword":"varpi","symbol":"ϖ"} -, {"keyword":"Digamma","symbol":"Ϝ"} -, {"keyword":"digamma","symbol":"ϝ"} -, {"keyword":"varkappa","symbol":"ϰ"} -, {"keyword":"varrho","symbol":"ϱ"} -, {"keyword":"varTheta","symbol":"ϴ"} -, {"keyword":"epsilon","symbol":"ϵ"} -, {"keyword":"bfA","symbol":"𝐀"} -, {"keyword":"bfB","symbol":"𝐁"} -, {"keyword":"bfC","symbol":"𝐂"} -, {"keyword":"bfD","symbol":"𝐃"} -, {"keyword":"bfE","symbol":"𝐄"} -, {"keyword":"bfF","symbol":"𝐅"} -, {"keyword":"bfG","symbol":"𝐆"} -, {"keyword":"bfH","symbol":"𝐇"} -, {"keyword":"bfI","symbol":"𝐈"} -, {"keyword":"bfJ","symbol":"𝐉"} -, {"keyword":"bfK","symbol":"𝐊"} -, {"keyword":"bfL","symbol":"𝐋"} -, {"keyword":"bfM","symbol":"𝐌"} -, {"keyword":"bfN","symbol":"𝐍"} -, {"keyword":"bfO","symbol":"𝐎"} -, {"keyword":"bfP","symbol":"𝐏"} -, {"keyword":"bfQ","symbol":"𝐐"} -, {"keyword":"bfR","symbol":"𝐑"} -, {"keyword":"bfS","symbol":"𝐒"} -, {"keyword":"bfT","symbol":"𝐓"} -, {"keyword":"bfU","symbol":"𝐔"} -, {"keyword":"bfV","symbol":"𝐕"} -, {"keyword":"bfW","symbol":"𝐖"} -, {"keyword":"bfX","symbol":"𝐗"} -, {"keyword":"bfY","symbol":"𝐘"} -, {"keyword":"bfZ","symbol":"𝐙"} -, {"keyword":"bfa","symbol":"𝐚"} -, {"keyword":"bfb","symbol":"𝐛"} -, {"keyword":"bfc","symbol":"𝐜"} -, {"keyword":"bfd","symbol":"𝐝"} -, {"keyword":"bfe","symbol":"𝐞"} -, {"keyword":"bff","symbol":"𝐟"} -, {"keyword":"bfg","symbol":"𝐠"} -, {"keyword":"bfh","symbol":"𝐡"} -, {"keyword":"bfi","symbol":"𝐢"} -, {"keyword":"bfj","symbol":"𝐣"} -, {"keyword":"bfk","symbol":"𝐤"} -, {"keyword":"bfl","symbol":"𝐥"} -, {"keyword":"bfm","symbol":"𝐦"} -, {"keyword":"bfn","symbol":"𝐧"} -, {"keyword":"bfo","symbol":"𝐨"} -, {"keyword":"bfp","symbol":"𝐩"} -, {"keyword":"bfq","symbol":"𝐪"} -, {"keyword":"bfr","symbol":"𝐫"} -, {"keyword":"bfs","symbol":"𝐬"} -, {"keyword":"bft","symbol":"𝐭"} -, {"keyword":"bfu","symbol":"𝐮"} -, {"keyword":"bfv","symbol":"𝐯"} -, {"keyword":"bfw","symbol":"𝐰"} -, {"keyword":"bfx","symbol":"𝐱"} -, {"keyword":"bfy","symbol":"𝐲"} -, {"keyword":"bfz","symbol":"𝐳"} -, {"keyword":"itA","symbol":"𝐴"} -, {"keyword":"itB","symbol":"𝐵"} -, {"keyword":"itC","symbol":"𝐶"} -, {"keyword":"itD","symbol":"𝐷"} -, {"keyword":"itE","symbol":"𝐸"} -, {"keyword":"itF","symbol":"𝐹"} -, {"keyword":"itG","symbol":"𝐺"} -, {"keyword":"itH","symbol":"𝐻"} -, {"keyword":"itI","symbol":"𝐼"} -, {"keyword":"itJ","symbol":"𝐽"} -, {"keyword":"itK","symbol":"𝐾"} -, {"keyword":"itL","symbol":"𝐿"} -, {"keyword":"itM","symbol":"𝑀"} -, {"keyword":"itN","symbol":"𝑁"} -, {"keyword":"itO","symbol":"𝑂"} -, {"keyword":"itP","symbol":"𝑃"} -, {"keyword":"itQ","symbol":"𝑄"} -, {"keyword":"itR","symbol":"𝑅"} -, {"keyword":"itS","symbol":"𝑆"} -, {"keyword":"itT","symbol":"𝑇"} -, {"keyword":"itU","symbol":"𝑈"} -, {"keyword":"itV","symbol":"𝑉"} -, {"keyword":"itW","symbol":"𝑊"} -, {"keyword":"itX","symbol":"𝑋"} -, {"keyword":"itY","symbol":"𝑌"} -, {"keyword":"itZ","symbol":"𝑍"} -, {"keyword":"ita","symbol":"𝑎"} -, {"keyword":"itb","symbol":"𝑏"} -, {"keyword":"itc","symbol":"𝑐"} -, {"keyword":"itd","symbol":"𝑑"} -, {"keyword":"ite","symbol":"𝑒"} -, {"keyword":"itf","symbol":"𝑓"} -, {"keyword":"itg","symbol":"𝑔"} -, {"keyword":"ith","symbol":"𝑕"} -, {"keyword":"iti","symbol":"𝑖"} -, {"keyword":"itj","symbol":"𝑗"} -, {"keyword":"itk","symbol":"𝑘"} -, {"keyword":"itl","symbol":"𝑙"} -, {"keyword":"itm","symbol":"𝑚"} -, {"keyword":"itn","symbol":"𝑛"} -, {"keyword":"ito","symbol":"𝑜"} -, {"keyword":"itp","symbol":"𝑝"} -, {"keyword":"itq","symbol":"𝑞"} -, {"keyword":"itr","symbol":"𝑟"} -, {"keyword":"its","symbol":"𝑠"} -, {"keyword":"itt","symbol":"𝑡"} -, {"keyword":"itu","symbol":"𝑢"} -, {"keyword":"itv","symbol":"𝑣"} -, {"keyword":"itw","symbol":"𝑤"} -, {"keyword":"itx","symbol":"𝑥"} -, {"keyword":"ity","symbol":"𝑦"} -, {"keyword":"itz","symbol":"𝑧"} -, {"keyword":"bfitA","symbol":"𝑨"} -, {"keyword":"bfitB","symbol":"𝑩"} -, {"keyword":"bfitC","symbol":"𝑪"} -, {"keyword":"bfitD","symbol":"𝑫"} -, {"keyword":"bfitE","symbol":"𝑬"} -, {"keyword":"bfitF","symbol":"𝑭"} -, {"keyword":"bfitG","symbol":"𝑮"} -, {"keyword":"bfitH","symbol":"𝑯"} -, {"keyword":"bfitI","symbol":"𝑰"} -, {"keyword":"bfitJ","symbol":"𝑱"} -, {"keyword":"bfitK","symbol":"𝑲"} -, {"keyword":"bfitL","symbol":"𝑳"} -, {"keyword":"bfitM","symbol":"𝑴"} -, {"keyword":"bfitN","symbol":"𝑵"} -, {"keyword":"bfitO","symbol":"𝑶"} -, {"keyword":"bfitP","symbol":"𝑷"} -, {"keyword":"bfitQ","symbol":"𝑸"} -, {"keyword":"bfitR","symbol":"𝑹"} -, {"keyword":"bfitS","symbol":"𝑺"} -, {"keyword":"bfitT","symbol":"𝑻"} -, {"keyword":"bfitU","symbol":"𝑼"} -, {"keyword":"bfitV","symbol":"𝑽"} -, {"keyword":"bfitW","symbol":"𝑾"} -, {"keyword":"bfitX","symbol":"𝑿"} -, {"keyword":"bfitY","symbol":"𝒀"} -, {"keyword":"bfitZ","symbol":"𝒁"} -, {"keyword":"bfita","symbol":"𝒂"} -, {"keyword":"bfitb","symbol":"𝒃"} -, {"keyword":"bfitc","symbol":"𝒄"} -, {"keyword":"bfitd","symbol":"𝒅"} -, {"keyword":"bfite","symbol":"𝒆"} -, {"keyword":"bfitf","symbol":"𝒇"} -, {"keyword":"bfitg","symbol":"𝒈"} -, {"keyword":"bfith","symbol":"𝒉"} -, {"keyword":"bfiti","symbol":"𝒊"} -, {"keyword":"bfitj","symbol":"𝒋"} -, {"keyword":"bfitk","symbol":"𝒌"} -, {"keyword":"bfitl","symbol":"𝒍"} -, {"keyword":"bfitm","symbol":"𝒎"} -, {"keyword":"bfitn","symbol":"𝒏"} -, {"keyword":"bfito","symbol":"𝒐"} -, {"keyword":"bfitp","symbol":"𝒑"} -, {"keyword":"bfitq","symbol":"𝒒"} -, {"keyword":"bfitr","symbol":"𝒓"} -, {"keyword":"bfits","symbol":"𝒔"} -, {"keyword":"bfitt","symbol":"𝒕"} -, {"keyword":"bfitu","symbol":"𝒖"} -, {"keyword":"bfitv","symbol":"𝒗"} -, {"keyword":"bfitw","symbol":"𝒘"} -, {"keyword":"bfitx","symbol":"𝒙"} -, {"keyword":"bfity","symbol":"𝒚"} -, {"keyword":"bfitz","symbol":"𝒛"} -, {"keyword":"scrA","symbol":"𝒜"} -, {"keyword":"scrB","symbol":"ℬ"} -, {"keyword":"scrC","symbol":"𝒞"} -, {"keyword":"scrD","symbol":"𝒟"} -, {"keyword":"scrE","symbol":"ℰ"} -, {"keyword":"scrF","symbol":"ℱ"} -, {"keyword":"scrG","symbol":"𝒢"} -, {"keyword":"scrH","symbol":"ℋ"} -, {"keyword":"scrI","symbol":"ℐ"} -, {"keyword":"scrJ","symbol":"𝒥"} -, {"keyword":"scrK","symbol":"𝒦"} -, {"keyword":"scrL","symbol":"ℒ"} -, {"keyword":"scrM","symbol":"ℳ"} -, {"keyword":"scrN","symbol":"𝒩"} -, {"keyword":"scrO","symbol":"𝒪"} -, {"keyword":"scrP","symbol":"𝒫"} -, {"keyword":"scrQ","symbol":"𝒬"} -, {"keyword":"scrR","symbol":"ℛ"} -, {"keyword":"scrS","symbol":"𝒮"} -, {"keyword":"scrT","symbol":"𝒯"} -, {"keyword":"scrU","symbol":"𝒰"} -, {"keyword":"scrV","symbol":"𝒱"} -, {"keyword":"scrW","symbol":"𝒲"} -, {"keyword":"scrX","symbol":"𝒳"} -, {"keyword":"scrY","symbol":"𝒴"} -, {"keyword":"scrZ","symbol":"𝒵"} -, {"keyword":"scra","symbol":"𝒶"} -, {"keyword":"scrb","symbol":"𝒷"} -, {"keyword":"scrc","symbol":"𝒸"} -, {"keyword":"scrd","symbol":"𝒹"} -, {"keyword":"scre","symbol":"ℯ"} -, {"keyword":"scrf","symbol":"𝒻"} -, {"keyword":"scrg","symbol":"ℊ"} -, {"keyword":"scrh","symbol":"𝒽"} -, {"keyword":"scri","symbol":"𝒾"} -, {"keyword":"scrj","symbol":"𝒿"} -, {"keyword":"scrk","symbol":"𝓀"} -, {"keyword":"scrl","symbol":"𝓁"} -, {"keyword":"scrm","symbol":"𝓂"} -, {"keyword":"scrn","symbol":"𝓃"} -, {"keyword":"scro","symbol":"ℴ"} -, {"keyword":"scrp","symbol":"𝓅"} -, {"keyword":"scrq","symbol":"𝓆"} -, {"keyword":"scrr","symbol":"𝓇"} -, {"keyword":"scrs","symbol":"𝓈"} -, {"keyword":"scrt","symbol":"𝓉"} -, {"keyword":"scru","symbol":"𝓊"} -, {"keyword":"scrv","symbol":"𝓋"} -, {"keyword":"scrw","symbol":"𝓌"} -, {"keyword":"scrx","symbol":"𝓍"} -, {"keyword":"scry","symbol":"𝓎"} -, {"keyword":"scrz","symbol":"𝓏"} -, {"keyword":"calA","symbol":"𝓐"} -, {"keyword":"calB","symbol":"𝓑"} -, {"keyword":"calC","symbol":"𝓒"} -, {"keyword":"calD","symbol":"𝓓"} -, {"keyword":"calE","symbol":"𝓔"} -, {"keyword":"calF","symbol":"𝓕"} -, {"keyword":"calG","symbol":"𝓖"} -, {"keyword":"calH","symbol":"𝓗"} -, {"keyword":"calI","symbol":"𝓘"} -, {"keyword":"calJ","symbol":"𝓙"} -, {"keyword":"calK","symbol":"𝓚"} -, {"keyword":"calL","symbol":"𝓛"} -, {"keyword":"calM","symbol":"𝓜"} -, {"keyword":"calN","symbol":"𝓝"} -, {"keyword":"calO","symbol":"𝓞"} -, {"keyword":"calP","symbol":"𝓟"} -, {"keyword":"calQ","symbol":"𝓠"} -, {"keyword":"calR","symbol":"𝓡"} -, {"keyword":"calS","symbol":"𝓢"} -, {"keyword":"calT","symbol":"𝓣"} -, {"keyword":"calU","symbol":"𝓤"} -, {"keyword":"calV","symbol":"𝓥"} -, {"keyword":"calW","symbol":"𝓦"} -, {"keyword":"calX","symbol":"𝓧"} -, {"keyword":"calY","symbol":"𝓨"} -, {"keyword":"calZ","symbol":"𝓩"} -, {"keyword":"cala","symbol":"𝓪"} -, {"keyword":"calb","symbol":"𝓫"} -, {"keyword":"calc","symbol":"𝓬"} -, {"keyword":"cald","symbol":"𝓭"} -, {"keyword":"cale","symbol":"𝓮"} -, {"keyword":"calf","symbol":"𝓯"} -, {"keyword":"calg","symbol":"𝓰"} -, {"keyword":"calh","symbol":"𝓱"} -, {"keyword":"cali","symbol":"𝓲"} -, {"keyword":"calj","symbol":"𝓳"} -, {"keyword":"calk","symbol":"𝓴"} -, {"keyword":"call","symbol":"𝓵"} -, {"keyword":"calm","symbol":"𝓶"} -, {"keyword":"caln","symbol":"𝓷"} -, {"keyword":"calo","symbol":"𝓸"} -, {"keyword":"calp","symbol":"𝓹"} -, {"keyword":"calq","symbol":"𝓺"} -, {"keyword":"calr","symbol":"𝓻"} -, {"keyword":"cals","symbol":"𝓼"} -, {"keyword":"calt","symbol":"𝓽"} -, {"keyword":"calu","symbol":"𝓾"} -, {"keyword":"calv","symbol":"𝓿"} -, {"keyword":"calw","symbol":"𝔀"} -, {"keyword":"calx","symbol":"𝔁"} -, {"keyword":"caly","symbol":"𝔂"} -, {"keyword":"calz","symbol":"𝔃"} -, {"keyword":"frakA","symbol":"𝔄"} -, {"keyword":"frakB","symbol":"𝔅"} -, {"keyword":"frakC","symbol":"ℭ"} -, {"keyword":"frakD","symbol":"𝔇"} -, {"keyword":"frakE","symbol":"𝔈"} -, {"keyword":"frakF","symbol":"𝔉"} -, {"keyword":"frakG","symbol":"𝔊"} -, {"keyword":"frakH","symbol":"ℌ"} -, {"keyword":"frakI","symbol":"ℑ"} -, {"keyword":"frakJ","symbol":"𝔍"} -, {"keyword":"frakK","symbol":"𝔎"} -, {"keyword":"frakL","symbol":"𝔏"} -, {"keyword":"frakM","symbol":"𝔐"} -, {"keyword":"frakN","symbol":"𝔑"} -, {"keyword":"frakO","symbol":"𝔒"} -, {"keyword":"frakP","symbol":"𝔓"} -, {"keyword":"frakQ","symbol":"𝔔"} -, {"keyword":"frakR","symbol":"ℜ"} -, {"keyword":"frakS","symbol":"𝔖"} -, {"keyword":"frakT","symbol":"𝔗"} -, {"keyword":"frakU","symbol":"𝔘"} -, {"keyword":"frakV","symbol":"𝔙"} -, {"keyword":"frakW","symbol":"𝔚"} -, {"keyword":"frakX","symbol":"𝔛"} -, {"keyword":"frakY","symbol":"𝔜"} -, {"keyword":"frakZ","symbol":"ℨ"} -, {"keyword":"fraka","symbol":"𝔞"} -, {"keyword":"frakb","symbol":"𝔟"} -, {"keyword":"frakc","symbol":"𝔠"} -, {"keyword":"frakd","symbol":"𝔡"} -, {"keyword":"frake","symbol":"𝔢"} -, {"keyword":"frakf","symbol":"𝔣"} -, {"keyword":"frakg","symbol":"𝔤"} -, {"keyword":"frakh","symbol":"𝔥"} -, {"keyword":"fraki","symbol":"𝔦"} -, {"keyword":"frakj","symbol":"𝔧"} -, {"keyword":"frakk","symbol":"𝔨"} -, {"keyword":"frakl","symbol":"𝔩"} -, {"keyword":"frakm","symbol":"𝔪"} -, {"keyword":"frakn","symbol":"𝔫"} -, {"keyword":"frako","symbol":"𝔬"} -, {"keyword":"frakp","symbol":"𝔭"} -, {"keyword":"frakq","symbol":"𝔮"} -, {"keyword":"frakr","symbol":"𝔯"} -, {"keyword":"fraks","symbol":"𝔰"} -, {"keyword":"frakt","symbol":"𝔱"} -, {"keyword":"fraku","symbol":"𝔲"} -, {"keyword":"frakv","symbol":"𝔳"} -, {"keyword":"frakw","symbol":"𝔴"} -, {"keyword":"frakx","symbol":"𝔵"} -, {"keyword":"fraky","symbol":"𝔶"} -, {"keyword":"frakz","symbol":"𝔷"} -, {"keyword":"bbA","symbol":"𝔸"} -, {"keyword":"bbB","symbol":"𝔹"} -, {"keyword":"bbC","symbol":"ℂ"} -, {"keyword":"bbD","symbol":"𝔻"} -, {"keyword":"bbE","symbol":"𝔼"} -, {"keyword":"bbF","symbol":"𝔽"} -, {"keyword":"bbG","symbol":"𝔾"} -, {"keyword":"bbH","symbol":"ℍ"} -, {"keyword":"bbI","symbol":"𝕀"} -, {"keyword":"bbJ","symbol":"𝕁"} -, {"keyword":"bbK","symbol":"𝕂"} -, {"keyword":"bbL","symbol":"𝕃"} -, {"keyword":"bbM","symbol":"𝕄"} -, {"keyword":"bbN","symbol":"ℕ"} -, {"keyword":"bbO","symbol":"𝕆"} -, {"keyword":"bbP","symbol":"ℙ"} -, {"keyword":"bbQ","symbol":"ℚ"} -, {"keyword":"bbR","symbol":"ℝ"} -, {"keyword":"bbS","symbol":"𝕊"} -, {"keyword":"bbT","symbol":"𝕋"} -, {"keyword":"bbU","symbol":"𝕌"} -, {"keyword":"bbV","symbol":"𝕍"} -, {"keyword":"bbW","symbol":"𝕎"} -, {"keyword":"bbX","symbol":"𝕏"} -, {"keyword":"bbY","symbol":"𝕐"} -, {"keyword":"bbZ","symbol":"ℤ"} -, {"keyword":"bba","symbol":"𝕒"} -, {"keyword":"bbb","symbol":"𝕓"} -, {"keyword":"bbc","symbol":"𝕔"} -, {"keyword":"bbd","symbol":"𝕕"} -, {"keyword":"bbe","symbol":"𝕖"} -, {"keyword":"bbf","symbol":"𝕗"} -, {"keyword":"bbg","symbol":"𝕘"} -, {"keyword":"bbh","symbol":"𝕙"} -, {"keyword":"bbi","symbol":"𝕚"} -, {"keyword":"bbj","symbol":"𝕛"} -, {"keyword":"bbk","symbol":"𝕜"} -, {"keyword":"bbl","symbol":"𝕝"} -, {"keyword":"bbm","symbol":"𝕞"} -, {"keyword":"bbn","symbol":"𝕟"} -, {"keyword":"bbo","symbol":"𝕠"} -, {"keyword":"bbp","symbol":"𝕡"} -, {"keyword":"bbq","symbol":"𝕢"} -, {"keyword":"bbr","symbol":"𝕣"} -, {"keyword":"bbs","symbol":"𝕤"} -, {"keyword":"bbt","symbol":"𝕥"} -, {"keyword":"bbu","symbol":"𝕦"} -, {"keyword":"bbv","symbol":"𝕧"} -, {"keyword":"bbw","symbol":"𝕨"} -, {"keyword":"bbx","symbol":"𝕩"} -, {"keyword":"bby","symbol":"𝕪"} -, {"keyword":"bbz","symbol":"𝕫"} -, {"keyword":"bffrakA","symbol":"𝕬"} -, {"keyword":"bffrakB","symbol":"𝕭"} -, {"keyword":"bffrakC","symbol":"𝕮"} -, {"keyword":"bffrakD","symbol":"𝕯"} -, {"keyword":"bffrakE","symbol":"𝕰"} -, {"keyword":"bffrakF","symbol":"𝕱"} -, {"keyword":"bffrakG","symbol":"𝕲"} -, {"keyword":"bffrakH","symbol":"𝕳"} -, {"keyword":"bffrakI","symbol":"𝕴"} -, {"keyword":"bffrakJ","symbol":"𝕵"} -, {"keyword":"bffrakK","symbol":"𝕶"} -, {"keyword":"bffrakL","symbol":"𝕷"} -, {"keyword":"bffrakM","symbol":"𝕸"} -, {"keyword":"bffrakN","symbol":"𝕹"} -, {"keyword":"bffrakO","symbol":"𝕺"} -, {"keyword":"bffrakP","symbol":"𝕻"} -, {"keyword":"bffrakQ","symbol":"𝕼"} -, {"keyword":"bffrakR","symbol":"𝕽"} -, {"keyword":"bffrakS","symbol":"𝕾"} -, {"keyword":"bffrakT","symbol":"𝕿"} -, {"keyword":"bffrakU","symbol":"𝖀"} -, {"keyword":"bffrakV","symbol":"𝖁"} -, {"keyword":"bffrakW","symbol":"𝖂"} -, {"keyword":"bffrakX","symbol":"𝖃"} -, {"keyword":"bffrakY","symbol":"𝖄"} -, {"keyword":"bffrakZ","symbol":"𝖅"} -, {"keyword":"bffraka","symbol":"𝖆"} -, {"keyword":"bffrakb","symbol":"𝖇"} -, {"keyword":"bffrakc","symbol":"𝖈"} -, {"keyword":"bffrakd","symbol":"𝖉"} -, {"keyword":"bffrake","symbol":"𝖊"} -, {"keyword":"bffrakf","symbol":"𝖋"} -, {"keyword":"bffrakg","symbol":"𝖌"} -, {"keyword":"bffrakh","symbol":"𝖍"} -, {"keyword":"bffraki","symbol":"𝖎"} -, {"keyword":"bffrakj","symbol":"𝖏"} -, {"keyword":"bffrakk","symbol":"𝖐"} -, {"keyword":"bffrakl","symbol":"𝖑"} -, {"keyword":"bffrakm","symbol":"𝖒"} -, {"keyword":"bffrakn","symbol":"𝖓"} -, {"keyword":"bffrako","symbol":"𝖔"} -, {"keyword":"bffrakp","symbol":"𝖕"} -, {"keyword":"bffrakq","symbol":"𝖖"} -, {"keyword":"bffrakr","symbol":"𝖗"} -, {"keyword":"bffraks","symbol":"𝖘"} -, {"keyword":"bffrakt","symbol":"𝖙"} -, {"keyword":"bffraku","symbol":"𝖚"} -, {"keyword":"bffrakv","symbol":"𝖛"} -, {"keyword":"bffrakw","symbol":"𝖜"} -, {"keyword":"bffrakx","symbol":"𝖝"} -, {"keyword":"bffraky","symbol":"𝖞"} -, {"keyword":"bffrakz","symbol":"𝖟"} -, {"keyword":"sansA","symbol":"𝖠"} -, {"keyword":"sansB","symbol":"𝖡"} -, {"keyword":"sansC","symbol":"𝖢"} -, {"keyword":"sansD","symbol":"𝖣"} -, {"keyword":"sansE","symbol":"𝖤"} -, {"keyword":"sansF","symbol":"𝖥"} -, {"keyword":"sansG","symbol":"𝖦"} -, {"keyword":"sansH","symbol":"𝖧"} -, {"keyword":"sansI","symbol":"𝖨"} -, {"keyword":"sansJ","symbol":"𝖩"} -, {"keyword":"sansK","symbol":"𝖪"} -, {"keyword":"sansL","symbol":"𝖫"} -, {"keyword":"sansM","symbol":"𝖬"} -, {"keyword":"sansN","symbol":"𝖭"} -, {"keyword":"sansO","symbol":"𝖮"} -, {"keyword":"sansP","symbol":"𝖯"} -, {"keyword":"sansQ","symbol":"𝖰"} -, {"keyword":"sansR","symbol":"𝖱"} -, {"keyword":"sansS","symbol":"𝖲"} -, {"keyword":"sansT","symbol":"𝖳"} -, {"keyword":"sansU","symbol":"𝖴"} -, {"keyword":"sansV","symbol":"𝖵"} -, {"keyword":"sansW","symbol":"𝖶"} -, {"keyword":"sansX","symbol":"𝖷"} -, {"keyword":"sansY","symbol":"𝖸"} -, {"keyword":"sansZ","symbol":"𝖹"} -, {"keyword":"sansa","symbol":"𝖺"} -, {"keyword":"sansb","symbol":"𝖻"} -, {"keyword":"sansc","symbol":"𝖼"} -, {"keyword":"sansd","symbol":"𝖽"} -, {"keyword":"sanse","symbol":"𝖾"} -, {"keyword":"sansf","symbol":"𝖿"} -, {"keyword":"sansg","symbol":"𝗀"} -, {"keyword":"sansh","symbol":"𝗁"} -, {"keyword":"sansi","symbol":"𝗂"} -, {"keyword":"sansj","symbol":"𝗃"} -, {"keyword":"sansk","symbol":"𝗄"} -, {"keyword":"sansl","symbol":"𝗅"} -, {"keyword":"sansm","symbol":"𝗆"} -, {"keyword":"sansn","symbol":"𝗇"} -, {"keyword":"sanso","symbol":"𝗈"} -, {"keyword":"sansp","symbol":"𝗉"} -, {"keyword":"sansq","symbol":"𝗊"} -, {"keyword":"sansr","symbol":"𝗋"} -, {"keyword":"sanss","symbol":"𝗌"} -, {"keyword":"sanst","symbol":"𝗍"} -, {"keyword":"sansu","symbol":"𝗎"} -, {"keyword":"sansv","symbol":"𝗏"} -, {"keyword":"sansw","symbol":"𝗐"} -, {"keyword":"sansx","symbol":"𝗑"} -, {"keyword":"sansy","symbol":"𝗒"} -, {"keyword":"sansz","symbol":"𝗓"} -, {"keyword":"sansbfA","symbol":"𝗔"} -, {"keyword":"sansbfB","symbol":"𝗕"} -, {"keyword":"sansbfC","symbol":"𝗖"} -, {"keyword":"sansbfD","symbol":"𝗗"} -, {"keyword":"sansbfE","symbol":"𝗘"} -, {"keyword":"sansbfF","symbol":"𝗙"} -, {"keyword":"sansbfG","symbol":"𝗚"} -, {"keyword":"sansbfH","symbol":"𝗛"} -, {"keyword":"sansbfI","symbol":"𝗜"} -, {"keyword":"sansbfJ","symbol":"𝗝"} -, {"keyword":"sansbfK","symbol":"𝗞"} -, {"keyword":"sansbfL","symbol":"𝗟"} -, {"keyword":"sansbfM","symbol":"𝗠"} -, {"keyword":"sansbfN","symbol":"𝗡"} -, {"keyword":"sansbfO","symbol":"𝗢"} -, {"keyword":"sansbfP","symbol":"𝗣"} -, {"keyword":"sansbfQ","symbol":"𝗤"} -, {"keyword":"sansbfR","symbol":"𝗥"} -, {"keyword":"sansbfS","symbol":"𝗦"} -, {"keyword":"sansbfT","symbol":"𝗧"} -, {"keyword":"sansbfU","symbol":"𝗨"} -, {"keyword":"sansbfV","symbol":"𝗩"} -, {"keyword":"sansbfW","symbol":"𝗪"} -, {"keyword":"sansbfX","symbol":"𝗫"} -, {"keyword":"sansbfY","symbol":"𝗬"} -, {"keyword":"sansbfZ","symbol":"𝗭"} -, {"keyword":"sansbfa","symbol":"𝗮"} -, {"keyword":"sansbfb","symbol":"𝗯"} -, {"keyword":"sansbfc","symbol":"𝗰"} -, {"keyword":"sansbfd","symbol":"𝗱"} -, {"keyword":"sansbfe","symbol":"𝗲"} -, {"keyword":"sansbff","symbol":"𝗳"} -, {"keyword":"sansbfg","symbol":"𝗴"} -, {"keyword":"sansbfh","symbol":"𝗵"} -, {"keyword":"sansbfi","symbol":"𝗶"} -, {"keyword":"sansbfj","symbol":"𝗷"} -, {"keyword":"sansbfk","symbol":"𝗸"} -, {"keyword":"sansbfl","symbol":"𝗹"} -, {"keyword":"sansbfm","symbol":"𝛺"} -, {"keyword":"sansbfn","symbol":"𝗻"} -, {"keyword":"sansbfo","symbol":"𝗼"} -, {"keyword":"sansbfp","symbol":"𝗽"} -, {"keyword":"sansbfq","symbol":"𝗾"} -, {"keyword":"sansbfr","symbol":"𝗿"} -, {"keyword":"sansbfs","symbol":"𝘀"} -, {"keyword":"sansbft","symbol":"𝘁"} -, {"keyword":"sansbfu","symbol":"𝘂"} -, {"keyword":"sansbfv","symbol":"𝘃"} -, {"keyword":"sansbfw","symbol":"𝘄"} -, {"keyword":"sansbfx","symbol":"𝘅"} -, {"keyword":"sansbfy","symbol":"𝘆"} -, {"keyword":"sansbfz","symbol":"𝘇"} -, {"keyword":"sansitA","symbol":"𝘈"} -, {"keyword":"sansitB","symbol":"𝘉"} -, {"keyword":"sansitC","symbol":"𝘊"} -, {"keyword":"sansitD","symbol":"𝘋"} -, {"keyword":"sansitE","symbol":"𝘌"} -, {"keyword":"sansitF","symbol":"𝘍"} -, {"keyword":"sansitG","symbol":"𝘎"} -, {"keyword":"sansitH","symbol":"𝘏"} -, {"keyword":"sansitI","symbol":"𝘐"} -, {"keyword":"sansitJ","symbol":"𝘑"} -, {"keyword":"sansitK","symbol":"𝘒"} -, {"keyword":"sansitL","symbol":"𝘓"} -, {"keyword":"sansitM","symbol":"𝘔"} -, {"keyword":"sansitN","symbol":"𝘕"} -, {"keyword":"sansitO","symbol":"𝘖"} -, {"keyword":"sansitP","symbol":"𝘗"} -, {"keyword":"sansitQ","symbol":"𝘘"} -, {"keyword":"sansitR","symbol":"𝘙"} -, {"keyword":"sansitS","symbol":"𝘚"} -, {"keyword":"sansitT","symbol":"𝘛"} -, {"keyword":"sansitU","symbol":"𝘜"} -, {"keyword":"sansitV","symbol":"𝘝"} -, {"keyword":"sansitW","symbol":"𝘞"} -, {"keyword":"sansitX","symbol":"𝘟"} -, {"keyword":"sansitY","symbol":"𝘠"} -, {"keyword":"sansitZ","symbol":"𝘡"} -, {"keyword":"sansita","symbol":"𝘢"} -, {"keyword":"sansitb","symbol":"𝘣"} -, {"keyword":"sansitc","symbol":"𝘤"} -, {"keyword":"sansitd","symbol":"𝘥"} -, {"keyword":"sansite","symbol":"𝘦"} -, {"keyword":"sansitf","symbol":"𝘧"} -, {"keyword":"sansitg","symbol":"𝘨"} -, {"keyword":"sansith","symbol":"𝘩"} -, {"keyword":"sansiti","symbol":"𝘪"} -, {"keyword":"sansitj","symbol":"𝘫"} -, {"keyword":"sansitk","symbol":"𝘬"} -, {"keyword":"sansitl","symbol":"𝘭"} -, {"keyword":"sansitm","symbol":"𝘮"} -, {"keyword":"sansitn","symbol":"𝘯"} -, {"keyword":"sansito","symbol":"𝘰"} -, {"keyword":"sansitp","symbol":"𝘱"} -, {"keyword":"sansitq","symbol":"𝘲"} -, {"keyword":"sansitr","symbol":"𝘳"} -, {"keyword":"sansits","symbol":"𝘴"} -, {"keyword":"sansitt","symbol":"𝘵"} -, {"keyword":"sansitu","symbol":"𝘶"} -, {"keyword":"sansitv","symbol":"𝘷"} -, {"keyword":"sansitw","symbol":"𝘸"} -, {"keyword":"sansitx","symbol":"𝘹"} -, {"keyword":"sansity","symbol":"𝘺"} -, {"keyword":"sansitz","symbol":"𝘻"} -, {"keyword":"sansbfitA","symbol":"𝘼"} -, {"keyword":"sansbfitB","symbol":"𝘽"} -, {"keyword":"sansbfitC","symbol":"𝘾"} -, {"keyword":"sansbfitD","symbol":"𝘿"} -, {"keyword":"sansbfitE","symbol":"𝙀"} -, {"keyword":"sansbfitF","symbol":"𝙁"} -, {"keyword":"sansbfitG","symbol":"𝙂"} -, {"keyword":"sansbfitH","symbol":"𝙃"} -, {"keyword":"sansbfitI","symbol":"𝙄"} -, {"keyword":"sansbfitJ","symbol":"𝙅"} -, {"keyword":"sansbfitK","symbol":"𝙆"} -, {"keyword":"sansbfitL","symbol":"𝙇"} -, {"keyword":"sansbfitM","symbol":"𝙈"} -, {"keyword":"sansbfitN","symbol":"𝙉"} -, {"keyword":"sansbfitO","symbol":"𝙊"} -, {"keyword":"sansbfitP","symbol":"𝙋"} -, {"keyword":"sansbfitQ","symbol":"𝙌"} -, {"keyword":"sansbfitR","symbol":"𝙍"} -, {"keyword":"sansbfitS","symbol":"𝙎"} -, {"keyword":"sansbfitT","symbol":"𝙏"} -, {"keyword":"sansbfitU","symbol":"𝙐"} -, {"keyword":"sansbfitV","symbol":"𝙑"} -, {"keyword":"sansbfitW","symbol":"𝙒"} -, {"keyword":"sansbfitX","symbol":"𝙓"} -, {"keyword":"sansbfitY","symbol":"𝙔"} -, {"keyword":"sansbfitZ","symbol":"𝙕"} -, {"keyword":"sansbfita","symbol":"𝙖"} -, {"keyword":"sansbfitb","symbol":"𝙗"} -, {"keyword":"sansbfitc","symbol":"𝙘"} -, {"keyword":"sansbfitd","symbol":"𝙙"} -, {"keyword":"sansbfite","symbol":"𝙚"} -, {"keyword":"sansbfitf","symbol":"𝙛"} -, {"keyword":"sansbfitg","symbol":"𝙜"} -, {"keyword":"sansbfith","symbol":"𝙝"} -, {"keyword":"sansbfiti","symbol":"𝙞"} -, {"keyword":"sansbfitj","symbol":"𝙟"} -, {"keyword":"sansbfitk","symbol":"𝙠"} -, {"keyword":"sansbfitl","symbol":"𝙡"} -, {"keyword":"sansbfitm","symbol":"𝙢"} -, {"keyword":"sansbfitn","symbol":"𝙣"} -, {"keyword":"sansbfito","symbol":"𝙤"} -, {"keyword":"sansbfitp","symbol":"𝙥"} -, {"keyword":"sansbfitq","symbol":"𝙦"} -, {"keyword":"sansbfitr","symbol":"𝙧"} -, {"keyword":"sansbfits","symbol":"𝙨"} -, {"keyword":"sansbfitt","symbol":"𝙩"} -, {"keyword":"sansbfitu","symbol":"𝙪"} -, {"keyword":"sansbfitv","symbol":"𝙫"} -, {"keyword":"sansbfitw","symbol":"𝙬"} -, {"keyword":"sansbfitx","symbol":"𝙭"} -, {"keyword":"sansbfity","symbol":"𝙮"} -, {"keyword":"sansbfitz","symbol":"𝙯"} -, {"keyword":"monoA","symbol":"𝙰"} -, {"keyword":"monoB","symbol":"𝙱"} -, {"keyword":"monoC","symbol":"𝙲"} -, {"keyword":"monoD","symbol":"𝙳"} -, {"keyword":"monoE","symbol":"𝙴"} -, {"keyword":"monoF","symbol":"𝙵"} -, {"keyword":"monoG","symbol":"𝙶"} -, {"keyword":"monoH","symbol":"𝙷"} -, {"keyword":"monoI","symbol":"𝙸"} -, {"keyword":"monoJ","symbol":"𝙹"} -, {"keyword":"monoK","symbol":"𝙺"} -, {"keyword":"monoL","symbol":"𝙻"} -, {"keyword":"monoM","symbol":"𝙼"} -, {"keyword":"monoN","symbol":"𝙽"} -, {"keyword":"monoO","symbol":"𝙾"} -, {"keyword":"monoP","symbol":"𝙿"} -, {"keyword":"monoQ","symbol":"𝚀"} -, {"keyword":"monoR","symbol":"𝚁"} -, {"keyword":"monoS","symbol":"𝚂"} -, {"keyword":"monoT","symbol":"𝚃"} -, {"keyword":"monoU","symbol":"𝚄"} -, {"keyword":"monoV","symbol":"𝚅"} -, {"keyword":"monoW","symbol":"𝚆"} -, {"keyword":"monoX","symbol":"𝚇"} -, {"keyword":"monoY","symbol":"𝚈"} -, {"keyword":"monoZ","symbol":"𝚉"} -, {"keyword":"monoa","symbol":"𝚊"} -, {"keyword":"monob","symbol":"𝚋"} -, {"keyword":"monoc","symbol":"𝚌"} -, {"keyword":"monod","symbol":"𝚍"} -, {"keyword":"monoe","symbol":"𝚎"} -, {"keyword":"monof","symbol":"𝚏"} -, {"keyword":"monog","symbol":"𝚐"} -, {"keyword":"monoh","symbol":"𝚑"} -, {"keyword":"monoi","symbol":"𝚒"} -, {"keyword":"monoj","symbol":"𝚓"} -, {"keyword":"monok","symbol":"𝚔"} -, {"keyword":"monol","symbol":"𝚕"} -, {"keyword":"monom","symbol":"𝚖"} -, {"keyword":"monon","symbol":"𝚗"} -, {"keyword":"monoo","symbol":"𝚘"} -, {"keyword":"monop","symbol":"𝚙"} -, {"keyword":"monoq","symbol":"𝚚"} -, {"keyword":"monor","symbol":"𝚛"} -, {"keyword":"monos","symbol":"𝚜"} -, {"keyword":"monot","symbol":"𝚝"} -, {"keyword":"monou","symbol":"𝚞"} -, {"keyword":"monov","symbol":"𝚟"} -, {"keyword":"monow","symbol":"𝚠"} -, {"keyword":"monox","symbol":"𝚡"} -, {"keyword":"monoy","symbol":"𝚢"} -, {"keyword":"monoz","symbol":"𝚣"} -, {"keyword":"itimath","symbol":"𝚤"} -, {"keyword":"itjmath","symbol":"𝚥"} -, {"keyword":"bfAlpha","symbol":"𝚨"} -, {"keyword":"bfBeta","symbol":"𝚩"} -, {"keyword":"bfGammma","symbol":"𝚪"} -, {"keyword":"bfDelta","symbol":"𝚫"} -, {"keyword":"bfEpsilon","symbol":"𝚬"} -, {"keyword":"bfZeta","symbol":"𝚭"} -, {"keyword":"bfEta","symbol":"𝚮"} -, {"keyword":"bfTheta","symbol":"𝚯"} -, {"keyword":"bfIota","symbol":"𝚰"} -, {"keyword":"bfKappa","symbol":"𝚱"} -, {"keyword":"bfLambda","symbol":"𝚲"} -, {"keyword":"bfMu","symbol":"𝚳"} -, {"keyword":"bfNu","symbol":"𝚴"} -, {"keyword":"bfXi","symbol":"𝚵"} -, {"keyword":"bfOmicron","symbol":"𝚶"} -, {"keyword":"bfPi","symbol":"𝚷"} -, {"keyword":"bfRho","symbol":"𝚸"} -, {"keyword":"bfvarTheta","symbol":"𝚹"} -, {"keyword":"bfSigma","symbol":"𝚺"} -, {"keyword":"bfTau","symbol":"𝚻"} -, {"keyword":"bfUpsilon","symbol":"𝚼"} -, {"keyword":"bfPhi","symbol":"𝚽"} -, {"keyword":"bfChi","symbol":"𝚾"} -, {"keyword":"bfPsi","symbol":"𝚿"} -, {"keyword":"bfOmega","symbol":"𝛀"} -, {"keyword":"bfnabla","symbol":"𝛁"} -, {"keyword":"bfalpha","symbol":"𝛂"} -, {"keyword":"bfbeta","symbol":"𝛃"} -, {"keyword":"bfgamma","symbol":"𝛄"} -, {"keyword":"bfdelta","symbol":"𝛅"} -, {"keyword":"bfvarepsilon","symbol":"𝛆"} -, {"keyword":"bfzeta","symbol":"𝛇"} -, {"keyword":"bfeta","symbol":"𝛈"} -, {"keyword":"bftheta","symbol":"𝛉"} -, {"keyword":"bfiota","symbol":"𝛊"} -, {"keyword":"bfkappa","symbol":"𝛋"} -, {"keyword":"bflambda","symbol":"𝛌"} -, {"keyword":"bfmu","symbol":"𝛍"} -, {"keyword":"bfnu","symbol":"𝛎"} -, {"keyword":"bfxi","symbol":"𝛏"} -, {"keyword":"bfomicron","symbol":"𝛐"} -, {"keyword":"bfpi","symbol":"𝛑"} -, {"keyword":"bfrho","symbol":"𝛒"} -, {"keyword":"bfvarsigma","symbol":"𝛓"} -, {"keyword":"bfsigma","symbol":"𝛔"} -, {"keyword":"bftau","symbol":"𝛕"} -, {"keyword":"bfupsilon","symbol":"𝛖"} -, {"keyword":"bfvarphi","symbol":"𝛗"} -, {"keyword":"bfchi","symbol":"𝛘"} -, {"keyword":"bfpsi","symbol":"𝛙"} -, {"keyword":"bfomega","symbol":"𝛚"} -, {"keyword":"bfpartial","symbol":"𝛛"} -, {"keyword":"bfepsilon","symbol":"𝛜"} -, {"keyword":"bfvartheta","symbol":"𝛝"} -, {"keyword":"bfvarkappa","symbol":"𝛞"} -, {"keyword":"bfphi","symbol":"𝛟"} -, {"keyword":"bfvarrho","symbol":"𝛠"} -, {"keyword":"bfvarpi","symbol":"𝛡"} -, {"keyword":"itAlpha","symbol":"𝛢"} -, {"keyword":"itBeta","symbol":"𝛣"} -, {"keyword":"itGammma","symbol":"𝛤"} -, {"keyword":"itDelta","symbol":"𝛥"} -, {"keyword":"itEpsilon","symbol":"𝛦"} -, {"keyword":"itZeta","symbol":"𝛧"} -, {"keyword":"itEta","symbol":"𝛨"} -, {"keyword":"itTheta","symbol":"𝛩"} -, {"keyword":"itIota","symbol":"𝛪"} -, {"keyword":"itKappa","symbol":"𝛫"} -, {"keyword":"itLambda","symbol":"𝛬"} -, {"keyword":"itMu","symbol":"𝛭"} -, {"keyword":"itNu","symbol":"𝛮"} -, {"keyword":"itXi","symbol":"𝛯"} -, {"keyword":"itOmicron","symbol":"𝛰"} -, {"keyword":"itPi","symbol":"𝛱"} -, {"keyword":"itRho","symbol":"𝛲"} -, {"keyword":"itvarTheta","symbol":"𝛳"} -, {"keyword":"itSigma","symbol":"𝛴"} -, {"keyword":"itTau","symbol":"𝛵"} -, {"keyword":"itUpsilon","symbol":"𝛶"} -, {"keyword":"itPhi","symbol":"𝛷"} -, {"keyword":"itChi","symbol":"𝛸"} -, {"keyword":"itPsi","symbol":"𝛹"} -, {"keyword":"itOmega","symbol":"𝛺"} -, {"keyword":"itnabla","symbol":"𝛻"} -, {"keyword":"italpha","symbol":"𝛼"} -, {"keyword":"itbeta","symbol":"𝛽"} -, {"keyword":"itgamma","symbol":"𝛾"} -, {"keyword":"itdelta","symbol":"𝛿"} -, {"keyword":"itvarepsilon","symbol":"𝜀"} -, {"keyword":"itzeta","symbol":"𝜁"} -, {"keyword":"iteta","symbol":"𝜂"} -, {"keyword":"ittheta","symbol":"𝜃"} -, {"keyword":"itiota","symbol":"𝜄"} -, {"keyword":"itkappa","symbol":"𝜅"} -, {"keyword":"itlambda","symbol":"𝜆"} -, {"keyword":"itmu","symbol":"𝜇"} -, {"keyword":"itnu","symbol":"𝜈"} -, {"keyword":"itxi","symbol":"𝜉"} -, {"keyword":"itomicron","symbol":"𝜊"} -, {"keyword":"itpi","symbol":"𝜋"} -, {"keyword":"itrho","symbol":"𝜌"} -, {"keyword":"itvarsigma","symbol":"𝜍"} -, {"keyword":"itsigma","symbol":"𝜎"} -, {"keyword":"ittau","symbol":"𝜏"} -, {"keyword":"itupsilon","symbol":"𝜐"} -, {"keyword":"itvarphi","symbol":"𝜑"} -, {"keyword":"itchi","symbol":"𝜒"} -, {"keyword":"itpsi","symbol":"𝜓"} -, {"keyword":"itomega","symbol":"𝜔"} -, {"keyword":"itpartial","symbol":"𝜕"} -, {"keyword":"itepsilon","symbol":"𝜖"} -, {"keyword":"itvartheta","symbol":"𝜗"} -, {"keyword":"itvarkappa","symbol":"𝜘"} -, {"keyword":"itphi","symbol":"𝜙"} -, {"keyword":"itvarrho","symbol":"𝜚"} -, {"keyword":"itvarpi","symbol":"𝜛"} -, {"keyword":"bfitAlpha","symbol":"𝜜"} -, {"keyword":"bfitBeta","symbol":"𝜝"} -, {"keyword":"bfitGammma","symbol":"𝜞"} -, {"keyword":"bfitDelta","symbol":"𝜟"} -, {"keyword":"bfitEpsilon","symbol":"𝜠"} -, {"keyword":"bfitZeta","symbol":"𝜡"} -, {"keyword":"bfitEta","symbol":"𝜢"} -, {"keyword":"bfitTheta","symbol":"𝜣"} -, {"keyword":"bfitIota","symbol":"𝜤"} -, {"keyword":"bfitKappa","symbol":"𝜥"} -, {"keyword":"bfitLambda","symbol":"𝜦"} -, {"keyword":"bfitMu","symbol":"𝜧"} -, {"keyword":"bfitNu","symbol":"𝜨"} -, {"keyword":"bfitXi","symbol":"𝜩"} -, {"keyword":"bfitOmicron","symbol":"𝜪"} -, {"keyword":"bfitPi","symbol":"𝜫"} -, {"keyword":"bfitRho","symbol":"𝜬"} -, {"keyword":"bfitvarTheta","symbol":"𝜭"} -, {"keyword":"bfitSigma","symbol":"𝜮"} -, {"keyword":"bfitTau","symbol":"𝜯"} -, {"keyword":"bfitUpsilon","symbol":"𝜰"} -, {"keyword":"bfitPhi","symbol":"𝜱"} -, {"keyword":"bfitChi","symbol":"𝜲"} -, {"keyword":"bfitPsi","symbol":"𝜳"} -, {"keyword":"bfitOmega","symbol":"𝜴"} -, {"keyword":"bfitnabla","symbol":"𝜵"} -, {"keyword":"bfitalpha","symbol":"𝜶"} -, {"keyword":"bfitbeta","symbol":"𝜷"} -, {"keyword":"bfitgamma","symbol":"𝜸"} -, {"keyword":"bfitdelta","symbol":"𝜹"} -, {"keyword":"bfitvarepsilon","symbol":"𝜺"} -, {"keyword":"bfitzeta","symbol":"𝜻"} -, {"keyword":"bfiteta","symbol":"𝜼"} -, {"keyword":"bfittheta","symbol":"𝜽"} -, {"keyword":"bfitiota","symbol":"𝜾"} -, {"keyword":"bfitkappa","symbol":"𝜿"} -, {"keyword":"bfitlambda","symbol":"𝝀"} -, {"keyword":"bfitmu","symbol":"𝝁"} -, {"keyword":"bfitnu","symbol":"𝝂"} -, {"keyword":"bfitxi","symbol":"𝝃"} -, {"keyword":"bfitomicron","symbol":"𝝄"} -, {"keyword":"bfitpi","symbol":"𝝅"} -, {"keyword":"bfitrho","symbol":"𝝆"} -, {"keyword":"bfitvarsigma","symbol":"𝝇"} -, {"keyword":"bfitsigma","symbol":"𝝈"} -, {"keyword":"bfittau","symbol":"𝝉"} -, {"keyword":"bfitupsilon","symbol":"𝝊"} -, {"keyword":"bfitvarphi","symbol":"𝝋"} -, {"keyword":"bfitchi","symbol":"𝝌"} -, {"keyword":"bfitpsi","symbol":"𝝍"} -, {"keyword":"bfitomega","symbol":"𝝎"} -, {"keyword":"bfitpartial","symbol":"𝝏"} -, {"keyword":"bfitepsilon","symbol":"𝝐"} -, {"keyword":"bfitvartheta","symbol":"𝝑"} -, {"keyword":"bfitvarkappa","symbol":"𝝒"} -, {"keyword":"bfitphi","symbol":"𝝓"} -, {"keyword":"bfitvarrho","symbol":"𝝔"} -, {"keyword":"bfitvarpi","symbol":"𝝕"} -, {"keyword":"sansbfAlpha","symbol":"𝝖"} -, {"keyword":"sansbfBeta","symbol":"𝝗"} -, {"keyword":"sansbfGammma","symbol":"𝝘"} -, {"keyword":"sansbfDelta","symbol":"𝝙"} -, {"keyword":"sansbfEpsilon","symbol":"𝝚"} -, {"keyword":"sansbfZeta","symbol":"𝝛"} -, {"keyword":"sansbfEta","symbol":"𝝜"} -, {"keyword":"sansbfTheta","symbol":"𝝝"} -, {"keyword":"sansbfIota","symbol":"𝝞"} -, {"keyword":"sansbfKappa","symbol":"𝝟"} -, {"keyword":"sansbfLambda","symbol":"𝝠"} -, {"keyword":"sansbfMu","symbol":"𝝡"} -, {"keyword":"sansbfNu","symbol":"𝝢"} -, {"keyword":"sansbfXi","symbol":"𝝣"} -, {"keyword":"sansbfOmicron","symbol":"𝝤"} -, {"keyword":"sansbfPi","symbol":"𝝥"} -, {"keyword":"sansbfRho","symbol":"𝝦"} -, {"keyword":"sansbfvarTheta","symbol":"𝝧"} -, {"keyword":"sansbfSigma","symbol":"𝝨"} -, {"keyword":"sansbfTau","symbol":"𝝩"} -, {"keyword":"sansbfUpsilon","symbol":"𝝪"} -, {"keyword":"sansbfPhi","symbol":"𝝫"} -, {"keyword":"sansbfChi","symbol":"𝝬"} -, {"keyword":"sansbfPsi","symbol":"𝝭"} -, {"keyword":"sansbfOmega","symbol":"𝝮"} -, {"keyword":"sansbfnabla","symbol":"𝝯"} -, {"keyword":"sansbfalpha","symbol":"𝝰"} -, {"keyword":"sansbfbeta","symbol":"𝝱"} -, {"keyword":"sansbfgamma","symbol":"𝝲"} -, {"keyword":"sansbfdelta","symbol":"𝝳"} -, {"keyword":"sansbfvarepsilon","symbol":"𝝴"} -, {"keyword":"sansbfzeta","symbol":"𝝵"} -, {"keyword":"sansbfeta","symbol":"𝝶"} -, {"keyword":"sansbftheta","symbol":"𝝷"} -, {"keyword":"sansbfiota","symbol":"𝝸"} -, {"keyword":"sansbfkappa","symbol":"𝝹"} -, {"keyword":"sansbflambda","symbol":"𝝺"} -, {"keyword":"sansbfmu","symbol":"𝝻"} -, {"keyword":"sansbfnu","symbol":"𝝼"} -, {"keyword":"sansbfxi","symbol":"𝝽"} -, {"keyword":"sansbfomicron","symbol":"𝝾"} -, {"keyword":"sansbfpi","symbol":"𝝿"} -, {"keyword":"sansbfrho","symbol":"𝞀"} -, {"keyword":"sansbfvarsigma","symbol":"𝞁"} -, {"keyword":"sansbfsigma","symbol":"𝞂"} -, {"keyword":"sansbftau","symbol":"𝞃"} -, {"keyword":"sansbfupsilon","symbol":"𝞄"} -, {"keyword":"sansbfvarphi","symbol":"𝞅"} -, {"keyword":"sansbfchi","symbol":"𝞆"} -, {"keyword":"sansbfpsi","symbol":"𝞇"} -, {"keyword":"sansbfomega","symbol":"𝞈"} -, {"keyword":"sansbfpartial","symbol":"𝞉"} -, {"keyword":"sansbfepsilon","symbol":"𝞊"} -, {"keyword":"sansbfvartheta","symbol":"𝞋"} -, {"keyword":"sansbfvarkappa","symbol":"𝞌"} -, {"keyword":"sansbfphi","symbol":"𝞍"} -, {"keyword":"sansbfvarrho","symbol":"𝞎"} -, {"keyword":"sansbfvarpi","symbol":"𝞏"} -, {"keyword":"sansbfitAlpha","symbol":"𝞐"} -, {"keyword":"sansbfitBeta","symbol":"𝞑"} -, {"keyword":"sansbfitGammma","symbol":"𝞒"} -, {"keyword":"sansbfitDelta","symbol":"𝞓"} -, {"keyword":"sansbfitEpsilon","symbol":"𝞔"} -, {"keyword":"sansbfitZeta","symbol":"𝞕"} -, {"keyword":"sansbfitEta","symbol":"𝞖"} -, {"keyword":"sansbfitTheta","symbol":"𝞗"} -, {"keyword":"sansbfitIota","symbol":"𝞘"} -, {"keyword":"sansbfitKappa","symbol":"𝞙"} -, {"keyword":"sansbfitLambda","symbol":"𝞚"} -, {"keyword":"sansbfitMu","symbol":"𝞛"} -, {"keyword":"sansbfitNu","symbol":"𝞜"} -, {"keyword":"sansbfitXi","symbol":"𝞝"} -, {"keyword":"sansbfitOmicron","symbol":"𝞞"} -, {"keyword":"sansbfitPi","symbol":"𝞟"} -, {"keyword":"sansbfitRho","symbol":"𝞠"} -, {"keyword":"sansbfitvarTheta","symbol":"𝞡"} -, {"keyword":"sansbfitSigma","symbol":"𝞢"} -, {"keyword":"sansbfitTau","symbol":"𝞣"} -, {"keyword":"sansbfitUpsilon","symbol":"𝞤"} -, {"keyword":"sansbfitPhi","symbol":"𝞥"} -, {"keyword":"sansbfitChi","symbol":"𝞦"} -, {"keyword":"sansbfitPsi","symbol":"𝞧"} -, {"keyword":"sansbfitOmega","symbol":"𝞨"} -, {"keyword":"sansbfitnabla","symbol":"𝞩"} -, {"keyword":"sansbfitalpha","symbol":"𝞪"} -, {"keyword":"sansbfitbeta","symbol":"𝞫"} -, {"keyword":"sansbfitgamma","symbol":"𝞬"} -, {"keyword":"sansbfitdelta","symbol":"𝞭"} -, {"keyword":"sansbfitvarepsilon","symbol":"𝞮"} -, {"keyword":"sansbfitzeta","symbol":"𝞯"} -, {"keyword":"sansbfiteta","symbol":"𝞰"} -, {"keyword":"sansbfittheta","symbol":"𝞱"} -, {"keyword":"sansbfitiota","symbol":"𝞲"} -, {"keyword":"sansbfitkappa","symbol":"𝞳"} -, {"keyword":"sansbfitlambda","symbol":"𝞴"} -, {"keyword":"sansbfitmu","symbol":"𝞵"} -, {"keyword":"sansbfitnu","symbol":"𝞶"} -, {"keyword":"sansbfitxi","symbol":"𝞷"} -, {"keyword":"sansbfitomicron","symbol":"𝞸"} -, {"keyword":"sansbfitpi","symbol":"𝞹"} -, {"keyword":"sansbfitrho","symbol":"𝞺"} -, {"keyword":"sansbfitvarsigma","symbol":"𝞻"} -, {"keyword":"sansbfitsigma","symbol":"𝞼"} -, {"keyword":"sansbfittau","symbol":"𝞽"} -, {"keyword":"sansbfitupsilon","symbol":"𝞾"} -, {"keyword":"sansbfitvarphi","symbol":"𝞿"} -, {"keyword":"sansbfitchi","symbol":"𝟀"} -, {"keyword":"sansbfitpsi","symbol":"𝟁"} -, {"keyword":"sansbfitomega","symbol":"𝟂"} -, {"keyword":"sansbfitpartial","symbol":"𝟃"} -, {"keyword":"sansbfitepsilon","symbol":"𝟄"} -, {"keyword":"sansbfitvartheta","symbol":"𝟅"} -, {"keyword":"sansbfitvarkappa","symbol":"𝟆"} -, {"keyword":"sansbfitphi","symbol":"𝟇"} -, {"keyword":"sansbfitvarrho","symbol":"𝟈"} -, {"keyword":"sansbfitvarpi","symbol":"𝟉"} -, {"keyword":"bfDigamma","symbol":"𝟊"} -, {"keyword":"bfdigamma","symbol":"𝟋"} -, {"keyword":"bf0","symbol":"𝟎"} -, {"keyword":"bf1","symbol":"𝟏"} -, {"keyword":"bf2","symbol":"𝟐"} -, {"keyword":"bf3","symbol":"𝟑"} -, {"keyword":"bf4","symbol":"𝟒"} -, {"keyword":"bf5","symbol":"𝟓"} -, {"keyword":"bf6","symbol":"𝟔"} -, {"keyword":"bf7","symbol":"𝟕"} -, {"keyword":"bf8","symbol":"𝟖"} -, {"keyword":"bf9","symbol":"𝟗"} -, {"keyword":"bb0","symbol":"𝟘"} -, {"keyword":"bb1","symbol":"𝟙"} -, {"keyword":"bb2","symbol":"𝟚"} -, {"keyword":"bb3","symbol":"𝟛"} -, {"keyword":"bb4","symbol":"𝟜"} -, {"keyword":"bb5","symbol":"𝟝"} -, {"keyword":"bb6","symbol":"𝟞"} -, {"keyword":"bb7","symbol":"𝟟"} -, {"keyword":"bb8","symbol":"𝟠"} -, {"keyword":"bb9","symbol":"𝟡"} -, {"keyword":"sans0","symbol":"𝟢"} -, {"keyword":"sans1","symbol":"𝟣"} -, {"keyword":"sans2","symbol":"𝟤"} -, {"keyword":"sans3","symbol":"𝟥"} -, {"keyword":"sans4","symbol":"𝟦"} -, {"keyword":"sans5","symbol":"𝟧"} -, {"keyword":"sans6","symbol":"𝟨"} -, {"keyword":"sans7","symbol":"𝟩"} -, {"keyword":"sans8","symbol":"𝟪"} -, {"keyword":"sans9","symbol":"𝟫"} -, {"keyword":"sansbf0","symbol":"𝟬"} -, {"keyword":"sansbf1","symbol":"𝟭"} -, {"keyword":"sansbf2","symbol":"𝟮"} -, {"keyword":"sansbf3","symbol":"𝟯"} -, {"keyword":"sansbf4","symbol":"𝟰"} -, {"keyword":"sansbf5","symbol":"𝟱"} -, {"keyword":"sansbf6","symbol":"𝟲"} -, {"keyword":"sansbf7","symbol":"𝟳"} -, {"keyword":"sansbf8","symbol":"𝟴"} -, {"keyword":"sansbf9","symbol":"𝟵"} -, {"keyword":"mono0","symbol":"𝟶"} -, {"keyword":"mono1","symbol":"𝟷"} -, {"keyword":"mono2","symbol":"𝟸"} -, {"keyword":"mono3","symbol":"𝟹"} -, {"keyword":"mono4","symbol":"𝟺"} -, {"keyword":"mono5","symbol":"𝟻"} -, {"keyword":"mono6","symbol":"𝟼"} -, {"keyword":"mono7","symbol":"𝟽"} -, {"keyword":"mono8","symbol":"𝟾"} -, {"keyword":"mono9","symbol":"𝟿"} +[ {"keyword":"}}","symbols":[{"style":[],"symbol":"⦄"}]} +, {"keyword":"|)","symbols":[{"style":[],"symbol":"⦈"}]} +, {"keyword":"|","symbols":[{"style":[],"symbol":"‖"}]} +, {"keyword":"{{","symbols":[{"style":[],"symbol":"⦃"}]} +, {"keyword":"zeta","symbols":[{"style":[],"symbol":"ζ"},{"style":["bf"],"symbol":"𝛇"},{"style":["it"],"symbol":"𝜁"},{"style":["bf","it"],"symbol":"𝜻"},{"style":["sf","bf"],"symbol":"𝝵"},{"style":["sf","bf","it"],"symbol":"𝞯"}]} +, {"keyword":"z","symbols":[{"style":["bf"],"symbol":"𝐳"},{"style":["it"],"symbol":"𝑧"},{"style":["bf","it"],"symbol":"𝒛"},{"style":["scr"],"symbol":"𝓏"},{"style":["cal"],"symbol":"𝔃"},{"style":["frak"],"symbol":"𝔷"},{"style":["bb"],"symbol":"𝕫"},{"style":["bf","frak"],"symbol":"𝖟"},{"style":["sf"],"symbol":"𝗓"},{"style":["sf","bf"],"symbol":"𝘇"},{"style":["sf","it"],"symbol":"𝘻"},{"style":["sf","bf","it"],"symbol":"𝙯"},{"style":["tt"],"symbol":"𝚣"}]} +, {"keyword":"y","symbols":[{"style":["bf"],"symbol":"𝐲"},{"style":["it"],"symbol":"𝑦"},{"style":["bf","it"],"symbol":"𝒚"},{"style":["scr"],"symbol":"𝓎"},{"style":["cal"],"symbol":"𝔂"},{"style":["frak"],"symbol":"𝔶"},{"style":["bb"],"symbol":"𝕪"},{"style":["bf","frak"],"symbol":"𝖞"},{"style":["sf"],"symbol":"𝗒"},{"style":["sf","bf"],"symbol":"𝘆"},{"style":["sf","it"],"symbol":"𝘺"},{"style":["sf","bf","it"],"symbol":"𝙮"},{"style":["tt"],"symbol":"𝚢"}]} +, {"keyword":"xi","symbols":[{"style":[],"symbol":"ξ"},{"style":["bf"],"symbol":"𝛏"},{"style":["it"],"symbol":"𝜉"},{"style":["bf","it"],"symbol":"𝝃"},{"style":["sf","bf"],"symbol":"𝝽"},{"style":["sf","bf","it"],"symbol":"𝞷"}]} +, {"keyword":"x","symbols":[{"style":["bf"],"symbol":"𝐱"},{"style":["it"],"symbol":"𝑥"},{"style":["bf","it"],"symbol":"𝒙"},{"style":["scr"],"symbol":"𝓍"},{"style":["cal"],"symbol":"𝔁"},{"style":["frak"],"symbol":"𝔵"},{"style":["bb"],"symbol":"𝕩"},{"style":["bf","frak"],"symbol":"𝖝"},{"style":["sf"],"symbol":"𝗑"},{"style":["sf","bf"],"symbol":"𝘅"},{"style":["sf","it"],"symbol":"𝘹"},{"style":["sf","bf","it"],"symbol":"𝙭"},{"style":["tt"],"symbol":"𝚡"}]} +, {"keyword":"wp","symbols":[{"style":[],"symbol":"℘"}]} +, {"keyword":"w","symbols":[{"style":["bf"],"symbol":"𝐰"},{"style":["it"],"symbol":"𝑤"},{"style":["bf","it"],"symbol":"𝒘"},{"style":["scr"],"symbol":"𝓌"},{"style":["cal"],"symbol":"𝔀"},{"style":["frak"],"symbol":"𝔴"},{"style":["bb"],"symbol":"𝕨"},{"style":["bf","frak"],"symbol":"𝖜"},{"style":["sf"],"symbol":"𝗐"},{"style":["sf","bf"],"symbol":"𝘄"},{"style":["sf","it"],"symbol":"𝘸"},{"style":["sf","bf","it"],"symbol":"𝙬"},{"style":["tt"],"symbol":"𝚠"}]} +, {"keyword":"vartheta","symbols":[{"style":[],"symbol":"ϑ"},{"style":["bf"],"symbol":"𝛝"},{"style":["it"],"symbol":"𝜗"},{"style":["bf","it"],"symbol":"𝝑"},{"style":["sf","bf"],"symbol":"𝞋"},{"style":["sf","bf","it"],"symbol":"𝟅"}]} +, {"keyword":"varsigma","symbols":[{"style":[],"symbol":"ς"},{"style":["bf"],"symbol":"𝛓"},{"style":["it"],"symbol":"𝜍"},{"style":["bf","it"],"symbol":"𝝇"},{"style":["sf","bf"],"symbol":"𝞁"},{"style":["sf","bf","it"],"symbol":"𝞻"}]} +, {"keyword":"varrho","symbols":[{"style":[],"symbol":"ϱ"},{"style":["bf"],"symbol":"𝛠"},{"style":["it"],"symbol":"𝜚"},{"style":["bf","it"],"symbol":"𝝔"},{"style":["sf","bf"],"symbol":"𝞎"},{"style":["sf","bf","it"],"symbol":"𝟈"}]} +, {"keyword":"varpi","symbols":[{"style":[],"symbol":"ϖ"},{"style":["bf"],"symbol":"𝛡"},{"style":["it"],"symbol":"𝜛"},{"style":["bf","it"],"symbol":"𝝕"},{"style":["sf","bf"],"symbol":"𝞏"},{"style":["sf","bf","it"],"symbol":"𝟉"}]} +, {"keyword":"varphi","symbols":[{"style":[],"symbol":"φ"},{"style":["bf"],"symbol":"𝛗"},{"style":["it"],"symbol":"𝜑"},{"style":["bf","it"],"symbol":"𝝋"},{"style":["sf","bf"],"symbol":"𝞅"},{"style":["sf","bf","it"],"symbol":"𝞿"}]} +, {"keyword":"varkappa","symbols":[{"style":[],"symbol":"ϰ"},{"style":["bf"],"symbol":"𝛞"},{"style":["it"],"symbol":"𝜘"},{"style":["bf","it"],"symbol":"𝝒"},{"style":["sf","bf"],"symbol":"𝞌"},{"style":["sf","bf","it"],"symbol":"𝟆"}]} +, {"keyword":"varepsilon","symbols":[{"style":[],"symbol":"ε"},{"style":["bf"],"symbol":"𝛆"},{"style":["it"],"symbol":"𝜀"},{"style":["bf","it"],"symbol":"𝜺"},{"style":["sf","bf"],"symbol":"𝝴"},{"style":["sf","bf","it"],"symbol":"𝞮"}]} +, {"keyword":"varTheta","symbols":[{"style":[],"symbol":"ϴ"},{"style":["bf"],"symbol":"𝚹"},{"style":["it"],"symbol":"𝛳"},{"style":["bf","it"],"symbol":"𝜭"},{"style":["sf","bf"],"symbol":"𝝧"},{"style":["sf","bf","it"],"symbol":"𝞡"}]} +, {"keyword":"v","symbols":[{"style":["bf"],"symbol":"𝐯"},{"style":["it"],"symbol":"𝑣"},{"style":["bf","it"],"symbol":"𝒗"},{"style":["scr"],"symbol":"𝓋"},{"style":["cal"],"symbol":"𝓿"},{"style":["frak"],"symbol":"𝔳"},{"style":["bb"],"symbol":"𝕧"},{"style":["bf","frak"],"symbol":"𝖛"},{"style":["sf"],"symbol":"𝗏"},{"style":["sf","bf"],"symbol":"𝘃"},{"style":["sf","it"],"symbol":"𝘷"},{"style":["sf","bf","it"],"symbol":"𝙫"},{"style":["tt"],"symbol":"𝚟"}]} +, {"keyword":"upsilon","symbols":[{"style":[],"symbol":"υ"},{"style":["bf"],"symbol":"𝛖"},{"style":["it"],"symbol":"𝜐"},{"style":["bf","it"],"symbol":"𝝊"},{"style":["sf","bf"],"symbol":"𝞄"},{"style":["sf","bf","it"],"symbol":"𝞾"}]} +, {"keyword":"updownarrow","symbols":[{"style":[],"symbol":"↕"}]} +, {"keyword":"uparrow","symbols":[{"style":[],"symbol":"↑"}]} +, {"keyword":"u","symbols":[{"style":["bf"],"symbol":"𝐮"},{"style":["it"],"symbol":"𝑢"},{"style":["bf","it"],"symbol":"𝒖"},{"style":["scr"],"symbol":"𝓊"},{"style":["cal"],"symbol":"𝓾"},{"style":["frak"],"symbol":"𝔲"},{"style":["bb"],"symbol":"𝕦"},{"style":["bf","frak"],"symbol":"𝖚"},{"style":["sf"],"symbol":"𝗎"},{"style":["sf","bf"],"symbol":"𝘂"},{"style":["sf","it"],"symbol":"𝘶"},{"style":["sf","bf","it"],"symbol":"𝙪"},{"style":["tt"],"symbol":"𝚞"}]} +, {"keyword":"to","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"theta","symbols":[{"style":[],"symbol":"θ"},{"style":["bf"],"symbol":"𝛉"},{"style":["it"],"symbol":"𝜃"},{"style":["bf","it"],"symbol":"𝜽"},{"style":["sf","bf"],"symbol":"𝝷"},{"style":["sf","bf","it"],"symbol":"𝞱"}]} +, {"keyword":"tau","symbols":[{"style":[],"symbol":"τ"},{"style":["bf"],"symbol":"𝛕"},{"style":["it"],"symbol":"𝜏"},{"style":["bf","it"],"symbol":"𝝉"},{"style":["sf","bf"],"symbol":"𝞃"},{"style":["sf","bf","it"],"symbol":"𝞽"}]} +, {"keyword":"t","symbols":[{"style":["bf"],"symbol":"𝐭"},{"style":["it"],"symbol":"𝑡"},{"style":["bf","it"],"symbol":"𝒕"},{"style":["scr"],"symbol":"𝓉"},{"style":["cal"],"symbol":"𝓽"},{"style":["frak"],"symbol":"𝔱"},{"style":["bb"],"symbol":"𝕥"},{"style":["bf","frak"],"symbol":"𝖙"},{"style":["sf"],"symbol":"𝗍"},{"style":["sf","bf"],"symbol":"𝘁"},{"style":["sf","it"],"symbol":"𝘵"},{"style":["sf","bf","it"],"symbol":"𝙩"},{"style":["tt"],"symbol":"𝚝"}]} +, {"keyword":"supsetneq","symbols":[{"style":[],"symbol":"⊋"}]} +, {"keyword":"supseteq","symbols":[{"style":[],"symbol":"⊇"}]} +, {"keyword":"supset","symbols":[{"style":[],"symbol":"⊃"}]} +, {"keyword":"succsim","symbols":[{"style":[],"symbol":"≿"}]} +, {"keyword":"succeq","symbols":[{"style":[],"symbol":"⪰"}]} +, {"keyword":"succ","symbols":[{"style":[],"symbol":"≻"}]} +, {"keyword":"subsetneq","symbols":[{"style":[],"symbol":"⊊"}]} +, {"keyword":"subseteq","symbols":[{"style":[],"symbol":"⊆"}]} +, {"keyword":"subset","symbols":[{"style":[],"symbol":"⊂"}]} +, {"keyword":"sqsupseteq","symbols":[{"style":[],"symbol":"⊒"}]} +, {"keyword":"sqsupset","symbols":[{"style":[],"symbol":"⊐"}]} +, {"keyword":"sqsubseteq","symbols":[{"style":[],"symbol":"⊑"}]} +, {"keyword":"sqsubset","symbols":[{"style":[],"symbol":"⊏"}]} +, {"keyword":"simeq","symbols":[{"style":[],"symbol":"≃"}]} +, {"keyword":"sim","symbols":[{"style":[],"symbol":"∼"}]} +, {"keyword":"sigma","symbols":[{"style":[],"symbol":"σ"},{"style":["bf"],"symbol":"𝛔"},{"style":["it"],"symbol":"𝜎"},{"style":["bf","it"],"symbol":"𝝈"},{"style":["sf","bf"],"symbol":"𝞂"},{"style":["sf","bf","it"],"symbol":"𝞼"}]} +, {"keyword":"s","symbols":[{"style":["bf"],"symbol":"𝐬"},{"style":["it"],"symbol":"𝑠"},{"style":["bf","it"],"symbol":"𝒔"},{"style":["scr"],"symbol":"𝓈"},{"style":["cal"],"symbol":"𝓼"},{"style":["frak"],"symbol":"𝔰"},{"style":["bb"],"symbol":"𝕤"},{"style":["bf","frak"],"symbol":"𝖘"},{"style":["sf"],"symbol":"𝗌"},{"style":["sf","bf"],"symbol":"𝘀"},{"style":["sf","it"],"symbol":"𝘴"},{"style":["sf","bf","it"],"symbol":"𝙨"},{"style":["tt"],"symbol":"𝚜"}]} +, {"keyword":"rightarrow","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"rho","symbols":[{"style":[],"symbol":"ρ"},{"style":["bf"],"symbol":"𝛒"},{"style":["it"],"symbol":"𝜌"},{"style":["bf","it"],"symbol":"𝝆"},{"style":["sf","bf"],"symbol":"𝞀"},{"style":["sf","bf","it"],"symbol":"𝞺"}]} +, {"keyword":"rfloor","symbols":[{"style":[],"symbol":"⌋"}]} +, {"keyword":"rceil","symbols":[{"style":[],"symbol":"⌉"}]} +, {"keyword":"rbag","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"rangle","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"r","symbols":[{"style":["bf"],"symbol":"𝐫"},{"style":["it"],"symbol":"𝑟"},{"style":["bf","it"],"symbol":"𝒓"},{"style":["scr"],"symbol":"𝓇"},{"style":["cal"],"symbol":"𝓻"},{"style":["frak"],"symbol":"𝔯"},{"style":["bb"],"symbol":"𝕣"},{"style":["bf","frak"],"symbol":"𝖗"},{"style":["sf"],"symbol":"𝗋"},{"style":["sf","bf"],"symbol":"𝗿"},{"style":["sf","it"],"symbol":"𝘳"},{"style":["sf","bf","it"],"symbol":"𝙧"},{"style":["tt"],"symbol":"𝚛"}]} +, {"keyword":"q","symbols":[{"style":["bf"],"symbol":"𝐪"},{"style":["it"],"symbol":"𝑞"},{"style":["bf","it"],"symbol":"𝒒"},{"style":["scr"],"symbol":"𝓆"},{"style":["cal"],"symbol":"𝓺"},{"style":["frak"],"symbol":"𝔮"},{"style":["bb"],"symbol":"𝕢"},{"style":["bf","frak"],"symbol":"𝖖"},{"style":["sf"],"symbol":"𝗊"},{"style":["sf","bf"],"symbol":"𝗾"},{"style":["sf","it"],"symbol":"𝘲"},{"style":["sf","bf","it"],"symbol":"𝙦"},{"style":["tt"],"symbol":"𝚚"}]} +, {"keyword":"psi","symbols":[{"style":[],"symbol":"ψ"},{"style":["bf"],"symbol":"𝛙"},{"style":["it"],"symbol":"𝜓"},{"style":["bf","it"],"symbol":"𝝍"},{"style":["sf","bf"],"symbol":"𝞇"},{"style":["sf","bf","it"],"symbol":"𝟁"}]} +, {"keyword":"propto","symbols":[{"style":[],"symbol":"∝"}]} +, {"keyword":"precsim","symbols":[{"style":[],"symbol":"≾"}]} +, {"keyword":"preceq","symbols":[{"style":[],"symbol":"⪯"}]} +, {"keyword":"prec","symbols":[{"style":[],"symbol":"≺"}]} +, {"keyword":"pi","symbols":[{"style":[],"symbol":"π"},{"style":["bf"],"symbol":"𝛑"},{"style":["it"],"symbol":"𝜋"},{"style":["bf","it"],"symbol":"𝝅"},{"style":["sf","bf"],"symbol":"𝝿"},{"style":["sf","bf","it"],"symbol":"𝞹"}]} +, {"keyword":"phi","symbols":[{"style":[],"symbol":"ϕ"},{"style":["bf"],"symbol":"𝛟"},{"style":["it"],"symbol":"𝜙"},{"style":["bf","it"],"symbol":"𝝓"},{"style":["sf","bf"],"symbol":"𝞍"},{"style":["sf","bf","it"],"symbol":"𝟇"}]} +, {"keyword":"partial","symbols":[{"style":[],"symbol":"∂"},{"style":["bf"],"symbol":"𝛛"},{"style":["it"],"symbol":"𝜕"},{"style":["bf","it"],"symbol":"𝝏"},{"style":["sf","bf"],"symbol":"𝞉"},{"style":["sf","bf","it"],"symbol":"𝟃"}]} +, {"keyword":"p","symbols":[{"style":["bf"],"symbol":"𝐩"},{"style":["it"],"symbol":"𝑝"},{"style":["bf","it"],"symbol":"𝒑"},{"style":["scr"],"symbol":"𝓅"},{"style":["cal"],"symbol":"𝓹"},{"style":["frak"],"symbol":"𝔭"},{"style":["bb"],"symbol":"𝕡"},{"style":["bf","frak"],"symbol":"𝖕"},{"style":["sf"],"symbol":"𝗉"},{"style":["sf","bf"],"symbol":"𝗽"},{"style":["sf","it"],"symbol":"𝘱"},{"style":["sf","bf","it"],"symbol":"𝙥"},{"style":["tt"],"symbol":"𝚙"}]} +, {"keyword":"omicron","symbols":[{"style":[],"symbol":"ο"},{"style":["bf"],"symbol":"𝛐"},{"style":["it"],"symbol":"𝜊"},{"style":["bf","it"],"symbol":"𝝄"},{"style":["sf","bf"],"symbol":"𝝾"},{"style":["sf","bf","it"],"symbol":"𝞸"}]} +, {"keyword":"omega","symbols":[{"style":[],"symbol":"ω"},{"style":["bf"],"symbol":"𝛚"},{"style":["it"],"symbol":"𝜔"},{"style":["bf","it"],"symbol":"𝝎"},{"style":["sf","bf"],"symbol":"𝞈"},{"style":["sf","bf","it"],"symbol":"𝟂"}]} +, {"keyword":"o","symbols":[{"style":["bf"],"symbol":"𝐨"},{"style":["it"],"symbol":"𝑜"},{"style":["bf","it"],"symbol":"𝒐"},{"style":["scr"],"symbol":"ℴ"},{"style":["cal"],"symbol":"𝓸"},{"style":["frak"],"symbol":"𝔬"},{"style":["bb"],"symbol":"𝕠"},{"style":["bf","frak"],"symbol":"𝖔"},{"style":["sf"],"symbol":"𝗈"},{"style":["sf","bf"],"symbol":"𝗼"},{"style":["sf","it"],"symbol":"𝘰"},{"style":["sf","bf","it"],"symbol":"𝙤"},{"style":["tt"],"symbol":"𝚘"}]} +, {"keyword":"nu","symbols":[{"style":[],"symbol":"ν"},{"style":["bf"],"symbol":"𝛎"},{"style":["it"],"symbol":"𝜈"},{"style":["bf","it"],"symbol":"𝝂"},{"style":["sf","bf"],"symbol":"𝝼"},{"style":["sf","bf","it"],"symbol":"𝞶"}]} +, {"keyword":"nsupseteq","symbols":[{"style":[],"symbol":"⊉"}]} +, {"keyword":"nsupset","symbols":[{"style":[],"symbol":"⊅"}]} +, {"keyword":"nsucceq","symbols":[{"style":[],"symbol":"⪰̸"}]} +, {"keyword":"nsucc","symbols":[{"style":[],"symbol":"⊁"}]} +, {"keyword":"nsubseteq","symbols":[{"style":[],"symbol":"⊈"}]} +, {"keyword":"nsubset","symbols":[{"style":[],"symbol":"⊄"}]} +, {"keyword":"nsimeq","symbols":[{"style":[],"symbol":"≄"}]} +, {"keyword":"nsim","symbols":[{"style":[],"symbol":"≁"}]} +, {"keyword":"npreceq","symbols":[{"style":[],"symbol":"⪯̸"}]} +, {"keyword":"nprec","symbols":[{"style":[],"symbol":"⊀"}]} +, {"keyword":"nless","symbols":[{"style":[],"symbol":"≮"}]} +, {"keyword":"nleq","symbols":[{"style":[],"symbol":"≰"}]} +, {"keyword":"ngtr","symbols":[{"style":[],"symbol":"≯"}]} +, {"keyword":"ngeq","symbols":[{"style":[],"symbol":"≱"}]} +, {"keyword":"nequiv","symbols":[{"style":[],"symbol":"≢"}]} +, {"keyword":"neq","symbols":[{"style":[],"symbol":"≠"}]} +, {"keyword":"neg","symbols":[{"style":[],"symbol":"¬"}]} +, {"keyword":"ncong","symbols":[{"style":[],"symbol":"≇"}]} +, {"keyword":"napprox","symbols":[{"style":[],"symbol":"≉"}]} +, {"keyword":"nabla","symbols":[{"style":[],"symbol":"∇"},{"style":["bf"],"symbol":"𝛁"},{"style":["it"],"symbol":"𝛻"},{"style":["bf","it"],"symbol":"𝜵"},{"style":["sf","bf"],"symbol":"𝝯"},{"style":["sf","bf","it"],"symbol":"𝞩"}]} +, {"keyword":"n","symbols":[{"style":["bf"],"symbol":"𝐧"},{"style":["it"],"symbol":"𝑛"},{"style":["bf","it"],"symbol":"𝒏"},{"style":["scr"],"symbol":"𝓃"},{"style":["cal"],"symbol":"𝓷"},{"style":["frak"],"symbol":"𝔫"},{"style":["bb"],"symbol":"𝕟"},{"style":["bf","frak"],"symbol":"𝖓"},{"style":["sf"],"symbol":"𝗇"},{"style":["sf","bf"],"symbol":"𝗻"},{"style":["sf","it"],"symbol":"𝘯"},{"style":["sf","bf","it"],"symbol":"𝙣"},{"style":["tt"],"symbol":"𝚗"}]} +, {"keyword":"mu","symbols":[{"style":[],"symbol":"μ"},{"style":["bf"],"symbol":"𝛍"},{"style":["it"],"symbol":"𝜇"},{"style":["bf","it"],"symbol":"𝝁"},{"style":["sf","bf"],"symbol":"𝝻"},{"style":["sf","bf","it"],"symbol":"𝞵"}]} +, {"keyword":"mapsto","symbols":[{"style":[],"symbol":"↦"}]} +, {"keyword":"m","symbols":[{"style":["bf"],"symbol":"𝐦"},{"style":["it"],"symbol":"𝑚"},{"style":["bf","it"],"symbol":"𝒎"},{"style":["scr"],"symbol":"𝓂"},{"style":["cal"],"symbol":"𝓶"},{"style":["frak"],"symbol":"𝔪"},{"style":["bb"],"symbol":"𝕞"},{"style":["bf","frak"],"symbol":"𝖒"},{"style":["sf"],"symbol":"𝗆"},{"style":["sf","bf"],"symbol":"𝗺"},{"style":["sf","it"],"symbol":"𝘮"},{"style":["sf","bf","it"],"symbol":"𝙢"},{"style":["tt"],"symbol":"𝚖"}]} +, {"keyword":"longrightarrow","symbols":[{"style":[],"symbol":"⟶"}]} +, {"keyword":"longmapsto","symbols":[{"style":[],"symbol":"⟼"}]} +, {"keyword":"longleftarrow","symbols":[{"style":[],"symbol":"⟵"}]} +, {"keyword":"lnsim","symbols":[{"style":[],"symbol":"⋦"}]} +, {"keyword":"lneqq","symbols":[{"style":[],"symbol":"≨"}]} +, {"keyword":"lneq","symbols":[{"style":[],"symbol":"⪇"}]} +, {"keyword":"lnapprox","symbols":[{"style":[],"symbol":"⪉"}]} +, {"keyword":"lll","symbols":[{"style":[],"symbol":"⋘"}]} +, {"keyword":"ll","symbols":[{"style":[],"symbol":"≪"}]} +, {"keyword":"lfloor","symbols":[{"style":[],"symbol":"⌊"}]} +, {"keyword":"lesssim","symbols":[{"style":[],"symbol":"≲"}]} +, {"keyword":"lessgtr","symbols":[{"style":[],"symbol":"≶"}]} +, {"keyword":"lesseqgtr","symbols":[{"style":[],"symbol":"⋚"}]} +, {"keyword":"lessapprox","symbols":[{"style":[],"symbol":"⪅"}]} +, {"keyword":"leqslant","symbols":[{"style":[],"symbol":"⩽"}]} +, {"keyword":"leqq","symbols":[{"style":[],"symbol":"≦"}]} +, {"keyword":"leq","symbols":[{"style":[],"symbol":"≤"}]} +, {"keyword":"leftarrow","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"lceil","symbols":[{"style":[],"symbol":"⌈"}]} +, {"keyword":"lbag","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"langle","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"lambda","symbols":[{"style":[],"symbol":"λ"},{"style":["bf"],"symbol":"𝛌"},{"style":["it"],"symbol":"𝜆"},{"style":["bf","it"],"symbol":"𝝀"},{"style":["sf","bf"],"symbol":"𝝺"},{"style":["sf","bf","it"],"symbol":"𝞴"}]} +, {"keyword":"l","symbols":[{"style":["bf"],"symbol":"𝐥"},{"style":["it"],"symbol":"𝑙"},{"style":["bf","it"],"symbol":"𝒍"},{"style":["scr"],"symbol":"𝓁"},{"style":["cal"],"symbol":"𝓵"},{"style":["frak"],"symbol":"𝔩"},{"style":["bb"],"symbol":"𝕝"},{"style":["bf","frak"],"symbol":"𝖑"},{"style":["sf"],"symbol":"𝗅"},{"style":["sf","bf"],"symbol":"𝗹"},{"style":["sf","it"],"symbol":"𝘭"},{"style":["sf","bf","it"],"symbol":"𝙡"},{"style":["tt"],"symbol":"𝚕"}]} +, {"keyword":"kappa","symbols":[{"style":[],"symbol":"κ"},{"style":["bf"],"symbol":"𝛋"},{"style":["it"],"symbol":"𝜅"},{"style":["bf","it"],"symbol":"𝜿"},{"style":["sf","bf"],"symbol":"𝝹"},{"style":["sf","bf","it"],"symbol":"𝞳"}]} +, {"keyword":"k","symbols":[{"style":["bf"],"symbol":"𝐤"},{"style":["it"],"symbol":"𝑘"},{"style":["bf","it"],"symbol":"𝒌"},{"style":["scr"],"symbol":"𝓀"},{"style":["cal"],"symbol":"𝓴"},{"style":["frak"],"symbol":"𝔨"},{"style":["bb"],"symbol":"𝕜"},{"style":["bf","frak"],"symbol":"𝖐"},{"style":["sf"],"symbol":"𝗄"},{"style":["sf","bf"],"symbol":"𝗸"},{"style":["sf","it"],"symbol":"𝘬"},{"style":["sf","bf","it"],"symbol":"𝙠"},{"style":["tt"],"symbol":"𝚔"}]} +, {"keyword":"jmath","symbols":[{"style":[],"symbol":"ȷ"},{"style":["it"],"symbol":"𝚥"}]} +, {"keyword":"j","symbols":[{"style":["bf"],"symbol":"𝐣"},{"style":["it"],"symbol":"𝑗"},{"style":["bf","it"],"symbol":"𝒋"},{"style":["scr"],"symbol":"𝒿"},{"style":["cal"],"symbol":"𝓳"},{"style":["frak"],"symbol":"𝔧"},{"style":["bb"],"symbol":"𝕛"},{"style":["bf","frak"],"symbol":"𝖏"},{"style":["sf"],"symbol":"𝗃"},{"style":["sf","bf"],"symbol":"𝗷"},{"style":["sf","it"],"symbol":"𝘫"},{"style":["sf","bf","it"],"symbol":"𝙟"},{"style":["tt"],"symbol":"𝚓"}]} +, {"keyword":"iota","symbols":[{"style":[],"symbol":"ι"},{"style":["bf"],"symbol":"𝛊"},{"style":["it"],"symbol":"𝜄"},{"style":["bf","it"],"symbol":"𝜾"},{"style":["sf","bf"],"symbol":"𝝸"},{"style":["sf","bf","it"],"symbol":"𝞲"}]} +, {"keyword":"infty","symbols":[{"style":[],"symbol":"∞"}]} +, {"keyword":"imath","symbols":[{"style":[],"symbol":"ı"},{"style":["it"],"symbol":"𝚤"}]} +, {"keyword":"i","symbols":[{"style":["bf"],"symbol":"𝐢"},{"style":["it"],"symbol":"𝑖"},{"style":["bf","it"],"symbol":"𝒊"},{"style":["scr"],"symbol":"𝒾"},{"style":["cal"],"symbol":"𝓲"},{"style":["frak"],"symbol":"𝔦"},{"style":["bb"],"symbol":"𝕚"},{"style":["bf","frak"],"symbol":"𝖎"},{"style":["sf"],"symbol":"𝗂"},{"style":["sf","bf"],"symbol":"𝗶"},{"style":["sf","it"],"symbol":"𝘪"},{"style":["sf","bf","it"],"symbol":"𝙞"},{"style":["tt"],"symbol":"𝚒"}]} +, {"keyword":"hslash","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"hbar","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"h","symbols":[{"style":["bf"],"symbol":"𝐡"},{"style":["bf","it"],"symbol":"𝒉"},{"style":["scr"],"symbol":"𝒽"},{"style":["cal"],"symbol":"𝓱"},{"style":["frak"],"symbol":"𝔥"},{"style":["bb"],"symbol":"𝕙"},{"style":["bf","frak"],"symbol":"𝖍"},{"style":["sf"],"symbol":"𝗁"},{"style":["sf","bf"],"symbol":"𝗵"},{"style":["sf","it"],"symbol":"𝘩"},{"style":["sf","bf","it"],"symbol":"𝙝"},{"style":["tt"],"symbol":"𝚑"}]} +, {"keyword":"gtrsim","symbols":[{"style":[],"symbol":"≳"}]} +, {"keyword":"gtrapprox","symbols":[{"style":[],"symbol":"⪆"}]} +, {"keyword":"gnsim","symbols":[{"style":[],"symbol":"⋧"}]} +, {"keyword":"gneqq","symbols":[{"style":[],"symbol":"≩"}]} +, {"keyword":"gneq","symbols":[{"style":[],"symbol":"⪈"}]} +, {"keyword":"gnapprox","symbols":[{"style":[],"symbol":"⪊"}]} +, {"keyword":"gimel","symbols":[{"style":[],"symbol":"ℷ"}]} +, {"keyword":"ggg","symbols":[{"style":[],"symbol":"⋙"}]} +, {"keyword":"gg","symbols":[{"style":[],"symbol":"≫"}]} +, {"keyword":"gets","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"geqslant","symbols":[{"style":[],"symbol":"⩾"}]} +, {"keyword":"geqq","symbols":[{"style":[],"symbol":"≧"}]} +, {"keyword":"geq","symbols":[{"style":[],"symbol":"≥"}]} +, {"keyword":"gamma","symbols":[{"style":[],"symbol":"γ"},{"style":["bf"],"symbol":"𝛄"},{"style":["it"],"symbol":"𝛾"},{"style":["bf","it"],"symbol":"𝜸"},{"style":["sf","bf"],"symbol":"𝝲"},{"style":["sf","bf","it"],"symbol":"𝞬"}]} +, {"keyword":"g","symbols":[{"style":["bf"],"symbol":"𝐠"},{"style":["it"],"symbol":"𝑔"},{"style":["bf","it"],"symbol":"𝒈"},{"style":["scr"],"symbol":"ℊ"},{"style":["cal"],"symbol":"𝓰"},{"style":["frak"],"symbol":"𝔤"},{"style":["bb"],"symbol":"𝕘"},{"style":["bf","frak"],"symbol":"𝖌"},{"style":["sf"],"symbol":"𝗀"},{"style":["sf","bf"],"symbol":"𝗴"},{"style":["sf","it"],"symbol":"𝘨"},{"style":["sf","bf","it"],"symbol":"𝙜"},{"style":["tt"],"symbol":"𝚐"}]} +, {"keyword":"f","symbols":[{"style":["bf"],"symbol":"𝐟"},{"style":["it"],"symbol":"𝑓"},{"style":["bf","it"],"symbol":"𝒇"},{"style":["scr"],"symbol":"𝒻"},{"style":["cal"],"symbol":"𝓯"},{"style":["frak"],"symbol":"𝔣"},{"style":["bb"],"symbol":"𝕗"},{"style":["bf","frak"],"symbol":"𝖋"},{"style":["sf"],"symbol":"𝖿"},{"style":["sf","bf"],"symbol":"𝗳"},{"style":["sf","it"],"symbol":"𝘧"},{"style":["sf","bf","it"],"symbol":"𝙛"},{"style":["tt"],"symbol":"𝚏"}]} +, {"keyword":"eta","symbols":[{"style":[],"symbol":"η"},{"style":["bf"],"symbol":"𝛈"},{"style":["it"],"symbol":"𝜂"},{"style":["bf","it"],"symbol":"𝜼"},{"style":["sf","bf"],"symbol":"𝝶"},{"style":["sf","bf","it"],"symbol":"𝞰"}]} +, {"keyword":"equiv","symbols":[{"style":[],"symbol":"≡"}]} +, {"keyword":"epsilon","symbols":[{"style":[],"symbol":"ϵ"},{"style":["bf"],"symbol":"𝛜"},{"style":["it"],"symbol":"𝜖"},{"style":["bf","it"],"symbol":"𝝐"},{"style":["sf","bf"],"symbol":"𝞊"},{"style":["sf","bf","it"],"symbol":"𝟄"}]} +, {"keyword":"ell","symbols":[{"style":[],"symbol":"ℓ"}]} +, {"keyword":"e","symbols":[{"style":["bf"],"symbol":"𝐞"},{"style":["it"],"symbol":"𝑒"},{"style":["bf","it"],"symbol":"𝒆"},{"style":["scr"],"symbol":"ℯ"},{"style":["cal"],"symbol":"𝓮"},{"style":["frak"],"symbol":"𝔢"},{"style":["bb"],"symbol":"𝕖"},{"style":["bf","frak"],"symbol":"𝖊"},{"style":["sf"],"symbol":"𝖾"},{"style":["sf","bf"],"symbol":"𝗲"},{"style":["sf","it"],"symbol":"𝘦"},{"style":["sf","bf","it"],"symbol":"𝙚"},{"style":["tt"],"symbol":"𝚎"}]} +, {"keyword":"downaroow","symbols":[{"style":[],"symbol":"↓"}]} +, {"keyword":"doteq","symbols":[{"style":[],"symbol":"≐"}]} +, {"keyword":"digamma","symbols":[{"style":[],"symbol":"ϝ"},{"style":["bf"],"symbol":"𝟋"}]} +, {"keyword":"delta","symbols":[{"style":[],"symbol":"δ"},{"style":["bf"],"symbol":"𝛅"},{"style":["it"],"symbol":"𝛿"},{"style":["bf","it"],"symbol":"𝜹"},{"style":["sf","bf"],"symbol":"𝝳"},{"style":["sf","bf","it"],"symbol":"𝞭"}]} +, {"keyword":"d","symbols":[{"style":["bf"],"symbol":"𝐝"},{"style":["it"],"symbol":"𝑑"},{"style":["bf","it"],"symbol":"𝒅"},{"style":["scr"],"symbol":"𝒹"},{"style":["cal"],"symbol":"𝓭"},{"style":["frak"],"symbol":"𝔡"},{"style":["bb"],"symbol":"𝕕"},{"style":["bf","frak"],"symbol":"𝖉"},{"style":["sf"],"symbol":"𝖽"},{"style":["sf","bf"],"symbol":"𝗱"},{"style":["sf","it"],"symbol":"𝘥"},{"style":["sf","bf","it"],"symbol":"𝙙"},{"style":["tt"],"symbol":"𝚍"}]} +, {"keyword":"cong","symbols":[{"style":[],"symbol":"≅"}]} +, {"keyword":"chi","symbols":[{"style":[],"symbol":"χ"},{"style":["bf"],"symbol":"𝛘"},{"style":["it"],"symbol":"𝜒"},{"style":["bf","it"],"symbol":"𝝌"},{"style":["sf","bf"],"symbol":"𝞆"},{"style":["sf","bf","it"],"symbol":"𝟀"}]} +, {"keyword":"c","symbols":[{"style":["bf"],"symbol":"𝐜"},{"style":["it"],"symbol":"𝑐"},{"style":["bf","it"],"symbol":"𝒄"},{"style":["scr"],"symbol":"𝒸"},{"style":["cal"],"symbol":"𝓬"},{"style":["frak"],"symbol":"𝔠"},{"style":["bb"],"symbol":"𝕔"},{"style":["bf","frak"],"symbol":"𝖈"},{"style":["sf"],"symbol":"𝖼"},{"style":["sf","bf"],"symbol":"𝗰"},{"style":["sf","it"],"symbol":"𝘤"},{"style":["sf","bf","it"],"symbol":"𝙘"},{"style":["tt"],"symbol":"𝚌"}]} +, {"keyword":"beth","symbols":[{"style":[],"symbol":"ℶ"}]} +, {"keyword":"beta","symbols":[{"style":[],"symbol":"β"},{"style":["bf"],"symbol":"𝛃"},{"style":["it"],"symbol":"𝛽"},{"style":["bf","it"],"symbol":"𝜷"},{"style":["sf","bf"],"symbol":"𝝱"},{"style":["sf","bf","it"],"symbol":"𝞫"}]} +, {"keyword":"b","symbols":[{"style":["bf"],"symbol":"𝐛"},{"style":["it"],"symbol":"𝑏"},{"style":["bf","it"],"symbol":"𝒃"},{"style":["scr"],"symbol":"𝒷"},{"style":["cal"],"symbol":"𝓫"},{"style":["frak"],"symbol":"𝔟"},{"style":["bb"],"symbol":"𝕓"},{"style":["bf","frak"],"symbol":"𝖇"},{"style":["sf"],"symbol":"𝖻"},{"style":["sf","bf"],"symbol":"𝗯"},{"style":["sf","it"],"symbol":"𝘣"},{"style":["sf","bf","it"],"symbol":"𝙗"},{"style":["tt"],"symbol":"𝚋"}]} +, {"keyword":"approx","symbols":[{"style":[],"symbol":"≈"}]} +, {"keyword":"alpha","symbols":[{"style":[],"symbol":"α"},{"style":["bf"],"symbol":"𝛂"},{"style":["it"],"symbol":"𝛼"},{"style":["bf","it"],"symbol":"𝜶"},{"style":["sf","bf"],"symbol":"𝝰"},{"style":["sf","bf","it"],"symbol":"𝞪"}]} +, {"keyword":"aleph","symbols":[{"style":[],"symbol":"ℵ"}]} +, {"keyword":"a","symbols":[{"style":["bf"],"symbol":"𝐚"},{"style":["it"],"symbol":"𝑎"},{"style":["bf","it"],"symbol":"𝒂"},{"style":["scr"],"symbol":"𝒶"},{"style":["cal"],"symbol":"𝓪"},{"style":["frak"],"symbol":"𝔞"},{"style":["bb"],"symbol":"𝕒"},{"style":["bf","frak"],"symbol":"𝖆"},{"style":["sf"],"symbol":"𝖺"},{"style":["sf","bf"],"symbol":"𝗮"},{"style":["sf","it"],"symbol":"𝘢"},{"style":["sf","bf","it"],"symbol":"𝙖"},{"style":["tt"],"symbol":"𝚊"}]} +, {"keyword":"_x","symbols":[{"style":[],"symbol":"ₓ"}]} +, {"keyword":"_v","symbols":[{"style":[],"symbol":"ᵥ"}]} +, {"keyword":"_u","symbols":[{"style":[],"symbol":"ᵤ"}]} +, {"keyword":"_t","symbols":[{"style":[],"symbol":"ₜ"}]} +, {"keyword":"_schwa","symbols":[{"style":[],"symbol":"ₔ"}]} +, {"keyword":"_s","symbols":[{"style":[],"symbol":"ₛ"}]} +, {"keyword":"_rho","symbols":[{"style":[],"symbol":"ᵨ"}]} +, {"keyword":"_r","symbols":[{"style":[],"symbol":"ᵣ"}]} +, {"keyword":"_q","symbols":[{"style":[],"symbol":" "}]} +, {"keyword":"_phi","symbols":[{"style":[],"symbol":"ᵩ"}]} +, {"keyword":"_p","symbols":[{"style":[],"symbol":"ₚ"}]} +, {"keyword":"_o","symbols":[{"style":[],"symbol":"ₒ"}]} +, {"keyword":"_n","symbols":[{"style":[],"symbol":"ₙ"}]} +, {"keyword":"_m","symbols":[{"style":[],"symbol":"ₘ"}]} +, {"keyword":"_l","symbols":[{"style":[],"symbol":"ₗ"}]} +, {"keyword":"_k","symbols":[{"style":[],"symbol":"ₖ"}]} +, {"keyword":"_j","symbols":[{"style":[],"symbol":"ⱼ"}]} +, {"keyword":"_i","symbols":[{"style":[],"symbol":"ᵢ"}]} +, {"keyword":"_h","symbols":[{"style":[],"symbol":"ₕ"}]} +, {"keyword":"_gamma","symbols":[{"style":[],"symbol":"ᵧ"}]} +, {"keyword":"_e","symbols":[{"style":[],"symbol":"ₑ"}]} +, {"keyword":"_chi","symbols":[{"style":[],"symbol":"ᵪ"}]} +, {"keyword":"_beta","symbols":[{"style":[],"symbol":"ᵦ"}]} +, {"keyword":"_a","symbols":[{"style":[],"symbol":"ₐ"}]} +, {"keyword":"_=","symbols":[{"style":[],"symbol":"₌"}]} +, {"keyword":"_9","symbols":[{"style":[],"symbol":"₉"}]} +, {"keyword":"_8","symbols":[{"style":[],"symbol":"₈"}]} +, {"keyword":"_7","symbols":[{"style":[],"symbol":"₇"}]} +, {"keyword":"_6","symbols":[{"style":[],"symbol":"₆"}]} +, {"keyword":"_5","symbols":[{"style":[],"symbol":"₅"}]} +, {"keyword":"_4","symbols":[{"style":[],"symbol":"₄"}]} +, {"keyword":"_3","symbols":[{"style":[],"symbol":"₃"}]} +, {"keyword":"_2","symbols":[{"style":[],"symbol":"₂"}]} +, {"keyword":"_1","symbols":[{"style":[],"symbol":"₁"}]} +, {"keyword":"_0","symbols":[{"style":[],"symbol":"₀"}]} +, {"keyword":"_-","symbols":[{"style":[],"symbol":"₋"}]} +, {"keyword":"_+","symbols":[{"style":[],"symbol":"₊"}]} +, {"keyword":"_)","symbols":[{"style":[],"symbol":"₎"}]} +, {"keyword":"_(","symbols":[{"style":[],"symbol":"₍"}]} +, {"keyword":"^z","symbols":[{"style":[],"symbol":"ᶻ"}]} +, {"keyword":"^y","symbols":[{"style":[],"symbol":"ʸ"}]} +, {"keyword":"^x","symbols":[{"style":[],"symbol":"ˣ"}]} +, {"keyword":"^w","symbols":[{"style":[],"symbol":"ʷ"}]} +, {"keyword":"^v","symbols":[{"style":[],"symbol":"ᵛ"}]} +, {"keyword":"^upsilon","symbols":[{"style":[],"symbol":"ᶹ"}]} +, {"keyword":"^u","symbols":[{"style":[],"symbol":"ᵘ"}]} +, {"keyword":"^theta","symbols":[{"style":[],"symbol":"ᶿ"}]} +, {"keyword":"^t","symbols":[{"style":[],"symbol":"ᵗ"}]} +, {"keyword":"^s","symbols":[{"style":[],"symbol":"ˢ"}]} +, {"keyword":"^r","symbols":[{"style":[],"symbol":"ʳ"}]} +, {"keyword":"^phi","symbols":[{"style":[],"symbol":"ᵠ"}]} +, {"keyword":"^p","symbols":[{"style":[],"symbol":"ᵖ"}]} +, {"keyword":"^o","symbols":[{"style":[],"symbol":"ᵒ"}]} +, {"keyword":"^n","symbols":[{"style":[],"symbol":"ⁿ"}]} +, {"keyword":"^m","symbols":[{"style":[],"symbol":"ᵐ"}]} +, {"keyword":"^l","symbols":[{"style":[],"symbol":"ˡ"}]} +, {"keyword":"^k","symbols":[{"style":[],"symbol":"ᵏ"}]} +, {"keyword":"^j","symbols":[{"style":[],"symbol":"ʲ"}]} +, {"keyword":"^iota","symbols":[{"style":[],"symbol":"ᶥ"}]} +, {"keyword":"^i","symbols":[{"style":[],"symbol":"ⁱ"}]} +, {"keyword":"^h","symbols":[{"style":[],"symbol":"ʰ"}]} +, {"keyword":"^gamma","symbols":[{"style":[],"symbol":"ᵞ"}]} +, {"keyword":"^g","symbols":[{"style":[],"symbol":"ᵍ"}]} +, {"keyword":"^f","symbols":[{"style":[],"symbol":"ᶠ"}]} +, {"keyword":"^epsilon","symbols":[{"style":[],"symbol":"ᵋ"}]} +, {"keyword":"^e","symbols":[{"style":[],"symbol":"ᵉ"}]} +, {"keyword":"^delta","symbols":[{"style":[],"symbol":"ᵟ"}]} +, {"keyword":"^d","symbols":[{"style":[],"symbol":"ᵈ"}]} +, {"keyword":"^chi","symbols":[{"style":[],"symbol":"ᵡ"}]} +, {"keyword":"^c","symbols":[{"style":[],"symbol":"ᶜ"}]} +, {"keyword":"^beta","symbols":[{"style":[],"symbol":"ᵝ"}]} +, {"keyword":"^b","symbols":[{"style":[],"symbol":"ᵇ"}]} +, {"keyword":"^a","symbols":[{"style":[],"symbol":"ᵃ"}]} +, {"keyword":"^W","symbols":[{"style":[],"symbol":"ᵂ"}]} +, {"keyword":"^V","symbols":[{"style":[],"symbol":"ⱽ"}]} +, {"keyword":"^U","symbols":[{"style":[],"symbol":"ᵁ"}]} +, {"keyword":"^T","symbols":[{"style":[],"symbol":"ᵀ"}]} +, {"keyword":"^R","symbols":[{"style":[],"symbol":"ᴿ"}]} +, {"keyword":"^P","symbols":[{"style":[],"symbol":"ᴾ"}]} +, {"keyword":"^O","symbols":[{"style":[],"symbol":"ᴼ"}]} +, {"keyword":"^N","symbols":[{"style":[],"symbol":"ᴺ"}]} +, {"keyword":"^M","symbols":[{"style":[],"symbol":"ᴹ"}]} +, {"keyword":"^L","symbols":[{"style":[],"symbol":"ᴸ"}]} +, {"keyword":"^K","symbols":[{"style":[],"symbol":"ᴷ"}]} +, {"keyword":"^J","symbols":[{"style":[],"symbol":"ᴶ"}]} +, {"keyword":"^I","symbols":[{"style":[],"symbol":"ᴵ"}]} +, {"keyword":"^H","symbols":[{"style":[],"symbol":"ᴴ"}]} +, {"keyword":"^G","symbols":[{"style":[],"symbol":"ᴳ"}]} +, {"keyword":"^E","symbols":[{"style":[],"symbol":"ᴱ"}]} +, {"keyword":"^D","symbols":[{"style":[],"symbol":"ᴰ"}]} +, {"keyword":"^B","symbols":[{"style":[],"symbol":"ᴮ"}]} +, {"keyword":"^A","symbols":[{"style":[],"symbol":"ᴬ"}]} +, {"keyword":"^=","symbols":[{"style":[],"symbol":"⁼"}]} +, {"keyword":"^9","symbols":[{"style":[],"symbol":"⁹"}]} +, {"keyword":"^8","symbols":[{"style":[],"symbol":"⁸"}]} +, {"keyword":"^7","symbols":[{"style":[],"symbol":"⁷"}]} +, {"keyword":"^6","symbols":[{"style":[],"symbol":"⁶"}]} +, {"keyword":"^5","symbols":[{"style":[],"symbol":"⁵"}]} +, {"keyword":"^4","symbols":[{"style":[],"symbol":"⁴"}]} +, {"keyword":"^3","symbols":[{"style":[],"symbol":"³"}]} +, {"keyword":"^2","symbols":[{"style":[],"symbol":"²"}]} +, {"keyword":"^1","symbols":[{"style":[],"symbol":"¹"}]} +, {"keyword":"^0","symbols":[{"style":[],"symbol":"⁰"}]} +, {"keyword":"^-","symbols":[{"style":[],"symbol":"⁻"}]} +, {"keyword":"^+","symbols":[{"style":[],"symbol":"⁺"}]} +, {"keyword":"^)","symbols":[{"style":[],"symbol":"⁾"}]} +, {"keyword":"^(","symbols":[{"style":[],"symbol":"⁽"}]} +, {"keyword":"]]","symbols":[{"style":[],"symbol":"⟧"}]} +, {"keyword":"[[","symbols":[{"style":[],"symbol":"⟦"}]} +, {"keyword":"Zeta","symbols":[{"style":[],"symbol":"Ζ"},{"style":["bf"],"symbol":"𝚭"},{"style":["it"],"symbol":"𝛧"},{"style":["bf","it"],"symbol":"𝜡"},{"style":["sf","bf"],"symbol":"𝝛"},{"style":["sf","bf","it"],"symbol":"𝞕"}]} +, {"keyword":"Z","symbols":[{"style":["bf"],"symbol":"𝐙"},{"style":["it"],"symbol":"𝑍"},{"style":["bf","it"],"symbol":"𝒁"},{"style":["scr"],"symbol":"𝒵"},{"style":["cal"],"symbol":"𝓩"},{"style":["frak"],"symbol":"ℨ"},{"style":["bb"],"symbol":"ℤ"},{"style":["bf","frak"],"symbol":"𝖅"},{"style":["sf"],"symbol":"𝖹"},{"style":["sf","bf"],"symbol":"𝗭"},{"style":["sf","it"],"symbol":"𝘡"},{"style":["sf","bf","it"],"symbol":"𝙕"},{"style":["tt"],"symbol":"𝚉"}]} +, {"keyword":"Y","symbols":[{"style":["bf"],"symbol":"𝐘"},{"style":["it"],"symbol":"𝑌"},{"style":["bf","it"],"symbol":"𝒀"},{"style":["scr"],"symbol":"𝒴"},{"style":["cal"],"symbol":"𝓨"},{"style":["frak"],"symbol":"𝔜"},{"style":["bb"],"symbol":"𝕐"},{"style":["bf","frak"],"symbol":"𝖄"},{"style":["sf"],"symbol":"𝖸"},{"style":["sf","bf"],"symbol":"𝗬"},{"style":["sf","it"],"symbol":"𝘠"},{"style":["sf","bf","it"],"symbol":"𝙔"},{"style":["tt"],"symbol":"𝚈"}]} +, {"keyword":"Xi","symbols":[{"style":[],"symbol":"Ξ"},{"style":["bf"],"symbol":"𝚵"},{"style":["it"],"symbol":"𝛯"},{"style":["bf","it"],"symbol":"𝜩"},{"style":["sf","bf"],"symbol":"𝝣"},{"style":["sf","bf","it"],"symbol":"𝞝"}]} +, {"keyword":"X","symbols":[{"style":["bf"],"symbol":"𝐗"},{"style":["it"],"symbol":"𝑋"},{"style":["bf","it"],"symbol":"𝑿"},{"style":["scr"],"symbol":"𝒳"},{"style":["cal"],"symbol":"𝓧"},{"style":["frak"],"symbol":"𝔛"},{"style":["bb"],"symbol":"𝕏"},{"style":["bf","frak"],"symbol":"𝖃"},{"style":["sf"],"symbol":"𝖷"},{"style":["sf","bf"],"symbol":"𝗫"},{"style":["sf","it"],"symbol":"𝘟"},{"style":["sf","bf","it"],"symbol":"𝙓"},{"style":["tt"],"symbol":"𝚇"}]} +, {"keyword":"W","symbols":[{"style":["bf"],"symbol":"𝐖"},{"style":["it"],"symbol":"𝑊"},{"style":["bf","it"],"symbol":"𝑾"},{"style":["scr"],"symbol":"𝒲"},{"style":["cal"],"symbol":"𝓦"},{"style":["frak"],"symbol":"𝔚"},{"style":["bb"],"symbol":"𝕎"},{"style":["bf","frak"],"symbol":"𝖂"},{"style":["sf"],"symbol":"𝖶"},{"style":["sf","bf"],"symbol":"𝗪"},{"style":["sf","it"],"symbol":"𝘞"},{"style":["sf","bf","it"],"symbol":"𝙒"},{"style":["tt"],"symbol":"𝚆"}]} +, {"keyword":"V","symbols":[{"style":["bf"],"symbol":"𝐕"},{"style":["it"],"symbol":"𝑉"},{"style":["bf","it"],"symbol":"𝑽"},{"style":["scr"],"symbol":"𝒱"},{"style":["cal"],"symbol":"𝓥"},{"style":["frak"],"symbol":"𝔙"},{"style":["bb"],"symbol":"𝕍"},{"style":["bf","frak"],"symbol":"𝖁"},{"style":["sf"],"symbol":"𝖵"},{"style":["sf","bf"],"symbol":"𝗩"},{"style":["sf","it"],"symbol":"𝘝"},{"style":["sf","bf","it"],"symbol":"𝙑"},{"style":["tt"],"symbol":"𝚅"}]} +, {"keyword":"Upsilon","symbols":[{"style":[],"symbol":"Υ"},{"style":["bf"],"symbol":"𝚼"},{"style":["it"],"symbol":"𝛶"},{"style":["bf","it"],"symbol":"𝜰"},{"style":["sf","bf"],"symbol":"𝝪"},{"style":["sf","bf","it"],"symbol":"𝞤"}]} +, {"keyword":"Updownarrow","symbols":[{"style":[],"symbol":"⇕"}]} +, {"keyword":"Uparrow","symbols":[{"style":[],"symbol":"⇑"}]} +, {"keyword":"U","symbols":[{"style":["bf"],"symbol":"𝐔"},{"style":["it"],"symbol":"𝑈"},{"style":["bf","it"],"symbol":"𝑼"},{"style":["scr"],"symbol":"𝒰"},{"style":["cal"],"symbol":"𝓤"},{"style":["frak"],"symbol":"𝔘"},{"style":["bb"],"symbol":"𝕌"},{"style":["bf","frak"],"symbol":"𝖀"},{"style":["sf"],"symbol":"𝖴"},{"style":["sf","bf"],"symbol":"𝗨"},{"style":["sf","it"],"symbol":"𝘜"},{"style":["sf","bf","it"],"symbol":"𝙐"},{"style":["tt"],"symbol":"𝚄"}]} +, {"keyword":"Theta","symbols":[{"style":[],"symbol":"Θ"},{"style":["bf"],"symbol":"𝚯"},{"style":["it"],"symbol":"𝛩"},{"style":["bf","it"],"symbol":"𝜣"},{"style":["sf","bf"],"symbol":"𝝝"},{"style":["sf","bf","it"],"symbol":"𝞗"}]} +, {"keyword":"Tau","symbols":[{"style":[],"symbol":"Τ"},{"style":["bf"],"symbol":"𝚻"},{"style":["it"],"symbol":"𝛵"},{"style":["bf","it"],"symbol":"𝜯"},{"style":["sf","bf"],"symbol":"𝝩"},{"style":["sf","bf","it"],"symbol":"𝞣"}]} +, {"keyword":"T","symbols":[{"style":["bf"],"symbol":"𝐓"},{"style":["it"],"symbol":"𝑇"},{"style":["bf","it"],"symbol":"𝑻"},{"style":["scr"],"symbol":"𝒯"},{"style":["cal"],"symbol":"𝓣"},{"style":["frak"],"symbol":"𝔗"},{"style":["bb"],"symbol":"𝕋"},{"style":["bf","frak"],"symbol":"𝕿"},{"style":["sf"],"symbol":"𝖳"},{"style":["sf","bf"],"symbol":"𝗧"},{"style":["sf","it"],"symbol":"𝘛"},{"style":["sf","bf","it"],"symbol":"𝙏"},{"style":["tt"],"symbol":"𝚃"}]} +, {"keyword":"Sigma","symbols":[{"style":[],"symbol":"Σ"},{"style":["bf"],"symbol":"𝚺"},{"style":["it"],"symbol":"𝛴"},{"style":["bf","it"],"symbol":"𝜮"},{"style":["sf","bf"],"symbol":"𝝨"},{"style":["sf","bf","it"],"symbol":"𝞢"}]} +, {"keyword":"S","symbols":[{"style":["bf"],"symbol":"𝐒"},{"style":["it"],"symbol":"𝑆"},{"style":["bf","it"],"symbol":"𝑺"},{"style":["scr"],"symbol":"𝒮"},{"style":["cal"],"symbol":"𝓢"},{"style":["frak"],"symbol":"𝔖"},{"style":["bb"],"symbol":"𝕊"},{"style":["bf","frak"],"symbol":"𝕾"},{"style":["sf"],"symbol":"𝖲"},{"style":["sf","bf"],"symbol":"𝗦"},{"style":["sf","it"],"symbol":"𝘚"},{"style":["sf","bf","it"],"symbol":"𝙎"},{"style":["tt"],"symbol":"𝚂"}]} +, {"keyword":"Rightarrow","symbols":[{"style":[],"symbol":"⇒"}]} +, {"keyword":"Rho","symbols":[{"style":[],"symbol":"Ρ"},{"style":["bf"],"symbol":"𝚸"},{"style":["it"],"symbol":"𝛲"},{"style":["bf","it"],"symbol":"𝜬"},{"style":["sf","bf"],"symbol":"𝝦"},{"style":["sf","bf","it"],"symbol":"𝞠"}]} +, {"keyword":"Re","symbols":[{"style":[],"symbol":"ℜ"}]} +, {"keyword":"R","symbols":[{"style":["bf"],"symbol":"𝐑"},{"style":["it"],"symbol":"𝑅"},{"style":["bf","it"],"symbol":"𝑹"},{"style":["scr"],"symbol":"ℛ"},{"style":["cal"],"symbol":"𝓡"},{"style":["frak"],"symbol":"ℜ"},{"style":["bb"],"symbol":"ℝ"},{"style":["bf","frak"],"symbol":"𝕽"},{"style":["sf"],"symbol":"𝖱"},{"style":["sf","bf"],"symbol":"𝗥"},{"style":["sf","it"],"symbol":"𝘙"},{"style":["sf","bf","it"],"symbol":"𝙍"},{"style":["tt"],"symbol":"𝚁"}]} +, {"keyword":"Q","symbols":[{"style":["bf"],"symbol":"𝐐"},{"style":["it"],"symbol":"𝑄"},{"style":["bf","it"],"symbol":"𝑸"},{"style":["scr"],"symbol":"𝒬"},{"style":["cal"],"symbol":"𝓠"},{"style":["frak"],"symbol":"𝔔"},{"style":["bb"],"symbol":"ℚ"},{"style":["bf","frak"],"symbol":"𝕼"},{"style":["sf"],"symbol":"𝖰"},{"style":["sf","bf"],"symbol":"𝗤"},{"style":["sf","it"],"symbol":"𝘘"},{"style":["sf","bf","it"],"symbol":"𝙌"},{"style":["tt"],"symbol":"𝚀"}]} +, {"keyword":"Psi","symbols":[{"style":[],"symbol":"Ψ"},{"style":["bf"],"symbol":"𝚿"},{"style":["it"],"symbol":"𝛹"},{"style":["bf","it"],"symbol":"𝜳"},{"style":["sf","bf"],"symbol":"𝝭"},{"style":["sf","bf","it"],"symbol":"𝞧"}]} +, {"keyword":"Pi","symbols":[{"style":[],"symbol":"Π"},{"style":["bf"],"symbol":"𝚷"},{"style":["it"],"symbol":"𝛱"},{"style":["bf","it"],"symbol":"𝜫"},{"style":["sf","bf"],"symbol":"𝝥"},{"style":["sf","bf","it"],"symbol":"𝞟"}]} +, {"keyword":"Phi","symbols":[{"style":[],"symbol":"Φ"},{"style":["bf"],"symbol":"𝚽"},{"style":["it"],"symbol":"𝛷"},{"style":["bf","it"],"symbol":"𝜱"},{"style":["sf","bf"],"symbol":"𝝫"},{"style":["sf","bf","it"],"symbol":"𝞥"}]} +, {"keyword":"P","symbols":[{"style":["bf"],"symbol":"𝐏"},{"style":["it"],"symbol":"𝑃"},{"style":["bf","it"],"symbol":"𝑷"},{"style":["scr"],"symbol":"𝒫"},{"style":["cal"],"symbol":"𝓟"},{"style":["frak"],"symbol":"𝔓"},{"style":["bb"],"symbol":"ℙ"},{"style":["bf","frak"],"symbol":"𝕻"},{"style":["sf"],"symbol":"𝖯"},{"style":["sf","bf"],"symbol":"𝗣"},{"style":["sf","it"],"symbol":"𝘗"},{"style":["sf","bf","it"],"symbol":"𝙋"},{"style":["tt"],"symbol":"𝙿"}]} +, {"keyword":"Omicron","symbols":[{"style":[],"symbol":"Ο"},{"style":["bf"],"symbol":"𝚶"},{"style":["it"],"symbol":"𝛰"},{"style":["bf","it"],"symbol":"𝜪"},{"style":["sf","bf"],"symbol":"𝝤"},{"style":["sf","bf","it"],"symbol":"𝞞"}]} +, {"keyword":"Omega","symbols":[{"style":[],"symbol":"Ω"},{"style":["bf"],"symbol":"𝛀"},{"style":["it"],"symbol":"𝛺"},{"style":["bf","it"],"symbol":"𝜴"},{"style":["sf","bf"],"symbol":"𝝮"},{"style":["sf","bf","it"],"symbol":"𝞨"}]} +, {"keyword":"O","symbols":[{"style":["bf"],"symbol":"𝐎"},{"style":["it"],"symbol":"𝑂"},{"style":["bf","it"],"symbol":"𝑶"},{"style":["scr"],"symbol":"𝒪"},{"style":["cal"],"symbol":"𝓞"},{"style":["frak"],"symbol":"𝔒"},{"style":["bb"],"symbol":"𝕆"},{"style":["bf","frak"],"symbol":"𝕺"},{"style":["sf"],"symbol":"𝖮"},{"style":["sf","bf"],"symbol":"𝗢"},{"style":["sf","it"],"symbol":"𝘖"},{"style":["sf","bf","it"],"symbol":"𝙊"},{"style":["tt"],"symbol":"𝙾"}]} +, {"keyword":"Nu","symbols":[{"style":[],"symbol":"Ν"},{"style":["bf"],"symbol":"𝚴"},{"style":["it"],"symbol":"𝛮"},{"style":["bf","it"],"symbol":"𝜨"},{"style":["sf","bf"],"symbol":"𝝢"},{"style":["sf","bf","it"],"symbol":"𝞜"}]} +, {"keyword":"N","symbols":[{"style":["bf"],"symbol":"𝐍"},{"style":["it"],"symbol":"𝑁"},{"style":["bf","it"],"symbol":"𝑵"},{"style":["scr"],"symbol":"𝒩"},{"style":["cal"],"symbol":"𝓝"},{"style":["frak"],"symbol":"𝔑"},{"style":["bb"],"symbol":"ℕ"},{"style":["bf","frak"],"symbol":"𝕹"},{"style":["sf"],"symbol":"𝖭"},{"style":["sf","bf"],"symbol":"𝗡"},{"style":["sf","it"],"symbol":"𝘕"},{"style":["sf","bf","it"],"symbol":"𝙉"},{"style":["tt"],"symbol":"𝙽"}]} +, {"keyword":"Mu","symbols":[{"style":[],"symbol":"Μ"},{"style":["bf"],"symbol":"𝚳"},{"style":["it"],"symbol":"𝛭"},{"style":["bf","it"],"symbol":"𝜧"},{"style":["sf","bf"],"symbol":"𝝡"},{"style":["sf","bf","it"],"symbol":"𝞛"}]} +, {"keyword":"M","symbols":[{"style":["bf"],"symbol":"𝐌"},{"style":["it"],"symbol":"𝑀"},{"style":["bf","it"],"symbol":"𝑴"},{"style":["scr"],"symbol":"ℳ"},{"style":["cal"],"symbol":"𝓜"},{"style":["frak"],"symbol":"𝔐"},{"style":["bb"],"symbol":"𝕄"},{"style":["bf","frak"],"symbol":"𝕸"},{"style":["sf"],"symbol":"𝖬"},{"style":["sf","bf"],"symbol":"𝗠"},{"style":["sf","it"],"symbol":"𝘔"},{"style":["sf","bf","it"],"symbol":"𝙈"},{"style":["tt"],"symbol":"𝙼"}]} +, {"keyword":"Leftarrow","symbols":[{"style":[],"symbol":"⇐"}]} +, {"keyword":"Lambda","symbols":[{"style":[],"symbol":"Λ"},{"style":["bf"],"symbol":"𝚲"},{"style":["it"],"symbol":"𝛬"},{"style":["bf","it"],"symbol":"𝜦"},{"style":["sf","bf"],"symbol":"𝝠"},{"style":["sf","bf","it"],"symbol":"𝞚"}]} +, {"keyword":"L","symbols":[{"style":["bf"],"symbol":"𝐋"},{"style":["it"],"symbol":"𝐿"},{"style":["bf","it"],"symbol":"𝑳"},{"style":["scr"],"symbol":"ℒ"},{"style":["cal"],"symbol":"𝓛"},{"style":["frak"],"symbol":"𝔏"},{"style":["bb"],"symbol":"𝕃"},{"style":["bf","frak"],"symbol":"𝕷"},{"style":["sf"],"symbol":"𝖫"},{"style":["sf","bf"],"symbol":"𝗟"},{"style":["sf","it"],"symbol":"𝘓"},{"style":["sf","bf","it"],"symbol":"𝙇"},{"style":["tt"],"symbol":"𝙻"}]} +, {"keyword":"Kappa","symbols":[{"style":[],"symbol":"Κ"},{"style":["bf"],"symbol":"𝚱"},{"style":["it"],"symbol":"𝛫"},{"style":["bf","it"],"symbol":"𝜥"},{"style":["sf","bf"],"symbol":"𝝟"},{"style":["sf","bf","it"],"symbol":"𝞙"}]} +, {"keyword":"K","symbols":[{"style":["bf"],"symbol":"𝐊"},{"style":["it"],"symbol":"𝐾"},{"style":["bf","it"],"symbol":"𝑲"},{"style":["scr"],"symbol":"𝒦"},{"style":["cal"],"symbol":"𝓚"},{"style":["frak"],"symbol":"𝔎"},{"style":["bb"],"symbol":"𝕂"},{"style":["bf","frak"],"symbol":"𝕶"},{"style":["sf"],"symbol":"𝖪"},{"style":["sf","bf"],"symbol":"𝗞"},{"style":["sf","it"],"symbol":"𝘒"},{"style":["sf","bf","it"],"symbol":"𝙆"},{"style":["tt"],"symbol":"𝙺"}]} +, {"keyword":"J","symbols":[{"style":["bf"],"symbol":"𝐉"},{"style":["it"],"symbol":"𝐽"},{"style":["bf","it"],"symbol":"𝑱"},{"style":["scr"],"symbol":"𝒥"},{"style":["cal"],"symbol":"𝓙"},{"style":["frak"],"symbol":"𝔍"},{"style":["bb"],"symbol":"𝕁"},{"style":["bf","frak"],"symbol":"𝕵"},{"style":["sf"],"symbol":"𝖩"},{"style":["sf","bf"],"symbol":"𝗝"},{"style":["sf","it"],"symbol":"𝘑"},{"style":["sf","bf","it"],"symbol":"𝙅"},{"style":["tt"],"symbol":"𝙹"}]} +, {"keyword":"Iota","symbols":[{"style":[],"symbol":"Ι"},{"style":["bf"],"symbol":"𝚰"},{"style":["it"],"symbol":"𝛪"},{"style":["bf","it"],"symbol":"𝜤"},{"style":["sf","bf"],"symbol":"𝝞"},{"style":["sf","bf","it"],"symbol":"𝞘"}]} +, {"keyword":"Im","symbols":[{"style":[],"symbol":"ℑ"}]} +, {"keyword":"I","symbols":[{"style":["bf"],"symbol":"𝐈"},{"style":["it"],"symbol":"𝐼"},{"style":["bf","it"],"symbol":"𝑰"},{"style":["scr"],"symbol":"ℐ"},{"style":["cal"],"symbol":"𝓘"},{"style":["frak"],"symbol":"ℑ"},{"style":["bb"],"symbol":"𝕀"},{"style":["bf","frak"],"symbol":"𝕴"},{"style":["sf"],"symbol":"𝖨"},{"style":["sf","bf"],"symbol":"𝗜"},{"style":["sf","it"],"symbol":"𝘐"},{"style":["sf","bf","it"],"symbol":"𝙄"},{"style":["tt"],"symbol":"𝙸"}]} +, {"keyword":"H","symbols":[{"style":["bf"],"symbol":"𝐇"},{"style":["it"],"symbol":"𝐻"},{"style":["bf","it"],"symbol":"𝑯"},{"style":["scr"],"symbol":"ℋ"},{"style":["cal"],"symbol":"𝓗"},{"style":["frak"],"symbol":"ℌ"},{"style":["bb"],"symbol":"ℍ"},{"style":["bf","frak"],"symbol":"𝕳"},{"style":["sf"],"symbol":"𝖧"},{"style":["sf","bf"],"symbol":"𝗛"},{"style":["sf","it"],"symbol":"𝘏"},{"style":["sf","bf","it"],"symbol":"𝙃"},{"style":["tt"],"symbol":"𝙷"}]} +, {"keyword":"Gammma","symbols":[{"style":[],"symbol":"Γ"},{"style":["bf"],"symbol":"𝚪"},{"style":["it"],"symbol":"𝛤"},{"style":["bf","it"],"symbol":"𝜞"},{"style":["sf","bf"],"symbol":"𝝘"},{"style":["sf","bf","it"],"symbol":"𝞒"}]} +, {"keyword":"G","symbols":[{"style":["bf"],"symbol":"𝐆"},{"style":["it"],"symbol":"𝐺"},{"style":["bf","it"],"symbol":"𝑮"},{"style":["scr"],"symbol":"𝒢"},{"style":["cal"],"symbol":"𝓖"},{"style":["frak"],"symbol":"𝔊"},{"style":["bb"],"symbol":"𝔾"},{"style":["bf","frak"],"symbol":"𝕲"},{"style":["sf"],"symbol":"𝖦"},{"style":["sf","bf"],"symbol":"𝗚"},{"style":["sf","it"],"symbol":"𝘎"},{"style":["sf","bf","it"],"symbol":"𝙂"},{"style":["tt"],"symbol":"𝙶"}]} +, {"keyword":"F","symbols":[{"style":["bf"],"symbol":"𝐅"},{"style":["it"],"symbol":"𝐹"},{"style":["bf","it"],"symbol":"𝑭"},{"style":["scr"],"symbol":"ℱ"},{"style":["cal"],"symbol":"𝓕"},{"style":["frak"],"symbol":"𝔉"},{"style":["bb"],"symbol":"𝔽"},{"style":["bf","frak"],"symbol":"𝕱"},{"style":["sf"],"symbol":"𝖥"},{"style":["sf","bf"],"symbol":"𝗙"},{"style":["sf","it"],"symbol":"𝘍"},{"style":["sf","bf","it"],"symbol":"𝙁"},{"style":["tt"],"symbol":"𝙵"}]} +, {"keyword":"Eta","symbols":[{"style":[],"symbol":"Η"},{"style":["bf"],"symbol":"𝚮"},{"style":["it"],"symbol":"𝛨"},{"style":["bf","it"],"symbol":"𝜢"},{"style":["sf","bf"],"symbol":"𝝜"},{"style":["sf","bf","it"],"symbol":"𝞖"}]} +, {"keyword":"Epsilon","symbols":[{"style":[],"symbol":"Ε"},{"style":["bf"],"symbol":"𝚬"},{"style":["it"],"symbol":"𝛦"},{"style":["bf","it"],"symbol":"𝜠"},{"style":["sf","bf"],"symbol":"𝝚"},{"style":["sf","bf","it"],"symbol":"𝞔"}]} +, {"keyword":"E","symbols":[{"style":["bf"],"symbol":"𝐄"},{"style":["it"],"symbol":"𝐸"},{"style":["bf","it"],"symbol":"𝑬"},{"style":["scr"],"symbol":"ℰ"},{"style":["cal"],"symbol":"𝓔"},{"style":["frak"],"symbol":"𝔈"},{"style":["bb"],"symbol":"𝔼"},{"style":["bf","frak"],"symbol":"𝕰"},{"style":["sf"],"symbol":"𝖤"},{"style":["sf","bf"],"symbol":"𝗘"},{"style":["sf","it"],"symbol":"𝘌"},{"style":["sf","bf","it"],"symbol":"𝙀"},{"style":["tt"],"symbol":"𝙴"}]} +, {"keyword":"Downarrow","symbols":[{"style":[],"symbol":"⇓"}]} +, {"keyword":"Digamma","symbols":[{"style":[],"symbol":"Ϝ"},{"style":["bf"],"symbol":"𝟊"}]} +, {"keyword":"Delta","symbols":[{"style":[],"symbol":"Δ"},{"style":["bf"],"symbol":"𝚫"},{"style":["it"],"symbol":"𝛥"},{"style":["bf","it"],"symbol":"𝜟"},{"style":["sf","bf"],"symbol":"𝝙"},{"style":["sf","bf","it"],"symbol":"𝞓"}]} +, {"keyword":"D","symbols":[{"style":["bf"],"symbol":"𝐃"},{"style":["it"],"symbol":"𝐷"},{"style":["bf","it"],"symbol":"𝑫"},{"style":["scr"],"symbol":"𝒟"},{"style":["cal"],"symbol":"𝓓"},{"style":["frak"],"symbol":"𝔇"},{"style":["bb"],"symbol":"𝔻"},{"style":["bf","frak"],"symbol":"𝕯"},{"style":["sf"],"symbol":"𝖣"},{"style":["sf","bf"],"symbol":"𝗗"},{"style":["sf","it"],"symbol":"𝘋"},{"style":["sf","bf","it"],"symbol":"𝘿"},{"style":["tt"],"symbol":"𝙳"}]} +, {"keyword":"Chi","symbols":[{"style":[],"symbol":"Χ"},{"style":["bf"],"symbol":"𝚾"},{"style":["it"],"symbol":"𝛸"},{"style":["bf","it"],"symbol":"𝜲"},{"style":["sf","bf"],"symbol":"𝝬"},{"style":["sf","bf","it"],"symbol":"𝞦"}]} +, {"keyword":"C","symbols":[{"style":["bf"],"symbol":"𝐂"},{"style":["it"],"symbol":"𝐶"},{"style":["bf","it"],"symbol":"𝑪"},{"style":["scr"],"symbol":"𝒞"},{"style":["cal"],"symbol":"𝓒"},{"style":["frak"],"symbol":"ℭ"},{"style":["bb"],"symbol":"ℂ"},{"style":["bf","frak"],"symbol":"𝕮"},{"style":["sf"],"symbol":"𝖢"},{"style":["sf","bf"],"symbol":"𝗖"},{"style":["sf","it"],"symbol":"𝘊"},{"style":["sf","bf","it"],"symbol":"𝘾"},{"style":["tt"],"symbol":"𝙲"}]} +, {"keyword":"Beta","symbols":[{"style":[],"symbol":"Β"},{"style":["bf"],"symbol":"𝚩"},{"style":["it"],"symbol":"𝛣"},{"style":["bf","it"],"symbol":"𝜝"},{"style":["sf","bf"],"symbol":"𝝗"},{"style":["sf","bf","it"],"symbol":"𝞑"}]} +, {"keyword":"B","symbols":[{"style":["bf"],"symbol":"𝐁"},{"style":["it"],"symbol":"𝐵"},{"style":["bf","it"],"symbol":"𝑩"},{"style":["scr"],"symbol":"ℬ"},{"style":["cal"],"symbol":"𝓑"},{"style":["frak"],"symbol":"𝔅"},{"style":["bb"],"symbol":"𝔹"},{"style":["bf","frak"],"symbol":"𝕭"},{"style":["sf"],"symbol":"𝖡"},{"style":["sf","bf"],"symbol":"𝗕"},{"style":["sf","it"],"symbol":"𝘉"},{"style":["sf","bf","it"],"symbol":"𝘽"},{"style":["tt"],"symbol":"𝙱"}]} +, {"keyword":"Alpha","symbols":[{"style":[],"symbol":"Α"},{"style":["bf"],"symbol":"𝚨"},{"style":["it"],"symbol":"𝛢"},{"style":["bf","it"],"symbol":"𝜜"},{"style":["sf","bf"],"symbol":"𝝖"},{"style":["sf","bf","it"],"symbol":"𝞐"}]} +, {"keyword":"A","symbols":[{"style":["bf"],"symbol":"𝐀"},{"style":["it"],"symbol":"𝐴"},{"style":["bf","it"],"symbol":"𝑨"},{"style":["scr"],"symbol":"𝒜"},{"style":["cal"],"symbol":"𝓐"},{"style":["frak"],"symbol":"𝔄"},{"style":["bb"],"symbol":"𝔸"},{"style":["bf","frak"],"symbol":"𝕬"},{"style":["sf"],"symbol":"𝖠"},{"style":["sf","bf"],"symbol":"𝗔"},{"style":["sf","it"],"symbol":"𝘈"},{"style":["sf","bf","it"],"symbol":"𝘼"},{"style":["tt"],"symbol":"𝙰"}]} +, {"keyword":">>","symbols":[{"style":[],"symbol":"⟫"}]} +, {"keyword":">","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"<<","symbols":[{"style":[],"symbol":"⟪"}]} +, {"keyword":"<","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"9","symbols":[{"style":["bf"],"symbol":"𝟗"},{"style":["bb"],"symbol":"𝟡"},{"style":["sf"],"symbol":"𝟫"},{"style":["sf","bf"],"symbol":"𝟵"},{"style":["tt"],"symbol":"𝟿"}]} +, {"keyword":"8","symbols":[{"style":["bf"],"symbol":"𝟖"},{"style":["bb"],"symbol":"𝟠"},{"style":["sf"],"symbol":"𝟪"},{"style":["sf","bf"],"symbol":"𝟴"},{"style":["tt"],"symbol":"𝟾"}]} +, {"keyword":"7","symbols":[{"style":["bf"],"symbol":"𝟕"},{"style":["bb"],"symbol":"𝟟"},{"style":["sf"],"symbol":"𝟩"},{"style":["sf","bf"],"symbol":"𝟳"},{"style":["tt"],"symbol":"𝟽"}]} +, {"keyword":"6","symbols":[{"style":["bf"],"symbol":"𝟔"},{"style":["bb"],"symbol":"𝟞"},{"style":["sf"],"symbol":"𝟨"},{"style":["sf","bf"],"symbol":"𝟲"},{"style":["tt"],"symbol":"𝟼"}]} +, {"keyword":"5","symbols":[{"style":["bf"],"symbol":"𝟓"},{"style":["bb"],"symbol":"𝟝"},{"style":["sf"],"symbol":"𝟧"},{"style":["sf","bf"],"symbol":"𝟱"},{"style":["tt"],"symbol":"𝟻"}]} +, {"keyword":"4","symbols":[{"style":["bf"],"symbol":"𝟒"},{"style":["bb"],"symbol":"𝟜"},{"style":["sf"],"symbol":"𝟦"},{"style":["sf","bf"],"symbol":"𝟰"},{"style":["tt"],"symbol":"𝟺"}]} +, {"keyword":"3","symbols":[{"style":["bf"],"symbol":"𝟑"},{"style":["bb"],"symbol":"𝟛"},{"style":["sf"],"symbol":"𝟥"},{"style":["sf","bf"],"symbol":"𝟯"},{"style":["tt"],"symbol":"𝟹"}]} +, {"keyword":"2","symbols":[{"style":["bf"],"symbol":"𝟐"},{"style":["bb"],"symbol":"𝟚"},{"style":["sf"],"symbol":"𝟤"},{"style":["sf","bf"],"symbol":"𝟮"},{"style":["tt"],"symbol":"𝟸"}]} +, {"keyword":"1","symbols":[{"style":["bf"],"symbol":"𝟏"},{"style":["bb"],"symbol":"𝟙"},{"style":["sf"],"symbol":"𝟣"},{"style":["sf","bf"],"symbol":"𝟭"},{"style":["tt"],"symbol":"𝟷"}]} +, {"keyword":"0","symbols":[{"style":["bf"],"symbol":"𝟎"},{"style":["bb"],"symbol":"𝟘"},{"style":["sf"],"symbol":"𝟢"},{"style":["sf","bf"],"symbol":"𝟬"},{"style":["tt"],"symbol":"𝟶"}]} +, {"keyword":")b","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"))","symbols":[{"style":[],"symbol":"⦆"}]} +, {"keyword":"(|","symbols":[{"style":[],"symbol":"⦇"}]} +, {"keyword":"(b","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"((","symbols":[{"style":[],"symbol":"⦅"}]} ] diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index e6939755..c01dfab1 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -1,7 +1,9 @@ +pub mod math_symbol_key; mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } +use math_symbol_key::*; pub use dict::UnicodeAnnotation; #[cfg(test)] @@ -12,8 +14,19 @@ mod tests { } #[test] - fn symbol_alpha() { - assert_eq!(crate::lookup_math_symbol("alpha"), Some("α")); + fn math_symbols() { + use crate::math_symbol_key::*; + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -35,9 +48,10 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { .map(|idx| crate::dict::HANJA_ENTRIES[idx].1) } -pub fn lookup_math_symbol(keyword: &str) -> Option<&'static str> { +pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { + let key = SymbolKey(keyword,style); crate::dict::MATH_SYMBOL_ENTRIES - .binary_search_by_key(&keyword, |(k, _)| *k) + .binary_search_by_key(&key, |(k, _)| *k) .ok() .map(|idx| crate::dict::MATH_SYMBOL_ENTRIES[idx].1) } diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs new file mode 100644 index 00000000..bb2bbad5 --- /dev/null +++ b/src/engine/dict/src/math_symbol_key.rs @@ -0,0 +1,24 @@ +use std::ops::BitOr; + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct Style(pub u8); + +impl BitOr for Style { + type Output = Style; + fn bitor(self, rhs: Style) -> Style { + Style(self.0 | rhs.0) + } +} + +pub const STYLE_NONE: Style = Style(0); +pub const STYLE_SF: Style = Style(1); +pub const STYLE_BF: Style = Style(2); +pub const STYLE_IT: Style = Style(4); +pub const STYLE_TT: Style = Style(8); +pub const STYLE_BB: Style = Style(16); +pub const STYLE_SCR: Style = Style(32); +pub const STYLE_CAL: Style = Style(64); +pub const STYLE_FRAK: Style = Style(128); + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct SymbolKey<'a>(pub &'a str, pub Style); From 2a304ef39f4e6ff594b93455938424a96ae7a9a9 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:24:30 +0900 Subject: [PATCH 02/32] implement style parsing --- src/engine/backends/math/src/lib.rs | 86 +++++++++++++++++++++++++- src/engine/dict/src/math_symbol_key.rs | 8 ++- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 91918330..339c8d41 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -6,6 +6,26 @@ use kime_engine_backend::{ use kime_engine_backend_latin::{load_layout, LatinConfig}; use kime_engine_dict::math_symbol_key::*; +#[cfg(test)] +mod tests { + #[test] + fn test_parse_style() { + use kime_engine_dict::math_symbol_key::*; + + assert_eq!(crate::parse_style("sf"), STYLE_SF); + assert_eq!(crate::parse_style("bf"), STYLE_BF); + assert_eq!(crate::parse_style("it"), STYLE_IT); + assert_eq!(crate::parse_style("tt"), STYLE_TT); + assert_eq!(crate::parse_style("bb"), STYLE_BB); + assert_eq!(crate::parse_style("scr"), STYLE_SCR); + assert_eq!(crate::parse_style("cal"), STYLE_CAL); + assert_eq!(crate::parse_style("frak"), STYLE_FRAK); + assert_eq!(crate::parse_style("fruk"), STYLE_NONE); + assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + } +} + #[derive(Clone)] pub struct MathMode { math_mode: bool, @@ -23,6 +43,57 @@ impl MathMode { } } +fn take_str(s:&str, n: usize) -> &str { + if s.len() >= n { + &s[0..n] + } else { + s + } +} + +fn parse_style(style_str: &str) -> Style { + let mut buf: &str = style_str; + let mut style = STYLE_NONE; + + loop { + let style_new = match take_str(buf,2) { + "" => return style, + "sf" => {buf = &buf[2..]; STYLE_SF}, + "bf" => {buf = &buf[2..]; STYLE_BF}, + "it" => {buf = &buf[2..]; STYLE_IT}, + "tt" => {buf = &buf[2..]; STYLE_TT}, + "bb" => {buf = &buf[2..]; STYLE_BB}, + "sc" => { + if let "r" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_SCR + } else { + return STYLE_NONE; + } + }, + "ca" => { + if let "l" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_CAL + } else { + return STYLE_NONE; + } + }, + "fr" => { + if let "ak" = take_str(&buf[2..], 2) { + buf = &buf[4..]; + STYLE_FRAK + } else { + return STYLE_NONE; + } + }, + _ => return STYLE_NONE, + }; + + style |= style_new; + } +} + impl InputEngineMode for MathMode { fn press_key(&mut self, key: Key, commit_buf: &mut String) -> InputEngineModeResult { if key == Key::normal(KeyCode::Backslash) { @@ -59,9 +130,20 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { - commit_buf.push_str(symbol); + let mut iter = self.buf.split('.'); + if let Some(first) = iter.next() { + if let Some(second) = iter.next() { + let style = parse_style(first); + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&second, style) { + commit_buf.push_str(symbol); + } + } else { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + commit_buf.push_str(symbol); + } + } } + self.buf.clear(); self.math_mode = false; Continue(()) diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index bb2bbad5..42cbfba2 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,4 +1,4 @@ -use std::ops::BitOr; +use std::ops::{BitOr, BitOrAssign}; #[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] pub struct Style(pub u8); @@ -10,6 +10,12 @@ impl BitOr for Style { } } +impl BitOrAssign for Style { + fn bitor_assign(&mut self, rhs: Style) { + *self = *self | rhs; + } +} + pub const STYLE_NONE: Style = Style(0); pub const STYLE_SF: Style = Style(1); pub const STYLE_BF: Style = Style(2); From 496aa07f4740d6fd90814d77854b2f5dbcdb0d37 Mon Sep 17 00:00:00 2001 From: Riey Date: Thu, 18 Mar 2021 20:29:49 +0900 Subject: [PATCH 03/32] 2.0.1 --- docs/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 5aa19291..40685a1f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,10 @@ ### Improve +## 2.0.1 + +### Improve + * Make more key to commit hangul [#373](https://github.com/Riey/kime/issues/373) ## 2.0.0 From 765f959a39db0bacd765af93bba7599ec1f81f5d Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:07 +0900 Subject: [PATCH 04/32] fix fmt --- src/engine/backends/math/src/lib.rs | 35 ++++++++++++++++++-------- src/engine/dict/build.rs | 28 +++++++++++---------- src/engine/dict/src/lib.rs | 26 ++++++++++--------- src/engine/dict/src/math_symbol_key.rs | 4 +-- 4 files changed, 56 insertions(+), 37 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 339c8d41..ebe82d08 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -43,7 +43,7 @@ impl MathMode { } } -fn take_str(s:&str, n: usize) -> &str { +fn take_str(s: &str, n: usize) -> &str { if s.len() >= n { &s[0..n] } else { @@ -56,13 +56,28 @@ fn parse_style(style_str: &str) -> Style { let mut style = STYLE_NONE; loop { - let style_new = match take_str(buf,2) { + let style_new = match take_str(buf, 2) { "" => return style, - "sf" => {buf = &buf[2..]; STYLE_SF}, - "bf" => {buf = &buf[2..]; STYLE_BF}, - "it" => {buf = &buf[2..]; STYLE_IT}, - "tt" => {buf = &buf[2..]; STYLE_TT}, - "bb" => {buf = &buf[2..]; STYLE_BB}, + "sf" => { + buf = &buf[2..]; + STYLE_SF + } + "bf" => { + buf = &buf[2..]; + STYLE_BF + } + "it" => { + buf = &buf[2..]; + STYLE_IT + } + "tt" => { + buf = &buf[2..]; + STYLE_TT + } + "bb" => { + buf = &buf[2..]; + STYLE_BB + } "sc" => { if let "r" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -70,7 +85,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "ca" => { if let "l" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -78,7 +93,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "fr" => { if let "ak" = take_str(&buf[2..], 2) { buf = &buf[4..]; @@ -86,7 +101,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } _ => return STYLE_NONE, }; diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 2c726b89..cb25c626 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -52,17 +52,19 @@ impl<'de> Deserialize<'de> for Style { let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; let style = styles .into_iter() - .map(|s| Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, - _ => return Err(Error::custom("no matching style name")), - })) + .map(|s| { + Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + }) + }) .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } @@ -189,13 +191,13 @@ fn main() { let symbol_map_data = include_str!("data/symbol_map.json"); let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); - let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + let mut symbol_map: Vec<(SymbolKey, &str)> = Vec::new(); for key_sym_pair in &symbol_map_data { let keyword = &key_sym_pair.keyword; for sty_sym_pair in &key_sym_pair.symbols { let style = sty_sym_pair.style; let symbol = sty_sym_pair.symbol; - symbol_map.push((SymbolKey(keyword,style), symbol)); + symbol_map.push((SymbolKey(keyword, style), symbol)); } } symbol_map.sort_unstable_by_key(|pair| pair.0); diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index c01dfab1..fff36634 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -3,8 +3,8 @@ mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } -use math_symbol_key::*; pub use dict::UnicodeAnnotation; +use math_symbol_key::*; #[cfg(test)] mod tests { @@ -15,18 +15,20 @@ mod tests { #[test] fn math_symbols() { + use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -49,7 +51,7 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { } pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { - let key = SymbolKey(keyword,style); + let key = SymbolKey(keyword, style); crate::dict::MATH_SYMBOL_ENTRIES .binary_search_by_key(&key, |(k, _)| *k) .ok() diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 42cbfba2..c5e4d01e 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,6 +1,6 @@ use std::ops::{BitOr, BitOrAssign}; -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct Style(pub u8); impl BitOr for Style { @@ -26,5 +26,5 @@ pub const STYLE_SCR: Style = Style(32); pub const STYLE_CAL: Style = Style(64); pub const STYLE_FRAK: Style = Style(128); -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From 73a73e1ec28b96e331fdb96aceb2e0391ee6b9c9 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:27 +0900 Subject: [PATCH 05/32] add style test --- src/engine/core/tests/math.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/engine/core/tests/math.rs b/src/engine/core/tests/math.rs index 644f34cc..4046fa76 100644 --- a/src/engine/core/tests/math.rs +++ b/src/engine/core/tests/math.rs @@ -54,3 +54,22 @@ fn backspace() { (Key::normal(Backspace), "", ""), ]) } + +#[test] +fn style() { + test_input(&[ + (MATH, "", ""), + (Key::normal(Backslash), "\\", ""), + (Key::normal(B), "\\b", ""), + (Key::normal(F), "\\bf", ""), + (Key::normal(I), "\\bfi", ""), + (Key::normal(T), "\\bfit", ""), + (Key::normal(Period), "\\bfit.", ""), + (Key::normal(A), "\\bfit.a", ""), + (Key::normal(L), "\\bfit.al", ""), + (Key::normal(P), "\\bfit.alp", ""), + (Key::normal(H), "\\bfit.alph", ""), + (Key::normal(A), "\\bfit.alpha", ""), + (Key::normal(Tab), "", "𝜶"), + ]) +} From a89573c64a12ccedfcf3976659fe139e29b353d4 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:00:10 +0900 Subject: [PATCH 06/32] fix fmt --- src/engine/dict/build.rs | 11 ++++++++--- src/engine/dict/src/lib.rs | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index cb25c626..ba21043b 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,9 +1,9 @@ #[path = "src/math_symbol_key.rs"] mod math_symbol_key; -use math_symbol_key::*; use itertools::Itertools; -use serde::{Deserialize,Deserializer}; +use math_symbol_key::*; +use serde::{Deserialize, Deserializer}; use std::{ collections::BTreeMap, env, @@ -202,7 +202,12 @@ fn main() { } symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); + writeln!( + out, + "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", + symbol_map + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index fff36634..ff9f7e27 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -23,7 +23,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!( + lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + Some("𝙍") + ); assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); From 633e2db815d44a789e5f2d61d4a5ae08b2f9f891 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:02:59 +0900 Subject: [PATCH 07/32] fix fmt --- src/engine/dict/build.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index ba21043b..007d6ef8 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -206,8 +206,8 @@ fn main() { out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map - ) - .unwrap(); + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( From 63c64200ca404e4ede0be520b2d685e13973bd9c Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:47:36 +0900 Subject: [PATCH 08/32] use strip_prefix and impl Style --- src/engine/backends/math/src/lib.rs | 109 ++++++++++--------------- src/engine/dict/build.rs | 18 ++-- src/engine/dict/src/lib.rs | 20 ++--- src/engine/dict/src/math_symbol_key.rs | 20 +++-- 4 files changed, 71 insertions(+), 96 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index ebe82d08..c86e1f62 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -12,17 +12,17 @@ mod tests { fn test_parse_style() { use kime_engine_dict::math_symbol_key::*; - assert_eq!(crate::parse_style("sf"), STYLE_SF); - assert_eq!(crate::parse_style("bf"), STYLE_BF); - assert_eq!(crate::parse_style("it"), STYLE_IT); - assert_eq!(crate::parse_style("tt"), STYLE_TT); - assert_eq!(crate::parse_style("bb"), STYLE_BB); - assert_eq!(crate::parse_style("scr"), STYLE_SCR); - assert_eq!(crate::parse_style("cal"), STYLE_CAL); - assert_eq!(crate::parse_style("frak"), STYLE_FRAK); - assert_eq!(crate::parse_style("fruk"), STYLE_NONE); - assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); - assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("sf"), Style::SF); + assert_eq!(crate::parse_style("bf"), Style::BF); + assert_eq!(crate::parse_style("it"), Style::IT); + assert_eq!(crate::parse_style("tt"), Style::TT); + assert_eq!(crate::parse_style("bb"), Style::BB); + assert_eq!(crate::parse_style("scr"), Style::SCR); + assert_eq!(crate::parse_style("cal"), Style::CAL); + assert_eq!(crate::parse_style("frak"), Style::FRAK); + assert_eq!(crate::parse_style("fruk"), Style::NONE); + assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); + assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); } } @@ -43,66 +43,39 @@ impl MathMode { } } -fn take_str(s: &str, n: usize) -> &str { - if s.len() >= n { - &s[0..n] - } else { - s - } -} - fn parse_style(style_str: &str) -> Style { let mut buf: &str = style_str; - let mut style = STYLE_NONE; + let mut style = Style::NONE; loop { - let style_new = match take_str(buf, 2) { - "" => return style, - "sf" => { - buf = &buf[2..]; - STYLE_SF - } - "bf" => { - buf = &buf[2..]; - STYLE_BF - } - "it" => { - buf = &buf[2..]; - STYLE_IT - } - "tt" => { - buf = &buf[2..]; - STYLE_TT - } - "bb" => { - buf = &buf[2..]; - STYLE_BB - } - "sc" => { - if let "r" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_SCR - } else { - return STYLE_NONE; - } - } - "ca" => { - if let "l" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_CAL - } else { - return STYLE_NONE; - } - } - "fr" => { - if let "ak" = take_str(&buf[2..], 2) { - buf = &buf[4..]; - STYLE_FRAK - } else { - return STYLE_NONE; - } - } - _ => return STYLE_NONE, + let style_new = if buf == "" { + return style; + } else if let Some(_buf) = buf.strip_prefix("sf") { + buf = _buf; + Style::SF + } else if let Some(_buf) = buf.strip_prefix("bf") { + buf = _buf; + Style::BF + } else if let Some(_buf) = buf.strip_prefix("it") { + buf = _buf; + Style::IT + } else if let Some(_buf) = buf.strip_prefix("tt") { + buf = _buf; + Style::TT + } else if let Some(_buf) = buf.strip_prefix("bb") { + buf = _buf; + Style::BB + } else if let Some(_buf) = buf.strip_prefix("scr") { + buf = _buf; + Style::SCR + } else if let Some(_buf) = buf.strip_prefix("cal") { + buf = _buf; + Style::CAL + } else if let Some(_buf) = buf.strip_prefix("frak") { + buf = _buf; + Style::FRAK + } else { + return Style::NONE; }; style |= style_new; @@ -153,7 +126,7 @@ impl InputEngineMode for MathMode { commit_buf.push_str(symbol); } } else { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, Style::NONE) { commit_buf.push_str(symbol); } } diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 007d6ef8..9fc09976 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -54,18 +54,18 @@ impl<'de> Deserialize<'de> for Style { .into_iter() .map(|s| { Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, + "sf" => Style::SF, + "bf" => Style::BF, + "it" => Style::IT, + "tt" => Style::TT, + "bb" => Style::BB, + "scr" => Style::SCR, + "cal" => Style::CAL, + "frak" => Style::FRAK, _ => return Err(Error::custom("no matching style name")), }) }) - .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + .fold(Ok(Style::NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index ff9f7e27..614a6f79 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -18,20 +18,20 @@ mod tests { use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); assert_eq!( - lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), Some("𝙍") ); - assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("R", Style::TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", Style::BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", Style::SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", Style::CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", Style::FRAK), Some("ℜ")); } #[test] diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index c5e4d01e..39bf6546 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -16,15 +16,17 @@ impl BitOrAssign for Style { } } -pub const STYLE_NONE: Style = Style(0); -pub const STYLE_SF: Style = Style(1); -pub const STYLE_BF: Style = Style(2); -pub const STYLE_IT: Style = Style(4); -pub const STYLE_TT: Style = Style(8); -pub const STYLE_BB: Style = Style(16); -pub const STYLE_SCR: Style = Style(32); -pub const STYLE_CAL: Style = Style(64); -pub const STYLE_FRAK: Style = Style(128); +impl Style { + pub const NONE: Style = Style(0); + pub const SF: Style = Style(1<<0); + pub const BF: Style = Style(1<<1); + pub const IT: Style = Style(1<<2); + pub const TT: Style = Style(1<<3); + pub const BB: Style = Style(1<<4); + pub const SCR: Style = Style(1<<5); + pub const CAL: Style = Style(1<<6); + pub const FRAK: Style = Style(1<<7); +} #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From 11c73c5ceb5ec55d5c1e5abdd3be244a1b533a65 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:49:40 +0900 Subject: [PATCH 09/32] fix fmt --- src/engine/backends/math/src/lib.rs | 5 ++++- src/engine/dict/src/lib.rs | 5 ++++- src/engine/dict/src/math_symbol_key.rs | 16 ++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index c86e1f62..b888a1e2 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -22,7 +22,10 @@ mod tests { assert_eq!(crate::parse_style("frak"), Style::FRAK); assert_eq!(crate::parse_style("fruk"), Style::NONE); assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); - assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); + assert_eq!( + crate::parse_style("bfsfit"), + Style::SF | Style::BF | Style::IT + ); } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index 614a6f79..ba6e156c 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -21,7 +21,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); + assert_eq!( + lookup_math_symbol("alpha", Style::BF | Style::IT), + Some("𝜶") + ); assert_eq!( lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 39bf6546..51e4560c 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -18,14 +18,14 @@ impl BitOrAssign for Style { impl Style { pub const NONE: Style = Style(0); - pub const SF: Style = Style(1<<0); - pub const BF: Style = Style(1<<1); - pub const IT: Style = Style(1<<2); - pub const TT: Style = Style(1<<3); - pub const BB: Style = Style(1<<4); - pub const SCR: Style = Style(1<<5); - pub const CAL: Style = Style(1<<6); - pub const FRAK: Style = Style(1<<7); + pub const SF: Style = Style(1 << 0); + pub const BF: Style = Style(1 << 1); + pub const IT: Style = Style(1 << 2); + pub const TT: Style = Style(1 << 3); + pub const BB: Style = Style(1 << 4); + pub const SCR: Style = Style(1 << 5); + pub const CAL: Style = Style(1 << 6); + pub const FRAK: Style = Style(1 << 7); } #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] From 90bc26b9ade60b6bc7f8e6bfe04d2bd6f9d38f0e Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:53:45 +0900 Subject: [PATCH 10/32] use is_empty Co-authored-by: Riey --- src/engine/backends/math/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index b888a1e2..2c4027fa 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -51,7 +51,7 @@ fn parse_style(style_str: &str) -> Style { let mut style = Style::NONE; loop { - let style_new = if buf == "" { + let style_new = if buf.is_empty() { return style; } else if let Some(_buf) = buf.strip_prefix("sf") { buf = _buf; From 9b044fdce642062ed058ac23745addaa93f48c6a Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 19:02:43 +0900 Subject: [PATCH 11/32] add Style --- src/engine/backends/math/src/lib.rs | 3 +- src/engine/dict/build.rs | 59 +- src/engine/dict/data/symbol_map.json | 1650 +++++------------------- src/engine/dict/src/lib.rs | 22 +- src/engine/dict/src/math_symbol_key.rs | 24 + 5 files changed, 438 insertions(+), 1320 deletions(-) create mode 100644 src/engine/dict/src/math_symbol_key.rs diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 5130efac..91918330 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -4,6 +4,7 @@ use kime_engine_backend::{ Key, KeyCode, }; use kime_engine_backend_latin::{load_layout, LatinConfig}; +use kime_engine_dict::math_symbol_key::*; #[derive(Clone)] pub struct MathMode { @@ -58,7 +59,7 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { commit_buf.push_str(symbol); } self.buf.clear(); diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 82bf3d0e..2c726b89 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,5 +1,9 @@ +#[path = "src/math_symbol_key.rs"] +mod math_symbol_key; + +use math_symbol_key::*; use itertools::Itertools; -use serde::Deserialize; +use serde::{Deserialize,Deserializer}; use std::{ collections::BTreeMap, env, @@ -41,10 +45,39 @@ struct UnicodeEntry { tts: String, } +impl<'de> Deserialize<'de> for Style { + fn deserialize>(deserializer: D) -> Result { + use serde::de::Error; + + let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; + let style = styles + .into_iter() + .map(|s| Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + })) + .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + style + } +} + +#[derive(Deserialize)] +struct StySymPair<'a> { + style: Style, + symbol: &'a str, +} + #[derive(Deserialize)] struct KeySymPair<'a> { keyword: &'a str, - symbol: &'a str, + symbols: Vec>, } fn load_hanja_dict() -> BTreeMap> { @@ -133,6 +166,7 @@ fn main() { std::fs::File::create(PathBuf::from(env::var("OUT_DIR").unwrap()).join("dict.rs")).unwrap(), ); + writeln!(out, "use crate::math_symbol_key::*;").unwrap(); writeln!( out, "pub static HANJA_ENTRIES: &[(char, &[(char, &str)])] = &[", @@ -153,17 +187,20 @@ fn main() { writeln!(out, "];").unwrap(); - let symbol_map = include_str!("data/symbol_map.json"); - let mut symbol_map: Vec = serde_json::from_str(symbol_map).unwrap(); - symbol_map.sort_unstable_by_key(|pair| pair.keyword); - - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(&str, &str)] = &[").unwrap(); - - for pair in &symbol_map { - writeln!(out, "(\"{}\", \"{}\"),", pair.keyword, pair.symbol).unwrap(); + let symbol_map_data = include_str!("data/symbol_map.json"); + let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); + let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + for key_sym_pair in &symbol_map_data { + let keyword = &key_sym_pair.keyword; + for sty_sym_pair in &key_sym_pair.symbols { + let style = sty_sym_pair.style; + let symbol = sty_sym_pair.symbol; + symbol_map.push((SymbolKey(keyword,style), symbol)); + } } + symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "];").unwrap(); + writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/data/symbol_map.json b/src/engine/dict/data/symbol_map.json index 2d2aea7c..eb672026 100644 --- a/src/engine/dict/data/symbol_map.json +++ b/src/engine/dict/data/symbol_map.json @@ -1,1305 +1,347 @@ -[ {"keyword":"neg","symbol":"¬"} -, {"keyword":"leq","symbol":"≤"} -, {"keyword":"leqq","symbol":"≦"} -, {"keyword":"leqslant","symbol":"⩽"} -, {"keyword":"lesssim","symbol":"≲"} -, {"keyword":"lessapprox","symbol":"⪅"} -, {"keyword":"prec","symbol":"≺"} -, {"keyword":"preceq","symbol":"⪯"} -, {"keyword":"precsim","symbol":"≾"} -, {"keyword":"geq","symbol":"≥"} -, {"keyword":"geqq","symbol":"≧"} -, {"keyword":"geqslant","symbol":"⩾"} -, {"keyword":"gtrsim","symbol":"≳"} -, {"keyword":"gtrapprox","symbol":"⪆"} -, {"keyword":"succ","symbol":"≻"} -, {"keyword":"succeq","symbol":"⪰"} -, {"keyword":"succsim","symbol":"≿"} -, {"keyword":"nless","symbol":"≮"} -, {"keyword":"nleq","symbol":"≰"} -, {"keyword":"lneq","symbol":"⪇"} -, {"keyword":"lneqq","symbol":"≨"} -, {"keyword":"lnsim","symbol":"⋦"} -, {"keyword":"lnapprox","symbol":"⪉"} -, {"keyword":"nprec","symbol":"⊀"} -, {"keyword":"npreceq","symbol":"⪯̸"} -, {"keyword":"ngtr","symbol":"≯"} -, {"keyword":"ngeq","symbol":"≱"} -, {"keyword":"gneq","symbol":"⪈"} -, {"keyword":"gneqq","symbol":"≩"} -, {"keyword":"gnsim","symbol":"⋧"} -, {"keyword":"gnapprox","symbol":"⪊"} -, {"keyword":"nsucc","symbol":"⊁"} -, {"keyword":"nsucceq","symbol":"⪰̸"} -, {"keyword":"ll","symbol":"≪"} -, {"keyword":"lll","symbol":"⋘"} -, {"keyword":"gg","symbol":"≫"} -, {"keyword":"ggg","symbol":"⋙"} -, {"keyword":"lessgtr","symbol":"≶"} -, {"keyword":"lesseqgtr","symbol":"⋚"} -, {"keyword":"subset","symbol":"⊂"} -, {"keyword":"subseteq","symbol":"⊆"} -, {"keyword":"sqsubset","symbol":"⊏"} -, {"keyword":"sqsubseteq","symbol":"⊑"} -, {"keyword":"nsubset","symbol":"⊄"} -, {"keyword":"nsubseteq","symbol":"⊈"} -, {"keyword":"subsetneq","symbol":"⊊"} -, {"keyword":"supset","symbol":"⊃"} -, {"keyword":"supseteq","symbol":"⊇"} -, {"keyword":"sqsupset","symbol":"⊐"} -, {"keyword":"sqsupseteq","symbol":"⊒"} -, {"keyword":"nsupset","symbol":"⊅"} -, {"keyword":"nsupseteq","symbol":"⊉"} -, {"keyword":"supsetneq","symbol":"⊋"} -, {"keyword":"doteq","symbol":"≐"} -, {"keyword":"equiv","symbol":"≡"} -, {"keyword":"approx","symbol":"≈"} -, {"keyword":"cong","symbol":"≅"} -, {"keyword":"simeq","symbol":"≃"} -, {"keyword":"sim","symbol":"∼"} -, {"keyword":"propto","symbol":"∝"} -, {"keyword":"neq","symbol":"≠"} -, {"keyword":"nequiv","symbol":"≢"} -, {"keyword":"napprox","symbol":"≉"} -, {"keyword":"ncong","symbol":"≇"} -, {"keyword":"nsimeq","symbol":"≄"} -, {"keyword":"nsim","symbol":"≁"} -, {"keyword":"to","symbol":"→"} -, {"keyword":"rightarrow","symbol":"→"} -, {"keyword":"Rightarrow","symbol":"⇒"} -, {"keyword":"longrightarrow","symbol":"⟶"} -, {"keyword":"gets","symbol":"←"} -, {"keyword":"leftarrow","symbol":"←"} -, {"keyword":"Leftarrow","symbol":"⇐"} -, {"keyword":"longleftarrow","symbol":"⟵"} -, {"keyword":"mapsto","symbol":"↦"} -, {"keyword":"longmapsto","symbol":"⟼"} -, {"keyword":"uparrow","symbol":"↑"} -, {"keyword":"downaroow","symbol":"↓"} -, {"keyword":"updownarrow","symbol":"↕"} -, {"keyword":"Uparrow","symbol":"⇑"} -, {"keyword":"Downarrow","symbol":"⇓"} -, {"keyword":"Updownarrow","symbol":"⇕"} -, {"keyword":"partial","symbol":"∂"} -, {"keyword":"nabla","symbol":"∇"} -, {"keyword":"imath","symbol":"ı"} -, {"keyword":"jmath","symbol":"ȷ"} -, {"keyword":"ell","symbol":"ℓ"} -, {"keyword":"Re","symbol":"ℜ"} -, {"keyword":"Im","symbol":"ℑ"} -, {"keyword":"infty","symbol":"∞"} -, {"keyword":"wp","symbol":"℘"} -, {"keyword":"hbar","symbol":"ℏ"} -, {"keyword":"hslash","symbol":"ℏ"} -, {"keyword":"aleph","symbol":"ℵ"} -, {"keyword":"beth","symbol":"ℶ"} -, {"keyword":"gimel","symbol":"ℷ"} -, {"keyword":"langle","symbol":"⟨"} -, {"keyword":"rangle","symbol":"⟩"} -, {"keyword":"lfloor","symbol":"⌊"} -, {"keyword":"rfloor","symbol":"⌋"} -, {"keyword":"lceil","symbol":"⌈"} -, {"keyword":"rceil","symbol":"⌉"} -, {"keyword":"|","symbol":"‖"} -, {"keyword":"^0","symbol":"⁰"} -, {"keyword":"^1","symbol":"¹"} -, {"keyword":"^2","symbol":"²"} -, {"keyword":"^3","symbol":"³"} -, {"keyword":"^4","symbol":"⁴"} -, {"keyword":"^5","symbol":"⁵"} -, {"keyword":"^6","symbol":"⁶"} -, {"keyword":"^7","symbol":"⁷"} -, {"keyword":"^8","symbol":"⁸"} -, {"keyword":"^9","symbol":"⁹"} -, {"keyword":"^+","symbol":"⁺"} -, {"keyword":"^-","symbol":"⁻"} -, {"keyword":"^=","symbol":"⁼"} -, {"keyword":"^(","symbol":"⁽"} -, {"keyword":"^)","symbol":"⁾"} -, {"keyword":"^A","symbol":"ᴬ"} -, {"keyword":"^B","symbol":"ᴮ"} -, {"keyword":"^D","symbol":"ᴰ"} -, {"keyword":"^E","symbol":"ᴱ"} -, {"keyword":"^G","symbol":"ᴳ"} -, {"keyword":"^H","symbol":"ᴴ"} -, {"keyword":"^I","symbol":"ᴵ"} -, {"keyword":"^J","symbol":"ᴶ"} -, {"keyword":"^K","symbol":"ᴷ"} -, {"keyword":"^L","symbol":"ᴸ"} -, {"keyword":"^M","symbol":"ᴹ"} -, {"keyword":"^N","symbol":"ᴺ"} -, {"keyword":"^O","symbol":"ᴼ"} -, {"keyword":"^P","symbol":"ᴾ"} -, {"keyword":"^R","symbol":"ᴿ"} -, {"keyword":"^T","symbol":"ᵀ"} -, {"keyword":"^U","symbol":"ᵁ"} -, {"keyword":"^V","symbol":"ⱽ"} -, {"keyword":"^W","symbol":"ᵂ"} -, {"keyword":"^a","symbol":"ᵃ"} -, {"keyword":"^b","symbol":"ᵇ"} -, {"keyword":"^c","symbol":"ᶜ"} -, {"keyword":"^d","symbol":"ᵈ"} -, {"keyword":"^e","symbol":"ᵉ"} -, {"keyword":"^f","symbol":"ᶠ"} -, {"keyword":"^g","symbol":"ᵍ"} -, {"keyword":"^h","symbol":"ʰ"} -, {"keyword":"^i","symbol":"ⁱ"} -, {"keyword":"^j","symbol":"ʲ"} -, {"keyword":"^k","symbol":"ᵏ"} -, {"keyword":"^l","symbol":"ˡ"} -, {"keyword":"^m","symbol":"ᵐ"} -, {"keyword":"^n","symbol":"ⁿ"} -, {"keyword":"^o","symbol":"ᵒ"} -, {"keyword":"^p","symbol":"ᵖ"} -, {"keyword":"^r","symbol":"ʳ"} -, {"keyword":"^s","symbol":"ˢ"} -, {"keyword":"^t","symbol":"ᵗ"} -, {"keyword":"^u","symbol":"ᵘ"} -, {"keyword":"^v","symbol":"ᵛ"} -, {"keyword":"^w","symbol":"ʷ"} -, {"keyword":"^x","symbol":"ˣ"} -, {"keyword":"^y","symbol":"ʸ"} -, {"keyword":"^z","symbol":"ᶻ"} -, {"keyword":"^beta","symbol":"ᵝ"} -, {"keyword":"^gamma","symbol":"ᵞ"} -, {"keyword":"^delta","symbol":"ᵟ"} -, {"keyword":"^epsilon","symbol":"ᵋ"} -, {"keyword":"^theta","symbol":"ᶿ"} -, {"keyword":"^iota","symbol":"ᶥ"} -, {"keyword":"^upsilon","symbol":"ᶹ"} -, {"keyword":"^phi","symbol":"ᵠ"} -, {"keyword":"^chi","symbol":"ᵡ"} -, {"keyword":"_0","symbol":"₀"} -, {"keyword":"_1","symbol":"₁"} -, {"keyword":"_2","symbol":"₂"} -, {"keyword":"_3","symbol":"₃"} -, {"keyword":"_4","symbol":"₄"} -, {"keyword":"_5","symbol":"₅"} -, {"keyword":"_6","symbol":"₆"} -, {"keyword":"_7","symbol":"₇"} -, {"keyword":"_8","symbol":"₈"} -, {"keyword":"_9","symbol":"₉"} -, {"keyword":"_+","symbol":"₊"} -, {"keyword":"_-","symbol":"₋"} -, {"keyword":"_=","symbol":"₌"} -, {"keyword":"_(","symbol":"₍"} -, {"keyword":"_)","symbol":"₎"} -, {"keyword":"_a","symbol":"ₐ"} -, {"keyword":"_e","symbol":"ₑ"} -, {"keyword":"_h","symbol":"ₕ"} -, {"keyword":"_i","symbol":"ᵢ"} -, {"keyword":"_j","symbol":"ⱼ"} -, {"keyword":"_k","symbol":"ₖ"} -, {"keyword":"_l","symbol":"ₗ"} -, {"keyword":"_m","symbol":"ₘ"} -, {"keyword":"_n","symbol":"ₙ"} -, {"keyword":"_o","symbol":"ₒ"} -, {"keyword":"_p","symbol":"ₚ"} -, {"keyword":"_q","symbol":" "} -, {"keyword":"_r","symbol":"ᵣ"} -, {"keyword":"_s","symbol":"ₛ"} -, {"keyword":"_t","symbol":"ₜ"} -, {"keyword":"_u","symbol":"ᵤ"} -, {"keyword":"_v","symbol":"ᵥ"} -, {"keyword":"_x","symbol":"ₓ"} -, {"keyword":"_schwa","symbol":"ₔ"} -, {"keyword":"_beta","symbol":"ᵦ"} -, {"keyword":"_gamma","symbol":"ᵧ"} -, {"keyword":"_rho","symbol":"ᵨ"} -, {"keyword":"_phi","symbol":"ᵩ"} -, {"keyword":"_chi","symbol":"ᵪ"} -, {"keyword":"[[","symbol":"⟦"} -, {"keyword":"]]","symbol":"⟧"} -, {"keyword":"<","symbol":"⟨"} -, {"keyword":">","symbol":"⟩"} -, {"keyword":"<<","symbol":"⟪"} -, {"keyword":">>","symbol":"⟫"} -, {"keyword":"{{","symbol":"⦃"} -, {"keyword":"}}","symbol":"⦄"} -, {"keyword":"(|","symbol":"⦇"} -, {"keyword":"|)","symbol":"⦈"} -, {"keyword":"((","symbol":"⦅"} -, {"keyword":"))","symbol":"⦆"} -, {"keyword":"(b","symbol":"⟅"} -, {"keyword":")b","symbol":"⟆"} -, {"keyword":"lbag","symbol":"⟅"} -, {"keyword":"rbag","symbol":"⟆"} -, {"keyword":"Alpha","symbol":"Α"} -, {"keyword":"Beta","symbol":"Β"} -, {"keyword":"Gammma","symbol":"Γ"} -, {"keyword":"Delta","symbol":"Δ"} -, {"keyword":"Epsilon","symbol":"Ε"} -, {"keyword":"Zeta","symbol":"Ζ"} -, {"keyword":"Eta","symbol":"Η"} -, {"keyword":"Theta","symbol":"Θ"} -, {"keyword":"Iota","symbol":"Ι"} -, {"keyword":"Kappa","symbol":"Κ"} -, {"keyword":"Lambda","symbol":"Λ"} -, {"keyword":"Mu","symbol":"Μ"} -, {"keyword":"Nu","symbol":"Ν"} -, {"keyword":"Xi","symbol":"Ξ"} -, {"keyword":"Omicron","symbol":"Ο"} -, {"keyword":"Pi","symbol":"Π"} -, {"keyword":"Rho","symbol":"Ρ"} -, {"keyword":"Sigma","symbol":"΢"} -, {"keyword":"Tau","symbol":"Σ"} -, {"keyword":"Upsilon","symbol":"Τ"} -, {"keyword":"Phi","symbol":"Υ"} -, {"keyword":"Chi","symbol":"Φ"} -, {"keyword":"Psi","symbol":"Χ"} -, {"keyword":"Omega","symbol":"Ψ"} -, {"keyword":"alpha","symbol":"α"} -, {"keyword":"beta","symbol":"β"} -, {"keyword":"gamma","symbol":"γ"} -, {"keyword":"delta","symbol":"δ"} -, {"keyword":"varepsilon","symbol":"ε"} -, {"keyword":"zeta","symbol":"ζ"} -, {"keyword":"eta","symbol":"η"} -, {"keyword":"theta","symbol":"θ"} -, {"keyword":"iota","symbol":"ι"} -, {"keyword":"kappa","symbol":"κ"} -, {"keyword":"lambda","symbol":"λ"} -, {"keyword":"mu","symbol":"μ"} -, {"keyword":"nu","symbol":"ν"} -, {"keyword":"xi","symbol":"ξ"} -, {"keyword":"omicron","symbol":"ο"} -, {"keyword":"pi","symbol":"π"} -, {"keyword":"rho","symbol":"ρ"} -, {"keyword":"varsigma","symbol":"ς"} -, {"keyword":"sigma","symbol":"σ"} -, {"keyword":"tau","symbol":"τ"} -, {"keyword":"upsilon","symbol":"υ"} -, {"keyword":"varphi","symbol":"φ"} -, {"keyword":"chi","symbol":"χ"} -, {"keyword":"psi","symbol":"ψ"} -, {"keyword":"omega","symbol":"ω"} -, {"keyword":"vartheta","symbol":"ϑ"} -, {"keyword":"phi","symbol":"ϕ"} -, {"keyword":"varpi","symbol":"ϖ"} -, {"keyword":"Digamma","symbol":"Ϝ"} -, {"keyword":"digamma","symbol":"ϝ"} -, {"keyword":"varkappa","symbol":"ϰ"} -, {"keyword":"varrho","symbol":"ϱ"} -, {"keyword":"varTheta","symbol":"ϴ"} -, {"keyword":"epsilon","symbol":"ϵ"} -, {"keyword":"bfA","symbol":"𝐀"} -, {"keyword":"bfB","symbol":"𝐁"} -, {"keyword":"bfC","symbol":"𝐂"} -, {"keyword":"bfD","symbol":"𝐃"} -, {"keyword":"bfE","symbol":"𝐄"} -, {"keyword":"bfF","symbol":"𝐅"} -, {"keyword":"bfG","symbol":"𝐆"} -, {"keyword":"bfH","symbol":"𝐇"} -, {"keyword":"bfI","symbol":"𝐈"} -, {"keyword":"bfJ","symbol":"𝐉"} -, {"keyword":"bfK","symbol":"𝐊"} -, {"keyword":"bfL","symbol":"𝐋"} -, {"keyword":"bfM","symbol":"𝐌"} -, {"keyword":"bfN","symbol":"𝐍"} -, {"keyword":"bfO","symbol":"𝐎"} -, {"keyword":"bfP","symbol":"𝐏"} -, {"keyword":"bfQ","symbol":"𝐐"} -, {"keyword":"bfR","symbol":"𝐑"} -, {"keyword":"bfS","symbol":"𝐒"} -, {"keyword":"bfT","symbol":"𝐓"} -, {"keyword":"bfU","symbol":"𝐔"} -, {"keyword":"bfV","symbol":"𝐕"} -, {"keyword":"bfW","symbol":"𝐖"} -, {"keyword":"bfX","symbol":"𝐗"} -, {"keyword":"bfY","symbol":"𝐘"} -, {"keyword":"bfZ","symbol":"𝐙"} -, {"keyword":"bfa","symbol":"𝐚"} -, {"keyword":"bfb","symbol":"𝐛"} -, {"keyword":"bfc","symbol":"𝐜"} -, {"keyword":"bfd","symbol":"𝐝"} -, {"keyword":"bfe","symbol":"𝐞"} -, {"keyword":"bff","symbol":"𝐟"} -, {"keyword":"bfg","symbol":"𝐠"} -, {"keyword":"bfh","symbol":"𝐡"} -, {"keyword":"bfi","symbol":"𝐢"} -, {"keyword":"bfj","symbol":"𝐣"} -, {"keyword":"bfk","symbol":"𝐤"} -, {"keyword":"bfl","symbol":"𝐥"} -, {"keyword":"bfm","symbol":"𝐦"} -, {"keyword":"bfn","symbol":"𝐧"} -, {"keyword":"bfo","symbol":"𝐨"} -, {"keyword":"bfp","symbol":"𝐩"} -, {"keyword":"bfq","symbol":"𝐪"} -, {"keyword":"bfr","symbol":"𝐫"} -, {"keyword":"bfs","symbol":"𝐬"} -, {"keyword":"bft","symbol":"𝐭"} -, {"keyword":"bfu","symbol":"𝐮"} -, {"keyword":"bfv","symbol":"𝐯"} -, {"keyword":"bfw","symbol":"𝐰"} -, {"keyword":"bfx","symbol":"𝐱"} -, {"keyword":"bfy","symbol":"𝐲"} -, {"keyword":"bfz","symbol":"𝐳"} -, {"keyword":"itA","symbol":"𝐴"} -, {"keyword":"itB","symbol":"𝐵"} -, {"keyword":"itC","symbol":"𝐶"} -, {"keyword":"itD","symbol":"𝐷"} -, {"keyword":"itE","symbol":"𝐸"} -, {"keyword":"itF","symbol":"𝐹"} -, {"keyword":"itG","symbol":"𝐺"} -, {"keyword":"itH","symbol":"𝐻"} -, {"keyword":"itI","symbol":"𝐼"} -, {"keyword":"itJ","symbol":"𝐽"} -, {"keyword":"itK","symbol":"𝐾"} -, {"keyword":"itL","symbol":"𝐿"} -, {"keyword":"itM","symbol":"𝑀"} -, {"keyword":"itN","symbol":"𝑁"} -, {"keyword":"itO","symbol":"𝑂"} -, {"keyword":"itP","symbol":"𝑃"} -, {"keyword":"itQ","symbol":"𝑄"} -, {"keyword":"itR","symbol":"𝑅"} -, {"keyword":"itS","symbol":"𝑆"} -, {"keyword":"itT","symbol":"𝑇"} -, {"keyword":"itU","symbol":"𝑈"} -, {"keyword":"itV","symbol":"𝑉"} -, {"keyword":"itW","symbol":"𝑊"} -, {"keyword":"itX","symbol":"𝑋"} -, {"keyword":"itY","symbol":"𝑌"} -, {"keyword":"itZ","symbol":"𝑍"} -, {"keyword":"ita","symbol":"𝑎"} -, {"keyword":"itb","symbol":"𝑏"} -, {"keyword":"itc","symbol":"𝑐"} -, {"keyword":"itd","symbol":"𝑑"} -, {"keyword":"ite","symbol":"𝑒"} -, {"keyword":"itf","symbol":"𝑓"} -, {"keyword":"itg","symbol":"𝑔"} -, {"keyword":"ith","symbol":"𝑕"} -, {"keyword":"iti","symbol":"𝑖"} -, {"keyword":"itj","symbol":"𝑗"} -, {"keyword":"itk","symbol":"𝑘"} -, {"keyword":"itl","symbol":"𝑙"} -, {"keyword":"itm","symbol":"𝑚"} -, {"keyword":"itn","symbol":"𝑛"} -, {"keyword":"ito","symbol":"𝑜"} -, {"keyword":"itp","symbol":"𝑝"} -, {"keyword":"itq","symbol":"𝑞"} -, {"keyword":"itr","symbol":"𝑟"} -, {"keyword":"its","symbol":"𝑠"} -, {"keyword":"itt","symbol":"𝑡"} -, {"keyword":"itu","symbol":"𝑢"} -, {"keyword":"itv","symbol":"𝑣"} -, {"keyword":"itw","symbol":"𝑤"} -, {"keyword":"itx","symbol":"𝑥"} -, {"keyword":"ity","symbol":"𝑦"} -, {"keyword":"itz","symbol":"𝑧"} -, {"keyword":"bfitA","symbol":"𝑨"} -, {"keyword":"bfitB","symbol":"𝑩"} -, {"keyword":"bfitC","symbol":"𝑪"} -, {"keyword":"bfitD","symbol":"𝑫"} -, {"keyword":"bfitE","symbol":"𝑬"} -, {"keyword":"bfitF","symbol":"𝑭"} -, {"keyword":"bfitG","symbol":"𝑮"} -, {"keyword":"bfitH","symbol":"𝑯"} -, {"keyword":"bfitI","symbol":"𝑰"} -, {"keyword":"bfitJ","symbol":"𝑱"} -, {"keyword":"bfitK","symbol":"𝑲"} -, {"keyword":"bfitL","symbol":"𝑳"} -, {"keyword":"bfitM","symbol":"𝑴"} -, {"keyword":"bfitN","symbol":"𝑵"} -, {"keyword":"bfitO","symbol":"𝑶"} -, {"keyword":"bfitP","symbol":"𝑷"} -, {"keyword":"bfitQ","symbol":"𝑸"} -, {"keyword":"bfitR","symbol":"𝑹"} -, {"keyword":"bfitS","symbol":"𝑺"} -, {"keyword":"bfitT","symbol":"𝑻"} -, {"keyword":"bfitU","symbol":"𝑼"} -, {"keyword":"bfitV","symbol":"𝑽"} -, {"keyword":"bfitW","symbol":"𝑾"} -, {"keyword":"bfitX","symbol":"𝑿"} -, {"keyword":"bfitY","symbol":"𝒀"} -, {"keyword":"bfitZ","symbol":"𝒁"} -, {"keyword":"bfita","symbol":"𝒂"} -, {"keyword":"bfitb","symbol":"𝒃"} -, {"keyword":"bfitc","symbol":"𝒄"} -, {"keyword":"bfitd","symbol":"𝒅"} -, {"keyword":"bfite","symbol":"𝒆"} -, {"keyword":"bfitf","symbol":"𝒇"} -, {"keyword":"bfitg","symbol":"𝒈"} -, {"keyword":"bfith","symbol":"𝒉"} -, {"keyword":"bfiti","symbol":"𝒊"} -, {"keyword":"bfitj","symbol":"𝒋"} -, {"keyword":"bfitk","symbol":"𝒌"} -, {"keyword":"bfitl","symbol":"𝒍"} -, {"keyword":"bfitm","symbol":"𝒎"} -, {"keyword":"bfitn","symbol":"𝒏"} -, {"keyword":"bfito","symbol":"𝒐"} -, {"keyword":"bfitp","symbol":"𝒑"} -, {"keyword":"bfitq","symbol":"𝒒"} -, {"keyword":"bfitr","symbol":"𝒓"} -, {"keyword":"bfits","symbol":"𝒔"} -, {"keyword":"bfitt","symbol":"𝒕"} -, {"keyword":"bfitu","symbol":"𝒖"} -, {"keyword":"bfitv","symbol":"𝒗"} -, {"keyword":"bfitw","symbol":"𝒘"} -, {"keyword":"bfitx","symbol":"𝒙"} -, {"keyword":"bfity","symbol":"𝒚"} -, {"keyword":"bfitz","symbol":"𝒛"} -, {"keyword":"scrA","symbol":"𝒜"} -, {"keyword":"scrB","symbol":"ℬ"} -, {"keyword":"scrC","symbol":"𝒞"} -, {"keyword":"scrD","symbol":"𝒟"} -, {"keyword":"scrE","symbol":"ℰ"} -, {"keyword":"scrF","symbol":"ℱ"} -, {"keyword":"scrG","symbol":"𝒢"} -, {"keyword":"scrH","symbol":"ℋ"} -, {"keyword":"scrI","symbol":"ℐ"} -, {"keyword":"scrJ","symbol":"𝒥"} -, {"keyword":"scrK","symbol":"𝒦"} -, {"keyword":"scrL","symbol":"ℒ"} -, {"keyword":"scrM","symbol":"ℳ"} -, {"keyword":"scrN","symbol":"𝒩"} -, {"keyword":"scrO","symbol":"𝒪"} -, {"keyword":"scrP","symbol":"𝒫"} -, {"keyword":"scrQ","symbol":"𝒬"} -, {"keyword":"scrR","symbol":"ℛ"} -, {"keyword":"scrS","symbol":"𝒮"} -, {"keyword":"scrT","symbol":"𝒯"} -, {"keyword":"scrU","symbol":"𝒰"} -, {"keyword":"scrV","symbol":"𝒱"} -, {"keyword":"scrW","symbol":"𝒲"} -, {"keyword":"scrX","symbol":"𝒳"} -, {"keyword":"scrY","symbol":"𝒴"} -, {"keyword":"scrZ","symbol":"𝒵"} -, {"keyword":"scra","symbol":"𝒶"} -, {"keyword":"scrb","symbol":"𝒷"} -, {"keyword":"scrc","symbol":"𝒸"} -, {"keyword":"scrd","symbol":"𝒹"} -, {"keyword":"scre","symbol":"ℯ"} -, {"keyword":"scrf","symbol":"𝒻"} -, {"keyword":"scrg","symbol":"ℊ"} -, {"keyword":"scrh","symbol":"𝒽"} -, {"keyword":"scri","symbol":"𝒾"} -, {"keyword":"scrj","symbol":"𝒿"} -, {"keyword":"scrk","symbol":"𝓀"} -, {"keyword":"scrl","symbol":"𝓁"} -, {"keyword":"scrm","symbol":"𝓂"} -, {"keyword":"scrn","symbol":"𝓃"} -, {"keyword":"scro","symbol":"ℴ"} -, {"keyword":"scrp","symbol":"𝓅"} -, {"keyword":"scrq","symbol":"𝓆"} -, {"keyword":"scrr","symbol":"𝓇"} -, {"keyword":"scrs","symbol":"𝓈"} -, {"keyword":"scrt","symbol":"𝓉"} -, {"keyword":"scru","symbol":"𝓊"} -, {"keyword":"scrv","symbol":"𝓋"} -, {"keyword":"scrw","symbol":"𝓌"} -, {"keyword":"scrx","symbol":"𝓍"} -, {"keyword":"scry","symbol":"𝓎"} -, {"keyword":"scrz","symbol":"𝓏"} -, {"keyword":"calA","symbol":"𝓐"} -, {"keyword":"calB","symbol":"𝓑"} -, {"keyword":"calC","symbol":"𝓒"} -, {"keyword":"calD","symbol":"𝓓"} -, {"keyword":"calE","symbol":"𝓔"} -, {"keyword":"calF","symbol":"𝓕"} -, {"keyword":"calG","symbol":"𝓖"} -, {"keyword":"calH","symbol":"𝓗"} -, {"keyword":"calI","symbol":"𝓘"} -, {"keyword":"calJ","symbol":"𝓙"} -, {"keyword":"calK","symbol":"𝓚"} -, {"keyword":"calL","symbol":"𝓛"} -, {"keyword":"calM","symbol":"𝓜"} -, {"keyword":"calN","symbol":"𝓝"} -, {"keyword":"calO","symbol":"𝓞"} -, {"keyword":"calP","symbol":"𝓟"} -, {"keyword":"calQ","symbol":"𝓠"} -, {"keyword":"calR","symbol":"𝓡"} -, {"keyword":"calS","symbol":"𝓢"} -, {"keyword":"calT","symbol":"𝓣"} -, {"keyword":"calU","symbol":"𝓤"} -, {"keyword":"calV","symbol":"𝓥"} -, {"keyword":"calW","symbol":"𝓦"} -, {"keyword":"calX","symbol":"𝓧"} -, {"keyword":"calY","symbol":"𝓨"} -, {"keyword":"calZ","symbol":"𝓩"} -, {"keyword":"cala","symbol":"𝓪"} -, {"keyword":"calb","symbol":"𝓫"} -, {"keyword":"calc","symbol":"𝓬"} -, {"keyword":"cald","symbol":"𝓭"} -, {"keyword":"cale","symbol":"𝓮"} -, {"keyword":"calf","symbol":"𝓯"} -, {"keyword":"calg","symbol":"𝓰"} -, {"keyword":"calh","symbol":"𝓱"} -, {"keyword":"cali","symbol":"𝓲"} -, {"keyword":"calj","symbol":"𝓳"} -, {"keyword":"calk","symbol":"𝓴"} -, {"keyword":"call","symbol":"𝓵"} -, {"keyword":"calm","symbol":"𝓶"} -, {"keyword":"caln","symbol":"𝓷"} -, {"keyword":"calo","symbol":"𝓸"} -, {"keyword":"calp","symbol":"𝓹"} -, {"keyword":"calq","symbol":"𝓺"} -, {"keyword":"calr","symbol":"𝓻"} -, {"keyword":"cals","symbol":"𝓼"} -, {"keyword":"calt","symbol":"𝓽"} -, {"keyword":"calu","symbol":"𝓾"} -, {"keyword":"calv","symbol":"𝓿"} -, {"keyword":"calw","symbol":"𝔀"} -, {"keyword":"calx","symbol":"𝔁"} -, {"keyword":"caly","symbol":"𝔂"} -, {"keyword":"calz","symbol":"𝔃"} -, {"keyword":"frakA","symbol":"𝔄"} -, {"keyword":"frakB","symbol":"𝔅"} -, {"keyword":"frakC","symbol":"ℭ"} -, {"keyword":"frakD","symbol":"𝔇"} -, {"keyword":"frakE","symbol":"𝔈"} -, {"keyword":"frakF","symbol":"𝔉"} -, {"keyword":"frakG","symbol":"𝔊"} -, {"keyword":"frakH","symbol":"ℌ"} -, {"keyword":"frakI","symbol":"ℑ"} -, {"keyword":"frakJ","symbol":"𝔍"} -, {"keyword":"frakK","symbol":"𝔎"} -, {"keyword":"frakL","symbol":"𝔏"} -, {"keyword":"frakM","symbol":"𝔐"} -, {"keyword":"frakN","symbol":"𝔑"} -, {"keyword":"frakO","symbol":"𝔒"} -, {"keyword":"frakP","symbol":"𝔓"} -, {"keyword":"frakQ","symbol":"𝔔"} -, {"keyword":"frakR","symbol":"ℜ"} -, {"keyword":"frakS","symbol":"𝔖"} -, {"keyword":"frakT","symbol":"𝔗"} -, {"keyword":"frakU","symbol":"𝔘"} -, {"keyword":"frakV","symbol":"𝔙"} -, {"keyword":"frakW","symbol":"𝔚"} -, {"keyword":"frakX","symbol":"𝔛"} -, {"keyword":"frakY","symbol":"𝔜"} -, {"keyword":"frakZ","symbol":"ℨ"} -, {"keyword":"fraka","symbol":"𝔞"} -, {"keyword":"frakb","symbol":"𝔟"} -, {"keyword":"frakc","symbol":"𝔠"} -, {"keyword":"frakd","symbol":"𝔡"} -, {"keyword":"frake","symbol":"𝔢"} -, {"keyword":"frakf","symbol":"𝔣"} -, {"keyword":"frakg","symbol":"𝔤"} -, {"keyword":"frakh","symbol":"𝔥"} -, {"keyword":"fraki","symbol":"𝔦"} -, {"keyword":"frakj","symbol":"𝔧"} -, {"keyword":"frakk","symbol":"𝔨"} -, {"keyword":"frakl","symbol":"𝔩"} -, {"keyword":"frakm","symbol":"𝔪"} -, {"keyword":"frakn","symbol":"𝔫"} -, {"keyword":"frako","symbol":"𝔬"} -, {"keyword":"frakp","symbol":"𝔭"} -, {"keyword":"frakq","symbol":"𝔮"} -, {"keyword":"frakr","symbol":"𝔯"} -, {"keyword":"fraks","symbol":"𝔰"} -, {"keyword":"frakt","symbol":"𝔱"} -, {"keyword":"fraku","symbol":"𝔲"} -, {"keyword":"frakv","symbol":"𝔳"} -, {"keyword":"frakw","symbol":"𝔴"} -, {"keyword":"frakx","symbol":"𝔵"} -, {"keyword":"fraky","symbol":"𝔶"} -, {"keyword":"frakz","symbol":"𝔷"} -, {"keyword":"bbA","symbol":"𝔸"} -, {"keyword":"bbB","symbol":"𝔹"} -, {"keyword":"bbC","symbol":"ℂ"} -, {"keyword":"bbD","symbol":"𝔻"} -, {"keyword":"bbE","symbol":"𝔼"} -, {"keyword":"bbF","symbol":"𝔽"} -, {"keyword":"bbG","symbol":"𝔾"} -, {"keyword":"bbH","symbol":"ℍ"} -, {"keyword":"bbI","symbol":"𝕀"} -, {"keyword":"bbJ","symbol":"𝕁"} -, {"keyword":"bbK","symbol":"𝕂"} -, {"keyword":"bbL","symbol":"𝕃"} -, {"keyword":"bbM","symbol":"𝕄"} -, {"keyword":"bbN","symbol":"ℕ"} -, {"keyword":"bbO","symbol":"𝕆"} -, {"keyword":"bbP","symbol":"ℙ"} -, {"keyword":"bbQ","symbol":"ℚ"} -, {"keyword":"bbR","symbol":"ℝ"} -, {"keyword":"bbS","symbol":"𝕊"} -, {"keyword":"bbT","symbol":"𝕋"} -, {"keyword":"bbU","symbol":"𝕌"} -, {"keyword":"bbV","symbol":"𝕍"} -, {"keyword":"bbW","symbol":"𝕎"} -, {"keyword":"bbX","symbol":"𝕏"} -, {"keyword":"bbY","symbol":"𝕐"} -, {"keyword":"bbZ","symbol":"ℤ"} -, {"keyword":"bba","symbol":"𝕒"} -, {"keyword":"bbb","symbol":"𝕓"} -, {"keyword":"bbc","symbol":"𝕔"} -, {"keyword":"bbd","symbol":"𝕕"} -, {"keyword":"bbe","symbol":"𝕖"} -, {"keyword":"bbf","symbol":"𝕗"} -, {"keyword":"bbg","symbol":"𝕘"} -, {"keyword":"bbh","symbol":"𝕙"} -, {"keyword":"bbi","symbol":"𝕚"} -, {"keyword":"bbj","symbol":"𝕛"} -, {"keyword":"bbk","symbol":"𝕜"} -, {"keyword":"bbl","symbol":"𝕝"} -, {"keyword":"bbm","symbol":"𝕞"} -, {"keyword":"bbn","symbol":"𝕟"} -, {"keyword":"bbo","symbol":"𝕠"} -, {"keyword":"bbp","symbol":"𝕡"} -, {"keyword":"bbq","symbol":"𝕢"} -, {"keyword":"bbr","symbol":"𝕣"} -, {"keyword":"bbs","symbol":"𝕤"} -, {"keyword":"bbt","symbol":"𝕥"} -, {"keyword":"bbu","symbol":"𝕦"} -, {"keyword":"bbv","symbol":"𝕧"} -, {"keyword":"bbw","symbol":"𝕨"} -, {"keyword":"bbx","symbol":"𝕩"} -, {"keyword":"bby","symbol":"𝕪"} -, {"keyword":"bbz","symbol":"𝕫"} -, {"keyword":"bffrakA","symbol":"𝕬"} -, {"keyword":"bffrakB","symbol":"𝕭"} -, {"keyword":"bffrakC","symbol":"𝕮"} -, {"keyword":"bffrakD","symbol":"𝕯"} -, {"keyword":"bffrakE","symbol":"𝕰"} -, {"keyword":"bffrakF","symbol":"𝕱"} -, {"keyword":"bffrakG","symbol":"𝕲"} -, {"keyword":"bffrakH","symbol":"𝕳"} -, {"keyword":"bffrakI","symbol":"𝕴"} -, {"keyword":"bffrakJ","symbol":"𝕵"} -, {"keyword":"bffrakK","symbol":"𝕶"} -, {"keyword":"bffrakL","symbol":"𝕷"} -, {"keyword":"bffrakM","symbol":"𝕸"} -, {"keyword":"bffrakN","symbol":"𝕹"} -, {"keyword":"bffrakO","symbol":"𝕺"} -, {"keyword":"bffrakP","symbol":"𝕻"} -, {"keyword":"bffrakQ","symbol":"𝕼"} -, {"keyword":"bffrakR","symbol":"𝕽"} -, {"keyword":"bffrakS","symbol":"𝕾"} -, {"keyword":"bffrakT","symbol":"𝕿"} -, {"keyword":"bffrakU","symbol":"𝖀"} -, {"keyword":"bffrakV","symbol":"𝖁"} -, {"keyword":"bffrakW","symbol":"𝖂"} -, {"keyword":"bffrakX","symbol":"𝖃"} -, {"keyword":"bffrakY","symbol":"𝖄"} -, {"keyword":"bffrakZ","symbol":"𝖅"} -, {"keyword":"bffraka","symbol":"𝖆"} -, {"keyword":"bffrakb","symbol":"𝖇"} -, {"keyword":"bffrakc","symbol":"𝖈"} -, {"keyword":"bffrakd","symbol":"𝖉"} -, {"keyword":"bffrake","symbol":"𝖊"} -, {"keyword":"bffrakf","symbol":"𝖋"} -, {"keyword":"bffrakg","symbol":"𝖌"} -, {"keyword":"bffrakh","symbol":"𝖍"} -, {"keyword":"bffraki","symbol":"𝖎"} -, {"keyword":"bffrakj","symbol":"𝖏"} -, {"keyword":"bffrakk","symbol":"𝖐"} -, {"keyword":"bffrakl","symbol":"𝖑"} -, {"keyword":"bffrakm","symbol":"𝖒"} -, {"keyword":"bffrakn","symbol":"𝖓"} -, {"keyword":"bffrako","symbol":"𝖔"} -, {"keyword":"bffrakp","symbol":"𝖕"} -, {"keyword":"bffrakq","symbol":"𝖖"} -, {"keyword":"bffrakr","symbol":"𝖗"} -, {"keyword":"bffraks","symbol":"𝖘"} -, {"keyword":"bffrakt","symbol":"𝖙"} -, {"keyword":"bffraku","symbol":"𝖚"} -, {"keyword":"bffrakv","symbol":"𝖛"} -, {"keyword":"bffrakw","symbol":"𝖜"} -, {"keyword":"bffrakx","symbol":"𝖝"} -, {"keyword":"bffraky","symbol":"𝖞"} -, {"keyword":"bffrakz","symbol":"𝖟"} -, {"keyword":"sansA","symbol":"𝖠"} -, {"keyword":"sansB","symbol":"𝖡"} -, {"keyword":"sansC","symbol":"𝖢"} -, {"keyword":"sansD","symbol":"𝖣"} -, {"keyword":"sansE","symbol":"𝖤"} -, {"keyword":"sansF","symbol":"𝖥"} -, {"keyword":"sansG","symbol":"𝖦"} -, {"keyword":"sansH","symbol":"𝖧"} -, {"keyword":"sansI","symbol":"𝖨"} -, {"keyword":"sansJ","symbol":"𝖩"} -, {"keyword":"sansK","symbol":"𝖪"} -, {"keyword":"sansL","symbol":"𝖫"} -, {"keyword":"sansM","symbol":"𝖬"} -, {"keyword":"sansN","symbol":"𝖭"} -, {"keyword":"sansO","symbol":"𝖮"} -, {"keyword":"sansP","symbol":"𝖯"} -, {"keyword":"sansQ","symbol":"𝖰"} -, {"keyword":"sansR","symbol":"𝖱"} -, {"keyword":"sansS","symbol":"𝖲"} -, {"keyword":"sansT","symbol":"𝖳"} -, {"keyword":"sansU","symbol":"𝖴"} -, {"keyword":"sansV","symbol":"𝖵"} -, {"keyword":"sansW","symbol":"𝖶"} -, {"keyword":"sansX","symbol":"𝖷"} -, {"keyword":"sansY","symbol":"𝖸"} -, {"keyword":"sansZ","symbol":"𝖹"} -, {"keyword":"sansa","symbol":"𝖺"} -, {"keyword":"sansb","symbol":"𝖻"} -, {"keyword":"sansc","symbol":"𝖼"} -, {"keyword":"sansd","symbol":"𝖽"} -, {"keyword":"sanse","symbol":"𝖾"} -, {"keyword":"sansf","symbol":"𝖿"} -, {"keyword":"sansg","symbol":"𝗀"} -, {"keyword":"sansh","symbol":"𝗁"} -, {"keyword":"sansi","symbol":"𝗂"} -, {"keyword":"sansj","symbol":"𝗃"} -, {"keyword":"sansk","symbol":"𝗄"} -, {"keyword":"sansl","symbol":"𝗅"} -, {"keyword":"sansm","symbol":"𝗆"} -, {"keyword":"sansn","symbol":"𝗇"} -, {"keyword":"sanso","symbol":"𝗈"} -, {"keyword":"sansp","symbol":"𝗉"} -, {"keyword":"sansq","symbol":"𝗊"} -, {"keyword":"sansr","symbol":"𝗋"} -, {"keyword":"sanss","symbol":"𝗌"} -, {"keyword":"sanst","symbol":"𝗍"} -, {"keyword":"sansu","symbol":"𝗎"} -, {"keyword":"sansv","symbol":"𝗏"} -, {"keyword":"sansw","symbol":"𝗐"} -, {"keyword":"sansx","symbol":"𝗑"} -, {"keyword":"sansy","symbol":"𝗒"} -, {"keyword":"sansz","symbol":"𝗓"} -, {"keyword":"sansbfA","symbol":"𝗔"} -, {"keyword":"sansbfB","symbol":"𝗕"} -, {"keyword":"sansbfC","symbol":"𝗖"} -, {"keyword":"sansbfD","symbol":"𝗗"} -, {"keyword":"sansbfE","symbol":"𝗘"} -, {"keyword":"sansbfF","symbol":"𝗙"} -, {"keyword":"sansbfG","symbol":"𝗚"} -, {"keyword":"sansbfH","symbol":"𝗛"} -, {"keyword":"sansbfI","symbol":"𝗜"} -, {"keyword":"sansbfJ","symbol":"𝗝"} -, {"keyword":"sansbfK","symbol":"𝗞"} -, {"keyword":"sansbfL","symbol":"𝗟"} -, {"keyword":"sansbfM","symbol":"𝗠"} -, {"keyword":"sansbfN","symbol":"𝗡"} -, {"keyword":"sansbfO","symbol":"𝗢"} -, {"keyword":"sansbfP","symbol":"𝗣"} -, {"keyword":"sansbfQ","symbol":"𝗤"} -, {"keyword":"sansbfR","symbol":"𝗥"} -, {"keyword":"sansbfS","symbol":"𝗦"} -, {"keyword":"sansbfT","symbol":"𝗧"} -, {"keyword":"sansbfU","symbol":"𝗨"} -, {"keyword":"sansbfV","symbol":"𝗩"} -, {"keyword":"sansbfW","symbol":"𝗪"} -, {"keyword":"sansbfX","symbol":"𝗫"} -, {"keyword":"sansbfY","symbol":"𝗬"} -, {"keyword":"sansbfZ","symbol":"𝗭"} -, {"keyword":"sansbfa","symbol":"𝗮"} -, {"keyword":"sansbfb","symbol":"𝗯"} -, {"keyword":"sansbfc","symbol":"𝗰"} -, {"keyword":"sansbfd","symbol":"𝗱"} -, {"keyword":"sansbfe","symbol":"𝗲"} -, {"keyword":"sansbff","symbol":"𝗳"} -, {"keyword":"sansbfg","symbol":"𝗴"} -, {"keyword":"sansbfh","symbol":"𝗵"} -, {"keyword":"sansbfi","symbol":"𝗶"} -, {"keyword":"sansbfj","symbol":"𝗷"} -, {"keyword":"sansbfk","symbol":"𝗸"} -, {"keyword":"sansbfl","symbol":"𝗹"} -, {"keyword":"sansbfm","symbol":"𝛺"} -, {"keyword":"sansbfn","symbol":"𝗻"} -, {"keyword":"sansbfo","symbol":"𝗼"} -, {"keyword":"sansbfp","symbol":"𝗽"} -, {"keyword":"sansbfq","symbol":"𝗾"} -, {"keyword":"sansbfr","symbol":"𝗿"} -, {"keyword":"sansbfs","symbol":"𝘀"} -, {"keyword":"sansbft","symbol":"𝘁"} -, {"keyword":"sansbfu","symbol":"𝘂"} -, {"keyword":"sansbfv","symbol":"𝘃"} -, {"keyword":"sansbfw","symbol":"𝘄"} -, {"keyword":"sansbfx","symbol":"𝘅"} -, {"keyword":"sansbfy","symbol":"𝘆"} -, {"keyword":"sansbfz","symbol":"𝘇"} -, {"keyword":"sansitA","symbol":"𝘈"} -, {"keyword":"sansitB","symbol":"𝘉"} -, {"keyword":"sansitC","symbol":"𝘊"} -, {"keyword":"sansitD","symbol":"𝘋"} -, {"keyword":"sansitE","symbol":"𝘌"} -, {"keyword":"sansitF","symbol":"𝘍"} -, {"keyword":"sansitG","symbol":"𝘎"} -, {"keyword":"sansitH","symbol":"𝘏"} -, {"keyword":"sansitI","symbol":"𝘐"} -, {"keyword":"sansitJ","symbol":"𝘑"} -, {"keyword":"sansitK","symbol":"𝘒"} -, {"keyword":"sansitL","symbol":"𝘓"} -, {"keyword":"sansitM","symbol":"𝘔"} -, {"keyword":"sansitN","symbol":"𝘕"} -, {"keyword":"sansitO","symbol":"𝘖"} -, {"keyword":"sansitP","symbol":"𝘗"} -, {"keyword":"sansitQ","symbol":"𝘘"} -, {"keyword":"sansitR","symbol":"𝘙"} -, {"keyword":"sansitS","symbol":"𝘚"} -, {"keyword":"sansitT","symbol":"𝘛"} -, {"keyword":"sansitU","symbol":"𝘜"} -, {"keyword":"sansitV","symbol":"𝘝"} -, {"keyword":"sansitW","symbol":"𝘞"} -, {"keyword":"sansitX","symbol":"𝘟"} -, {"keyword":"sansitY","symbol":"𝘠"} -, {"keyword":"sansitZ","symbol":"𝘡"} -, {"keyword":"sansita","symbol":"𝘢"} -, {"keyword":"sansitb","symbol":"𝘣"} -, {"keyword":"sansitc","symbol":"𝘤"} -, {"keyword":"sansitd","symbol":"𝘥"} -, {"keyword":"sansite","symbol":"𝘦"} -, {"keyword":"sansitf","symbol":"𝘧"} -, {"keyword":"sansitg","symbol":"𝘨"} -, {"keyword":"sansith","symbol":"𝘩"} -, {"keyword":"sansiti","symbol":"𝘪"} -, {"keyword":"sansitj","symbol":"𝘫"} -, {"keyword":"sansitk","symbol":"𝘬"} -, {"keyword":"sansitl","symbol":"𝘭"} -, {"keyword":"sansitm","symbol":"𝘮"} -, {"keyword":"sansitn","symbol":"𝘯"} -, {"keyword":"sansito","symbol":"𝘰"} -, {"keyword":"sansitp","symbol":"𝘱"} -, {"keyword":"sansitq","symbol":"𝘲"} -, {"keyword":"sansitr","symbol":"𝘳"} -, {"keyword":"sansits","symbol":"𝘴"} -, {"keyword":"sansitt","symbol":"𝘵"} -, {"keyword":"sansitu","symbol":"𝘶"} -, {"keyword":"sansitv","symbol":"𝘷"} -, {"keyword":"sansitw","symbol":"𝘸"} -, {"keyword":"sansitx","symbol":"𝘹"} -, {"keyword":"sansity","symbol":"𝘺"} -, {"keyword":"sansitz","symbol":"𝘻"} -, {"keyword":"sansbfitA","symbol":"𝘼"} -, {"keyword":"sansbfitB","symbol":"𝘽"} -, {"keyword":"sansbfitC","symbol":"𝘾"} -, {"keyword":"sansbfitD","symbol":"𝘿"} -, {"keyword":"sansbfitE","symbol":"𝙀"} -, {"keyword":"sansbfitF","symbol":"𝙁"} -, {"keyword":"sansbfitG","symbol":"𝙂"} -, {"keyword":"sansbfitH","symbol":"𝙃"} -, {"keyword":"sansbfitI","symbol":"𝙄"} -, {"keyword":"sansbfitJ","symbol":"𝙅"} -, {"keyword":"sansbfitK","symbol":"𝙆"} -, {"keyword":"sansbfitL","symbol":"𝙇"} -, {"keyword":"sansbfitM","symbol":"𝙈"} -, {"keyword":"sansbfitN","symbol":"𝙉"} -, {"keyword":"sansbfitO","symbol":"𝙊"} -, {"keyword":"sansbfitP","symbol":"𝙋"} -, {"keyword":"sansbfitQ","symbol":"𝙌"} -, {"keyword":"sansbfitR","symbol":"𝙍"} -, {"keyword":"sansbfitS","symbol":"𝙎"} -, {"keyword":"sansbfitT","symbol":"𝙏"} -, {"keyword":"sansbfitU","symbol":"𝙐"} -, {"keyword":"sansbfitV","symbol":"𝙑"} -, {"keyword":"sansbfitW","symbol":"𝙒"} -, {"keyword":"sansbfitX","symbol":"𝙓"} -, {"keyword":"sansbfitY","symbol":"𝙔"} -, {"keyword":"sansbfitZ","symbol":"𝙕"} -, {"keyword":"sansbfita","symbol":"𝙖"} -, {"keyword":"sansbfitb","symbol":"𝙗"} -, {"keyword":"sansbfitc","symbol":"𝙘"} -, {"keyword":"sansbfitd","symbol":"𝙙"} -, {"keyword":"sansbfite","symbol":"𝙚"} -, {"keyword":"sansbfitf","symbol":"𝙛"} -, {"keyword":"sansbfitg","symbol":"𝙜"} -, {"keyword":"sansbfith","symbol":"𝙝"} -, {"keyword":"sansbfiti","symbol":"𝙞"} -, {"keyword":"sansbfitj","symbol":"𝙟"} -, {"keyword":"sansbfitk","symbol":"𝙠"} -, {"keyword":"sansbfitl","symbol":"𝙡"} -, {"keyword":"sansbfitm","symbol":"𝙢"} -, {"keyword":"sansbfitn","symbol":"𝙣"} -, {"keyword":"sansbfito","symbol":"𝙤"} -, {"keyword":"sansbfitp","symbol":"𝙥"} -, {"keyword":"sansbfitq","symbol":"𝙦"} -, {"keyword":"sansbfitr","symbol":"𝙧"} -, {"keyword":"sansbfits","symbol":"𝙨"} -, {"keyword":"sansbfitt","symbol":"𝙩"} -, {"keyword":"sansbfitu","symbol":"𝙪"} -, {"keyword":"sansbfitv","symbol":"𝙫"} -, {"keyword":"sansbfitw","symbol":"𝙬"} -, {"keyword":"sansbfitx","symbol":"𝙭"} -, {"keyword":"sansbfity","symbol":"𝙮"} -, {"keyword":"sansbfitz","symbol":"𝙯"} -, {"keyword":"monoA","symbol":"𝙰"} -, {"keyword":"monoB","symbol":"𝙱"} -, {"keyword":"monoC","symbol":"𝙲"} -, {"keyword":"monoD","symbol":"𝙳"} -, {"keyword":"monoE","symbol":"𝙴"} -, {"keyword":"monoF","symbol":"𝙵"} -, {"keyword":"monoG","symbol":"𝙶"} -, {"keyword":"monoH","symbol":"𝙷"} -, {"keyword":"monoI","symbol":"𝙸"} -, {"keyword":"monoJ","symbol":"𝙹"} -, {"keyword":"monoK","symbol":"𝙺"} -, {"keyword":"monoL","symbol":"𝙻"} -, {"keyword":"monoM","symbol":"𝙼"} -, {"keyword":"monoN","symbol":"𝙽"} -, {"keyword":"monoO","symbol":"𝙾"} -, {"keyword":"monoP","symbol":"𝙿"} -, {"keyword":"monoQ","symbol":"𝚀"} -, {"keyword":"monoR","symbol":"𝚁"} -, {"keyword":"monoS","symbol":"𝚂"} -, {"keyword":"monoT","symbol":"𝚃"} -, {"keyword":"monoU","symbol":"𝚄"} -, {"keyword":"monoV","symbol":"𝚅"} -, {"keyword":"monoW","symbol":"𝚆"} -, {"keyword":"monoX","symbol":"𝚇"} -, {"keyword":"monoY","symbol":"𝚈"} -, {"keyword":"monoZ","symbol":"𝚉"} -, {"keyword":"monoa","symbol":"𝚊"} -, {"keyword":"monob","symbol":"𝚋"} -, {"keyword":"monoc","symbol":"𝚌"} -, {"keyword":"monod","symbol":"𝚍"} -, {"keyword":"monoe","symbol":"𝚎"} -, {"keyword":"monof","symbol":"𝚏"} -, {"keyword":"monog","symbol":"𝚐"} -, {"keyword":"monoh","symbol":"𝚑"} -, {"keyword":"monoi","symbol":"𝚒"} -, {"keyword":"monoj","symbol":"𝚓"} -, {"keyword":"monok","symbol":"𝚔"} -, {"keyword":"monol","symbol":"𝚕"} -, {"keyword":"monom","symbol":"𝚖"} -, {"keyword":"monon","symbol":"𝚗"} -, {"keyword":"monoo","symbol":"𝚘"} -, {"keyword":"monop","symbol":"𝚙"} -, {"keyword":"monoq","symbol":"𝚚"} -, {"keyword":"monor","symbol":"𝚛"} -, {"keyword":"monos","symbol":"𝚜"} -, {"keyword":"monot","symbol":"𝚝"} -, {"keyword":"monou","symbol":"𝚞"} -, {"keyword":"monov","symbol":"𝚟"} -, {"keyword":"monow","symbol":"𝚠"} -, {"keyword":"monox","symbol":"𝚡"} -, {"keyword":"monoy","symbol":"𝚢"} -, {"keyword":"monoz","symbol":"𝚣"} -, {"keyword":"itimath","symbol":"𝚤"} -, {"keyword":"itjmath","symbol":"𝚥"} -, {"keyword":"bfAlpha","symbol":"𝚨"} -, {"keyword":"bfBeta","symbol":"𝚩"} -, {"keyword":"bfGammma","symbol":"𝚪"} -, {"keyword":"bfDelta","symbol":"𝚫"} -, {"keyword":"bfEpsilon","symbol":"𝚬"} -, {"keyword":"bfZeta","symbol":"𝚭"} -, {"keyword":"bfEta","symbol":"𝚮"} -, {"keyword":"bfTheta","symbol":"𝚯"} -, {"keyword":"bfIota","symbol":"𝚰"} -, {"keyword":"bfKappa","symbol":"𝚱"} -, {"keyword":"bfLambda","symbol":"𝚲"} -, {"keyword":"bfMu","symbol":"𝚳"} -, {"keyword":"bfNu","symbol":"𝚴"} -, {"keyword":"bfXi","symbol":"𝚵"} -, {"keyword":"bfOmicron","symbol":"𝚶"} -, {"keyword":"bfPi","symbol":"𝚷"} -, {"keyword":"bfRho","symbol":"𝚸"} -, {"keyword":"bfvarTheta","symbol":"𝚹"} -, {"keyword":"bfSigma","symbol":"𝚺"} -, {"keyword":"bfTau","symbol":"𝚻"} -, {"keyword":"bfUpsilon","symbol":"𝚼"} -, {"keyword":"bfPhi","symbol":"𝚽"} -, {"keyword":"bfChi","symbol":"𝚾"} -, {"keyword":"bfPsi","symbol":"𝚿"} -, {"keyword":"bfOmega","symbol":"𝛀"} -, {"keyword":"bfnabla","symbol":"𝛁"} -, {"keyword":"bfalpha","symbol":"𝛂"} -, {"keyword":"bfbeta","symbol":"𝛃"} -, {"keyword":"bfgamma","symbol":"𝛄"} -, {"keyword":"bfdelta","symbol":"𝛅"} -, {"keyword":"bfvarepsilon","symbol":"𝛆"} -, {"keyword":"bfzeta","symbol":"𝛇"} -, {"keyword":"bfeta","symbol":"𝛈"} -, {"keyword":"bftheta","symbol":"𝛉"} -, {"keyword":"bfiota","symbol":"𝛊"} -, {"keyword":"bfkappa","symbol":"𝛋"} -, {"keyword":"bflambda","symbol":"𝛌"} -, {"keyword":"bfmu","symbol":"𝛍"} -, {"keyword":"bfnu","symbol":"𝛎"} -, {"keyword":"bfxi","symbol":"𝛏"} -, {"keyword":"bfomicron","symbol":"𝛐"} -, {"keyword":"bfpi","symbol":"𝛑"} -, {"keyword":"bfrho","symbol":"𝛒"} -, {"keyword":"bfvarsigma","symbol":"𝛓"} -, {"keyword":"bfsigma","symbol":"𝛔"} -, {"keyword":"bftau","symbol":"𝛕"} -, {"keyword":"bfupsilon","symbol":"𝛖"} -, {"keyword":"bfvarphi","symbol":"𝛗"} -, {"keyword":"bfchi","symbol":"𝛘"} -, {"keyword":"bfpsi","symbol":"𝛙"} -, {"keyword":"bfomega","symbol":"𝛚"} -, {"keyword":"bfpartial","symbol":"𝛛"} -, {"keyword":"bfepsilon","symbol":"𝛜"} -, {"keyword":"bfvartheta","symbol":"𝛝"} -, {"keyword":"bfvarkappa","symbol":"𝛞"} -, {"keyword":"bfphi","symbol":"𝛟"} -, {"keyword":"bfvarrho","symbol":"𝛠"} -, {"keyword":"bfvarpi","symbol":"𝛡"} -, {"keyword":"itAlpha","symbol":"𝛢"} -, {"keyword":"itBeta","symbol":"𝛣"} -, {"keyword":"itGammma","symbol":"𝛤"} -, {"keyword":"itDelta","symbol":"𝛥"} -, {"keyword":"itEpsilon","symbol":"𝛦"} -, {"keyword":"itZeta","symbol":"𝛧"} -, {"keyword":"itEta","symbol":"𝛨"} -, {"keyword":"itTheta","symbol":"𝛩"} -, {"keyword":"itIota","symbol":"𝛪"} -, {"keyword":"itKappa","symbol":"𝛫"} -, {"keyword":"itLambda","symbol":"𝛬"} -, {"keyword":"itMu","symbol":"𝛭"} -, {"keyword":"itNu","symbol":"𝛮"} -, {"keyword":"itXi","symbol":"𝛯"} -, {"keyword":"itOmicron","symbol":"𝛰"} -, {"keyword":"itPi","symbol":"𝛱"} -, {"keyword":"itRho","symbol":"𝛲"} -, {"keyword":"itvarTheta","symbol":"𝛳"} -, {"keyword":"itSigma","symbol":"𝛴"} -, {"keyword":"itTau","symbol":"𝛵"} -, {"keyword":"itUpsilon","symbol":"𝛶"} -, {"keyword":"itPhi","symbol":"𝛷"} -, {"keyword":"itChi","symbol":"𝛸"} -, {"keyword":"itPsi","symbol":"𝛹"} -, {"keyword":"itOmega","symbol":"𝛺"} -, {"keyword":"itnabla","symbol":"𝛻"} -, {"keyword":"italpha","symbol":"𝛼"} -, {"keyword":"itbeta","symbol":"𝛽"} -, {"keyword":"itgamma","symbol":"𝛾"} -, {"keyword":"itdelta","symbol":"𝛿"} -, {"keyword":"itvarepsilon","symbol":"𝜀"} -, {"keyword":"itzeta","symbol":"𝜁"} -, {"keyword":"iteta","symbol":"𝜂"} -, {"keyword":"ittheta","symbol":"𝜃"} -, {"keyword":"itiota","symbol":"𝜄"} -, {"keyword":"itkappa","symbol":"𝜅"} -, {"keyword":"itlambda","symbol":"𝜆"} -, {"keyword":"itmu","symbol":"𝜇"} -, {"keyword":"itnu","symbol":"𝜈"} -, {"keyword":"itxi","symbol":"𝜉"} -, {"keyword":"itomicron","symbol":"𝜊"} -, {"keyword":"itpi","symbol":"𝜋"} -, {"keyword":"itrho","symbol":"𝜌"} -, {"keyword":"itvarsigma","symbol":"𝜍"} -, {"keyword":"itsigma","symbol":"𝜎"} -, {"keyword":"ittau","symbol":"𝜏"} -, {"keyword":"itupsilon","symbol":"𝜐"} -, {"keyword":"itvarphi","symbol":"𝜑"} -, {"keyword":"itchi","symbol":"𝜒"} -, {"keyword":"itpsi","symbol":"𝜓"} -, {"keyword":"itomega","symbol":"𝜔"} -, {"keyword":"itpartial","symbol":"𝜕"} -, {"keyword":"itepsilon","symbol":"𝜖"} -, {"keyword":"itvartheta","symbol":"𝜗"} -, {"keyword":"itvarkappa","symbol":"𝜘"} -, {"keyword":"itphi","symbol":"𝜙"} -, {"keyword":"itvarrho","symbol":"𝜚"} -, {"keyword":"itvarpi","symbol":"𝜛"} -, {"keyword":"bfitAlpha","symbol":"𝜜"} -, {"keyword":"bfitBeta","symbol":"𝜝"} -, {"keyword":"bfitGammma","symbol":"𝜞"} -, {"keyword":"bfitDelta","symbol":"𝜟"} -, {"keyword":"bfitEpsilon","symbol":"𝜠"} -, {"keyword":"bfitZeta","symbol":"𝜡"} -, {"keyword":"bfitEta","symbol":"𝜢"} -, {"keyword":"bfitTheta","symbol":"𝜣"} -, {"keyword":"bfitIota","symbol":"𝜤"} -, {"keyword":"bfitKappa","symbol":"𝜥"} -, {"keyword":"bfitLambda","symbol":"𝜦"} -, {"keyword":"bfitMu","symbol":"𝜧"} -, {"keyword":"bfitNu","symbol":"𝜨"} -, {"keyword":"bfitXi","symbol":"𝜩"} -, {"keyword":"bfitOmicron","symbol":"𝜪"} -, {"keyword":"bfitPi","symbol":"𝜫"} -, {"keyword":"bfitRho","symbol":"𝜬"} -, {"keyword":"bfitvarTheta","symbol":"𝜭"} -, {"keyword":"bfitSigma","symbol":"𝜮"} -, {"keyword":"bfitTau","symbol":"𝜯"} -, {"keyword":"bfitUpsilon","symbol":"𝜰"} -, {"keyword":"bfitPhi","symbol":"𝜱"} -, {"keyword":"bfitChi","symbol":"𝜲"} -, {"keyword":"bfitPsi","symbol":"𝜳"} -, {"keyword":"bfitOmega","symbol":"𝜴"} -, {"keyword":"bfitnabla","symbol":"𝜵"} -, {"keyword":"bfitalpha","symbol":"𝜶"} -, {"keyword":"bfitbeta","symbol":"𝜷"} -, {"keyword":"bfitgamma","symbol":"𝜸"} -, {"keyword":"bfitdelta","symbol":"𝜹"} -, {"keyword":"bfitvarepsilon","symbol":"𝜺"} -, {"keyword":"bfitzeta","symbol":"𝜻"} -, {"keyword":"bfiteta","symbol":"𝜼"} -, {"keyword":"bfittheta","symbol":"𝜽"} -, {"keyword":"bfitiota","symbol":"𝜾"} -, {"keyword":"bfitkappa","symbol":"𝜿"} -, {"keyword":"bfitlambda","symbol":"𝝀"} -, {"keyword":"bfitmu","symbol":"𝝁"} -, {"keyword":"bfitnu","symbol":"𝝂"} -, {"keyword":"bfitxi","symbol":"𝝃"} -, {"keyword":"bfitomicron","symbol":"𝝄"} -, {"keyword":"bfitpi","symbol":"𝝅"} -, {"keyword":"bfitrho","symbol":"𝝆"} -, {"keyword":"bfitvarsigma","symbol":"𝝇"} -, {"keyword":"bfitsigma","symbol":"𝝈"} -, {"keyword":"bfittau","symbol":"𝝉"} -, {"keyword":"bfitupsilon","symbol":"𝝊"} -, {"keyword":"bfitvarphi","symbol":"𝝋"} -, {"keyword":"bfitchi","symbol":"𝝌"} -, {"keyword":"bfitpsi","symbol":"𝝍"} -, {"keyword":"bfitomega","symbol":"𝝎"} -, {"keyword":"bfitpartial","symbol":"𝝏"} -, {"keyword":"bfitepsilon","symbol":"𝝐"} -, {"keyword":"bfitvartheta","symbol":"𝝑"} -, {"keyword":"bfitvarkappa","symbol":"𝝒"} -, {"keyword":"bfitphi","symbol":"𝝓"} -, {"keyword":"bfitvarrho","symbol":"𝝔"} -, {"keyword":"bfitvarpi","symbol":"𝝕"} -, {"keyword":"sansbfAlpha","symbol":"𝝖"} -, {"keyword":"sansbfBeta","symbol":"𝝗"} -, {"keyword":"sansbfGammma","symbol":"𝝘"} -, {"keyword":"sansbfDelta","symbol":"𝝙"} -, {"keyword":"sansbfEpsilon","symbol":"𝝚"} -, {"keyword":"sansbfZeta","symbol":"𝝛"} -, {"keyword":"sansbfEta","symbol":"𝝜"} -, {"keyword":"sansbfTheta","symbol":"𝝝"} -, {"keyword":"sansbfIota","symbol":"𝝞"} -, {"keyword":"sansbfKappa","symbol":"𝝟"} -, {"keyword":"sansbfLambda","symbol":"𝝠"} -, {"keyword":"sansbfMu","symbol":"𝝡"} -, {"keyword":"sansbfNu","symbol":"𝝢"} -, {"keyword":"sansbfXi","symbol":"𝝣"} -, {"keyword":"sansbfOmicron","symbol":"𝝤"} -, {"keyword":"sansbfPi","symbol":"𝝥"} -, {"keyword":"sansbfRho","symbol":"𝝦"} -, {"keyword":"sansbfvarTheta","symbol":"𝝧"} -, {"keyword":"sansbfSigma","symbol":"𝝨"} -, {"keyword":"sansbfTau","symbol":"𝝩"} -, {"keyword":"sansbfUpsilon","symbol":"𝝪"} -, {"keyword":"sansbfPhi","symbol":"𝝫"} -, {"keyword":"sansbfChi","symbol":"𝝬"} -, {"keyword":"sansbfPsi","symbol":"𝝭"} -, {"keyword":"sansbfOmega","symbol":"𝝮"} -, {"keyword":"sansbfnabla","symbol":"𝝯"} -, {"keyword":"sansbfalpha","symbol":"𝝰"} -, {"keyword":"sansbfbeta","symbol":"𝝱"} -, {"keyword":"sansbfgamma","symbol":"𝝲"} -, {"keyword":"sansbfdelta","symbol":"𝝳"} -, {"keyword":"sansbfvarepsilon","symbol":"𝝴"} -, {"keyword":"sansbfzeta","symbol":"𝝵"} -, {"keyword":"sansbfeta","symbol":"𝝶"} -, {"keyword":"sansbftheta","symbol":"𝝷"} -, {"keyword":"sansbfiota","symbol":"𝝸"} -, {"keyword":"sansbfkappa","symbol":"𝝹"} -, {"keyword":"sansbflambda","symbol":"𝝺"} -, {"keyword":"sansbfmu","symbol":"𝝻"} -, {"keyword":"sansbfnu","symbol":"𝝼"} -, {"keyword":"sansbfxi","symbol":"𝝽"} -, {"keyword":"sansbfomicron","symbol":"𝝾"} -, {"keyword":"sansbfpi","symbol":"𝝿"} -, {"keyword":"sansbfrho","symbol":"𝞀"} -, {"keyword":"sansbfvarsigma","symbol":"𝞁"} -, {"keyword":"sansbfsigma","symbol":"𝞂"} -, {"keyword":"sansbftau","symbol":"𝞃"} -, {"keyword":"sansbfupsilon","symbol":"𝞄"} -, {"keyword":"sansbfvarphi","symbol":"𝞅"} -, {"keyword":"sansbfchi","symbol":"𝞆"} -, {"keyword":"sansbfpsi","symbol":"𝞇"} -, {"keyword":"sansbfomega","symbol":"𝞈"} -, {"keyword":"sansbfpartial","symbol":"𝞉"} -, {"keyword":"sansbfepsilon","symbol":"𝞊"} -, {"keyword":"sansbfvartheta","symbol":"𝞋"} -, {"keyword":"sansbfvarkappa","symbol":"𝞌"} -, {"keyword":"sansbfphi","symbol":"𝞍"} -, {"keyword":"sansbfvarrho","symbol":"𝞎"} -, {"keyword":"sansbfvarpi","symbol":"𝞏"} -, {"keyword":"sansbfitAlpha","symbol":"𝞐"} -, {"keyword":"sansbfitBeta","symbol":"𝞑"} -, {"keyword":"sansbfitGammma","symbol":"𝞒"} -, {"keyword":"sansbfitDelta","symbol":"𝞓"} -, {"keyword":"sansbfitEpsilon","symbol":"𝞔"} -, {"keyword":"sansbfitZeta","symbol":"𝞕"} -, {"keyword":"sansbfitEta","symbol":"𝞖"} -, {"keyword":"sansbfitTheta","symbol":"𝞗"} -, {"keyword":"sansbfitIota","symbol":"𝞘"} -, {"keyword":"sansbfitKappa","symbol":"𝞙"} -, {"keyword":"sansbfitLambda","symbol":"𝞚"} -, {"keyword":"sansbfitMu","symbol":"𝞛"} -, {"keyword":"sansbfitNu","symbol":"𝞜"} -, {"keyword":"sansbfitXi","symbol":"𝞝"} -, {"keyword":"sansbfitOmicron","symbol":"𝞞"} -, {"keyword":"sansbfitPi","symbol":"𝞟"} -, {"keyword":"sansbfitRho","symbol":"𝞠"} -, {"keyword":"sansbfitvarTheta","symbol":"𝞡"} -, {"keyword":"sansbfitSigma","symbol":"𝞢"} -, {"keyword":"sansbfitTau","symbol":"𝞣"} -, {"keyword":"sansbfitUpsilon","symbol":"𝞤"} -, {"keyword":"sansbfitPhi","symbol":"𝞥"} -, {"keyword":"sansbfitChi","symbol":"𝞦"} -, {"keyword":"sansbfitPsi","symbol":"𝞧"} -, {"keyword":"sansbfitOmega","symbol":"𝞨"} -, {"keyword":"sansbfitnabla","symbol":"𝞩"} -, {"keyword":"sansbfitalpha","symbol":"𝞪"} -, {"keyword":"sansbfitbeta","symbol":"𝞫"} -, {"keyword":"sansbfitgamma","symbol":"𝞬"} -, {"keyword":"sansbfitdelta","symbol":"𝞭"} -, {"keyword":"sansbfitvarepsilon","symbol":"𝞮"} -, {"keyword":"sansbfitzeta","symbol":"𝞯"} -, {"keyword":"sansbfiteta","symbol":"𝞰"} -, {"keyword":"sansbfittheta","symbol":"𝞱"} -, {"keyword":"sansbfitiota","symbol":"𝞲"} -, {"keyword":"sansbfitkappa","symbol":"𝞳"} -, {"keyword":"sansbfitlambda","symbol":"𝞴"} -, {"keyword":"sansbfitmu","symbol":"𝞵"} -, {"keyword":"sansbfitnu","symbol":"𝞶"} -, {"keyword":"sansbfitxi","symbol":"𝞷"} -, {"keyword":"sansbfitomicron","symbol":"𝞸"} -, {"keyword":"sansbfitpi","symbol":"𝞹"} -, {"keyword":"sansbfitrho","symbol":"𝞺"} -, {"keyword":"sansbfitvarsigma","symbol":"𝞻"} -, {"keyword":"sansbfitsigma","symbol":"𝞼"} -, {"keyword":"sansbfittau","symbol":"𝞽"} -, {"keyword":"sansbfitupsilon","symbol":"𝞾"} -, {"keyword":"sansbfitvarphi","symbol":"𝞿"} -, {"keyword":"sansbfitchi","symbol":"𝟀"} -, {"keyword":"sansbfitpsi","symbol":"𝟁"} -, {"keyword":"sansbfitomega","symbol":"𝟂"} -, {"keyword":"sansbfitpartial","symbol":"𝟃"} -, {"keyword":"sansbfitepsilon","symbol":"𝟄"} -, {"keyword":"sansbfitvartheta","symbol":"𝟅"} -, {"keyword":"sansbfitvarkappa","symbol":"𝟆"} -, {"keyword":"sansbfitphi","symbol":"𝟇"} -, {"keyword":"sansbfitvarrho","symbol":"𝟈"} -, {"keyword":"sansbfitvarpi","symbol":"𝟉"} -, {"keyword":"bfDigamma","symbol":"𝟊"} -, {"keyword":"bfdigamma","symbol":"𝟋"} -, {"keyword":"bf0","symbol":"𝟎"} -, {"keyword":"bf1","symbol":"𝟏"} -, {"keyword":"bf2","symbol":"𝟐"} -, {"keyword":"bf3","symbol":"𝟑"} -, {"keyword":"bf4","symbol":"𝟒"} -, {"keyword":"bf5","symbol":"𝟓"} -, {"keyword":"bf6","symbol":"𝟔"} -, {"keyword":"bf7","symbol":"𝟕"} -, {"keyword":"bf8","symbol":"𝟖"} -, {"keyword":"bf9","symbol":"𝟗"} -, {"keyword":"bb0","symbol":"𝟘"} -, {"keyword":"bb1","symbol":"𝟙"} -, {"keyword":"bb2","symbol":"𝟚"} -, {"keyword":"bb3","symbol":"𝟛"} -, {"keyword":"bb4","symbol":"𝟜"} -, {"keyword":"bb5","symbol":"𝟝"} -, {"keyword":"bb6","symbol":"𝟞"} -, {"keyword":"bb7","symbol":"𝟟"} -, {"keyword":"bb8","symbol":"𝟠"} -, {"keyword":"bb9","symbol":"𝟡"} -, {"keyword":"sans0","symbol":"𝟢"} -, {"keyword":"sans1","symbol":"𝟣"} -, {"keyword":"sans2","symbol":"𝟤"} -, {"keyword":"sans3","symbol":"𝟥"} -, {"keyword":"sans4","symbol":"𝟦"} -, {"keyword":"sans5","symbol":"𝟧"} -, {"keyword":"sans6","symbol":"𝟨"} -, {"keyword":"sans7","symbol":"𝟩"} -, {"keyword":"sans8","symbol":"𝟪"} -, {"keyword":"sans9","symbol":"𝟫"} -, {"keyword":"sansbf0","symbol":"𝟬"} -, {"keyword":"sansbf1","symbol":"𝟭"} -, {"keyword":"sansbf2","symbol":"𝟮"} -, {"keyword":"sansbf3","symbol":"𝟯"} -, {"keyword":"sansbf4","symbol":"𝟰"} -, {"keyword":"sansbf5","symbol":"𝟱"} -, {"keyword":"sansbf6","symbol":"𝟲"} -, {"keyword":"sansbf7","symbol":"𝟳"} -, {"keyword":"sansbf8","symbol":"𝟴"} -, {"keyword":"sansbf9","symbol":"𝟵"} -, {"keyword":"mono0","symbol":"𝟶"} -, {"keyword":"mono1","symbol":"𝟷"} -, {"keyword":"mono2","symbol":"𝟸"} -, {"keyword":"mono3","symbol":"𝟹"} -, {"keyword":"mono4","symbol":"𝟺"} -, {"keyword":"mono5","symbol":"𝟻"} -, {"keyword":"mono6","symbol":"𝟼"} -, {"keyword":"mono7","symbol":"𝟽"} -, {"keyword":"mono8","symbol":"𝟾"} -, {"keyword":"mono9","symbol":"𝟿"} +[ {"keyword":"}}","symbols":[{"style":[],"symbol":"⦄"}]} +, {"keyword":"|)","symbols":[{"style":[],"symbol":"⦈"}]} +, {"keyword":"|","symbols":[{"style":[],"symbol":"‖"}]} +, {"keyword":"{{","symbols":[{"style":[],"symbol":"⦃"}]} +, {"keyword":"zeta","symbols":[{"style":[],"symbol":"ζ"},{"style":["bf"],"symbol":"𝛇"},{"style":["it"],"symbol":"𝜁"},{"style":["bf","it"],"symbol":"𝜻"},{"style":["sf","bf"],"symbol":"𝝵"},{"style":["sf","bf","it"],"symbol":"𝞯"}]} +, {"keyword":"z","symbols":[{"style":["bf"],"symbol":"𝐳"},{"style":["it"],"symbol":"𝑧"},{"style":["bf","it"],"symbol":"𝒛"},{"style":["scr"],"symbol":"𝓏"},{"style":["cal"],"symbol":"𝔃"},{"style":["frak"],"symbol":"𝔷"},{"style":["bb"],"symbol":"𝕫"},{"style":["bf","frak"],"symbol":"𝖟"},{"style":["sf"],"symbol":"𝗓"},{"style":["sf","bf"],"symbol":"𝘇"},{"style":["sf","it"],"symbol":"𝘻"},{"style":["sf","bf","it"],"symbol":"𝙯"},{"style":["tt"],"symbol":"𝚣"}]} +, {"keyword":"y","symbols":[{"style":["bf"],"symbol":"𝐲"},{"style":["it"],"symbol":"𝑦"},{"style":["bf","it"],"symbol":"𝒚"},{"style":["scr"],"symbol":"𝓎"},{"style":["cal"],"symbol":"𝔂"},{"style":["frak"],"symbol":"𝔶"},{"style":["bb"],"symbol":"𝕪"},{"style":["bf","frak"],"symbol":"𝖞"},{"style":["sf"],"symbol":"𝗒"},{"style":["sf","bf"],"symbol":"𝘆"},{"style":["sf","it"],"symbol":"𝘺"},{"style":["sf","bf","it"],"symbol":"𝙮"},{"style":["tt"],"symbol":"𝚢"}]} +, {"keyword":"xi","symbols":[{"style":[],"symbol":"ξ"},{"style":["bf"],"symbol":"𝛏"},{"style":["it"],"symbol":"𝜉"},{"style":["bf","it"],"symbol":"𝝃"},{"style":["sf","bf"],"symbol":"𝝽"},{"style":["sf","bf","it"],"symbol":"𝞷"}]} +, {"keyword":"x","symbols":[{"style":["bf"],"symbol":"𝐱"},{"style":["it"],"symbol":"𝑥"},{"style":["bf","it"],"symbol":"𝒙"},{"style":["scr"],"symbol":"𝓍"},{"style":["cal"],"symbol":"𝔁"},{"style":["frak"],"symbol":"𝔵"},{"style":["bb"],"symbol":"𝕩"},{"style":["bf","frak"],"symbol":"𝖝"},{"style":["sf"],"symbol":"𝗑"},{"style":["sf","bf"],"symbol":"𝘅"},{"style":["sf","it"],"symbol":"𝘹"},{"style":["sf","bf","it"],"symbol":"𝙭"},{"style":["tt"],"symbol":"𝚡"}]} +, {"keyword":"wp","symbols":[{"style":[],"symbol":"℘"}]} +, {"keyword":"w","symbols":[{"style":["bf"],"symbol":"𝐰"},{"style":["it"],"symbol":"𝑤"},{"style":["bf","it"],"symbol":"𝒘"},{"style":["scr"],"symbol":"𝓌"},{"style":["cal"],"symbol":"𝔀"},{"style":["frak"],"symbol":"𝔴"},{"style":["bb"],"symbol":"𝕨"},{"style":["bf","frak"],"symbol":"𝖜"},{"style":["sf"],"symbol":"𝗐"},{"style":["sf","bf"],"symbol":"𝘄"},{"style":["sf","it"],"symbol":"𝘸"},{"style":["sf","bf","it"],"symbol":"𝙬"},{"style":["tt"],"symbol":"𝚠"}]} +, {"keyword":"vartheta","symbols":[{"style":[],"symbol":"ϑ"},{"style":["bf"],"symbol":"𝛝"},{"style":["it"],"symbol":"𝜗"},{"style":["bf","it"],"symbol":"𝝑"},{"style":["sf","bf"],"symbol":"𝞋"},{"style":["sf","bf","it"],"symbol":"𝟅"}]} +, {"keyword":"varsigma","symbols":[{"style":[],"symbol":"ς"},{"style":["bf"],"symbol":"𝛓"},{"style":["it"],"symbol":"𝜍"},{"style":["bf","it"],"symbol":"𝝇"},{"style":["sf","bf"],"symbol":"𝞁"},{"style":["sf","bf","it"],"symbol":"𝞻"}]} +, {"keyword":"varrho","symbols":[{"style":[],"symbol":"ϱ"},{"style":["bf"],"symbol":"𝛠"},{"style":["it"],"symbol":"𝜚"},{"style":["bf","it"],"symbol":"𝝔"},{"style":["sf","bf"],"symbol":"𝞎"},{"style":["sf","bf","it"],"symbol":"𝟈"}]} +, {"keyword":"varpi","symbols":[{"style":[],"symbol":"ϖ"},{"style":["bf"],"symbol":"𝛡"},{"style":["it"],"symbol":"𝜛"},{"style":["bf","it"],"symbol":"𝝕"},{"style":["sf","bf"],"symbol":"𝞏"},{"style":["sf","bf","it"],"symbol":"𝟉"}]} +, {"keyword":"varphi","symbols":[{"style":[],"symbol":"φ"},{"style":["bf"],"symbol":"𝛗"},{"style":["it"],"symbol":"𝜑"},{"style":["bf","it"],"symbol":"𝝋"},{"style":["sf","bf"],"symbol":"𝞅"},{"style":["sf","bf","it"],"symbol":"𝞿"}]} +, {"keyword":"varkappa","symbols":[{"style":[],"symbol":"ϰ"},{"style":["bf"],"symbol":"𝛞"},{"style":["it"],"symbol":"𝜘"},{"style":["bf","it"],"symbol":"𝝒"},{"style":["sf","bf"],"symbol":"𝞌"},{"style":["sf","bf","it"],"symbol":"𝟆"}]} +, {"keyword":"varepsilon","symbols":[{"style":[],"symbol":"ε"},{"style":["bf"],"symbol":"𝛆"},{"style":["it"],"symbol":"𝜀"},{"style":["bf","it"],"symbol":"𝜺"},{"style":["sf","bf"],"symbol":"𝝴"},{"style":["sf","bf","it"],"symbol":"𝞮"}]} +, {"keyword":"varTheta","symbols":[{"style":[],"symbol":"ϴ"},{"style":["bf"],"symbol":"𝚹"},{"style":["it"],"symbol":"𝛳"},{"style":["bf","it"],"symbol":"𝜭"},{"style":["sf","bf"],"symbol":"𝝧"},{"style":["sf","bf","it"],"symbol":"𝞡"}]} +, {"keyword":"v","symbols":[{"style":["bf"],"symbol":"𝐯"},{"style":["it"],"symbol":"𝑣"},{"style":["bf","it"],"symbol":"𝒗"},{"style":["scr"],"symbol":"𝓋"},{"style":["cal"],"symbol":"𝓿"},{"style":["frak"],"symbol":"𝔳"},{"style":["bb"],"symbol":"𝕧"},{"style":["bf","frak"],"symbol":"𝖛"},{"style":["sf"],"symbol":"𝗏"},{"style":["sf","bf"],"symbol":"𝘃"},{"style":["sf","it"],"symbol":"𝘷"},{"style":["sf","bf","it"],"symbol":"𝙫"},{"style":["tt"],"symbol":"𝚟"}]} +, {"keyword":"upsilon","symbols":[{"style":[],"symbol":"υ"},{"style":["bf"],"symbol":"𝛖"},{"style":["it"],"symbol":"𝜐"},{"style":["bf","it"],"symbol":"𝝊"},{"style":["sf","bf"],"symbol":"𝞄"},{"style":["sf","bf","it"],"symbol":"𝞾"}]} +, {"keyword":"updownarrow","symbols":[{"style":[],"symbol":"↕"}]} +, {"keyword":"uparrow","symbols":[{"style":[],"symbol":"↑"}]} +, {"keyword":"u","symbols":[{"style":["bf"],"symbol":"𝐮"},{"style":["it"],"symbol":"𝑢"},{"style":["bf","it"],"symbol":"𝒖"},{"style":["scr"],"symbol":"𝓊"},{"style":["cal"],"symbol":"𝓾"},{"style":["frak"],"symbol":"𝔲"},{"style":["bb"],"symbol":"𝕦"},{"style":["bf","frak"],"symbol":"𝖚"},{"style":["sf"],"symbol":"𝗎"},{"style":["sf","bf"],"symbol":"𝘂"},{"style":["sf","it"],"symbol":"𝘶"},{"style":["sf","bf","it"],"symbol":"𝙪"},{"style":["tt"],"symbol":"𝚞"}]} +, {"keyword":"to","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"theta","symbols":[{"style":[],"symbol":"θ"},{"style":["bf"],"symbol":"𝛉"},{"style":["it"],"symbol":"𝜃"},{"style":["bf","it"],"symbol":"𝜽"},{"style":["sf","bf"],"symbol":"𝝷"},{"style":["sf","bf","it"],"symbol":"𝞱"}]} +, {"keyword":"tau","symbols":[{"style":[],"symbol":"τ"},{"style":["bf"],"symbol":"𝛕"},{"style":["it"],"symbol":"𝜏"},{"style":["bf","it"],"symbol":"𝝉"},{"style":["sf","bf"],"symbol":"𝞃"},{"style":["sf","bf","it"],"symbol":"𝞽"}]} +, {"keyword":"t","symbols":[{"style":["bf"],"symbol":"𝐭"},{"style":["it"],"symbol":"𝑡"},{"style":["bf","it"],"symbol":"𝒕"},{"style":["scr"],"symbol":"𝓉"},{"style":["cal"],"symbol":"𝓽"},{"style":["frak"],"symbol":"𝔱"},{"style":["bb"],"symbol":"𝕥"},{"style":["bf","frak"],"symbol":"𝖙"},{"style":["sf"],"symbol":"𝗍"},{"style":["sf","bf"],"symbol":"𝘁"},{"style":["sf","it"],"symbol":"𝘵"},{"style":["sf","bf","it"],"symbol":"𝙩"},{"style":["tt"],"symbol":"𝚝"}]} +, {"keyword":"supsetneq","symbols":[{"style":[],"symbol":"⊋"}]} +, {"keyword":"supseteq","symbols":[{"style":[],"symbol":"⊇"}]} +, {"keyword":"supset","symbols":[{"style":[],"symbol":"⊃"}]} +, {"keyword":"succsim","symbols":[{"style":[],"symbol":"≿"}]} +, {"keyword":"succeq","symbols":[{"style":[],"symbol":"⪰"}]} +, {"keyword":"succ","symbols":[{"style":[],"symbol":"≻"}]} +, {"keyword":"subsetneq","symbols":[{"style":[],"symbol":"⊊"}]} +, {"keyword":"subseteq","symbols":[{"style":[],"symbol":"⊆"}]} +, {"keyword":"subset","symbols":[{"style":[],"symbol":"⊂"}]} +, {"keyword":"sqsupseteq","symbols":[{"style":[],"symbol":"⊒"}]} +, {"keyword":"sqsupset","symbols":[{"style":[],"symbol":"⊐"}]} +, {"keyword":"sqsubseteq","symbols":[{"style":[],"symbol":"⊑"}]} +, {"keyword":"sqsubset","symbols":[{"style":[],"symbol":"⊏"}]} +, {"keyword":"simeq","symbols":[{"style":[],"symbol":"≃"}]} +, {"keyword":"sim","symbols":[{"style":[],"symbol":"∼"}]} +, {"keyword":"sigma","symbols":[{"style":[],"symbol":"σ"},{"style":["bf"],"symbol":"𝛔"},{"style":["it"],"symbol":"𝜎"},{"style":["bf","it"],"symbol":"𝝈"},{"style":["sf","bf"],"symbol":"𝞂"},{"style":["sf","bf","it"],"symbol":"𝞼"}]} +, {"keyword":"s","symbols":[{"style":["bf"],"symbol":"𝐬"},{"style":["it"],"symbol":"𝑠"},{"style":["bf","it"],"symbol":"𝒔"},{"style":["scr"],"symbol":"𝓈"},{"style":["cal"],"symbol":"𝓼"},{"style":["frak"],"symbol":"𝔰"},{"style":["bb"],"symbol":"𝕤"},{"style":["bf","frak"],"symbol":"𝖘"},{"style":["sf"],"symbol":"𝗌"},{"style":["sf","bf"],"symbol":"𝘀"},{"style":["sf","it"],"symbol":"𝘴"},{"style":["sf","bf","it"],"symbol":"𝙨"},{"style":["tt"],"symbol":"𝚜"}]} +, {"keyword":"rightarrow","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"rho","symbols":[{"style":[],"symbol":"ρ"},{"style":["bf"],"symbol":"𝛒"},{"style":["it"],"symbol":"𝜌"},{"style":["bf","it"],"symbol":"𝝆"},{"style":["sf","bf"],"symbol":"𝞀"},{"style":["sf","bf","it"],"symbol":"𝞺"}]} +, {"keyword":"rfloor","symbols":[{"style":[],"symbol":"⌋"}]} +, {"keyword":"rceil","symbols":[{"style":[],"symbol":"⌉"}]} +, {"keyword":"rbag","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"rangle","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"r","symbols":[{"style":["bf"],"symbol":"𝐫"},{"style":["it"],"symbol":"𝑟"},{"style":["bf","it"],"symbol":"𝒓"},{"style":["scr"],"symbol":"𝓇"},{"style":["cal"],"symbol":"𝓻"},{"style":["frak"],"symbol":"𝔯"},{"style":["bb"],"symbol":"𝕣"},{"style":["bf","frak"],"symbol":"𝖗"},{"style":["sf"],"symbol":"𝗋"},{"style":["sf","bf"],"symbol":"𝗿"},{"style":["sf","it"],"symbol":"𝘳"},{"style":["sf","bf","it"],"symbol":"𝙧"},{"style":["tt"],"symbol":"𝚛"}]} +, {"keyword":"q","symbols":[{"style":["bf"],"symbol":"𝐪"},{"style":["it"],"symbol":"𝑞"},{"style":["bf","it"],"symbol":"𝒒"},{"style":["scr"],"symbol":"𝓆"},{"style":["cal"],"symbol":"𝓺"},{"style":["frak"],"symbol":"𝔮"},{"style":["bb"],"symbol":"𝕢"},{"style":["bf","frak"],"symbol":"𝖖"},{"style":["sf"],"symbol":"𝗊"},{"style":["sf","bf"],"symbol":"𝗾"},{"style":["sf","it"],"symbol":"𝘲"},{"style":["sf","bf","it"],"symbol":"𝙦"},{"style":["tt"],"symbol":"𝚚"}]} +, {"keyword":"psi","symbols":[{"style":[],"symbol":"ψ"},{"style":["bf"],"symbol":"𝛙"},{"style":["it"],"symbol":"𝜓"},{"style":["bf","it"],"symbol":"𝝍"},{"style":["sf","bf"],"symbol":"𝞇"},{"style":["sf","bf","it"],"symbol":"𝟁"}]} +, {"keyword":"propto","symbols":[{"style":[],"symbol":"∝"}]} +, {"keyword":"precsim","symbols":[{"style":[],"symbol":"≾"}]} +, {"keyword":"preceq","symbols":[{"style":[],"symbol":"⪯"}]} +, {"keyword":"prec","symbols":[{"style":[],"symbol":"≺"}]} +, {"keyword":"pi","symbols":[{"style":[],"symbol":"π"},{"style":["bf"],"symbol":"𝛑"},{"style":["it"],"symbol":"𝜋"},{"style":["bf","it"],"symbol":"𝝅"},{"style":["sf","bf"],"symbol":"𝝿"},{"style":["sf","bf","it"],"symbol":"𝞹"}]} +, {"keyword":"phi","symbols":[{"style":[],"symbol":"ϕ"},{"style":["bf"],"symbol":"𝛟"},{"style":["it"],"symbol":"𝜙"},{"style":["bf","it"],"symbol":"𝝓"},{"style":["sf","bf"],"symbol":"𝞍"},{"style":["sf","bf","it"],"symbol":"𝟇"}]} +, {"keyword":"partial","symbols":[{"style":[],"symbol":"∂"},{"style":["bf"],"symbol":"𝛛"},{"style":["it"],"symbol":"𝜕"},{"style":["bf","it"],"symbol":"𝝏"},{"style":["sf","bf"],"symbol":"𝞉"},{"style":["sf","bf","it"],"symbol":"𝟃"}]} +, {"keyword":"p","symbols":[{"style":["bf"],"symbol":"𝐩"},{"style":["it"],"symbol":"𝑝"},{"style":["bf","it"],"symbol":"𝒑"},{"style":["scr"],"symbol":"𝓅"},{"style":["cal"],"symbol":"𝓹"},{"style":["frak"],"symbol":"𝔭"},{"style":["bb"],"symbol":"𝕡"},{"style":["bf","frak"],"symbol":"𝖕"},{"style":["sf"],"symbol":"𝗉"},{"style":["sf","bf"],"symbol":"𝗽"},{"style":["sf","it"],"symbol":"𝘱"},{"style":["sf","bf","it"],"symbol":"𝙥"},{"style":["tt"],"symbol":"𝚙"}]} +, {"keyword":"omicron","symbols":[{"style":[],"symbol":"ο"},{"style":["bf"],"symbol":"𝛐"},{"style":["it"],"symbol":"𝜊"},{"style":["bf","it"],"symbol":"𝝄"},{"style":["sf","bf"],"symbol":"𝝾"},{"style":["sf","bf","it"],"symbol":"𝞸"}]} +, {"keyword":"omega","symbols":[{"style":[],"symbol":"ω"},{"style":["bf"],"symbol":"𝛚"},{"style":["it"],"symbol":"𝜔"},{"style":["bf","it"],"symbol":"𝝎"},{"style":["sf","bf"],"symbol":"𝞈"},{"style":["sf","bf","it"],"symbol":"𝟂"}]} +, {"keyword":"o","symbols":[{"style":["bf"],"symbol":"𝐨"},{"style":["it"],"symbol":"𝑜"},{"style":["bf","it"],"symbol":"𝒐"},{"style":["scr"],"symbol":"ℴ"},{"style":["cal"],"symbol":"𝓸"},{"style":["frak"],"symbol":"𝔬"},{"style":["bb"],"symbol":"𝕠"},{"style":["bf","frak"],"symbol":"𝖔"},{"style":["sf"],"symbol":"𝗈"},{"style":["sf","bf"],"symbol":"𝗼"},{"style":["sf","it"],"symbol":"𝘰"},{"style":["sf","bf","it"],"symbol":"𝙤"},{"style":["tt"],"symbol":"𝚘"}]} +, {"keyword":"nu","symbols":[{"style":[],"symbol":"ν"},{"style":["bf"],"symbol":"𝛎"},{"style":["it"],"symbol":"𝜈"},{"style":["bf","it"],"symbol":"𝝂"},{"style":["sf","bf"],"symbol":"𝝼"},{"style":["sf","bf","it"],"symbol":"𝞶"}]} +, {"keyword":"nsupseteq","symbols":[{"style":[],"symbol":"⊉"}]} +, {"keyword":"nsupset","symbols":[{"style":[],"symbol":"⊅"}]} +, {"keyword":"nsucceq","symbols":[{"style":[],"symbol":"⪰̸"}]} +, {"keyword":"nsucc","symbols":[{"style":[],"symbol":"⊁"}]} +, {"keyword":"nsubseteq","symbols":[{"style":[],"symbol":"⊈"}]} +, {"keyword":"nsubset","symbols":[{"style":[],"symbol":"⊄"}]} +, {"keyword":"nsimeq","symbols":[{"style":[],"symbol":"≄"}]} +, {"keyword":"nsim","symbols":[{"style":[],"symbol":"≁"}]} +, {"keyword":"npreceq","symbols":[{"style":[],"symbol":"⪯̸"}]} +, {"keyword":"nprec","symbols":[{"style":[],"symbol":"⊀"}]} +, {"keyword":"nless","symbols":[{"style":[],"symbol":"≮"}]} +, {"keyword":"nleq","symbols":[{"style":[],"symbol":"≰"}]} +, {"keyword":"ngtr","symbols":[{"style":[],"symbol":"≯"}]} +, {"keyword":"ngeq","symbols":[{"style":[],"symbol":"≱"}]} +, {"keyword":"nequiv","symbols":[{"style":[],"symbol":"≢"}]} +, {"keyword":"neq","symbols":[{"style":[],"symbol":"≠"}]} +, {"keyword":"neg","symbols":[{"style":[],"symbol":"¬"}]} +, {"keyword":"ncong","symbols":[{"style":[],"symbol":"≇"}]} +, {"keyword":"napprox","symbols":[{"style":[],"symbol":"≉"}]} +, {"keyword":"nabla","symbols":[{"style":[],"symbol":"∇"},{"style":["bf"],"symbol":"𝛁"},{"style":["it"],"symbol":"𝛻"},{"style":["bf","it"],"symbol":"𝜵"},{"style":["sf","bf"],"symbol":"𝝯"},{"style":["sf","bf","it"],"symbol":"𝞩"}]} +, {"keyword":"n","symbols":[{"style":["bf"],"symbol":"𝐧"},{"style":["it"],"symbol":"𝑛"},{"style":["bf","it"],"symbol":"𝒏"},{"style":["scr"],"symbol":"𝓃"},{"style":["cal"],"symbol":"𝓷"},{"style":["frak"],"symbol":"𝔫"},{"style":["bb"],"symbol":"𝕟"},{"style":["bf","frak"],"symbol":"𝖓"},{"style":["sf"],"symbol":"𝗇"},{"style":["sf","bf"],"symbol":"𝗻"},{"style":["sf","it"],"symbol":"𝘯"},{"style":["sf","bf","it"],"symbol":"𝙣"},{"style":["tt"],"symbol":"𝚗"}]} +, {"keyword":"mu","symbols":[{"style":[],"symbol":"μ"},{"style":["bf"],"symbol":"𝛍"},{"style":["it"],"symbol":"𝜇"},{"style":["bf","it"],"symbol":"𝝁"},{"style":["sf","bf"],"symbol":"𝝻"},{"style":["sf","bf","it"],"symbol":"𝞵"}]} +, {"keyword":"mapsto","symbols":[{"style":[],"symbol":"↦"}]} +, {"keyword":"m","symbols":[{"style":["bf"],"symbol":"𝐦"},{"style":["it"],"symbol":"𝑚"},{"style":["bf","it"],"symbol":"𝒎"},{"style":["scr"],"symbol":"𝓂"},{"style":["cal"],"symbol":"𝓶"},{"style":["frak"],"symbol":"𝔪"},{"style":["bb"],"symbol":"𝕞"},{"style":["bf","frak"],"symbol":"𝖒"},{"style":["sf"],"symbol":"𝗆"},{"style":["sf","bf"],"symbol":"𝗺"},{"style":["sf","it"],"symbol":"𝘮"},{"style":["sf","bf","it"],"symbol":"𝙢"},{"style":["tt"],"symbol":"𝚖"}]} +, {"keyword":"longrightarrow","symbols":[{"style":[],"symbol":"⟶"}]} +, {"keyword":"longmapsto","symbols":[{"style":[],"symbol":"⟼"}]} +, {"keyword":"longleftarrow","symbols":[{"style":[],"symbol":"⟵"}]} +, {"keyword":"lnsim","symbols":[{"style":[],"symbol":"⋦"}]} +, {"keyword":"lneqq","symbols":[{"style":[],"symbol":"≨"}]} +, {"keyword":"lneq","symbols":[{"style":[],"symbol":"⪇"}]} +, {"keyword":"lnapprox","symbols":[{"style":[],"symbol":"⪉"}]} +, {"keyword":"lll","symbols":[{"style":[],"symbol":"⋘"}]} +, {"keyword":"ll","symbols":[{"style":[],"symbol":"≪"}]} +, {"keyword":"lfloor","symbols":[{"style":[],"symbol":"⌊"}]} +, {"keyword":"lesssim","symbols":[{"style":[],"symbol":"≲"}]} +, {"keyword":"lessgtr","symbols":[{"style":[],"symbol":"≶"}]} +, {"keyword":"lesseqgtr","symbols":[{"style":[],"symbol":"⋚"}]} +, {"keyword":"lessapprox","symbols":[{"style":[],"symbol":"⪅"}]} +, {"keyword":"leqslant","symbols":[{"style":[],"symbol":"⩽"}]} +, {"keyword":"leqq","symbols":[{"style":[],"symbol":"≦"}]} +, {"keyword":"leq","symbols":[{"style":[],"symbol":"≤"}]} +, {"keyword":"leftarrow","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"lceil","symbols":[{"style":[],"symbol":"⌈"}]} +, {"keyword":"lbag","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"langle","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"lambda","symbols":[{"style":[],"symbol":"λ"},{"style":["bf"],"symbol":"𝛌"},{"style":["it"],"symbol":"𝜆"},{"style":["bf","it"],"symbol":"𝝀"},{"style":["sf","bf"],"symbol":"𝝺"},{"style":["sf","bf","it"],"symbol":"𝞴"}]} +, {"keyword":"l","symbols":[{"style":["bf"],"symbol":"𝐥"},{"style":["it"],"symbol":"𝑙"},{"style":["bf","it"],"symbol":"𝒍"},{"style":["scr"],"symbol":"𝓁"},{"style":["cal"],"symbol":"𝓵"},{"style":["frak"],"symbol":"𝔩"},{"style":["bb"],"symbol":"𝕝"},{"style":["bf","frak"],"symbol":"𝖑"},{"style":["sf"],"symbol":"𝗅"},{"style":["sf","bf"],"symbol":"𝗹"},{"style":["sf","it"],"symbol":"𝘭"},{"style":["sf","bf","it"],"symbol":"𝙡"},{"style":["tt"],"symbol":"𝚕"}]} +, {"keyword":"kappa","symbols":[{"style":[],"symbol":"κ"},{"style":["bf"],"symbol":"𝛋"},{"style":["it"],"symbol":"𝜅"},{"style":["bf","it"],"symbol":"𝜿"},{"style":["sf","bf"],"symbol":"𝝹"},{"style":["sf","bf","it"],"symbol":"𝞳"}]} +, {"keyword":"k","symbols":[{"style":["bf"],"symbol":"𝐤"},{"style":["it"],"symbol":"𝑘"},{"style":["bf","it"],"symbol":"𝒌"},{"style":["scr"],"symbol":"𝓀"},{"style":["cal"],"symbol":"𝓴"},{"style":["frak"],"symbol":"𝔨"},{"style":["bb"],"symbol":"𝕜"},{"style":["bf","frak"],"symbol":"𝖐"},{"style":["sf"],"symbol":"𝗄"},{"style":["sf","bf"],"symbol":"𝗸"},{"style":["sf","it"],"symbol":"𝘬"},{"style":["sf","bf","it"],"symbol":"𝙠"},{"style":["tt"],"symbol":"𝚔"}]} +, {"keyword":"jmath","symbols":[{"style":[],"symbol":"ȷ"},{"style":["it"],"symbol":"𝚥"}]} +, {"keyword":"j","symbols":[{"style":["bf"],"symbol":"𝐣"},{"style":["it"],"symbol":"𝑗"},{"style":["bf","it"],"symbol":"𝒋"},{"style":["scr"],"symbol":"𝒿"},{"style":["cal"],"symbol":"𝓳"},{"style":["frak"],"symbol":"𝔧"},{"style":["bb"],"symbol":"𝕛"},{"style":["bf","frak"],"symbol":"𝖏"},{"style":["sf"],"symbol":"𝗃"},{"style":["sf","bf"],"symbol":"𝗷"},{"style":["sf","it"],"symbol":"𝘫"},{"style":["sf","bf","it"],"symbol":"𝙟"},{"style":["tt"],"symbol":"𝚓"}]} +, {"keyword":"iota","symbols":[{"style":[],"symbol":"ι"},{"style":["bf"],"symbol":"𝛊"},{"style":["it"],"symbol":"𝜄"},{"style":["bf","it"],"symbol":"𝜾"},{"style":["sf","bf"],"symbol":"𝝸"},{"style":["sf","bf","it"],"symbol":"𝞲"}]} +, {"keyword":"infty","symbols":[{"style":[],"symbol":"∞"}]} +, {"keyword":"imath","symbols":[{"style":[],"symbol":"ı"},{"style":["it"],"symbol":"𝚤"}]} +, {"keyword":"i","symbols":[{"style":["bf"],"symbol":"𝐢"},{"style":["it"],"symbol":"𝑖"},{"style":["bf","it"],"symbol":"𝒊"},{"style":["scr"],"symbol":"𝒾"},{"style":["cal"],"symbol":"𝓲"},{"style":["frak"],"symbol":"𝔦"},{"style":["bb"],"symbol":"𝕚"},{"style":["bf","frak"],"symbol":"𝖎"},{"style":["sf"],"symbol":"𝗂"},{"style":["sf","bf"],"symbol":"𝗶"},{"style":["sf","it"],"symbol":"𝘪"},{"style":["sf","bf","it"],"symbol":"𝙞"},{"style":["tt"],"symbol":"𝚒"}]} +, {"keyword":"hslash","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"hbar","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"h","symbols":[{"style":["bf"],"symbol":"𝐡"},{"style":["bf","it"],"symbol":"𝒉"},{"style":["scr"],"symbol":"𝒽"},{"style":["cal"],"symbol":"𝓱"},{"style":["frak"],"symbol":"𝔥"},{"style":["bb"],"symbol":"𝕙"},{"style":["bf","frak"],"symbol":"𝖍"},{"style":["sf"],"symbol":"𝗁"},{"style":["sf","bf"],"symbol":"𝗵"},{"style":["sf","it"],"symbol":"𝘩"},{"style":["sf","bf","it"],"symbol":"𝙝"},{"style":["tt"],"symbol":"𝚑"}]} +, {"keyword":"gtrsim","symbols":[{"style":[],"symbol":"≳"}]} +, {"keyword":"gtrapprox","symbols":[{"style":[],"symbol":"⪆"}]} +, {"keyword":"gnsim","symbols":[{"style":[],"symbol":"⋧"}]} +, {"keyword":"gneqq","symbols":[{"style":[],"symbol":"≩"}]} +, {"keyword":"gneq","symbols":[{"style":[],"symbol":"⪈"}]} +, {"keyword":"gnapprox","symbols":[{"style":[],"symbol":"⪊"}]} +, {"keyword":"gimel","symbols":[{"style":[],"symbol":"ℷ"}]} +, {"keyword":"ggg","symbols":[{"style":[],"symbol":"⋙"}]} +, {"keyword":"gg","symbols":[{"style":[],"symbol":"≫"}]} +, {"keyword":"gets","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"geqslant","symbols":[{"style":[],"symbol":"⩾"}]} +, {"keyword":"geqq","symbols":[{"style":[],"symbol":"≧"}]} +, {"keyword":"geq","symbols":[{"style":[],"symbol":"≥"}]} +, {"keyword":"gamma","symbols":[{"style":[],"symbol":"γ"},{"style":["bf"],"symbol":"𝛄"},{"style":["it"],"symbol":"𝛾"},{"style":["bf","it"],"symbol":"𝜸"},{"style":["sf","bf"],"symbol":"𝝲"},{"style":["sf","bf","it"],"symbol":"𝞬"}]} +, {"keyword":"g","symbols":[{"style":["bf"],"symbol":"𝐠"},{"style":["it"],"symbol":"𝑔"},{"style":["bf","it"],"symbol":"𝒈"},{"style":["scr"],"symbol":"ℊ"},{"style":["cal"],"symbol":"𝓰"},{"style":["frak"],"symbol":"𝔤"},{"style":["bb"],"symbol":"𝕘"},{"style":["bf","frak"],"symbol":"𝖌"},{"style":["sf"],"symbol":"𝗀"},{"style":["sf","bf"],"symbol":"𝗴"},{"style":["sf","it"],"symbol":"𝘨"},{"style":["sf","bf","it"],"symbol":"𝙜"},{"style":["tt"],"symbol":"𝚐"}]} +, {"keyword":"f","symbols":[{"style":["bf"],"symbol":"𝐟"},{"style":["it"],"symbol":"𝑓"},{"style":["bf","it"],"symbol":"𝒇"},{"style":["scr"],"symbol":"𝒻"},{"style":["cal"],"symbol":"𝓯"},{"style":["frak"],"symbol":"𝔣"},{"style":["bb"],"symbol":"𝕗"},{"style":["bf","frak"],"symbol":"𝖋"},{"style":["sf"],"symbol":"𝖿"},{"style":["sf","bf"],"symbol":"𝗳"},{"style":["sf","it"],"symbol":"𝘧"},{"style":["sf","bf","it"],"symbol":"𝙛"},{"style":["tt"],"symbol":"𝚏"}]} +, {"keyword":"eta","symbols":[{"style":[],"symbol":"η"},{"style":["bf"],"symbol":"𝛈"},{"style":["it"],"symbol":"𝜂"},{"style":["bf","it"],"symbol":"𝜼"},{"style":["sf","bf"],"symbol":"𝝶"},{"style":["sf","bf","it"],"symbol":"𝞰"}]} +, {"keyword":"equiv","symbols":[{"style":[],"symbol":"≡"}]} +, {"keyword":"epsilon","symbols":[{"style":[],"symbol":"ϵ"},{"style":["bf"],"symbol":"𝛜"},{"style":["it"],"symbol":"𝜖"},{"style":["bf","it"],"symbol":"𝝐"},{"style":["sf","bf"],"symbol":"𝞊"},{"style":["sf","bf","it"],"symbol":"𝟄"}]} +, {"keyword":"ell","symbols":[{"style":[],"symbol":"ℓ"}]} +, {"keyword":"e","symbols":[{"style":["bf"],"symbol":"𝐞"},{"style":["it"],"symbol":"𝑒"},{"style":["bf","it"],"symbol":"𝒆"},{"style":["scr"],"symbol":"ℯ"},{"style":["cal"],"symbol":"𝓮"},{"style":["frak"],"symbol":"𝔢"},{"style":["bb"],"symbol":"𝕖"},{"style":["bf","frak"],"symbol":"𝖊"},{"style":["sf"],"symbol":"𝖾"},{"style":["sf","bf"],"symbol":"𝗲"},{"style":["sf","it"],"symbol":"𝘦"},{"style":["sf","bf","it"],"symbol":"𝙚"},{"style":["tt"],"symbol":"𝚎"}]} +, {"keyword":"downaroow","symbols":[{"style":[],"symbol":"↓"}]} +, {"keyword":"doteq","symbols":[{"style":[],"symbol":"≐"}]} +, {"keyword":"digamma","symbols":[{"style":[],"symbol":"ϝ"},{"style":["bf"],"symbol":"𝟋"}]} +, {"keyword":"delta","symbols":[{"style":[],"symbol":"δ"},{"style":["bf"],"symbol":"𝛅"},{"style":["it"],"symbol":"𝛿"},{"style":["bf","it"],"symbol":"𝜹"},{"style":["sf","bf"],"symbol":"𝝳"},{"style":["sf","bf","it"],"symbol":"𝞭"}]} +, {"keyword":"d","symbols":[{"style":["bf"],"symbol":"𝐝"},{"style":["it"],"symbol":"𝑑"},{"style":["bf","it"],"symbol":"𝒅"},{"style":["scr"],"symbol":"𝒹"},{"style":["cal"],"symbol":"𝓭"},{"style":["frak"],"symbol":"𝔡"},{"style":["bb"],"symbol":"𝕕"},{"style":["bf","frak"],"symbol":"𝖉"},{"style":["sf"],"symbol":"𝖽"},{"style":["sf","bf"],"symbol":"𝗱"},{"style":["sf","it"],"symbol":"𝘥"},{"style":["sf","bf","it"],"symbol":"𝙙"},{"style":["tt"],"symbol":"𝚍"}]} +, {"keyword":"cong","symbols":[{"style":[],"symbol":"≅"}]} +, {"keyword":"chi","symbols":[{"style":[],"symbol":"χ"},{"style":["bf"],"symbol":"𝛘"},{"style":["it"],"symbol":"𝜒"},{"style":["bf","it"],"symbol":"𝝌"},{"style":["sf","bf"],"symbol":"𝞆"},{"style":["sf","bf","it"],"symbol":"𝟀"}]} +, {"keyword":"c","symbols":[{"style":["bf"],"symbol":"𝐜"},{"style":["it"],"symbol":"𝑐"},{"style":["bf","it"],"symbol":"𝒄"},{"style":["scr"],"symbol":"𝒸"},{"style":["cal"],"symbol":"𝓬"},{"style":["frak"],"symbol":"𝔠"},{"style":["bb"],"symbol":"𝕔"},{"style":["bf","frak"],"symbol":"𝖈"},{"style":["sf"],"symbol":"𝖼"},{"style":["sf","bf"],"symbol":"𝗰"},{"style":["sf","it"],"symbol":"𝘤"},{"style":["sf","bf","it"],"symbol":"𝙘"},{"style":["tt"],"symbol":"𝚌"}]} +, {"keyword":"beth","symbols":[{"style":[],"symbol":"ℶ"}]} +, {"keyword":"beta","symbols":[{"style":[],"symbol":"β"},{"style":["bf"],"symbol":"𝛃"},{"style":["it"],"symbol":"𝛽"},{"style":["bf","it"],"symbol":"𝜷"},{"style":["sf","bf"],"symbol":"𝝱"},{"style":["sf","bf","it"],"symbol":"𝞫"}]} +, {"keyword":"b","symbols":[{"style":["bf"],"symbol":"𝐛"},{"style":["it"],"symbol":"𝑏"},{"style":["bf","it"],"symbol":"𝒃"},{"style":["scr"],"symbol":"𝒷"},{"style":["cal"],"symbol":"𝓫"},{"style":["frak"],"symbol":"𝔟"},{"style":["bb"],"symbol":"𝕓"},{"style":["bf","frak"],"symbol":"𝖇"},{"style":["sf"],"symbol":"𝖻"},{"style":["sf","bf"],"symbol":"𝗯"},{"style":["sf","it"],"symbol":"𝘣"},{"style":["sf","bf","it"],"symbol":"𝙗"},{"style":["tt"],"symbol":"𝚋"}]} +, {"keyword":"approx","symbols":[{"style":[],"symbol":"≈"}]} +, {"keyword":"alpha","symbols":[{"style":[],"symbol":"α"},{"style":["bf"],"symbol":"𝛂"},{"style":["it"],"symbol":"𝛼"},{"style":["bf","it"],"symbol":"𝜶"},{"style":["sf","bf"],"symbol":"𝝰"},{"style":["sf","bf","it"],"symbol":"𝞪"}]} +, {"keyword":"aleph","symbols":[{"style":[],"symbol":"ℵ"}]} +, {"keyword":"a","symbols":[{"style":["bf"],"symbol":"𝐚"},{"style":["it"],"symbol":"𝑎"},{"style":["bf","it"],"symbol":"𝒂"},{"style":["scr"],"symbol":"𝒶"},{"style":["cal"],"symbol":"𝓪"},{"style":["frak"],"symbol":"𝔞"},{"style":["bb"],"symbol":"𝕒"},{"style":["bf","frak"],"symbol":"𝖆"},{"style":["sf"],"symbol":"𝖺"},{"style":["sf","bf"],"symbol":"𝗮"},{"style":["sf","it"],"symbol":"𝘢"},{"style":["sf","bf","it"],"symbol":"𝙖"},{"style":["tt"],"symbol":"𝚊"}]} +, {"keyword":"_x","symbols":[{"style":[],"symbol":"ₓ"}]} +, {"keyword":"_v","symbols":[{"style":[],"symbol":"ᵥ"}]} +, {"keyword":"_u","symbols":[{"style":[],"symbol":"ᵤ"}]} +, {"keyword":"_t","symbols":[{"style":[],"symbol":"ₜ"}]} +, {"keyword":"_schwa","symbols":[{"style":[],"symbol":"ₔ"}]} +, {"keyword":"_s","symbols":[{"style":[],"symbol":"ₛ"}]} +, {"keyword":"_rho","symbols":[{"style":[],"symbol":"ᵨ"}]} +, {"keyword":"_r","symbols":[{"style":[],"symbol":"ᵣ"}]} +, {"keyword":"_q","symbols":[{"style":[],"symbol":" "}]} +, {"keyword":"_phi","symbols":[{"style":[],"symbol":"ᵩ"}]} +, {"keyword":"_p","symbols":[{"style":[],"symbol":"ₚ"}]} +, {"keyword":"_o","symbols":[{"style":[],"symbol":"ₒ"}]} +, {"keyword":"_n","symbols":[{"style":[],"symbol":"ₙ"}]} +, {"keyword":"_m","symbols":[{"style":[],"symbol":"ₘ"}]} +, {"keyword":"_l","symbols":[{"style":[],"symbol":"ₗ"}]} +, {"keyword":"_k","symbols":[{"style":[],"symbol":"ₖ"}]} +, {"keyword":"_j","symbols":[{"style":[],"symbol":"ⱼ"}]} +, {"keyword":"_i","symbols":[{"style":[],"symbol":"ᵢ"}]} +, {"keyword":"_h","symbols":[{"style":[],"symbol":"ₕ"}]} +, {"keyword":"_gamma","symbols":[{"style":[],"symbol":"ᵧ"}]} +, {"keyword":"_e","symbols":[{"style":[],"symbol":"ₑ"}]} +, {"keyword":"_chi","symbols":[{"style":[],"symbol":"ᵪ"}]} +, {"keyword":"_beta","symbols":[{"style":[],"symbol":"ᵦ"}]} +, {"keyword":"_a","symbols":[{"style":[],"symbol":"ₐ"}]} +, {"keyword":"_=","symbols":[{"style":[],"symbol":"₌"}]} +, {"keyword":"_9","symbols":[{"style":[],"symbol":"₉"}]} +, {"keyword":"_8","symbols":[{"style":[],"symbol":"₈"}]} +, {"keyword":"_7","symbols":[{"style":[],"symbol":"₇"}]} +, {"keyword":"_6","symbols":[{"style":[],"symbol":"₆"}]} +, {"keyword":"_5","symbols":[{"style":[],"symbol":"₅"}]} +, {"keyword":"_4","symbols":[{"style":[],"symbol":"₄"}]} +, {"keyword":"_3","symbols":[{"style":[],"symbol":"₃"}]} +, {"keyword":"_2","symbols":[{"style":[],"symbol":"₂"}]} +, {"keyword":"_1","symbols":[{"style":[],"symbol":"₁"}]} +, {"keyword":"_0","symbols":[{"style":[],"symbol":"₀"}]} +, {"keyword":"_-","symbols":[{"style":[],"symbol":"₋"}]} +, {"keyword":"_+","symbols":[{"style":[],"symbol":"₊"}]} +, {"keyword":"_)","symbols":[{"style":[],"symbol":"₎"}]} +, {"keyword":"_(","symbols":[{"style":[],"symbol":"₍"}]} +, {"keyword":"^z","symbols":[{"style":[],"symbol":"ᶻ"}]} +, {"keyword":"^y","symbols":[{"style":[],"symbol":"ʸ"}]} +, {"keyword":"^x","symbols":[{"style":[],"symbol":"ˣ"}]} +, {"keyword":"^w","symbols":[{"style":[],"symbol":"ʷ"}]} +, {"keyword":"^v","symbols":[{"style":[],"symbol":"ᵛ"}]} +, {"keyword":"^upsilon","symbols":[{"style":[],"symbol":"ᶹ"}]} +, {"keyword":"^u","symbols":[{"style":[],"symbol":"ᵘ"}]} +, {"keyword":"^theta","symbols":[{"style":[],"symbol":"ᶿ"}]} +, {"keyword":"^t","symbols":[{"style":[],"symbol":"ᵗ"}]} +, {"keyword":"^s","symbols":[{"style":[],"symbol":"ˢ"}]} +, {"keyword":"^r","symbols":[{"style":[],"symbol":"ʳ"}]} +, {"keyword":"^phi","symbols":[{"style":[],"symbol":"ᵠ"}]} +, {"keyword":"^p","symbols":[{"style":[],"symbol":"ᵖ"}]} +, {"keyword":"^o","symbols":[{"style":[],"symbol":"ᵒ"}]} +, {"keyword":"^n","symbols":[{"style":[],"symbol":"ⁿ"}]} +, {"keyword":"^m","symbols":[{"style":[],"symbol":"ᵐ"}]} +, {"keyword":"^l","symbols":[{"style":[],"symbol":"ˡ"}]} +, {"keyword":"^k","symbols":[{"style":[],"symbol":"ᵏ"}]} +, {"keyword":"^j","symbols":[{"style":[],"symbol":"ʲ"}]} +, {"keyword":"^iota","symbols":[{"style":[],"symbol":"ᶥ"}]} +, {"keyword":"^i","symbols":[{"style":[],"symbol":"ⁱ"}]} +, {"keyword":"^h","symbols":[{"style":[],"symbol":"ʰ"}]} +, {"keyword":"^gamma","symbols":[{"style":[],"symbol":"ᵞ"}]} +, {"keyword":"^g","symbols":[{"style":[],"symbol":"ᵍ"}]} +, {"keyword":"^f","symbols":[{"style":[],"symbol":"ᶠ"}]} +, {"keyword":"^epsilon","symbols":[{"style":[],"symbol":"ᵋ"}]} +, {"keyword":"^e","symbols":[{"style":[],"symbol":"ᵉ"}]} +, {"keyword":"^delta","symbols":[{"style":[],"symbol":"ᵟ"}]} +, {"keyword":"^d","symbols":[{"style":[],"symbol":"ᵈ"}]} +, {"keyword":"^chi","symbols":[{"style":[],"symbol":"ᵡ"}]} +, {"keyword":"^c","symbols":[{"style":[],"symbol":"ᶜ"}]} +, {"keyword":"^beta","symbols":[{"style":[],"symbol":"ᵝ"}]} +, {"keyword":"^b","symbols":[{"style":[],"symbol":"ᵇ"}]} +, {"keyword":"^a","symbols":[{"style":[],"symbol":"ᵃ"}]} +, {"keyword":"^W","symbols":[{"style":[],"symbol":"ᵂ"}]} +, {"keyword":"^V","symbols":[{"style":[],"symbol":"ⱽ"}]} +, {"keyword":"^U","symbols":[{"style":[],"symbol":"ᵁ"}]} +, {"keyword":"^T","symbols":[{"style":[],"symbol":"ᵀ"}]} +, {"keyword":"^R","symbols":[{"style":[],"symbol":"ᴿ"}]} +, {"keyword":"^P","symbols":[{"style":[],"symbol":"ᴾ"}]} +, {"keyword":"^O","symbols":[{"style":[],"symbol":"ᴼ"}]} +, {"keyword":"^N","symbols":[{"style":[],"symbol":"ᴺ"}]} +, {"keyword":"^M","symbols":[{"style":[],"symbol":"ᴹ"}]} +, {"keyword":"^L","symbols":[{"style":[],"symbol":"ᴸ"}]} +, {"keyword":"^K","symbols":[{"style":[],"symbol":"ᴷ"}]} +, {"keyword":"^J","symbols":[{"style":[],"symbol":"ᴶ"}]} +, {"keyword":"^I","symbols":[{"style":[],"symbol":"ᴵ"}]} +, {"keyword":"^H","symbols":[{"style":[],"symbol":"ᴴ"}]} +, {"keyword":"^G","symbols":[{"style":[],"symbol":"ᴳ"}]} +, {"keyword":"^E","symbols":[{"style":[],"symbol":"ᴱ"}]} +, {"keyword":"^D","symbols":[{"style":[],"symbol":"ᴰ"}]} +, {"keyword":"^B","symbols":[{"style":[],"symbol":"ᴮ"}]} +, {"keyword":"^A","symbols":[{"style":[],"symbol":"ᴬ"}]} +, {"keyword":"^=","symbols":[{"style":[],"symbol":"⁼"}]} +, {"keyword":"^9","symbols":[{"style":[],"symbol":"⁹"}]} +, {"keyword":"^8","symbols":[{"style":[],"symbol":"⁸"}]} +, {"keyword":"^7","symbols":[{"style":[],"symbol":"⁷"}]} +, {"keyword":"^6","symbols":[{"style":[],"symbol":"⁶"}]} +, {"keyword":"^5","symbols":[{"style":[],"symbol":"⁵"}]} +, {"keyword":"^4","symbols":[{"style":[],"symbol":"⁴"}]} +, {"keyword":"^3","symbols":[{"style":[],"symbol":"³"}]} +, {"keyword":"^2","symbols":[{"style":[],"symbol":"²"}]} +, {"keyword":"^1","symbols":[{"style":[],"symbol":"¹"}]} +, {"keyword":"^0","symbols":[{"style":[],"symbol":"⁰"}]} +, {"keyword":"^-","symbols":[{"style":[],"symbol":"⁻"}]} +, {"keyword":"^+","symbols":[{"style":[],"symbol":"⁺"}]} +, {"keyword":"^)","symbols":[{"style":[],"symbol":"⁾"}]} +, {"keyword":"^(","symbols":[{"style":[],"symbol":"⁽"}]} +, {"keyword":"]]","symbols":[{"style":[],"symbol":"⟧"}]} +, {"keyword":"[[","symbols":[{"style":[],"symbol":"⟦"}]} +, {"keyword":"Zeta","symbols":[{"style":[],"symbol":"Ζ"},{"style":["bf"],"symbol":"𝚭"},{"style":["it"],"symbol":"𝛧"},{"style":["bf","it"],"symbol":"𝜡"},{"style":["sf","bf"],"symbol":"𝝛"},{"style":["sf","bf","it"],"symbol":"𝞕"}]} +, {"keyword":"Z","symbols":[{"style":["bf"],"symbol":"𝐙"},{"style":["it"],"symbol":"𝑍"},{"style":["bf","it"],"symbol":"𝒁"},{"style":["scr"],"symbol":"𝒵"},{"style":["cal"],"symbol":"𝓩"},{"style":["frak"],"symbol":"ℨ"},{"style":["bb"],"symbol":"ℤ"},{"style":["bf","frak"],"symbol":"𝖅"},{"style":["sf"],"symbol":"𝖹"},{"style":["sf","bf"],"symbol":"𝗭"},{"style":["sf","it"],"symbol":"𝘡"},{"style":["sf","bf","it"],"symbol":"𝙕"},{"style":["tt"],"symbol":"𝚉"}]} +, {"keyword":"Y","symbols":[{"style":["bf"],"symbol":"𝐘"},{"style":["it"],"symbol":"𝑌"},{"style":["bf","it"],"symbol":"𝒀"},{"style":["scr"],"symbol":"𝒴"},{"style":["cal"],"symbol":"𝓨"},{"style":["frak"],"symbol":"𝔜"},{"style":["bb"],"symbol":"𝕐"},{"style":["bf","frak"],"symbol":"𝖄"},{"style":["sf"],"symbol":"𝖸"},{"style":["sf","bf"],"symbol":"𝗬"},{"style":["sf","it"],"symbol":"𝘠"},{"style":["sf","bf","it"],"symbol":"𝙔"},{"style":["tt"],"symbol":"𝚈"}]} +, {"keyword":"Xi","symbols":[{"style":[],"symbol":"Ξ"},{"style":["bf"],"symbol":"𝚵"},{"style":["it"],"symbol":"𝛯"},{"style":["bf","it"],"symbol":"𝜩"},{"style":["sf","bf"],"symbol":"𝝣"},{"style":["sf","bf","it"],"symbol":"𝞝"}]} +, {"keyword":"X","symbols":[{"style":["bf"],"symbol":"𝐗"},{"style":["it"],"symbol":"𝑋"},{"style":["bf","it"],"symbol":"𝑿"},{"style":["scr"],"symbol":"𝒳"},{"style":["cal"],"symbol":"𝓧"},{"style":["frak"],"symbol":"𝔛"},{"style":["bb"],"symbol":"𝕏"},{"style":["bf","frak"],"symbol":"𝖃"},{"style":["sf"],"symbol":"𝖷"},{"style":["sf","bf"],"symbol":"𝗫"},{"style":["sf","it"],"symbol":"𝘟"},{"style":["sf","bf","it"],"symbol":"𝙓"},{"style":["tt"],"symbol":"𝚇"}]} +, {"keyword":"W","symbols":[{"style":["bf"],"symbol":"𝐖"},{"style":["it"],"symbol":"𝑊"},{"style":["bf","it"],"symbol":"𝑾"},{"style":["scr"],"symbol":"𝒲"},{"style":["cal"],"symbol":"𝓦"},{"style":["frak"],"symbol":"𝔚"},{"style":["bb"],"symbol":"𝕎"},{"style":["bf","frak"],"symbol":"𝖂"},{"style":["sf"],"symbol":"𝖶"},{"style":["sf","bf"],"symbol":"𝗪"},{"style":["sf","it"],"symbol":"𝘞"},{"style":["sf","bf","it"],"symbol":"𝙒"},{"style":["tt"],"symbol":"𝚆"}]} +, {"keyword":"V","symbols":[{"style":["bf"],"symbol":"𝐕"},{"style":["it"],"symbol":"𝑉"},{"style":["bf","it"],"symbol":"𝑽"},{"style":["scr"],"symbol":"𝒱"},{"style":["cal"],"symbol":"𝓥"},{"style":["frak"],"symbol":"𝔙"},{"style":["bb"],"symbol":"𝕍"},{"style":["bf","frak"],"symbol":"𝖁"},{"style":["sf"],"symbol":"𝖵"},{"style":["sf","bf"],"symbol":"𝗩"},{"style":["sf","it"],"symbol":"𝘝"},{"style":["sf","bf","it"],"symbol":"𝙑"},{"style":["tt"],"symbol":"𝚅"}]} +, {"keyword":"Upsilon","symbols":[{"style":[],"symbol":"Υ"},{"style":["bf"],"symbol":"𝚼"},{"style":["it"],"symbol":"𝛶"},{"style":["bf","it"],"symbol":"𝜰"},{"style":["sf","bf"],"symbol":"𝝪"},{"style":["sf","bf","it"],"symbol":"𝞤"}]} +, {"keyword":"Updownarrow","symbols":[{"style":[],"symbol":"⇕"}]} +, {"keyword":"Uparrow","symbols":[{"style":[],"symbol":"⇑"}]} +, {"keyword":"U","symbols":[{"style":["bf"],"symbol":"𝐔"},{"style":["it"],"symbol":"𝑈"},{"style":["bf","it"],"symbol":"𝑼"},{"style":["scr"],"symbol":"𝒰"},{"style":["cal"],"symbol":"𝓤"},{"style":["frak"],"symbol":"𝔘"},{"style":["bb"],"symbol":"𝕌"},{"style":["bf","frak"],"symbol":"𝖀"},{"style":["sf"],"symbol":"𝖴"},{"style":["sf","bf"],"symbol":"𝗨"},{"style":["sf","it"],"symbol":"𝘜"},{"style":["sf","bf","it"],"symbol":"𝙐"},{"style":["tt"],"symbol":"𝚄"}]} +, {"keyword":"Theta","symbols":[{"style":[],"symbol":"Θ"},{"style":["bf"],"symbol":"𝚯"},{"style":["it"],"symbol":"𝛩"},{"style":["bf","it"],"symbol":"𝜣"},{"style":["sf","bf"],"symbol":"𝝝"},{"style":["sf","bf","it"],"symbol":"𝞗"}]} +, {"keyword":"Tau","symbols":[{"style":[],"symbol":"Τ"},{"style":["bf"],"symbol":"𝚻"},{"style":["it"],"symbol":"𝛵"},{"style":["bf","it"],"symbol":"𝜯"},{"style":["sf","bf"],"symbol":"𝝩"},{"style":["sf","bf","it"],"symbol":"𝞣"}]} +, {"keyword":"T","symbols":[{"style":["bf"],"symbol":"𝐓"},{"style":["it"],"symbol":"𝑇"},{"style":["bf","it"],"symbol":"𝑻"},{"style":["scr"],"symbol":"𝒯"},{"style":["cal"],"symbol":"𝓣"},{"style":["frak"],"symbol":"𝔗"},{"style":["bb"],"symbol":"𝕋"},{"style":["bf","frak"],"symbol":"𝕿"},{"style":["sf"],"symbol":"𝖳"},{"style":["sf","bf"],"symbol":"𝗧"},{"style":["sf","it"],"symbol":"𝘛"},{"style":["sf","bf","it"],"symbol":"𝙏"},{"style":["tt"],"symbol":"𝚃"}]} +, {"keyword":"Sigma","symbols":[{"style":[],"symbol":"Σ"},{"style":["bf"],"symbol":"𝚺"},{"style":["it"],"symbol":"𝛴"},{"style":["bf","it"],"symbol":"𝜮"},{"style":["sf","bf"],"symbol":"𝝨"},{"style":["sf","bf","it"],"symbol":"𝞢"}]} +, {"keyword":"S","symbols":[{"style":["bf"],"symbol":"𝐒"},{"style":["it"],"symbol":"𝑆"},{"style":["bf","it"],"symbol":"𝑺"},{"style":["scr"],"symbol":"𝒮"},{"style":["cal"],"symbol":"𝓢"},{"style":["frak"],"symbol":"𝔖"},{"style":["bb"],"symbol":"𝕊"},{"style":["bf","frak"],"symbol":"𝕾"},{"style":["sf"],"symbol":"𝖲"},{"style":["sf","bf"],"symbol":"𝗦"},{"style":["sf","it"],"symbol":"𝘚"},{"style":["sf","bf","it"],"symbol":"𝙎"},{"style":["tt"],"symbol":"𝚂"}]} +, {"keyword":"Rightarrow","symbols":[{"style":[],"symbol":"⇒"}]} +, {"keyword":"Rho","symbols":[{"style":[],"symbol":"Ρ"},{"style":["bf"],"symbol":"𝚸"},{"style":["it"],"symbol":"𝛲"},{"style":["bf","it"],"symbol":"𝜬"},{"style":["sf","bf"],"symbol":"𝝦"},{"style":["sf","bf","it"],"symbol":"𝞠"}]} +, {"keyword":"Re","symbols":[{"style":[],"symbol":"ℜ"}]} +, {"keyword":"R","symbols":[{"style":["bf"],"symbol":"𝐑"},{"style":["it"],"symbol":"𝑅"},{"style":["bf","it"],"symbol":"𝑹"},{"style":["scr"],"symbol":"ℛ"},{"style":["cal"],"symbol":"𝓡"},{"style":["frak"],"symbol":"ℜ"},{"style":["bb"],"symbol":"ℝ"},{"style":["bf","frak"],"symbol":"𝕽"},{"style":["sf"],"symbol":"𝖱"},{"style":["sf","bf"],"symbol":"𝗥"},{"style":["sf","it"],"symbol":"𝘙"},{"style":["sf","bf","it"],"symbol":"𝙍"},{"style":["tt"],"symbol":"𝚁"}]} +, {"keyword":"Q","symbols":[{"style":["bf"],"symbol":"𝐐"},{"style":["it"],"symbol":"𝑄"},{"style":["bf","it"],"symbol":"𝑸"},{"style":["scr"],"symbol":"𝒬"},{"style":["cal"],"symbol":"𝓠"},{"style":["frak"],"symbol":"𝔔"},{"style":["bb"],"symbol":"ℚ"},{"style":["bf","frak"],"symbol":"𝕼"},{"style":["sf"],"symbol":"𝖰"},{"style":["sf","bf"],"symbol":"𝗤"},{"style":["sf","it"],"symbol":"𝘘"},{"style":["sf","bf","it"],"symbol":"𝙌"},{"style":["tt"],"symbol":"𝚀"}]} +, {"keyword":"Psi","symbols":[{"style":[],"symbol":"Ψ"},{"style":["bf"],"symbol":"𝚿"},{"style":["it"],"symbol":"𝛹"},{"style":["bf","it"],"symbol":"𝜳"},{"style":["sf","bf"],"symbol":"𝝭"},{"style":["sf","bf","it"],"symbol":"𝞧"}]} +, {"keyword":"Pi","symbols":[{"style":[],"symbol":"Π"},{"style":["bf"],"symbol":"𝚷"},{"style":["it"],"symbol":"𝛱"},{"style":["bf","it"],"symbol":"𝜫"},{"style":["sf","bf"],"symbol":"𝝥"},{"style":["sf","bf","it"],"symbol":"𝞟"}]} +, {"keyword":"Phi","symbols":[{"style":[],"symbol":"Φ"},{"style":["bf"],"symbol":"𝚽"},{"style":["it"],"symbol":"𝛷"},{"style":["bf","it"],"symbol":"𝜱"},{"style":["sf","bf"],"symbol":"𝝫"},{"style":["sf","bf","it"],"symbol":"𝞥"}]} +, {"keyword":"P","symbols":[{"style":["bf"],"symbol":"𝐏"},{"style":["it"],"symbol":"𝑃"},{"style":["bf","it"],"symbol":"𝑷"},{"style":["scr"],"symbol":"𝒫"},{"style":["cal"],"symbol":"𝓟"},{"style":["frak"],"symbol":"𝔓"},{"style":["bb"],"symbol":"ℙ"},{"style":["bf","frak"],"symbol":"𝕻"},{"style":["sf"],"symbol":"𝖯"},{"style":["sf","bf"],"symbol":"𝗣"},{"style":["sf","it"],"symbol":"𝘗"},{"style":["sf","bf","it"],"symbol":"𝙋"},{"style":["tt"],"symbol":"𝙿"}]} +, {"keyword":"Omicron","symbols":[{"style":[],"symbol":"Ο"},{"style":["bf"],"symbol":"𝚶"},{"style":["it"],"symbol":"𝛰"},{"style":["bf","it"],"symbol":"𝜪"},{"style":["sf","bf"],"symbol":"𝝤"},{"style":["sf","bf","it"],"symbol":"𝞞"}]} +, {"keyword":"Omega","symbols":[{"style":[],"symbol":"Ω"},{"style":["bf"],"symbol":"𝛀"},{"style":["it"],"symbol":"𝛺"},{"style":["bf","it"],"symbol":"𝜴"},{"style":["sf","bf"],"symbol":"𝝮"},{"style":["sf","bf","it"],"symbol":"𝞨"}]} +, {"keyword":"O","symbols":[{"style":["bf"],"symbol":"𝐎"},{"style":["it"],"symbol":"𝑂"},{"style":["bf","it"],"symbol":"𝑶"},{"style":["scr"],"symbol":"𝒪"},{"style":["cal"],"symbol":"𝓞"},{"style":["frak"],"symbol":"𝔒"},{"style":["bb"],"symbol":"𝕆"},{"style":["bf","frak"],"symbol":"𝕺"},{"style":["sf"],"symbol":"𝖮"},{"style":["sf","bf"],"symbol":"𝗢"},{"style":["sf","it"],"symbol":"𝘖"},{"style":["sf","bf","it"],"symbol":"𝙊"},{"style":["tt"],"symbol":"𝙾"}]} +, {"keyword":"Nu","symbols":[{"style":[],"symbol":"Ν"},{"style":["bf"],"symbol":"𝚴"},{"style":["it"],"symbol":"𝛮"},{"style":["bf","it"],"symbol":"𝜨"},{"style":["sf","bf"],"symbol":"𝝢"},{"style":["sf","bf","it"],"symbol":"𝞜"}]} +, {"keyword":"N","symbols":[{"style":["bf"],"symbol":"𝐍"},{"style":["it"],"symbol":"𝑁"},{"style":["bf","it"],"symbol":"𝑵"},{"style":["scr"],"symbol":"𝒩"},{"style":["cal"],"symbol":"𝓝"},{"style":["frak"],"symbol":"𝔑"},{"style":["bb"],"symbol":"ℕ"},{"style":["bf","frak"],"symbol":"𝕹"},{"style":["sf"],"symbol":"𝖭"},{"style":["sf","bf"],"symbol":"𝗡"},{"style":["sf","it"],"symbol":"𝘕"},{"style":["sf","bf","it"],"symbol":"𝙉"},{"style":["tt"],"symbol":"𝙽"}]} +, {"keyword":"Mu","symbols":[{"style":[],"symbol":"Μ"},{"style":["bf"],"symbol":"𝚳"},{"style":["it"],"symbol":"𝛭"},{"style":["bf","it"],"symbol":"𝜧"},{"style":["sf","bf"],"symbol":"𝝡"},{"style":["sf","bf","it"],"symbol":"𝞛"}]} +, {"keyword":"M","symbols":[{"style":["bf"],"symbol":"𝐌"},{"style":["it"],"symbol":"𝑀"},{"style":["bf","it"],"symbol":"𝑴"},{"style":["scr"],"symbol":"ℳ"},{"style":["cal"],"symbol":"𝓜"},{"style":["frak"],"symbol":"𝔐"},{"style":["bb"],"symbol":"𝕄"},{"style":["bf","frak"],"symbol":"𝕸"},{"style":["sf"],"symbol":"𝖬"},{"style":["sf","bf"],"symbol":"𝗠"},{"style":["sf","it"],"symbol":"𝘔"},{"style":["sf","bf","it"],"symbol":"𝙈"},{"style":["tt"],"symbol":"𝙼"}]} +, {"keyword":"Leftarrow","symbols":[{"style":[],"symbol":"⇐"}]} +, {"keyword":"Lambda","symbols":[{"style":[],"symbol":"Λ"},{"style":["bf"],"symbol":"𝚲"},{"style":["it"],"symbol":"𝛬"},{"style":["bf","it"],"symbol":"𝜦"},{"style":["sf","bf"],"symbol":"𝝠"},{"style":["sf","bf","it"],"symbol":"𝞚"}]} +, {"keyword":"L","symbols":[{"style":["bf"],"symbol":"𝐋"},{"style":["it"],"symbol":"𝐿"},{"style":["bf","it"],"symbol":"𝑳"},{"style":["scr"],"symbol":"ℒ"},{"style":["cal"],"symbol":"𝓛"},{"style":["frak"],"symbol":"𝔏"},{"style":["bb"],"symbol":"𝕃"},{"style":["bf","frak"],"symbol":"𝕷"},{"style":["sf"],"symbol":"𝖫"},{"style":["sf","bf"],"symbol":"𝗟"},{"style":["sf","it"],"symbol":"𝘓"},{"style":["sf","bf","it"],"symbol":"𝙇"},{"style":["tt"],"symbol":"𝙻"}]} +, {"keyword":"Kappa","symbols":[{"style":[],"symbol":"Κ"},{"style":["bf"],"symbol":"𝚱"},{"style":["it"],"symbol":"𝛫"},{"style":["bf","it"],"symbol":"𝜥"},{"style":["sf","bf"],"symbol":"𝝟"},{"style":["sf","bf","it"],"symbol":"𝞙"}]} +, {"keyword":"K","symbols":[{"style":["bf"],"symbol":"𝐊"},{"style":["it"],"symbol":"𝐾"},{"style":["bf","it"],"symbol":"𝑲"},{"style":["scr"],"symbol":"𝒦"},{"style":["cal"],"symbol":"𝓚"},{"style":["frak"],"symbol":"𝔎"},{"style":["bb"],"symbol":"𝕂"},{"style":["bf","frak"],"symbol":"𝕶"},{"style":["sf"],"symbol":"𝖪"},{"style":["sf","bf"],"symbol":"𝗞"},{"style":["sf","it"],"symbol":"𝘒"},{"style":["sf","bf","it"],"symbol":"𝙆"},{"style":["tt"],"symbol":"𝙺"}]} +, {"keyword":"J","symbols":[{"style":["bf"],"symbol":"𝐉"},{"style":["it"],"symbol":"𝐽"},{"style":["bf","it"],"symbol":"𝑱"},{"style":["scr"],"symbol":"𝒥"},{"style":["cal"],"symbol":"𝓙"},{"style":["frak"],"symbol":"𝔍"},{"style":["bb"],"symbol":"𝕁"},{"style":["bf","frak"],"symbol":"𝕵"},{"style":["sf"],"symbol":"𝖩"},{"style":["sf","bf"],"symbol":"𝗝"},{"style":["sf","it"],"symbol":"𝘑"},{"style":["sf","bf","it"],"symbol":"𝙅"},{"style":["tt"],"symbol":"𝙹"}]} +, {"keyword":"Iota","symbols":[{"style":[],"symbol":"Ι"},{"style":["bf"],"symbol":"𝚰"},{"style":["it"],"symbol":"𝛪"},{"style":["bf","it"],"symbol":"𝜤"},{"style":["sf","bf"],"symbol":"𝝞"},{"style":["sf","bf","it"],"symbol":"𝞘"}]} +, {"keyword":"Im","symbols":[{"style":[],"symbol":"ℑ"}]} +, {"keyword":"I","symbols":[{"style":["bf"],"symbol":"𝐈"},{"style":["it"],"symbol":"𝐼"},{"style":["bf","it"],"symbol":"𝑰"},{"style":["scr"],"symbol":"ℐ"},{"style":["cal"],"symbol":"𝓘"},{"style":["frak"],"symbol":"ℑ"},{"style":["bb"],"symbol":"𝕀"},{"style":["bf","frak"],"symbol":"𝕴"},{"style":["sf"],"symbol":"𝖨"},{"style":["sf","bf"],"symbol":"𝗜"},{"style":["sf","it"],"symbol":"𝘐"},{"style":["sf","bf","it"],"symbol":"𝙄"},{"style":["tt"],"symbol":"𝙸"}]} +, {"keyword":"H","symbols":[{"style":["bf"],"symbol":"𝐇"},{"style":["it"],"symbol":"𝐻"},{"style":["bf","it"],"symbol":"𝑯"},{"style":["scr"],"symbol":"ℋ"},{"style":["cal"],"symbol":"𝓗"},{"style":["frak"],"symbol":"ℌ"},{"style":["bb"],"symbol":"ℍ"},{"style":["bf","frak"],"symbol":"𝕳"},{"style":["sf"],"symbol":"𝖧"},{"style":["sf","bf"],"symbol":"𝗛"},{"style":["sf","it"],"symbol":"𝘏"},{"style":["sf","bf","it"],"symbol":"𝙃"},{"style":["tt"],"symbol":"𝙷"}]} +, {"keyword":"Gammma","symbols":[{"style":[],"symbol":"Γ"},{"style":["bf"],"symbol":"𝚪"},{"style":["it"],"symbol":"𝛤"},{"style":["bf","it"],"symbol":"𝜞"},{"style":["sf","bf"],"symbol":"𝝘"},{"style":["sf","bf","it"],"symbol":"𝞒"}]} +, {"keyword":"G","symbols":[{"style":["bf"],"symbol":"𝐆"},{"style":["it"],"symbol":"𝐺"},{"style":["bf","it"],"symbol":"𝑮"},{"style":["scr"],"symbol":"𝒢"},{"style":["cal"],"symbol":"𝓖"},{"style":["frak"],"symbol":"𝔊"},{"style":["bb"],"symbol":"𝔾"},{"style":["bf","frak"],"symbol":"𝕲"},{"style":["sf"],"symbol":"𝖦"},{"style":["sf","bf"],"symbol":"𝗚"},{"style":["sf","it"],"symbol":"𝘎"},{"style":["sf","bf","it"],"symbol":"𝙂"},{"style":["tt"],"symbol":"𝙶"}]} +, {"keyword":"F","symbols":[{"style":["bf"],"symbol":"𝐅"},{"style":["it"],"symbol":"𝐹"},{"style":["bf","it"],"symbol":"𝑭"},{"style":["scr"],"symbol":"ℱ"},{"style":["cal"],"symbol":"𝓕"},{"style":["frak"],"symbol":"𝔉"},{"style":["bb"],"symbol":"𝔽"},{"style":["bf","frak"],"symbol":"𝕱"},{"style":["sf"],"symbol":"𝖥"},{"style":["sf","bf"],"symbol":"𝗙"},{"style":["sf","it"],"symbol":"𝘍"},{"style":["sf","bf","it"],"symbol":"𝙁"},{"style":["tt"],"symbol":"𝙵"}]} +, {"keyword":"Eta","symbols":[{"style":[],"symbol":"Η"},{"style":["bf"],"symbol":"𝚮"},{"style":["it"],"symbol":"𝛨"},{"style":["bf","it"],"symbol":"𝜢"},{"style":["sf","bf"],"symbol":"𝝜"},{"style":["sf","bf","it"],"symbol":"𝞖"}]} +, {"keyword":"Epsilon","symbols":[{"style":[],"symbol":"Ε"},{"style":["bf"],"symbol":"𝚬"},{"style":["it"],"symbol":"𝛦"},{"style":["bf","it"],"symbol":"𝜠"},{"style":["sf","bf"],"symbol":"𝝚"},{"style":["sf","bf","it"],"symbol":"𝞔"}]} +, {"keyword":"E","symbols":[{"style":["bf"],"symbol":"𝐄"},{"style":["it"],"symbol":"𝐸"},{"style":["bf","it"],"symbol":"𝑬"},{"style":["scr"],"symbol":"ℰ"},{"style":["cal"],"symbol":"𝓔"},{"style":["frak"],"symbol":"𝔈"},{"style":["bb"],"symbol":"𝔼"},{"style":["bf","frak"],"symbol":"𝕰"},{"style":["sf"],"symbol":"𝖤"},{"style":["sf","bf"],"symbol":"𝗘"},{"style":["sf","it"],"symbol":"𝘌"},{"style":["sf","bf","it"],"symbol":"𝙀"},{"style":["tt"],"symbol":"𝙴"}]} +, {"keyword":"Downarrow","symbols":[{"style":[],"symbol":"⇓"}]} +, {"keyword":"Digamma","symbols":[{"style":[],"symbol":"Ϝ"},{"style":["bf"],"symbol":"𝟊"}]} +, {"keyword":"Delta","symbols":[{"style":[],"symbol":"Δ"},{"style":["bf"],"symbol":"𝚫"},{"style":["it"],"symbol":"𝛥"},{"style":["bf","it"],"symbol":"𝜟"},{"style":["sf","bf"],"symbol":"𝝙"},{"style":["sf","bf","it"],"symbol":"𝞓"}]} +, {"keyword":"D","symbols":[{"style":["bf"],"symbol":"𝐃"},{"style":["it"],"symbol":"𝐷"},{"style":["bf","it"],"symbol":"𝑫"},{"style":["scr"],"symbol":"𝒟"},{"style":["cal"],"symbol":"𝓓"},{"style":["frak"],"symbol":"𝔇"},{"style":["bb"],"symbol":"𝔻"},{"style":["bf","frak"],"symbol":"𝕯"},{"style":["sf"],"symbol":"𝖣"},{"style":["sf","bf"],"symbol":"𝗗"},{"style":["sf","it"],"symbol":"𝘋"},{"style":["sf","bf","it"],"symbol":"𝘿"},{"style":["tt"],"symbol":"𝙳"}]} +, {"keyword":"Chi","symbols":[{"style":[],"symbol":"Χ"},{"style":["bf"],"symbol":"𝚾"},{"style":["it"],"symbol":"𝛸"},{"style":["bf","it"],"symbol":"𝜲"},{"style":["sf","bf"],"symbol":"𝝬"},{"style":["sf","bf","it"],"symbol":"𝞦"}]} +, {"keyword":"C","symbols":[{"style":["bf"],"symbol":"𝐂"},{"style":["it"],"symbol":"𝐶"},{"style":["bf","it"],"symbol":"𝑪"},{"style":["scr"],"symbol":"𝒞"},{"style":["cal"],"symbol":"𝓒"},{"style":["frak"],"symbol":"ℭ"},{"style":["bb"],"symbol":"ℂ"},{"style":["bf","frak"],"symbol":"𝕮"},{"style":["sf"],"symbol":"𝖢"},{"style":["sf","bf"],"symbol":"𝗖"},{"style":["sf","it"],"symbol":"𝘊"},{"style":["sf","bf","it"],"symbol":"𝘾"},{"style":["tt"],"symbol":"𝙲"}]} +, {"keyword":"Beta","symbols":[{"style":[],"symbol":"Β"},{"style":["bf"],"symbol":"𝚩"},{"style":["it"],"symbol":"𝛣"},{"style":["bf","it"],"symbol":"𝜝"},{"style":["sf","bf"],"symbol":"𝝗"},{"style":["sf","bf","it"],"symbol":"𝞑"}]} +, {"keyword":"B","symbols":[{"style":["bf"],"symbol":"𝐁"},{"style":["it"],"symbol":"𝐵"},{"style":["bf","it"],"symbol":"𝑩"},{"style":["scr"],"symbol":"ℬ"},{"style":["cal"],"symbol":"𝓑"},{"style":["frak"],"symbol":"𝔅"},{"style":["bb"],"symbol":"𝔹"},{"style":["bf","frak"],"symbol":"𝕭"},{"style":["sf"],"symbol":"𝖡"},{"style":["sf","bf"],"symbol":"𝗕"},{"style":["sf","it"],"symbol":"𝘉"},{"style":["sf","bf","it"],"symbol":"𝘽"},{"style":["tt"],"symbol":"𝙱"}]} +, {"keyword":"Alpha","symbols":[{"style":[],"symbol":"Α"},{"style":["bf"],"symbol":"𝚨"},{"style":["it"],"symbol":"𝛢"},{"style":["bf","it"],"symbol":"𝜜"},{"style":["sf","bf"],"symbol":"𝝖"},{"style":["sf","bf","it"],"symbol":"𝞐"}]} +, {"keyword":"A","symbols":[{"style":["bf"],"symbol":"𝐀"},{"style":["it"],"symbol":"𝐴"},{"style":["bf","it"],"symbol":"𝑨"},{"style":["scr"],"symbol":"𝒜"},{"style":["cal"],"symbol":"𝓐"},{"style":["frak"],"symbol":"𝔄"},{"style":["bb"],"symbol":"𝔸"},{"style":["bf","frak"],"symbol":"𝕬"},{"style":["sf"],"symbol":"𝖠"},{"style":["sf","bf"],"symbol":"𝗔"},{"style":["sf","it"],"symbol":"𝘈"},{"style":["sf","bf","it"],"symbol":"𝘼"},{"style":["tt"],"symbol":"𝙰"}]} +, {"keyword":">>","symbols":[{"style":[],"symbol":"⟫"}]} +, {"keyword":">","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"<<","symbols":[{"style":[],"symbol":"⟪"}]} +, {"keyword":"<","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"9","symbols":[{"style":["bf"],"symbol":"𝟗"},{"style":["bb"],"symbol":"𝟡"},{"style":["sf"],"symbol":"𝟫"},{"style":["sf","bf"],"symbol":"𝟵"},{"style":["tt"],"symbol":"𝟿"}]} +, {"keyword":"8","symbols":[{"style":["bf"],"symbol":"𝟖"},{"style":["bb"],"symbol":"𝟠"},{"style":["sf"],"symbol":"𝟪"},{"style":["sf","bf"],"symbol":"𝟴"},{"style":["tt"],"symbol":"𝟾"}]} +, {"keyword":"7","symbols":[{"style":["bf"],"symbol":"𝟕"},{"style":["bb"],"symbol":"𝟟"},{"style":["sf"],"symbol":"𝟩"},{"style":["sf","bf"],"symbol":"𝟳"},{"style":["tt"],"symbol":"𝟽"}]} +, {"keyword":"6","symbols":[{"style":["bf"],"symbol":"𝟔"},{"style":["bb"],"symbol":"𝟞"},{"style":["sf"],"symbol":"𝟨"},{"style":["sf","bf"],"symbol":"𝟲"},{"style":["tt"],"symbol":"𝟼"}]} +, {"keyword":"5","symbols":[{"style":["bf"],"symbol":"𝟓"},{"style":["bb"],"symbol":"𝟝"},{"style":["sf"],"symbol":"𝟧"},{"style":["sf","bf"],"symbol":"𝟱"},{"style":["tt"],"symbol":"𝟻"}]} +, {"keyword":"4","symbols":[{"style":["bf"],"symbol":"𝟒"},{"style":["bb"],"symbol":"𝟜"},{"style":["sf"],"symbol":"𝟦"},{"style":["sf","bf"],"symbol":"𝟰"},{"style":["tt"],"symbol":"𝟺"}]} +, {"keyword":"3","symbols":[{"style":["bf"],"symbol":"𝟑"},{"style":["bb"],"symbol":"𝟛"},{"style":["sf"],"symbol":"𝟥"},{"style":["sf","bf"],"symbol":"𝟯"},{"style":["tt"],"symbol":"𝟹"}]} +, {"keyword":"2","symbols":[{"style":["bf"],"symbol":"𝟐"},{"style":["bb"],"symbol":"𝟚"},{"style":["sf"],"symbol":"𝟤"},{"style":["sf","bf"],"symbol":"𝟮"},{"style":["tt"],"symbol":"𝟸"}]} +, {"keyword":"1","symbols":[{"style":["bf"],"symbol":"𝟏"},{"style":["bb"],"symbol":"𝟙"},{"style":["sf"],"symbol":"𝟣"},{"style":["sf","bf"],"symbol":"𝟭"},{"style":["tt"],"symbol":"𝟷"}]} +, {"keyword":"0","symbols":[{"style":["bf"],"symbol":"𝟎"},{"style":["bb"],"symbol":"𝟘"},{"style":["sf"],"symbol":"𝟢"},{"style":["sf","bf"],"symbol":"𝟬"},{"style":["tt"],"symbol":"𝟶"}]} +, {"keyword":")b","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"))","symbols":[{"style":[],"symbol":"⦆"}]} +, {"keyword":"(|","symbols":[{"style":[],"symbol":"⦇"}]} +, {"keyword":"(b","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"((","symbols":[{"style":[],"symbol":"⦅"}]} ] diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index e6939755..c01dfab1 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -1,7 +1,9 @@ +pub mod math_symbol_key; mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } +use math_symbol_key::*; pub use dict::UnicodeAnnotation; #[cfg(test)] @@ -12,8 +14,19 @@ mod tests { } #[test] - fn symbol_alpha() { - assert_eq!(crate::lookup_math_symbol("alpha"), Some("α")); + fn math_symbols() { + use crate::math_symbol_key::*; + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -35,9 +48,10 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { .map(|idx| crate::dict::HANJA_ENTRIES[idx].1) } -pub fn lookup_math_symbol(keyword: &str) -> Option<&'static str> { +pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { + let key = SymbolKey(keyword,style); crate::dict::MATH_SYMBOL_ENTRIES - .binary_search_by_key(&keyword, |(k, _)| *k) + .binary_search_by_key(&key, |(k, _)| *k) .ok() .map(|idx| crate::dict::MATH_SYMBOL_ENTRIES[idx].1) } diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs new file mode 100644 index 00000000..bb2bbad5 --- /dev/null +++ b/src/engine/dict/src/math_symbol_key.rs @@ -0,0 +1,24 @@ +use std::ops::BitOr; + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct Style(pub u8); + +impl BitOr for Style { + type Output = Style; + fn bitor(self, rhs: Style) -> Style { + Style(self.0 | rhs.0) + } +} + +pub const STYLE_NONE: Style = Style(0); +pub const STYLE_SF: Style = Style(1); +pub const STYLE_BF: Style = Style(2); +pub const STYLE_IT: Style = Style(4); +pub const STYLE_TT: Style = Style(8); +pub const STYLE_BB: Style = Style(16); +pub const STYLE_SCR: Style = Style(32); +pub const STYLE_CAL: Style = Style(64); +pub const STYLE_FRAK: Style = Style(128); + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct SymbolKey<'a>(pub &'a str, pub Style); From 8301fd4d82282fa1fcfd2f1b53b4c6c52ab5fb09 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:24:30 +0900 Subject: [PATCH 12/32] implement style parsing --- src/engine/backends/math/src/lib.rs | 86 +++++++++++++++++++++++++- src/engine/dict/src/math_symbol_key.rs | 8 ++- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 91918330..339c8d41 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -6,6 +6,26 @@ use kime_engine_backend::{ use kime_engine_backend_latin::{load_layout, LatinConfig}; use kime_engine_dict::math_symbol_key::*; +#[cfg(test)] +mod tests { + #[test] + fn test_parse_style() { + use kime_engine_dict::math_symbol_key::*; + + assert_eq!(crate::parse_style("sf"), STYLE_SF); + assert_eq!(crate::parse_style("bf"), STYLE_BF); + assert_eq!(crate::parse_style("it"), STYLE_IT); + assert_eq!(crate::parse_style("tt"), STYLE_TT); + assert_eq!(crate::parse_style("bb"), STYLE_BB); + assert_eq!(crate::parse_style("scr"), STYLE_SCR); + assert_eq!(crate::parse_style("cal"), STYLE_CAL); + assert_eq!(crate::parse_style("frak"), STYLE_FRAK); + assert_eq!(crate::parse_style("fruk"), STYLE_NONE); + assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + } +} + #[derive(Clone)] pub struct MathMode { math_mode: bool, @@ -23,6 +43,57 @@ impl MathMode { } } +fn take_str(s:&str, n: usize) -> &str { + if s.len() >= n { + &s[0..n] + } else { + s + } +} + +fn parse_style(style_str: &str) -> Style { + let mut buf: &str = style_str; + let mut style = STYLE_NONE; + + loop { + let style_new = match take_str(buf,2) { + "" => return style, + "sf" => {buf = &buf[2..]; STYLE_SF}, + "bf" => {buf = &buf[2..]; STYLE_BF}, + "it" => {buf = &buf[2..]; STYLE_IT}, + "tt" => {buf = &buf[2..]; STYLE_TT}, + "bb" => {buf = &buf[2..]; STYLE_BB}, + "sc" => { + if let "r" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_SCR + } else { + return STYLE_NONE; + } + }, + "ca" => { + if let "l" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_CAL + } else { + return STYLE_NONE; + } + }, + "fr" => { + if let "ak" = take_str(&buf[2..], 2) { + buf = &buf[4..]; + STYLE_FRAK + } else { + return STYLE_NONE; + } + }, + _ => return STYLE_NONE, + }; + + style |= style_new; + } +} + impl InputEngineMode for MathMode { fn press_key(&mut self, key: Key, commit_buf: &mut String) -> InputEngineModeResult { if key == Key::normal(KeyCode::Backslash) { @@ -59,9 +130,20 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { - commit_buf.push_str(symbol); + let mut iter = self.buf.split('.'); + if let Some(first) = iter.next() { + if let Some(second) = iter.next() { + let style = parse_style(first); + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&second, style) { + commit_buf.push_str(symbol); + } + } else { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + commit_buf.push_str(symbol); + } + } } + self.buf.clear(); self.math_mode = false; Continue(()) diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index bb2bbad5..42cbfba2 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,4 +1,4 @@ -use std::ops::BitOr; +use std::ops::{BitOr, BitOrAssign}; #[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] pub struct Style(pub u8); @@ -10,6 +10,12 @@ impl BitOr for Style { } } +impl BitOrAssign for Style { + fn bitor_assign(&mut self, rhs: Style) { + *self = *self | rhs; + } +} + pub const STYLE_NONE: Style = Style(0); pub const STYLE_SF: Style = Style(1); pub const STYLE_BF: Style = Style(2); From 5a687a694a1a00a9177d90342532e5300be040f2 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:07 +0900 Subject: [PATCH 13/32] fix fmt --- src/engine/backends/math/src/lib.rs | 35 ++++++++++++++++++-------- src/engine/dict/build.rs | 28 +++++++++++---------- src/engine/dict/src/lib.rs | 26 ++++++++++--------- src/engine/dict/src/math_symbol_key.rs | 4 +-- 4 files changed, 56 insertions(+), 37 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 339c8d41..ebe82d08 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -43,7 +43,7 @@ impl MathMode { } } -fn take_str(s:&str, n: usize) -> &str { +fn take_str(s: &str, n: usize) -> &str { if s.len() >= n { &s[0..n] } else { @@ -56,13 +56,28 @@ fn parse_style(style_str: &str) -> Style { let mut style = STYLE_NONE; loop { - let style_new = match take_str(buf,2) { + let style_new = match take_str(buf, 2) { "" => return style, - "sf" => {buf = &buf[2..]; STYLE_SF}, - "bf" => {buf = &buf[2..]; STYLE_BF}, - "it" => {buf = &buf[2..]; STYLE_IT}, - "tt" => {buf = &buf[2..]; STYLE_TT}, - "bb" => {buf = &buf[2..]; STYLE_BB}, + "sf" => { + buf = &buf[2..]; + STYLE_SF + } + "bf" => { + buf = &buf[2..]; + STYLE_BF + } + "it" => { + buf = &buf[2..]; + STYLE_IT + } + "tt" => { + buf = &buf[2..]; + STYLE_TT + } + "bb" => { + buf = &buf[2..]; + STYLE_BB + } "sc" => { if let "r" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -70,7 +85,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "ca" => { if let "l" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -78,7 +93,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "fr" => { if let "ak" = take_str(&buf[2..], 2) { buf = &buf[4..]; @@ -86,7 +101,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } _ => return STYLE_NONE, }; diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 2c726b89..cb25c626 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -52,17 +52,19 @@ impl<'de> Deserialize<'de> for Style { let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; let style = styles .into_iter() - .map(|s| Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, - _ => return Err(Error::custom("no matching style name")), - })) + .map(|s| { + Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + }) + }) .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } @@ -189,13 +191,13 @@ fn main() { let symbol_map_data = include_str!("data/symbol_map.json"); let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); - let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + let mut symbol_map: Vec<(SymbolKey, &str)> = Vec::new(); for key_sym_pair in &symbol_map_data { let keyword = &key_sym_pair.keyword; for sty_sym_pair in &key_sym_pair.symbols { let style = sty_sym_pair.style; let symbol = sty_sym_pair.symbol; - symbol_map.push((SymbolKey(keyword,style), symbol)); + symbol_map.push((SymbolKey(keyword, style), symbol)); } } symbol_map.sort_unstable_by_key(|pair| pair.0); diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index c01dfab1..fff36634 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -3,8 +3,8 @@ mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } -use math_symbol_key::*; pub use dict::UnicodeAnnotation; +use math_symbol_key::*; #[cfg(test)] mod tests { @@ -15,18 +15,20 @@ mod tests { #[test] fn math_symbols() { + use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -49,7 +51,7 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { } pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { - let key = SymbolKey(keyword,style); + let key = SymbolKey(keyword, style); crate::dict::MATH_SYMBOL_ENTRIES .binary_search_by_key(&key, |(k, _)| *k) .ok() diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 42cbfba2..c5e4d01e 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,6 +1,6 @@ use std::ops::{BitOr, BitOrAssign}; -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct Style(pub u8); impl BitOr for Style { @@ -26,5 +26,5 @@ pub const STYLE_SCR: Style = Style(32); pub const STYLE_CAL: Style = Style(64); pub const STYLE_FRAK: Style = Style(128); -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From 579202e4c76179551cd06c47b0406a1e316a3bd3 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:27 +0900 Subject: [PATCH 14/32] add style test --- src/engine/core/tests/math.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/engine/core/tests/math.rs b/src/engine/core/tests/math.rs index 644f34cc..4046fa76 100644 --- a/src/engine/core/tests/math.rs +++ b/src/engine/core/tests/math.rs @@ -54,3 +54,22 @@ fn backspace() { (Key::normal(Backspace), "", ""), ]) } + +#[test] +fn style() { + test_input(&[ + (MATH, "", ""), + (Key::normal(Backslash), "\\", ""), + (Key::normal(B), "\\b", ""), + (Key::normal(F), "\\bf", ""), + (Key::normal(I), "\\bfi", ""), + (Key::normal(T), "\\bfit", ""), + (Key::normal(Period), "\\bfit.", ""), + (Key::normal(A), "\\bfit.a", ""), + (Key::normal(L), "\\bfit.al", ""), + (Key::normal(P), "\\bfit.alp", ""), + (Key::normal(H), "\\bfit.alph", ""), + (Key::normal(A), "\\bfit.alpha", ""), + (Key::normal(Tab), "", "𝜶"), + ]) +} From 51aa6bf834e19999433c1930603e8f443a9311d4 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:00:10 +0900 Subject: [PATCH 15/32] fix fmt --- src/engine/dict/build.rs | 11 ++++++++--- src/engine/dict/src/lib.rs | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index cb25c626..ba21043b 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,9 +1,9 @@ #[path = "src/math_symbol_key.rs"] mod math_symbol_key; -use math_symbol_key::*; use itertools::Itertools; -use serde::{Deserialize,Deserializer}; +use math_symbol_key::*; +use serde::{Deserialize, Deserializer}; use std::{ collections::BTreeMap, env, @@ -202,7 +202,12 @@ fn main() { } symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); + writeln!( + out, + "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", + symbol_map + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index fff36634..ff9f7e27 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -23,7 +23,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!( + lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + Some("𝙍") + ); assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); From 17cc000906c5ad571753f596752d2efc69c659e4 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:02:59 +0900 Subject: [PATCH 16/32] fix fmt --- src/engine/dict/build.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index ba21043b..007d6ef8 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -206,8 +206,8 @@ fn main() { out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map - ) - .unwrap(); + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( From ec98b259bcc2624a4a11cae0054ed4a863d29650 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:47:36 +0900 Subject: [PATCH 17/32] use strip_prefix and impl Style --- src/engine/backends/math/src/lib.rs | 109 ++++++++++--------------- src/engine/dict/build.rs | 18 ++-- src/engine/dict/src/lib.rs | 20 ++--- src/engine/dict/src/math_symbol_key.rs | 20 +++-- 4 files changed, 71 insertions(+), 96 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index ebe82d08..c86e1f62 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -12,17 +12,17 @@ mod tests { fn test_parse_style() { use kime_engine_dict::math_symbol_key::*; - assert_eq!(crate::parse_style("sf"), STYLE_SF); - assert_eq!(crate::parse_style("bf"), STYLE_BF); - assert_eq!(crate::parse_style("it"), STYLE_IT); - assert_eq!(crate::parse_style("tt"), STYLE_TT); - assert_eq!(crate::parse_style("bb"), STYLE_BB); - assert_eq!(crate::parse_style("scr"), STYLE_SCR); - assert_eq!(crate::parse_style("cal"), STYLE_CAL); - assert_eq!(crate::parse_style("frak"), STYLE_FRAK); - assert_eq!(crate::parse_style("fruk"), STYLE_NONE); - assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); - assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("sf"), Style::SF); + assert_eq!(crate::parse_style("bf"), Style::BF); + assert_eq!(crate::parse_style("it"), Style::IT); + assert_eq!(crate::parse_style("tt"), Style::TT); + assert_eq!(crate::parse_style("bb"), Style::BB); + assert_eq!(crate::parse_style("scr"), Style::SCR); + assert_eq!(crate::parse_style("cal"), Style::CAL); + assert_eq!(crate::parse_style("frak"), Style::FRAK); + assert_eq!(crate::parse_style("fruk"), Style::NONE); + assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); + assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); } } @@ -43,66 +43,39 @@ impl MathMode { } } -fn take_str(s: &str, n: usize) -> &str { - if s.len() >= n { - &s[0..n] - } else { - s - } -} - fn parse_style(style_str: &str) -> Style { let mut buf: &str = style_str; - let mut style = STYLE_NONE; + let mut style = Style::NONE; loop { - let style_new = match take_str(buf, 2) { - "" => return style, - "sf" => { - buf = &buf[2..]; - STYLE_SF - } - "bf" => { - buf = &buf[2..]; - STYLE_BF - } - "it" => { - buf = &buf[2..]; - STYLE_IT - } - "tt" => { - buf = &buf[2..]; - STYLE_TT - } - "bb" => { - buf = &buf[2..]; - STYLE_BB - } - "sc" => { - if let "r" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_SCR - } else { - return STYLE_NONE; - } - } - "ca" => { - if let "l" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_CAL - } else { - return STYLE_NONE; - } - } - "fr" => { - if let "ak" = take_str(&buf[2..], 2) { - buf = &buf[4..]; - STYLE_FRAK - } else { - return STYLE_NONE; - } - } - _ => return STYLE_NONE, + let style_new = if buf == "" { + return style; + } else if let Some(_buf) = buf.strip_prefix("sf") { + buf = _buf; + Style::SF + } else if let Some(_buf) = buf.strip_prefix("bf") { + buf = _buf; + Style::BF + } else if let Some(_buf) = buf.strip_prefix("it") { + buf = _buf; + Style::IT + } else if let Some(_buf) = buf.strip_prefix("tt") { + buf = _buf; + Style::TT + } else if let Some(_buf) = buf.strip_prefix("bb") { + buf = _buf; + Style::BB + } else if let Some(_buf) = buf.strip_prefix("scr") { + buf = _buf; + Style::SCR + } else if let Some(_buf) = buf.strip_prefix("cal") { + buf = _buf; + Style::CAL + } else if let Some(_buf) = buf.strip_prefix("frak") { + buf = _buf; + Style::FRAK + } else { + return Style::NONE; }; style |= style_new; @@ -153,7 +126,7 @@ impl InputEngineMode for MathMode { commit_buf.push_str(symbol); } } else { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, Style::NONE) { commit_buf.push_str(symbol); } } diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 007d6ef8..9fc09976 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -54,18 +54,18 @@ impl<'de> Deserialize<'de> for Style { .into_iter() .map(|s| { Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, + "sf" => Style::SF, + "bf" => Style::BF, + "it" => Style::IT, + "tt" => Style::TT, + "bb" => Style::BB, + "scr" => Style::SCR, + "cal" => Style::CAL, + "frak" => Style::FRAK, _ => return Err(Error::custom("no matching style name")), }) }) - .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + .fold(Ok(Style::NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index ff9f7e27..614a6f79 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -18,20 +18,20 @@ mod tests { use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); assert_eq!( - lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), Some("𝙍") ); - assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("R", Style::TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", Style::BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", Style::SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", Style::CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", Style::FRAK), Some("ℜ")); } #[test] diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index c5e4d01e..39bf6546 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -16,15 +16,17 @@ impl BitOrAssign for Style { } } -pub const STYLE_NONE: Style = Style(0); -pub const STYLE_SF: Style = Style(1); -pub const STYLE_BF: Style = Style(2); -pub const STYLE_IT: Style = Style(4); -pub const STYLE_TT: Style = Style(8); -pub const STYLE_BB: Style = Style(16); -pub const STYLE_SCR: Style = Style(32); -pub const STYLE_CAL: Style = Style(64); -pub const STYLE_FRAK: Style = Style(128); +impl Style { + pub const NONE: Style = Style(0); + pub const SF: Style = Style(1<<0); + pub const BF: Style = Style(1<<1); + pub const IT: Style = Style(1<<2); + pub const TT: Style = Style(1<<3); + pub const BB: Style = Style(1<<4); + pub const SCR: Style = Style(1<<5); + pub const CAL: Style = Style(1<<6); + pub const FRAK: Style = Style(1<<7); +} #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From e0c8b06726dd19b1a7849fa7d4ae9b552a74e3ba Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:49:40 +0900 Subject: [PATCH 18/32] fix fmt --- src/engine/backends/math/src/lib.rs | 5 ++++- src/engine/dict/src/lib.rs | 5 ++++- src/engine/dict/src/math_symbol_key.rs | 16 ++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index c86e1f62..b888a1e2 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -22,7 +22,10 @@ mod tests { assert_eq!(crate::parse_style("frak"), Style::FRAK); assert_eq!(crate::parse_style("fruk"), Style::NONE); assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); - assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); + assert_eq!( + crate::parse_style("bfsfit"), + Style::SF | Style::BF | Style::IT + ); } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index 614a6f79..ba6e156c 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -21,7 +21,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); + assert_eq!( + lookup_math_symbol("alpha", Style::BF | Style::IT), + Some("𝜶") + ); assert_eq!( lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 39bf6546..51e4560c 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -18,14 +18,14 @@ impl BitOrAssign for Style { impl Style { pub const NONE: Style = Style(0); - pub const SF: Style = Style(1<<0); - pub const BF: Style = Style(1<<1); - pub const IT: Style = Style(1<<2); - pub const TT: Style = Style(1<<3); - pub const BB: Style = Style(1<<4); - pub const SCR: Style = Style(1<<5); - pub const CAL: Style = Style(1<<6); - pub const FRAK: Style = Style(1<<7); + pub const SF: Style = Style(1 << 0); + pub const BF: Style = Style(1 << 1); + pub const IT: Style = Style(1 << 2); + pub const TT: Style = Style(1 << 3); + pub const BB: Style = Style(1 << 4); + pub const SCR: Style = Style(1 << 5); + pub const CAL: Style = Style(1 << 6); + pub const FRAK: Style = Style(1 << 7); } #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] From 21bd7c01aa1f7d94f02962c2f722e0ce7afae6c8 Mon Sep 17 00:00:00 2001 From: damhiya Date: Fri, 19 Mar 2021 00:22:33 +0900 Subject: [PATCH 19/32] update CHANGELOG.md --- docs/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 40685a1f..252e8a94 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,8 @@ ### Improve +* Add font style specifier for math symbols + ## 2.0.1 ### Improve From 65805a317c2c555a0825795e5b1cce90feeb891f Mon Sep 17 00:00:00 2001 From: Riey Date: Fri, 19 Mar 2021 01:08:34 +0900 Subject: [PATCH 20/32] Let Esc exit math mode (#380) * Add test case * Fix switch hotkey condition Trigger switch category when category is same but mode is enabled * Update CHANGELOG --- docs/CHANGELOG.md | 2 ++ src/engine/core/src/lib.rs | 2 +- src/engine/core/tests/math.rs | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 40685a1f..0cc1aeee 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,8 @@ ### Improve +* Let Esc exit math mode [#379](https://github.com/Riey/kime/issues/379) + ## 2.0.1 ### Improve diff --git a/src/engine/core/src/lib.rs b/src/engine/core/src/lib.rs index 4229d27d..7673d100 100644 --- a/src/engine/core/src/lib.rs +++ b/src/engine/core/src/lib.rs @@ -97,7 +97,7 @@ impl InputEngine { let mut processed = false; match hotkey.behavior() { HotkeyBehavior::Switch(category) => { - if self.category() != category { + if self.category() != category || self.engine_impl.mode.is_some() { self.set_input_category(category); ret |= InputResult::LANGUAGE_CHANGED; processed = true; diff --git a/src/engine/core/tests/math.rs b/src/engine/core/tests/math.rs index 644f34cc..d0ab4cca 100644 --- a/src/engine/core/tests/math.rs +++ b/src/engine/core/tests/math.rs @@ -54,3 +54,13 @@ fn backspace() { (Key::normal(Backspace), "", ""), ]) } + +// issue #379 +#[test] +fn esc() { + test_input(&[ + (MATH, "", ""), + (Key::normal(Esc), "", "PASS"), + (Key::normal(Backslash), "", "\\"), + ]); +} From 99a7ec675f4d7b6e452b59fdf9d6b499e6915f88 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 19:02:43 +0900 Subject: [PATCH 21/32] add Style --- src/engine/backends/math/src/lib.rs | 3 +- src/engine/dict/build.rs | 59 +- src/engine/dict/data/symbol_map.json | 1650 +++++------------------- src/engine/dict/src/lib.rs | 22 +- src/engine/dict/src/math_symbol_key.rs | 24 + 5 files changed, 438 insertions(+), 1320 deletions(-) create mode 100644 src/engine/dict/src/math_symbol_key.rs diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 5130efac..91918330 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -4,6 +4,7 @@ use kime_engine_backend::{ Key, KeyCode, }; use kime_engine_backend_latin::{load_layout, LatinConfig}; +use kime_engine_dict::math_symbol_key::*; #[derive(Clone)] pub struct MathMode { @@ -58,7 +59,7 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { commit_buf.push_str(symbol); } self.buf.clear(); diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 82bf3d0e..2c726b89 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,5 +1,9 @@ +#[path = "src/math_symbol_key.rs"] +mod math_symbol_key; + +use math_symbol_key::*; use itertools::Itertools; -use serde::Deserialize; +use serde::{Deserialize,Deserializer}; use std::{ collections::BTreeMap, env, @@ -41,10 +45,39 @@ struct UnicodeEntry { tts: String, } +impl<'de> Deserialize<'de> for Style { + fn deserialize>(deserializer: D) -> Result { + use serde::de::Error; + + let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; + let style = styles + .into_iter() + .map(|s| Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + })) + .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + style + } +} + +#[derive(Deserialize)] +struct StySymPair<'a> { + style: Style, + symbol: &'a str, +} + #[derive(Deserialize)] struct KeySymPair<'a> { keyword: &'a str, - symbol: &'a str, + symbols: Vec>, } fn load_hanja_dict() -> BTreeMap> { @@ -133,6 +166,7 @@ fn main() { std::fs::File::create(PathBuf::from(env::var("OUT_DIR").unwrap()).join("dict.rs")).unwrap(), ); + writeln!(out, "use crate::math_symbol_key::*;").unwrap(); writeln!( out, "pub static HANJA_ENTRIES: &[(char, &[(char, &str)])] = &[", @@ -153,17 +187,20 @@ fn main() { writeln!(out, "];").unwrap(); - let symbol_map = include_str!("data/symbol_map.json"); - let mut symbol_map: Vec = serde_json::from_str(symbol_map).unwrap(); - symbol_map.sort_unstable_by_key(|pair| pair.keyword); - - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(&str, &str)] = &[").unwrap(); - - for pair in &symbol_map { - writeln!(out, "(\"{}\", \"{}\"),", pair.keyword, pair.symbol).unwrap(); + let symbol_map_data = include_str!("data/symbol_map.json"); + let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); + let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + for key_sym_pair in &symbol_map_data { + let keyword = &key_sym_pair.keyword; + for sty_sym_pair in &key_sym_pair.symbols { + let style = sty_sym_pair.style; + let symbol = sty_sym_pair.symbol; + symbol_map.push((SymbolKey(keyword,style), symbol)); + } } + symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "];").unwrap(); + writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/data/symbol_map.json b/src/engine/dict/data/symbol_map.json index 2d2aea7c..eb672026 100644 --- a/src/engine/dict/data/symbol_map.json +++ b/src/engine/dict/data/symbol_map.json @@ -1,1305 +1,347 @@ -[ {"keyword":"neg","symbol":"¬"} -, {"keyword":"leq","symbol":"≤"} -, {"keyword":"leqq","symbol":"≦"} -, {"keyword":"leqslant","symbol":"⩽"} -, {"keyword":"lesssim","symbol":"≲"} -, {"keyword":"lessapprox","symbol":"⪅"} -, {"keyword":"prec","symbol":"≺"} -, {"keyword":"preceq","symbol":"⪯"} -, {"keyword":"precsim","symbol":"≾"} -, {"keyword":"geq","symbol":"≥"} -, {"keyword":"geqq","symbol":"≧"} -, {"keyword":"geqslant","symbol":"⩾"} -, {"keyword":"gtrsim","symbol":"≳"} -, {"keyword":"gtrapprox","symbol":"⪆"} -, {"keyword":"succ","symbol":"≻"} -, {"keyword":"succeq","symbol":"⪰"} -, {"keyword":"succsim","symbol":"≿"} -, {"keyword":"nless","symbol":"≮"} -, {"keyword":"nleq","symbol":"≰"} -, {"keyword":"lneq","symbol":"⪇"} -, {"keyword":"lneqq","symbol":"≨"} -, {"keyword":"lnsim","symbol":"⋦"} -, {"keyword":"lnapprox","symbol":"⪉"} -, {"keyword":"nprec","symbol":"⊀"} -, {"keyword":"npreceq","symbol":"⪯̸"} -, {"keyword":"ngtr","symbol":"≯"} -, {"keyword":"ngeq","symbol":"≱"} -, {"keyword":"gneq","symbol":"⪈"} -, {"keyword":"gneqq","symbol":"≩"} -, {"keyword":"gnsim","symbol":"⋧"} -, {"keyword":"gnapprox","symbol":"⪊"} -, {"keyword":"nsucc","symbol":"⊁"} -, {"keyword":"nsucceq","symbol":"⪰̸"} -, {"keyword":"ll","symbol":"≪"} -, {"keyword":"lll","symbol":"⋘"} -, {"keyword":"gg","symbol":"≫"} -, {"keyword":"ggg","symbol":"⋙"} -, {"keyword":"lessgtr","symbol":"≶"} -, {"keyword":"lesseqgtr","symbol":"⋚"} -, {"keyword":"subset","symbol":"⊂"} -, {"keyword":"subseteq","symbol":"⊆"} -, {"keyword":"sqsubset","symbol":"⊏"} -, {"keyword":"sqsubseteq","symbol":"⊑"} -, {"keyword":"nsubset","symbol":"⊄"} -, {"keyword":"nsubseteq","symbol":"⊈"} -, {"keyword":"subsetneq","symbol":"⊊"} -, {"keyword":"supset","symbol":"⊃"} -, {"keyword":"supseteq","symbol":"⊇"} -, {"keyword":"sqsupset","symbol":"⊐"} -, {"keyword":"sqsupseteq","symbol":"⊒"} -, {"keyword":"nsupset","symbol":"⊅"} -, {"keyword":"nsupseteq","symbol":"⊉"} -, {"keyword":"supsetneq","symbol":"⊋"} -, {"keyword":"doteq","symbol":"≐"} -, {"keyword":"equiv","symbol":"≡"} -, {"keyword":"approx","symbol":"≈"} -, {"keyword":"cong","symbol":"≅"} -, {"keyword":"simeq","symbol":"≃"} -, {"keyword":"sim","symbol":"∼"} -, {"keyword":"propto","symbol":"∝"} -, {"keyword":"neq","symbol":"≠"} -, {"keyword":"nequiv","symbol":"≢"} -, {"keyword":"napprox","symbol":"≉"} -, {"keyword":"ncong","symbol":"≇"} -, {"keyword":"nsimeq","symbol":"≄"} -, {"keyword":"nsim","symbol":"≁"} -, {"keyword":"to","symbol":"→"} -, {"keyword":"rightarrow","symbol":"→"} -, {"keyword":"Rightarrow","symbol":"⇒"} -, {"keyword":"longrightarrow","symbol":"⟶"} -, {"keyword":"gets","symbol":"←"} -, {"keyword":"leftarrow","symbol":"←"} -, {"keyword":"Leftarrow","symbol":"⇐"} -, {"keyword":"longleftarrow","symbol":"⟵"} -, {"keyword":"mapsto","symbol":"↦"} -, {"keyword":"longmapsto","symbol":"⟼"} -, {"keyword":"uparrow","symbol":"↑"} -, {"keyword":"downaroow","symbol":"↓"} -, {"keyword":"updownarrow","symbol":"↕"} -, {"keyword":"Uparrow","symbol":"⇑"} -, {"keyword":"Downarrow","symbol":"⇓"} -, {"keyword":"Updownarrow","symbol":"⇕"} -, {"keyword":"partial","symbol":"∂"} -, {"keyword":"nabla","symbol":"∇"} -, {"keyword":"imath","symbol":"ı"} -, {"keyword":"jmath","symbol":"ȷ"} -, {"keyword":"ell","symbol":"ℓ"} -, {"keyword":"Re","symbol":"ℜ"} -, {"keyword":"Im","symbol":"ℑ"} -, {"keyword":"infty","symbol":"∞"} -, {"keyword":"wp","symbol":"℘"} -, {"keyword":"hbar","symbol":"ℏ"} -, {"keyword":"hslash","symbol":"ℏ"} -, {"keyword":"aleph","symbol":"ℵ"} -, {"keyword":"beth","symbol":"ℶ"} -, {"keyword":"gimel","symbol":"ℷ"} -, {"keyword":"langle","symbol":"⟨"} -, {"keyword":"rangle","symbol":"⟩"} -, {"keyword":"lfloor","symbol":"⌊"} -, {"keyword":"rfloor","symbol":"⌋"} -, {"keyword":"lceil","symbol":"⌈"} -, {"keyword":"rceil","symbol":"⌉"} -, {"keyword":"|","symbol":"‖"} -, {"keyword":"^0","symbol":"⁰"} -, {"keyword":"^1","symbol":"¹"} -, {"keyword":"^2","symbol":"²"} -, {"keyword":"^3","symbol":"³"} -, {"keyword":"^4","symbol":"⁴"} -, {"keyword":"^5","symbol":"⁵"} -, {"keyword":"^6","symbol":"⁶"} -, {"keyword":"^7","symbol":"⁷"} -, {"keyword":"^8","symbol":"⁸"} -, {"keyword":"^9","symbol":"⁹"} -, {"keyword":"^+","symbol":"⁺"} -, {"keyword":"^-","symbol":"⁻"} -, {"keyword":"^=","symbol":"⁼"} -, {"keyword":"^(","symbol":"⁽"} -, {"keyword":"^)","symbol":"⁾"} -, {"keyword":"^A","symbol":"ᴬ"} -, {"keyword":"^B","symbol":"ᴮ"} -, {"keyword":"^D","symbol":"ᴰ"} -, {"keyword":"^E","symbol":"ᴱ"} -, {"keyword":"^G","symbol":"ᴳ"} -, {"keyword":"^H","symbol":"ᴴ"} -, {"keyword":"^I","symbol":"ᴵ"} -, {"keyword":"^J","symbol":"ᴶ"} -, {"keyword":"^K","symbol":"ᴷ"} -, {"keyword":"^L","symbol":"ᴸ"} -, {"keyword":"^M","symbol":"ᴹ"} -, {"keyword":"^N","symbol":"ᴺ"} -, {"keyword":"^O","symbol":"ᴼ"} -, {"keyword":"^P","symbol":"ᴾ"} -, {"keyword":"^R","symbol":"ᴿ"} -, {"keyword":"^T","symbol":"ᵀ"} -, {"keyword":"^U","symbol":"ᵁ"} -, {"keyword":"^V","symbol":"ⱽ"} -, {"keyword":"^W","symbol":"ᵂ"} -, {"keyword":"^a","symbol":"ᵃ"} -, {"keyword":"^b","symbol":"ᵇ"} -, {"keyword":"^c","symbol":"ᶜ"} -, {"keyword":"^d","symbol":"ᵈ"} -, {"keyword":"^e","symbol":"ᵉ"} -, {"keyword":"^f","symbol":"ᶠ"} -, {"keyword":"^g","symbol":"ᵍ"} -, {"keyword":"^h","symbol":"ʰ"} -, {"keyword":"^i","symbol":"ⁱ"} -, {"keyword":"^j","symbol":"ʲ"} -, {"keyword":"^k","symbol":"ᵏ"} -, {"keyword":"^l","symbol":"ˡ"} -, {"keyword":"^m","symbol":"ᵐ"} -, {"keyword":"^n","symbol":"ⁿ"} -, {"keyword":"^o","symbol":"ᵒ"} -, {"keyword":"^p","symbol":"ᵖ"} -, {"keyword":"^r","symbol":"ʳ"} -, {"keyword":"^s","symbol":"ˢ"} -, {"keyword":"^t","symbol":"ᵗ"} -, {"keyword":"^u","symbol":"ᵘ"} -, {"keyword":"^v","symbol":"ᵛ"} -, {"keyword":"^w","symbol":"ʷ"} -, {"keyword":"^x","symbol":"ˣ"} -, {"keyword":"^y","symbol":"ʸ"} -, {"keyword":"^z","symbol":"ᶻ"} -, {"keyword":"^beta","symbol":"ᵝ"} -, {"keyword":"^gamma","symbol":"ᵞ"} -, {"keyword":"^delta","symbol":"ᵟ"} -, {"keyword":"^epsilon","symbol":"ᵋ"} -, {"keyword":"^theta","symbol":"ᶿ"} -, {"keyword":"^iota","symbol":"ᶥ"} -, {"keyword":"^upsilon","symbol":"ᶹ"} -, {"keyword":"^phi","symbol":"ᵠ"} -, {"keyword":"^chi","symbol":"ᵡ"} -, {"keyword":"_0","symbol":"₀"} -, {"keyword":"_1","symbol":"₁"} -, {"keyword":"_2","symbol":"₂"} -, {"keyword":"_3","symbol":"₃"} -, {"keyword":"_4","symbol":"₄"} -, {"keyword":"_5","symbol":"₅"} -, {"keyword":"_6","symbol":"₆"} -, {"keyword":"_7","symbol":"₇"} -, {"keyword":"_8","symbol":"₈"} -, {"keyword":"_9","symbol":"₉"} -, {"keyword":"_+","symbol":"₊"} -, {"keyword":"_-","symbol":"₋"} -, {"keyword":"_=","symbol":"₌"} -, {"keyword":"_(","symbol":"₍"} -, {"keyword":"_)","symbol":"₎"} -, {"keyword":"_a","symbol":"ₐ"} -, {"keyword":"_e","symbol":"ₑ"} -, {"keyword":"_h","symbol":"ₕ"} -, {"keyword":"_i","symbol":"ᵢ"} -, {"keyword":"_j","symbol":"ⱼ"} -, {"keyword":"_k","symbol":"ₖ"} -, {"keyword":"_l","symbol":"ₗ"} -, {"keyword":"_m","symbol":"ₘ"} -, {"keyword":"_n","symbol":"ₙ"} -, {"keyword":"_o","symbol":"ₒ"} -, {"keyword":"_p","symbol":"ₚ"} -, {"keyword":"_q","symbol":" "} -, {"keyword":"_r","symbol":"ᵣ"} -, {"keyword":"_s","symbol":"ₛ"} -, {"keyword":"_t","symbol":"ₜ"} -, {"keyword":"_u","symbol":"ᵤ"} -, {"keyword":"_v","symbol":"ᵥ"} -, {"keyword":"_x","symbol":"ₓ"} -, {"keyword":"_schwa","symbol":"ₔ"} -, {"keyword":"_beta","symbol":"ᵦ"} -, {"keyword":"_gamma","symbol":"ᵧ"} -, {"keyword":"_rho","symbol":"ᵨ"} -, {"keyword":"_phi","symbol":"ᵩ"} -, {"keyword":"_chi","symbol":"ᵪ"} -, {"keyword":"[[","symbol":"⟦"} -, {"keyword":"]]","symbol":"⟧"} -, {"keyword":"<","symbol":"⟨"} -, {"keyword":">","symbol":"⟩"} -, {"keyword":"<<","symbol":"⟪"} -, {"keyword":">>","symbol":"⟫"} -, {"keyword":"{{","symbol":"⦃"} -, {"keyword":"}}","symbol":"⦄"} -, {"keyword":"(|","symbol":"⦇"} -, {"keyword":"|)","symbol":"⦈"} -, {"keyword":"((","symbol":"⦅"} -, {"keyword":"))","symbol":"⦆"} -, {"keyword":"(b","symbol":"⟅"} -, {"keyword":")b","symbol":"⟆"} -, {"keyword":"lbag","symbol":"⟅"} -, {"keyword":"rbag","symbol":"⟆"} -, {"keyword":"Alpha","symbol":"Α"} -, {"keyword":"Beta","symbol":"Β"} -, {"keyword":"Gammma","symbol":"Γ"} -, {"keyword":"Delta","symbol":"Δ"} -, {"keyword":"Epsilon","symbol":"Ε"} -, {"keyword":"Zeta","symbol":"Ζ"} -, {"keyword":"Eta","symbol":"Η"} -, {"keyword":"Theta","symbol":"Θ"} -, {"keyword":"Iota","symbol":"Ι"} -, {"keyword":"Kappa","symbol":"Κ"} -, {"keyword":"Lambda","symbol":"Λ"} -, {"keyword":"Mu","symbol":"Μ"} -, {"keyword":"Nu","symbol":"Ν"} -, {"keyword":"Xi","symbol":"Ξ"} -, {"keyword":"Omicron","symbol":"Ο"} -, {"keyword":"Pi","symbol":"Π"} -, {"keyword":"Rho","symbol":"Ρ"} -, {"keyword":"Sigma","symbol":"΢"} -, {"keyword":"Tau","symbol":"Σ"} -, {"keyword":"Upsilon","symbol":"Τ"} -, {"keyword":"Phi","symbol":"Υ"} -, {"keyword":"Chi","symbol":"Φ"} -, {"keyword":"Psi","symbol":"Χ"} -, {"keyword":"Omega","symbol":"Ψ"} -, {"keyword":"alpha","symbol":"α"} -, {"keyword":"beta","symbol":"β"} -, {"keyword":"gamma","symbol":"γ"} -, {"keyword":"delta","symbol":"δ"} -, {"keyword":"varepsilon","symbol":"ε"} -, {"keyword":"zeta","symbol":"ζ"} -, {"keyword":"eta","symbol":"η"} -, {"keyword":"theta","symbol":"θ"} -, {"keyword":"iota","symbol":"ι"} -, {"keyword":"kappa","symbol":"κ"} -, {"keyword":"lambda","symbol":"λ"} -, {"keyword":"mu","symbol":"μ"} -, {"keyword":"nu","symbol":"ν"} -, {"keyword":"xi","symbol":"ξ"} -, {"keyword":"omicron","symbol":"ο"} -, {"keyword":"pi","symbol":"π"} -, {"keyword":"rho","symbol":"ρ"} -, {"keyword":"varsigma","symbol":"ς"} -, {"keyword":"sigma","symbol":"σ"} -, {"keyword":"tau","symbol":"τ"} -, {"keyword":"upsilon","symbol":"υ"} -, {"keyword":"varphi","symbol":"φ"} -, {"keyword":"chi","symbol":"χ"} -, {"keyword":"psi","symbol":"ψ"} -, {"keyword":"omega","symbol":"ω"} -, {"keyword":"vartheta","symbol":"ϑ"} -, {"keyword":"phi","symbol":"ϕ"} -, {"keyword":"varpi","symbol":"ϖ"} -, {"keyword":"Digamma","symbol":"Ϝ"} -, {"keyword":"digamma","symbol":"ϝ"} -, {"keyword":"varkappa","symbol":"ϰ"} -, {"keyword":"varrho","symbol":"ϱ"} -, {"keyword":"varTheta","symbol":"ϴ"} -, {"keyword":"epsilon","symbol":"ϵ"} -, {"keyword":"bfA","symbol":"𝐀"} -, {"keyword":"bfB","symbol":"𝐁"} -, {"keyword":"bfC","symbol":"𝐂"} -, {"keyword":"bfD","symbol":"𝐃"} -, {"keyword":"bfE","symbol":"𝐄"} -, {"keyword":"bfF","symbol":"𝐅"} -, {"keyword":"bfG","symbol":"𝐆"} -, {"keyword":"bfH","symbol":"𝐇"} -, {"keyword":"bfI","symbol":"𝐈"} -, {"keyword":"bfJ","symbol":"𝐉"} -, {"keyword":"bfK","symbol":"𝐊"} -, {"keyword":"bfL","symbol":"𝐋"} -, {"keyword":"bfM","symbol":"𝐌"} -, {"keyword":"bfN","symbol":"𝐍"} -, {"keyword":"bfO","symbol":"𝐎"} -, {"keyword":"bfP","symbol":"𝐏"} -, {"keyword":"bfQ","symbol":"𝐐"} -, {"keyword":"bfR","symbol":"𝐑"} -, {"keyword":"bfS","symbol":"𝐒"} -, {"keyword":"bfT","symbol":"𝐓"} -, {"keyword":"bfU","symbol":"𝐔"} -, {"keyword":"bfV","symbol":"𝐕"} -, {"keyword":"bfW","symbol":"𝐖"} -, {"keyword":"bfX","symbol":"𝐗"} -, {"keyword":"bfY","symbol":"𝐘"} -, {"keyword":"bfZ","symbol":"𝐙"} -, {"keyword":"bfa","symbol":"𝐚"} -, {"keyword":"bfb","symbol":"𝐛"} -, {"keyword":"bfc","symbol":"𝐜"} -, {"keyword":"bfd","symbol":"𝐝"} -, {"keyword":"bfe","symbol":"𝐞"} -, {"keyword":"bff","symbol":"𝐟"} -, {"keyword":"bfg","symbol":"𝐠"} -, {"keyword":"bfh","symbol":"𝐡"} -, {"keyword":"bfi","symbol":"𝐢"} -, {"keyword":"bfj","symbol":"𝐣"} -, {"keyword":"bfk","symbol":"𝐤"} -, {"keyword":"bfl","symbol":"𝐥"} -, {"keyword":"bfm","symbol":"𝐦"} -, {"keyword":"bfn","symbol":"𝐧"} -, {"keyword":"bfo","symbol":"𝐨"} -, {"keyword":"bfp","symbol":"𝐩"} -, {"keyword":"bfq","symbol":"𝐪"} -, {"keyword":"bfr","symbol":"𝐫"} -, {"keyword":"bfs","symbol":"𝐬"} -, {"keyword":"bft","symbol":"𝐭"} -, {"keyword":"bfu","symbol":"𝐮"} -, {"keyword":"bfv","symbol":"𝐯"} -, {"keyword":"bfw","symbol":"𝐰"} -, {"keyword":"bfx","symbol":"𝐱"} -, {"keyword":"bfy","symbol":"𝐲"} -, {"keyword":"bfz","symbol":"𝐳"} -, {"keyword":"itA","symbol":"𝐴"} -, {"keyword":"itB","symbol":"𝐵"} -, {"keyword":"itC","symbol":"𝐶"} -, {"keyword":"itD","symbol":"𝐷"} -, {"keyword":"itE","symbol":"𝐸"} -, {"keyword":"itF","symbol":"𝐹"} -, {"keyword":"itG","symbol":"𝐺"} -, {"keyword":"itH","symbol":"𝐻"} -, {"keyword":"itI","symbol":"𝐼"} -, {"keyword":"itJ","symbol":"𝐽"} -, {"keyword":"itK","symbol":"𝐾"} -, {"keyword":"itL","symbol":"𝐿"} -, {"keyword":"itM","symbol":"𝑀"} -, {"keyword":"itN","symbol":"𝑁"} -, {"keyword":"itO","symbol":"𝑂"} -, {"keyword":"itP","symbol":"𝑃"} -, {"keyword":"itQ","symbol":"𝑄"} -, {"keyword":"itR","symbol":"𝑅"} -, {"keyword":"itS","symbol":"𝑆"} -, {"keyword":"itT","symbol":"𝑇"} -, {"keyword":"itU","symbol":"𝑈"} -, {"keyword":"itV","symbol":"𝑉"} -, {"keyword":"itW","symbol":"𝑊"} -, {"keyword":"itX","symbol":"𝑋"} -, {"keyword":"itY","symbol":"𝑌"} -, {"keyword":"itZ","symbol":"𝑍"} -, {"keyword":"ita","symbol":"𝑎"} -, {"keyword":"itb","symbol":"𝑏"} -, {"keyword":"itc","symbol":"𝑐"} -, {"keyword":"itd","symbol":"𝑑"} -, {"keyword":"ite","symbol":"𝑒"} -, {"keyword":"itf","symbol":"𝑓"} -, {"keyword":"itg","symbol":"𝑔"} -, {"keyword":"ith","symbol":"𝑕"} -, {"keyword":"iti","symbol":"𝑖"} -, {"keyword":"itj","symbol":"𝑗"} -, {"keyword":"itk","symbol":"𝑘"} -, {"keyword":"itl","symbol":"𝑙"} -, {"keyword":"itm","symbol":"𝑚"} -, {"keyword":"itn","symbol":"𝑛"} -, {"keyword":"ito","symbol":"𝑜"} -, {"keyword":"itp","symbol":"𝑝"} -, {"keyword":"itq","symbol":"𝑞"} -, {"keyword":"itr","symbol":"𝑟"} -, {"keyword":"its","symbol":"𝑠"} -, {"keyword":"itt","symbol":"𝑡"} -, {"keyword":"itu","symbol":"𝑢"} -, {"keyword":"itv","symbol":"𝑣"} -, {"keyword":"itw","symbol":"𝑤"} -, {"keyword":"itx","symbol":"𝑥"} -, {"keyword":"ity","symbol":"𝑦"} -, {"keyword":"itz","symbol":"𝑧"} -, {"keyword":"bfitA","symbol":"𝑨"} -, {"keyword":"bfitB","symbol":"𝑩"} -, {"keyword":"bfitC","symbol":"𝑪"} -, {"keyword":"bfitD","symbol":"𝑫"} -, {"keyword":"bfitE","symbol":"𝑬"} -, {"keyword":"bfitF","symbol":"𝑭"} -, {"keyword":"bfitG","symbol":"𝑮"} -, {"keyword":"bfitH","symbol":"𝑯"} -, {"keyword":"bfitI","symbol":"𝑰"} -, {"keyword":"bfitJ","symbol":"𝑱"} -, {"keyword":"bfitK","symbol":"𝑲"} -, {"keyword":"bfitL","symbol":"𝑳"} -, {"keyword":"bfitM","symbol":"𝑴"} -, {"keyword":"bfitN","symbol":"𝑵"} -, {"keyword":"bfitO","symbol":"𝑶"} -, {"keyword":"bfitP","symbol":"𝑷"} -, {"keyword":"bfitQ","symbol":"𝑸"} -, {"keyword":"bfitR","symbol":"𝑹"} -, {"keyword":"bfitS","symbol":"𝑺"} -, {"keyword":"bfitT","symbol":"𝑻"} -, {"keyword":"bfitU","symbol":"𝑼"} -, {"keyword":"bfitV","symbol":"𝑽"} -, {"keyword":"bfitW","symbol":"𝑾"} -, {"keyword":"bfitX","symbol":"𝑿"} -, {"keyword":"bfitY","symbol":"𝒀"} -, {"keyword":"bfitZ","symbol":"𝒁"} -, {"keyword":"bfita","symbol":"𝒂"} -, {"keyword":"bfitb","symbol":"𝒃"} -, {"keyword":"bfitc","symbol":"𝒄"} -, {"keyword":"bfitd","symbol":"𝒅"} -, {"keyword":"bfite","symbol":"𝒆"} -, {"keyword":"bfitf","symbol":"𝒇"} -, {"keyword":"bfitg","symbol":"𝒈"} -, {"keyword":"bfith","symbol":"𝒉"} -, {"keyword":"bfiti","symbol":"𝒊"} -, {"keyword":"bfitj","symbol":"𝒋"} -, {"keyword":"bfitk","symbol":"𝒌"} -, {"keyword":"bfitl","symbol":"𝒍"} -, {"keyword":"bfitm","symbol":"𝒎"} -, {"keyword":"bfitn","symbol":"𝒏"} -, {"keyword":"bfito","symbol":"𝒐"} -, {"keyword":"bfitp","symbol":"𝒑"} -, {"keyword":"bfitq","symbol":"𝒒"} -, {"keyword":"bfitr","symbol":"𝒓"} -, {"keyword":"bfits","symbol":"𝒔"} -, {"keyword":"bfitt","symbol":"𝒕"} -, {"keyword":"bfitu","symbol":"𝒖"} -, {"keyword":"bfitv","symbol":"𝒗"} -, {"keyword":"bfitw","symbol":"𝒘"} -, {"keyword":"bfitx","symbol":"𝒙"} -, {"keyword":"bfity","symbol":"𝒚"} -, {"keyword":"bfitz","symbol":"𝒛"} -, {"keyword":"scrA","symbol":"𝒜"} -, {"keyword":"scrB","symbol":"ℬ"} -, {"keyword":"scrC","symbol":"𝒞"} -, {"keyword":"scrD","symbol":"𝒟"} -, {"keyword":"scrE","symbol":"ℰ"} -, {"keyword":"scrF","symbol":"ℱ"} -, {"keyword":"scrG","symbol":"𝒢"} -, {"keyword":"scrH","symbol":"ℋ"} -, {"keyword":"scrI","symbol":"ℐ"} -, {"keyword":"scrJ","symbol":"𝒥"} -, {"keyword":"scrK","symbol":"𝒦"} -, {"keyword":"scrL","symbol":"ℒ"} -, {"keyword":"scrM","symbol":"ℳ"} -, {"keyword":"scrN","symbol":"𝒩"} -, {"keyword":"scrO","symbol":"𝒪"} -, {"keyword":"scrP","symbol":"𝒫"} -, {"keyword":"scrQ","symbol":"𝒬"} -, {"keyword":"scrR","symbol":"ℛ"} -, {"keyword":"scrS","symbol":"𝒮"} -, {"keyword":"scrT","symbol":"𝒯"} -, {"keyword":"scrU","symbol":"𝒰"} -, {"keyword":"scrV","symbol":"𝒱"} -, {"keyword":"scrW","symbol":"𝒲"} -, {"keyword":"scrX","symbol":"𝒳"} -, {"keyword":"scrY","symbol":"𝒴"} -, {"keyword":"scrZ","symbol":"𝒵"} -, {"keyword":"scra","symbol":"𝒶"} -, {"keyword":"scrb","symbol":"𝒷"} -, {"keyword":"scrc","symbol":"𝒸"} -, {"keyword":"scrd","symbol":"𝒹"} -, {"keyword":"scre","symbol":"ℯ"} -, {"keyword":"scrf","symbol":"𝒻"} -, {"keyword":"scrg","symbol":"ℊ"} -, {"keyword":"scrh","symbol":"𝒽"} -, {"keyword":"scri","symbol":"𝒾"} -, {"keyword":"scrj","symbol":"𝒿"} -, {"keyword":"scrk","symbol":"𝓀"} -, {"keyword":"scrl","symbol":"𝓁"} -, {"keyword":"scrm","symbol":"𝓂"} -, {"keyword":"scrn","symbol":"𝓃"} -, {"keyword":"scro","symbol":"ℴ"} -, {"keyword":"scrp","symbol":"𝓅"} -, {"keyword":"scrq","symbol":"𝓆"} -, {"keyword":"scrr","symbol":"𝓇"} -, {"keyword":"scrs","symbol":"𝓈"} -, {"keyword":"scrt","symbol":"𝓉"} -, {"keyword":"scru","symbol":"𝓊"} -, {"keyword":"scrv","symbol":"𝓋"} -, {"keyword":"scrw","symbol":"𝓌"} -, {"keyword":"scrx","symbol":"𝓍"} -, {"keyword":"scry","symbol":"𝓎"} -, {"keyword":"scrz","symbol":"𝓏"} -, {"keyword":"calA","symbol":"𝓐"} -, {"keyword":"calB","symbol":"𝓑"} -, {"keyword":"calC","symbol":"𝓒"} -, {"keyword":"calD","symbol":"𝓓"} -, {"keyword":"calE","symbol":"𝓔"} -, {"keyword":"calF","symbol":"𝓕"} -, {"keyword":"calG","symbol":"𝓖"} -, {"keyword":"calH","symbol":"𝓗"} -, {"keyword":"calI","symbol":"𝓘"} -, {"keyword":"calJ","symbol":"𝓙"} -, {"keyword":"calK","symbol":"𝓚"} -, {"keyword":"calL","symbol":"𝓛"} -, {"keyword":"calM","symbol":"𝓜"} -, {"keyword":"calN","symbol":"𝓝"} -, {"keyword":"calO","symbol":"𝓞"} -, {"keyword":"calP","symbol":"𝓟"} -, {"keyword":"calQ","symbol":"𝓠"} -, {"keyword":"calR","symbol":"𝓡"} -, {"keyword":"calS","symbol":"𝓢"} -, {"keyword":"calT","symbol":"𝓣"} -, {"keyword":"calU","symbol":"𝓤"} -, {"keyword":"calV","symbol":"𝓥"} -, {"keyword":"calW","symbol":"𝓦"} -, {"keyword":"calX","symbol":"𝓧"} -, {"keyword":"calY","symbol":"𝓨"} -, {"keyword":"calZ","symbol":"𝓩"} -, {"keyword":"cala","symbol":"𝓪"} -, {"keyword":"calb","symbol":"𝓫"} -, {"keyword":"calc","symbol":"𝓬"} -, {"keyword":"cald","symbol":"𝓭"} -, {"keyword":"cale","symbol":"𝓮"} -, {"keyword":"calf","symbol":"𝓯"} -, {"keyword":"calg","symbol":"𝓰"} -, {"keyword":"calh","symbol":"𝓱"} -, {"keyword":"cali","symbol":"𝓲"} -, {"keyword":"calj","symbol":"𝓳"} -, {"keyword":"calk","symbol":"𝓴"} -, {"keyword":"call","symbol":"𝓵"} -, {"keyword":"calm","symbol":"𝓶"} -, {"keyword":"caln","symbol":"𝓷"} -, {"keyword":"calo","symbol":"𝓸"} -, {"keyword":"calp","symbol":"𝓹"} -, {"keyword":"calq","symbol":"𝓺"} -, {"keyword":"calr","symbol":"𝓻"} -, {"keyword":"cals","symbol":"𝓼"} -, {"keyword":"calt","symbol":"𝓽"} -, {"keyword":"calu","symbol":"𝓾"} -, {"keyword":"calv","symbol":"𝓿"} -, {"keyword":"calw","symbol":"𝔀"} -, {"keyword":"calx","symbol":"𝔁"} -, {"keyword":"caly","symbol":"𝔂"} -, {"keyword":"calz","symbol":"𝔃"} -, {"keyword":"frakA","symbol":"𝔄"} -, {"keyword":"frakB","symbol":"𝔅"} -, {"keyword":"frakC","symbol":"ℭ"} -, {"keyword":"frakD","symbol":"𝔇"} -, {"keyword":"frakE","symbol":"𝔈"} -, {"keyword":"frakF","symbol":"𝔉"} -, {"keyword":"frakG","symbol":"𝔊"} -, {"keyword":"frakH","symbol":"ℌ"} -, {"keyword":"frakI","symbol":"ℑ"} -, {"keyword":"frakJ","symbol":"𝔍"} -, {"keyword":"frakK","symbol":"𝔎"} -, {"keyword":"frakL","symbol":"𝔏"} -, {"keyword":"frakM","symbol":"𝔐"} -, {"keyword":"frakN","symbol":"𝔑"} -, {"keyword":"frakO","symbol":"𝔒"} -, {"keyword":"frakP","symbol":"𝔓"} -, {"keyword":"frakQ","symbol":"𝔔"} -, {"keyword":"frakR","symbol":"ℜ"} -, {"keyword":"frakS","symbol":"𝔖"} -, {"keyword":"frakT","symbol":"𝔗"} -, {"keyword":"frakU","symbol":"𝔘"} -, {"keyword":"frakV","symbol":"𝔙"} -, {"keyword":"frakW","symbol":"𝔚"} -, {"keyword":"frakX","symbol":"𝔛"} -, {"keyword":"frakY","symbol":"𝔜"} -, {"keyword":"frakZ","symbol":"ℨ"} -, {"keyword":"fraka","symbol":"𝔞"} -, {"keyword":"frakb","symbol":"𝔟"} -, {"keyword":"frakc","symbol":"𝔠"} -, {"keyword":"frakd","symbol":"𝔡"} -, {"keyword":"frake","symbol":"𝔢"} -, {"keyword":"frakf","symbol":"𝔣"} -, {"keyword":"frakg","symbol":"𝔤"} -, {"keyword":"frakh","symbol":"𝔥"} -, {"keyword":"fraki","symbol":"𝔦"} -, {"keyword":"frakj","symbol":"𝔧"} -, {"keyword":"frakk","symbol":"𝔨"} -, {"keyword":"frakl","symbol":"𝔩"} -, {"keyword":"frakm","symbol":"𝔪"} -, {"keyword":"frakn","symbol":"𝔫"} -, {"keyword":"frako","symbol":"𝔬"} -, {"keyword":"frakp","symbol":"𝔭"} -, {"keyword":"frakq","symbol":"𝔮"} -, {"keyword":"frakr","symbol":"𝔯"} -, {"keyword":"fraks","symbol":"𝔰"} -, {"keyword":"frakt","symbol":"𝔱"} -, {"keyword":"fraku","symbol":"𝔲"} -, {"keyword":"frakv","symbol":"𝔳"} -, {"keyword":"frakw","symbol":"𝔴"} -, {"keyword":"frakx","symbol":"𝔵"} -, {"keyword":"fraky","symbol":"𝔶"} -, {"keyword":"frakz","symbol":"𝔷"} -, {"keyword":"bbA","symbol":"𝔸"} -, {"keyword":"bbB","symbol":"𝔹"} -, {"keyword":"bbC","symbol":"ℂ"} -, {"keyword":"bbD","symbol":"𝔻"} -, {"keyword":"bbE","symbol":"𝔼"} -, {"keyword":"bbF","symbol":"𝔽"} -, {"keyword":"bbG","symbol":"𝔾"} -, {"keyword":"bbH","symbol":"ℍ"} -, {"keyword":"bbI","symbol":"𝕀"} -, {"keyword":"bbJ","symbol":"𝕁"} -, {"keyword":"bbK","symbol":"𝕂"} -, {"keyword":"bbL","symbol":"𝕃"} -, {"keyword":"bbM","symbol":"𝕄"} -, {"keyword":"bbN","symbol":"ℕ"} -, {"keyword":"bbO","symbol":"𝕆"} -, {"keyword":"bbP","symbol":"ℙ"} -, {"keyword":"bbQ","symbol":"ℚ"} -, {"keyword":"bbR","symbol":"ℝ"} -, {"keyword":"bbS","symbol":"𝕊"} -, {"keyword":"bbT","symbol":"𝕋"} -, {"keyword":"bbU","symbol":"𝕌"} -, {"keyword":"bbV","symbol":"𝕍"} -, {"keyword":"bbW","symbol":"𝕎"} -, {"keyword":"bbX","symbol":"𝕏"} -, {"keyword":"bbY","symbol":"𝕐"} -, {"keyword":"bbZ","symbol":"ℤ"} -, {"keyword":"bba","symbol":"𝕒"} -, {"keyword":"bbb","symbol":"𝕓"} -, {"keyword":"bbc","symbol":"𝕔"} -, {"keyword":"bbd","symbol":"𝕕"} -, {"keyword":"bbe","symbol":"𝕖"} -, {"keyword":"bbf","symbol":"𝕗"} -, {"keyword":"bbg","symbol":"𝕘"} -, {"keyword":"bbh","symbol":"𝕙"} -, {"keyword":"bbi","symbol":"𝕚"} -, {"keyword":"bbj","symbol":"𝕛"} -, {"keyword":"bbk","symbol":"𝕜"} -, {"keyword":"bbl","symbol":"𝕝"} -, {"keyword":"bbm","symbol":"𝕞"} -, {"keyword":"bbn","symbol":"𝕟"} -, {"keyword":"bbo","symbol":"𝕠"} -, {"keyword":"bbp","symbol":"𝕡"} -, {"keyword":"bbq","symbol":"𝕢"} -, {"keyword":"bbr","symbol":"𝕣"} -, {"keyword":"bbs","symbol":"𝕤"} -, {"keyword":"bbt","symbol":"𝕥"} -, {"keyword":"bbu","symbol":"𝕦"} -, {"keyword":"bbv","symbol":"𝕧"} -, {"keyword":"bbw","symbol":"𝕨"} -, {"keyword":"bbx","symbol":"𝕩"} -, {"keyword":"bby","symbol":"𝕪"} -, {"keyword":"bbz","symbol":"𝕫"} -, {"keyword":"bffrakA","symbol":"𝕬"} -, {"keyword":"bffrakB","symbol":"𝕭"} -, {"keyword":"bffrakC","symbol":"𝕮"} -, {"keyword":"bffrakD","symbol":"𝕯"} -, {"keyword":"bffrakE","symbol":"𝕰"} -, {"keyword":"bffrakF","symbol":"𝕱"} -, {"keyword":"bffrakG","symbol":"𝕲"} -, {"keyword":"bffrakH","symbol":"𝕳"} -, {"keyword":"bffrakI","symbol":"𝕴"} -, {"keyword":"bffrakJ","symbol":"𝕵"} -, {"keyword":"bffrakK","symbol":"𝕶"} -, {"keyword":"bffrakL","symbol":"𝕷"} -, {"keyword":"bffrakM","symbol":"𝕸"} -, {"keyword":"bffrakN","symbol":"𝕹"} -, {"keyword":"bffrakO","symbol":"𝕺"} -, {"keyword":"bffrakP","symbol":"𝕻"} -, {"keyword":"bffrakQ","symbol":"𝕼"} -, {"keyword":"bffrakR","symbol":"𝕽"} -, {"keyword":"bffrakS","symbol":"𝕾"} -, {"keyword":"bffrakT","symbol":"𝕿"} -, {"keyword":"bffrakU","symbol":"𝖀"} -, {"keyword":"bffrakV","symbol":"𝖁"} -, {"keyword":"bffrakW","symbol":"𝖂"} -, {"keyword":"bffrakX","symbol":"𝖃"} -, {"keyword":"bffrakY","symbol":"𝖄"} -, {"keyword":"bffrakZ","symbol":"𝖅"} -, {"keyword":"bffraka","symbol":"𝖆"} -, {"keyword":"bffrakb","symbol":"𝖇"} -, {"keyword":"bffrakc","symbol":"𝖈"} -, {"keyword":"bffrakd","symbol":"𝖉"} -, {"keyword":"bffrake","symbol":"𝖊"} -, {"keyword":"bffrakf","symbol":"𝖋"} -, {"keyword":"bffrakg","symbol":"𝖌"} -, {"keyword":"bffrakh","symbol":"𝖍"} -, {"keyword":"bffraki","symbol":"𝖎"} -, {"keyword":"bffrakj","symbol":"𝖏"} -, {"keyword":"bffrakk","symbol":"𝖐"} -, {"keyword":"bffrakl","symbol":"𝖑"} -, {"keyword":"bffrakm","symbol":"𝖒"} -, {"keyword":"bffrakn","symbol":"𝖓"} -, {"keyword":"bffrako","symbol":"𝖔"} -, {"keyword":"bffrakp","symbol":"𝖕"} -, {"keyword":"bffrakq","symbol":"𝖖"} -, {"keyword":"bffrakr","symbol":"𝖗"} -, {"keyword":"bffraks","symbol":"𝖘"} -, {"keyword":"bffrakt","symbol":"𝖙"} -, {"keyword":"bffraku","symbol":"𝖚"} -, {"keyword":"bffrakv","symbol":"𝖛"} -, {"keyword":"bffrakw","symbol":"𝖜"} -, {"keyword":"bffrakx","symbol":"𝖝"} -, {"keyword":"bffraky","symbol":"𝖞"} -, {"keyword":"bffrakz","symbol":"𝖟"} -, {"keyword":"sansA","symbol":"𝖠"} -, {"keyword":"sansB","symbol":"𝖡"} -, {"keyword":"sansC","symbol":"𝖢"} -, {"keyword":"sansD","symbol":"𝖣"} -, {"keyword":"sansE","symbol":"𝖤"} -, {"keyword":"sansF","symbol":"𝖥"} -, {"keyword":"sansG","symbol":"𝖦"} -, {"keyword":"sansH","symbol":"𝖧"} -, {"keyword":"sansI","symbol":"𝖨"} -, {"keyword":"sansJ","symbol":"𝖩"} -, {"keyword":"sansK","symbol":"𝖪"} -, {"keyword":"sansL","symbol":"𝖫"} -, {"keyword":"sansM","symbol":"𝖬"} -, {"keyword":"sansN","symbol":"𝖭"} -, {"keyword":"sansO","symbol":"𝖮"} -, {"keyword":"sansP","symbol":"𝖯"} -, {"keyword":"sansQ","symbol":"𝖰"} -, {"keyword":"sansR","symbol":"𝖱"} -, {"keyword":"sansS","symbol":"𝖲"} -, {"keyword":"sansT","symbol":"𝖳"} -, {"keyword":"sansU","symbol":"𝖴"} -, {"keyword":"sansV","symbol":"𝖵"} -, {"keyword":"sansW","symbol":"𝖶"} -, {"keyword":"sansX","symbol":"𝖷"} -, {"keyword":"sansY","symbol":"𝖸"} -, {"keyword":"sansZ","symbol":"𝖹"} -, {"keyword":"sansa","symbol":"𝖺"} -, {"keyword":"sansb","symbol":"𝖻"} -, {"keyword":"sansc","symbol":"𝖼"} -, {"keyword":"sansd","symbol":"𝖽"} -, {"keyword":"sanse","symbol":"𝖾"} -, {"keyword":"sansf","symbol":"𝖿"} -, {"keyword":"sansg","symbol":"𝗀"} -, {"keyword":"sansh","symbol":"𝗁"} -, {"keyword":"sansi","symbol":"𝗂"} -, {"keyword":"sansj","symbol":"𝗃"} -, {"keyword":"sansk","symbol":"𝗄"} -, {"keyword":"sansl","symbol":"𝗅"} -, {"keyword":"sansm","symbol":"𝗆"} -, {"keyword":"sansn","symbol":"𝗇"} -, {"keyword":"sanso","symbol":"𝗈"} -, {"keyword":"sansp","symbol":"𝗉"} -, {"keyword":"sansq","symbol":"𝗊"} -, {"keyword":"sansr","symbol":"𝗋"} -, {"keyword":"sanss","symbol":"𝗌"} -, {"keyword":"sanst","symbol":"𝗍"} -, {"keyword":"sansu","symbol":"𝗎"} -, {"keyword":"sansv","symbol":"𝗏"} -, {"keyword":"sansw","symbol":"𝗐"} -, {"keyword":"sansx","symbol":"𝗑"} -, {"keyword":"sansy","symbol":"𝗒"} -, {"keyword":"sansz","symbol":"𝗓"} -, {"keyword":"sansbfA","symbol":"𝗔"} -, {"keyword":"sansbfB","symbol":"𝗕"} -, {"keyword":"sansbfC","symbol":"𝗖"} -, {"keyword":"sansbfD","symbol":"𝗗"} -, {"keyword":"sansbfE","symbol":"𝗘"} -, {"keyword":"sansbfF","symbol":"𝗙"} -, {"keyword":"sansbfG","symbol":"𝗚"} -, {"keyword":"sansbfH","symbol":"𝗛"} -, {"keyword":"sansbfI","symbol":"𝗜"} -, {"keyword":"sansbfJ","symbol":"𝗝"} -, {"keyword":"sansbfK","symbol":"𝗞"} -, {"keyword":"sansbfL","symbol":"𝗟"} -, {"keyword":"sansbfM","symbol":"𝗠"} -, {"keyword":"sansbfN","symbol":"𝗡"} -, {"keyword":"sansbfO","symbol":"𝗢"} -, {"keyword":"sansbfP","symbol":"𝗣"} -, {"keyword":"sansbfQ","symbol":"𝗤"} -, {"keyword":"sansbfR","symbol":"𝗥"} -, {"keyword":"sansbfS","symbol":"𝗦"} -, {"keyword":"sansbfT","symbol":"𝗧"} -, {"keyword":"sansbfU","symbol":"𝗨"} -, {"keyword":"sansbfV","symbol":"𝗩"} -, {"keyword":"sansbfW","symbol":"𝗪"} -, {"keyword":"sansbfX","symbol":"𝗫"} -, {"keyword":"sansbfY","symbol":"𝗬"} -, {"keyword":"sansbfZ","symbol":"𝗭"} -, {"keyword":"sansbfa","symbol":"𝗮"} -, {"keyword":"sansbfb","symbol":"𝗯"} -, {"keyword":"sansbfc","symbol":"𝗰"} -, {"keyword":"sansbfd","symbol":"𝗱"} -, {"keyword":"sansbfe","symbol":"𝗲"} -, {"keyword":"sansbff","symbol":"𝗳"} -, {"keyword":"sansbfg","symbol":"𝗴"} -, {"keyword":"sansbfh","symbol":"𝗵"} -, {"keyword":"sansbfi","symbol":"𝗶"} -, {"keyword":"sansbfj","symbol":"𝗷"} -, {"keyword":"sansbfk","symbol":"𝗸"} -, {"keyword":"sansbfl","symbol":"𝗹"} -, {"keyword":"sansbfm","symbol":"𝛺"} -, {"keyword":"sansbfn","symbol":"𝗻"} -, {"keyword":"sansbfo","symbol":"𝗼"} -, {"keyword":"sansbfp","symbol":"𝗽"} -, {"keyword":"sansbfq","symbol":"𝗾"} -, {"keyword":"sansbfr","symbol":"𝗿"} -, {"keyword":"sansbfs","symbol":"𝘀"} -, {"keyword":"sansbft","symbol":"𝘁"} -, {"keyword":"sansbfu","symbol":"𝘂"} -, {"keyword":"sansbfv","symbol":"𝘃"} -, {"keyword":"sansbfw","symbol":"𝘄"} -, {"keyword":"sansbfx","symbol":"𝘅"} -, {"keyword":"sansbfy","symbol":"𝘆"} -, {"keyword":"sansbfz","symbol":"𝘇"} -, {"keyword":"sansitA","symbol":"𝘈"} -, {"keyword":"sansitB","symbol":"𝘉"} -, {"keyword":"sansitC","symbol":"𝘊"} -, {"keyword":"sansitD","symbol":"𝘋"} -, {"keyword":"sansitE","symbol":"𝘌"} -, {"keyword":"sansitF","symbol":"𝘍"} -, {"keyword":"sansitG","symbol":"𝘎"} -, {"keyword":"sansitH","symbol":"𝘏"} -, {"keyword":"sansitI","symbol":"𝘐"} -, {"keyword":"sansitJ","symbol":"𝘑"} -, {"keyword":"sansitK","symbol":"𝘒"} -, {"keyword":"sansitL","symbol":"𝘓"} -, {"keyword":"sansitM","symbol":"𝘔"} -, {"keyword":"sansitN","symbol":"𝘕"} -, {"keyword":"sansitO","symbol":"𝘖"} -, {"keyword":"sansitP","symbol":"𝘗"} -, {"keyword":"sansitQ","symbol":"𝘘"} -, {"keyword":"sansitR","symbol":"𝘙"} -, {"keyword":"sansitS","symbol":"𝘚"} -, {"keyword":"sansitT","symbol":"𝘛"} -, {"keyword":"sansitU","symbol":"𝘜"} -, {"keyword":"sansitV","symbol":"𝘝"} -, {"keyword":"sansitW","symbol":"𝘞"} -, {"keyword":"sansitX","symbol":"𝘟"} -, {"keyword":"sansitY","symbol":"𝘠"} -, {"keyword":"sansitZ","symbol":"𝘡"} -, {"keyword":"sansita","symbol":"𝘢"} -, {"keyword":"sansitb","symbol":"𝘣"} -, {"keyword":"sansitc","symbol":"𝘤"} -, {"keyword":"sansitd","symbol":"𝘥"} -, {"keyword":"sansite","symbol":"𝘦"} -, {"keyword":"sansitf","symbol":"𝘧"} -, {"keyword":"sansitg","symbol":"𝘨"} -, {"keyword":"sansith","symbol":"𝘩"} -, {"keyword":"sansiti","symbol":"𝘪"} -, {"keyword":"sansitj","symbol":"𝘫"} -, {"keyword":"sansitk","symbol":"𝘬"} -, {"keyword":"sansitl","symbol":"𝘭"} -, {"keyword":"sansitm","symbol":"𝘮"} -, {"keyword":"sansitn","symbol":"𝘯"} -, {"keyword":"sansito","symbol":"𝘰"} -, {"keyword":"sansitp","symbol":"𝘱"} -, {"keyword":"sansitq","symbol":"𝘲"} -, {"keyword":"sansitr","symbol":"𝘳"} -, {"keyword":"sansits","symbol":"𝘴"} -, {"keyword":"sansitt","symbol":"𝘵"} -, {"keyword":"sansitu","symbol":"𝘶"} -, {"keyword":"sansitv","symbol":"𝘷"} -, {"keyword":"sansitw","symbol":"𝘸"} -, {"keyword":"sansitx","symbol":"𝘹"} -, {"keyword":"sansity","symbol":"𝘺"} -, {"keyword":"sansitz","symbol":"𝘻"} -, {"keyword":"sansbfitA","symbol":"𝘼"} -, {"keyword":"sansbfitB","symbol":"𝘽"} -, {"keyword":"sansbfitC","symbol":"𝘾"} -, {"keyword":"sansbfitD","symbol":"𝘿"} -, {"keyword":"sansbfitE","symbol":"𝙀"} -, {"keyword":"sansbfitF","symbol":"𝙁"} -, {"keyword":"sansbfitG","symbol":"𝙂"} -, {"keyword":"sansbfitH","symbol":"𝙃"} -, {"keyword":"sansbfitI","symbol":"𝙄"} -, {"keyword":"sansbfitJ","symbol":"𝙅"} -, {"keyword":"sansbfitK","symbol":"𝙆"} -, {"keyword":"sansbfitL","symbol":"𝙇"} -, {"keyword":"sansbfitM","symbol":"𝙈"} -, {"keyword":"sansbfitN","symbol":"𝙉"} -, {"keyword":"sansbfitO","symbol":"𝙊"} -, {"keyword":"sansbfitP","symbol":"𝙋"} -, {"keyword":"sansbfitQ","symbol":"𝙌"} -, {"keyword":"sansbfitR","symbol":"𝙍"} -, {"keyword":"sansbfitS","symbol":"𝙎"} -, {"keyword":"sansbfitT","symbol":"𝙏"} -, {"keyword":"sansbfitU","symbol":"𝙐"} -, {"keyword":"sansbfitV","symbol":"𝙑"} -, {"keyword":"sansbfitW","symbol":"𝙒"} -, {"keyword":"sansbfitX","symbol":"𝙓"} -, {"keyword":"sansbfitY","symbol":"𝙔"} -, {"keyword":"sansbfitZ","symbol":"𝙕"} -, {"keyword":"sansbfita","symbol":"𝙖"} -, {"keyword":"sansbfitb","symbol":"𝙗"} -, {"keyword":"sansbfitc","symbol":"𝙘"} -, {"keyword":"sansbfitd","symbol":"𝙙"} -, {"keyword":"sansbfite","symbol":"𝙚"} -, {"keyword":"sansbfitf","symbol":"𝙛"} -, {"keyword":"sansbfitg","symbol":"𝙜"} -, {"keyword":"sansbfith","symbol":"𝙝"} -, {"keyword":"sansbfiti","symbol":"𝙞"} -, {"keyword":"sansbfitj","symbol":"𝙟"} -, {"keyword":"sansbfitk","symbol":"𝙠"} -, {"keyword":"sansbfitl","symbol":"𝙡"} -, {"keyword":"sansbfitm","symbol":"𝙢"} -, {"keyword":"sansbfitn","symbol":"𝙣"} -, {"keyword":"sansbfito","symbol":"𝙤"} -, {"keyword":"sansbfitp","symbol":"𝙥"} -, {"keyword":"sansbfitq","symbol":"𝙦"} -, {"keyword":"sansbfitr","symbol":"𝙧"} -, {"keyword":"sansbfits","symbol":"𝙨"} -, {"keyword":"sansbfitt","symbol":"𝙩"} -, {"keyword":"sansbfitu","symbol":"𝙪"} -, {"keyword":"sansbfitv","symbol":"𝙫"} -, {"keyword":"sansbfitw","symbol":"𝙬"} -, {"keyword":"sansbfitx","symbol":"𝙭"} -, {"keyword":"sansbfity","symbol":"𝙮"} -, {"keyword":"sansbfitz","symbol":"𝙯"} -, {"keyword":"monoA","symbol":"𝙰"} -, {"keyword":"monoB","symbol":"𝙱"} -, {"keyword":"monoC","symbol":"𝙲"} -, {"keyword":"monoD","symbol":"𝙳"} -, {"keyword":"monoE","symbol":"𝙴"} -, {"keyword":"monoF","symbol":"𝙵"} -, {"keyword":"monoG","symbol":"𝙶"} -, {"keyword":"monoH","symbol":"𝙷"} -, {"keyword":"monoI","symbol":"𝙸"} -, {"keyword":"monoJ","symbol":"𝙹"} -, {"keyword":"monoK","symbol":"𝙺"} -, {"keyword":"monoL","symbol":"𝙻"} -, {"keyword":"monoM","symbol":"𝙼"} -, {"keyword":"monoN","symbol":"𝙽"} -, {"keyword":"monoO","symbol":"𝙾"} -, {"keyword":"monoP","symbol":"𝙿"} -, {"keyword":"monoQ","symbol":"𝚀"} -, {"keyword":"monoR","symbol":"𝚁"} -, {"keyword":"monoS","symbol":"𝚂"} -, {"keyword":"monoT","symbol":"𝚃"} -, {"keyword":"monoU","symbol":"𝚄"} -, {"keyword":"monoV","symbol":"𝚅"} -, {"keyword":"monoW","symbol":"𝚆"} -, {"keyword":"monoX","symbol":"𝚇"} -, {"keyword":"monoY","symbol":"𝚈"} -, {"keyword":"monoZ","symbol":"𝚉"} -, {"keyword":"monoa","symbol":"𝚊"} -, {"keyword":"monob","symbol":"𝚋"} -, {"keyword":"monoc","symbol":"𝚌"} -, {"keyword":"monod","symbol":"𝚍"} -, {"keyword":"monoe","symbol":"𝚎"} -, {"keyword":"monof","symbol":"𝚏"} -, {"keyword":"monog","symbol":"𝚐"} -, {"keyword":"monoh","symbol":"𝚑"} -, {"keyword":"monoi","symbol":"𝚒"} -, {"keyword":"monoj","symbol":"𝚓"} -, {"keyword":"monok","symbol":"𝚔"} -, {"keyword":"monol","symbol":"𝚕"} -, {"keyword":"monom","symbol":"𝚖"} -, {"keyword":"monon","symbol":"𝚗"} -, {"keyword":"monoo","symbol":"𝚘"} -, {"keyword":"monop","symbol":"𝚙"} -, {"keyword":"monoq","symbol":"𝚚"} -, {"keyword":"monor","symbol":"𝚛"} -, {"keyword":"monos","symbol":"𝚜"} -, {"keyword":"monot","symbol":"𝚝"} -, {"keyword":"monou","symbol":"𝚞"} -, {"keyword":"monov","symbol":"𝚟"} -, {"keyword":"monow","symbol":"𝚠"} -, {"keyword":"monox","symbol":"𝚡"} -, {"keyword":"monoy","symbol":"𝚢"} -, {"keyword":"monoz","symbol":"𝚣"} -, {"keyword":"itimath","symbol":"𝚤"} -, {"keyword":"itjmath","symbol":"𝚥"} -, {"keyword":"bfAlpha","symbol":"𝚨"} -, {"keyword":"bfBeta","symbol":"𝚩"} -, {"keyword":"bfGammma","symbol":"𝚪"} -, {"keyword":"bfDelta","symbol":"𝚫"} -, {"keyword":"bfEpsilon","symbol":"𝚬"} -, {"keyword":"bfZeta","symbol":"𝚭"} -, {"keyword":"bfEta","symbol":"𝚮"} -, {"keyword":"bfTheta","symbol":"𝚯"} -, {"keyword":"bfIota","symbol":"𝚰"} -, {"keyword":"bfKappa","symbol":"𝚱"} -, {"keyword":"bfLambda","symbol":"𝚲"} -, {"keyword":"bfMu","symbol":"𝚳"} -, {"keyword":"bfNu","symbol":"𝚴"} -, {"keyword":"bfXi","symbol":"𝚵"} -, {"keyword":"bfOmicron","symbol":"𝚶"} -, {"keyword":"bfPi","symbol":"𝚷"} -, {"keyword":"bfRho","symbol":"𝚸"} -, {"keyword":"bfvarTheta","symbol":"𝚹"} -, {"keyword":"bfSigma","symbol":"𝚺"} -, {"keyword":"bfTau","symbol":"𝚻"} -, {"keyword":"bfUpsilon","symbol":"𝚼"} -, {"keyword":"bfPhi","symbol":"𝚽"} -, {"keyword":"bfChi","symbol":"𝚾"} -, {"keyword":"bfPsi","symbol":"𝚿"} -, {"keyword":"bfOmega","symbol":"𝛀"} -, {"keyword":"bfnabla","symbol":"𝛁"} -, {"keyword":"bfalpha","symbol":"𝛂"} -, {"keyword":"bfbeta","symbol":"𝛃"} -, {"keyword":"bfgamma","symbol":"𝛄"} -, {"keyword":"bfdelta","symbol":"𝛅"} -, {"keyword":"bfvarepsilon","symbol":"𝛆"} -, {"keyword":"bfzeta","symbol":"𝛇"} -, {"keyword":"bfeta","symbol":"𝛈"} -, {"keyword":"bftheta","symbol":"𝛉"} -, {"keyword":"bfiota","symbol":"𝛊"} -, {"keyword":"bfkappa","symbol":"𝛋"} -, {"keyword":"bflambda","symbol":"𝛌"} -, {"keyword":"bfmu","symbol":"𝛍"} -, {"keyword":"bfnu","symbol":"𝛎"} -, {"keyword":"bfxi","symbol":"𝛏"} -, {"keyword":"bfomicron","symbol":"𝛐"} -, {"keyword":"bfpi","symbol":"𝛑"} -, {"keyword":"bfrho","symbol":"𝛒"} -, {"keyword":"bfvarsigma","symbol":"𝛓"} -, {"keyword":"bfsigma","symbol":"𝛔"} -, {"keyword":"bftau","symbol":"𝛕"} -, {"keyword":"bfupsilon","symbol":"𝛖"} -, {"keyword":"bfvarphi","symbol":"𝛗"} -, {"keyword":"bfchi","symbol":"𝛘"} -, {"keyword":"bfpsi","symbol":"𝛙"} -, {"keyword":"bfomega","symbol":"𝛚"} -, {"keyword":"bfpartial","symbol":"𝛛"} -, {"keyword":"bfepsilon","symbol":"𝛜"} -, {"keyword":"bfvartheta","symbol":"𝛝"} -, {"keyword":"bfvarkappa","symbol":"𝛞"} -, {"keyword":"bfphi","symbol":"𝛟"} -, {"keyword":"bfvarrho","symbol":"𝛠"} -, {"keyword":"bfvarpi","symbol":"𝛡"} -, {"keyword":"itAlpha","symbol":"𝛢"} -, {"keyword":"itBeta","symbol":"𝛣"} -, {"keyword":"itGammma","symbol":"𝛤"} -, {"keyword":"itDelta","symbol":"𝛥"} -, {"keyword":"itEpsilon","symbol":"𝛦"} -, {"keyword":"itZeta","symbol":"𝛧"} -, {"keyword":"itEta","symbol":"𝛨"} -, {"keyword":"itTheta","symbol":"𝛩"} -, {"keyword":"itIota","symbol":"𝛪"} -, {"keyword":"itKappa","symbol":"𝛫"} -, {"keyword":"itLambda","symbol":"𝛬"} -, {"keyword":"itMu","symbol":"𝛭"} -, {"keyword":"itNu","symbol":"𝛮"} -, {"keyword":"itXi","symbol":"𝛯"} -, {"keyword":"itOmicron","symbol":"𝛰"} -, {"keyword":"itPi","symbol":"𝛱"} -, {"keyword":"itRho","symbol":"𝛲"} -, {"keyword":"itvarTheta","symbol":"𝛳"} -, {"keyword":"itSigma","symbol":"𝛴"} -, {"keyword":"itTau","symbol":"𝛵"} -, {"keyword":"itUpsilon","symbol":"𝛶"} -, {"keyword":"itPhi","symbol":"𝛷"} -, {"keyword":"itChi","symbol":"𝛸"} -, {"keyword":"itPsi","symbol":"𝛹"} -, {"keyword":"itOmega","symbol":"𝛺"} -, {"keyword":"itnabla","symbol":"𝛻"} -, {"keyword":"italpha","symbol":"𝛼"} -, {"keyword":"itbeta","symbol":"𝛽"} -, {"keyword":"itgamma","symbol":"𝛾"} -, {"keyword":"itdelta","symbol":"𝛿"} -, {"keyword":"itvarepsilon","symbol":"𝜀"} -, {"keyword":"itzeta","symbol":"𝜁"} -, {"keyword":"iteta","symbol":"𝜂"} -, {"keyword":"ittheta","symbol":"𝜃"} -, {"keyword":"itiota","symbol":"𝜄"} -, {"keyword":"itkappa","symbol":"𝜅"} -, {"keyword":"itlambda","symbol":"𝜆"} -, {"keyword":"itmu","symbol":"𝜇"} -, {"keyword":"itnu","symbol":"𝜈"} -, {"keyword":"itxi","symbol":"𝜉"} -, {"keyword":"itomicron","symbol":"𝜊"} -, {"keyword":"itpi","symbol":"𝜋"} -, {"keyword":"itrho","symbol":"𝜌"} -, {"keyword":"itvarsigma","symbol":"𝜍"} -, {"keyword":"itsigma","symbol":"𝜎"} -, {"keyword":"ittau","symbol":"𝜏"} -, {"keyword":"itupsilon","symbol":"𝜐"} -, {"keyword":"itvarphi","symbol":"𝜑"} -, {"keyword":"itchi","symbol":"𝜒"} -, {"keyword":"itpsi","symbol":"𝜓"} -, {"keyword":"itomega","symbol":"𝜔"} -, {"keyword":"itpartial","symbol":"𝜕"} -, {"keyword":"itepsilon","symbol":"𝜖"} -, {"keyword":"itvartheta","symbol":"𝜗"} -, {"keyword":"itvarkappa","symbol":"𝜘"} -, {"keyword":"itphi","symbol":"𝜙"} -, {"keyword":"itvarrho","symbol":"𝜚"} -, {"keyword":"itvarpi","symbol":"𝜛"} -, {"keyword":"bfitAlpha","symbol":"𝜜"} -, {"keyword":"bfitBeta","symbol":"𝜝"} -, {"keyword":"bfitGammma","symbol":"𝜞"} -, {"keyword":"bfitDelta","symbol":"𝜟"} -, {"keyword":"bfitEpsilon","symbol":"𝜠"} -, {"keyword":"bfitZeta","symbol":"𝜡"} -, {"keyword":"bfitEta","symbol":"𝜢"} -, {"keyword":"bfitTheta","symbol":"𝜣"} -, {"keyword":"bfitIota","symbol":"𝜤"} -, {"keyword":"bfitKappa","symbol":"𝜥"} -, {"keyword":"bfitLambda","symbol":"𝜦"} -, {"keyword":"bfitMu","symbol":"𝜧"} -, {"keyword":"bfitNu","symbol":"𝜨"} -, {"keyword":"bfitXi","symbol":"𝜩"} -, {"keyword":"bfitOmicron","symbol":"𝜪"} -, {"keyword":"bfitPi","symbol":"𝜫"} -, {"keyword":"bfitRho","symbol":"𝜬"} -, {"keyword":"bfitvarTheta","symbol":"𝜭"} -, {"keyword":"bfitSigma","symbol":"𝜮"} -, {"keyword":"bfitTau","symbol":"𝜯"} -, {"keyword":"bfitUpsilon","symbol":"𝜰"} -, {"keyword":"bfitPhi","symbol":"𝜱"} -, {"keyword":"bfitChi","symbol":"𝜲"} -, {"keyword":"bfitPsi","symbol":"𝜳"} -, {"keyword":"bfitOmega","symbol":"𝜴"} -, {"keyword":"bfitnabla","symbol":"𝜵"} -, {"keyword":"bfitalpha","symbol":"𝜶"} -, {"keyword":"bfitbeta","symbol":"𝜷"} -, {"keyword":"bfitgamma","symbol":"𝜸"} -, {"keyword":"bfitdelta","symbol":"𝜹"} -, {"keyword":"bfitvarepsilon","symbol":"𝜺"} -, {"keyword":"bfitzeta","symbol":"𝜻"} -, {"keyword":"bfiteta","symbol":"𝜼"} -, {"keyword":"bfittheta","symbol":"𝜽"} -, {"keyword":"bfitiota","symbol":"𝜾"} -, {"keyword":"bfitkappa","symbol":"𝜿"} -, {"keyword":"bfitlambda","symbol":"𝝀"} -, {"keyword":"bfitmu","symbol":"𝝁"} -, {"keyword":"bfitnu","symbol":"𝝂"} -, {"keyword":"bfitxi","symbol":"𝝃"} -, {"keyword":"bfitomicron","symbol":"𝝄"} -, {"keyword":"bfitpi","symbol":"𝝅"} -, {"keyword":"bfitrho","symbol":"𝝆"} -, {"keyword":"bfitvarsigma","symbol":"𝝇"} -, {"keyword":"bfitsigma","symbol":"𝝈"} -, {"keyword":"bfittau","symbol":"𝝉"} -, {"keyword":"bfitupsilon","symbol":"𝝊"} -, {"keyword":"bfitvarphi","symbol":"𝝋"} -, {"keyword":"bfitchi","symbol":"𝝌"} -, {"keyword":"bfitpsi","symbol":"𝝍"} -, {"keyword":"bfitomega","symbol":"𝝎"} -, {"keyword":"bfitpartial","symbol":"𝝏"} -, {"keyword":"bfitepsilon","symbol":"𝝐"} -, {"keyword":"bfitvartheta","symbol":"𝝑"} -, {"keyword":"bfitvarkappa","symbol":"𝝒"} -, {"keyword":"bfitphi","symbol":"𝝓"} -, {"keyword":"bfitvarrho","symbol":"𝝔"} -, {"keyword":"bfitvarpi","symbol":"𝝕"} -, {"keyword":"sansbfAlpha","symbol":"𝝖"} -, {"keyword":"sansbfBeta","symbol":"𝝗"} -, {"keyword":"sansbfGammma","symbol":"𝝘"} -, {"keyword":"sansbfDelta","symbol":"𝝙"} -, {"keyword":"sansbfEpsilon","symbol":"𝝚"} -, {"keyword":"sansbfZeta","symbol":"𝝛"} -, {"keyword":"sansbfEta","symbol":"𝝜"} -, {"keyword":"sansbfTheta","symbol":"𝝝"} -, {"keyword":"sansbfIota","symbol":"𝝞"} -, {"keyword":"sansbfKappa","symbol":"𝝟"} -, {"keyword":"sansbfLambda","symbol":"𝝠"} -, {"keyword":"sansbfMu","symbol":"𝝡"} -, {"keyword":"sansbfNu","symbol":"𝝢"} -, {"keyword":"sansbfXi","symbol":"𝝣"} -, {"keyword":"sansbfOmicron","symbol":"𝝤"} -, {"keyword":"sansbfPi","symbol":"𝝥"} -, {"keyword":"sansbfRho","symbol":"𝝦"} -, {"keyword":"sansbfvarTheta","symbol":"𝝧"} -, {"keyword":"sansbfSigma","symbol":"𝝨"} -, {"keyword":"sansbfTau","symbol":"𝝩"} -, {"keyword":"sansbfUpsilon","symbol":"𝝪"} -, {"keyword":"sansbfPhi","symbol":"𝝫"} -, {"keyword":"sansbfChi","symbol":"𝝬"} -, {"keyword":"sansbfPsi","symbol":"𝝭"} -, {"keyword":"sansbfOmega","symbol":"𝝮"} -, {"keyword":"sansbfnabla","symbol":"𝝯"} -, {"keyword":"sansbfalpha","symbol":"𝝰"} -, {"keyword":"sansbfbeta","symbol":"𝝱"} -, {"keyword":"sansbfgamma","symbol":"𝝲"} -, {"keyword":"sansbfdelta","symbol":"𝝳"} -, {"keyword":"sansbfvarepsilon","symbol":"𝝴"} -, {"keyword":"sansbfzeta","symbol":"𝝵"} -, {"keyword":"sansbfeta","symbol":"𝝶"} -, {"keyword":"sansbftheta","symbol":"𝝷"} -, {"keyword":"sansbfiota","symbol":"𝝸"} -, {"keyword":"sansbfkappa","symbol":"𝝹"} -, {"keyword":"sansbflambda","symbol":"𝝺"} -, {"keyword":"sansbfmu","symbol":"𝝻"} -, {"keyword":"sansbfnu","symbol":"𝝼"} -, {"keyword":"sansbfxi","symbol":"𝝽"} -, {"keyword":"sansbfomicron","symbol":"𝝾"} -, {"keyword":"sansbfpi","symbol":"𝝿"} -, {"keyword":"sansbfrho","symbol":"𝞀"} -, {"keyword":"sansbfvarsigma","symbol":"𝞁"} -, {"keyword":"sansbfsigma","symbol":"𝞂"} -, {"keyword":"sansbftau","symbol":"𝞃"} -, {"keyword":"sansbfupsilon","symbol":"𝞄"} -, {"keyword":"sansbfvarphi","symbol":"𝞅"} -, {"keyword":"sansbfchi","symbol":"𝞆"} -, {"keyword":"sansbfpsi","symbol":"𝞇"} -, {"keyword":"sansbfomega","symbol":"𝞈"} -, {"keyword":"sansbfpartial","symbol":"𝞉"} -, {"keyword":"sansbfepsilon","symbol":"𝞊"} -, {"keyword":"sansbfvartheta","symbol":"𝞋"} -, {"keyword":"sansbfvarkappa","symbol":"𝞌"} -, {"keyword":"sansbfphi","symbol":"𝞍"} -, {"keyword":"sansbfvarrho","symbol":"𝞎"} -, {"keyword":"sansbfvarpi","symbol":"𝞏"} -, {"keyword":"sansbfitAlpha","symbol":"𝞐"} -, {"keyword":"sansbfitBeta","symbol":"𝞑"} -, {"keyword":"sansbfitGammma","symbol":"𝞒"} -, {"keyword":"sansbfitDelta","symbol":"𝞓"} -, {"keyword":"sansbfitEpsilon","symbol":"𝞔"} -, {"keyword":"sansbfitZeta","symbol":"𝞕"} -, {"keyword":"sansbfitEta","symbol":"𝞖"} -, {"keyword":"sansbfitTheta","symbol":"𝞗"} -, {"keyword":"sansbfitIota","symbol":"𝞘"} -, {"keyword":"sansbfitKappa","symbol":"𝞙"} -, {"keyword":"sansbfitLambda","symbol":"𝞚"} -, {"keyword":"sansbfitMu","symbol":"𝞛"} -, {"keyword":"sansbfitNu","symbol":"𝞜"} -, {"keyword":"sansbfitXi","symbol":"𝞝"} -, {"keyword":"sansbfitOmicron","symbol":"𝞞"} -, {"keyword":"sansbfitPi","symbol":"𝞟"} -, {"keyword":"sansbfitRho","symbol":"𝞠"} -, {"keyword":"sansbfitvarTheta","symbol":"𝞡"} -, {"keyword":"sansbfitSigma","symbol":"𝞢"} -, {"keyword":"sansbfitTau","symbol":"𝞣"} -, {"keyword":"sansbfitUpsilon","symbol":"𝞤"} -, {"keyword":"sansbfitPhi","symbol":"𝞥"} -, {"keyword":"sansbfitChi","symbol":"𝞦"} -, {"keyword":"sansbfitPsi","symbol":"𝞧"} -, {"keyword":"sansbfitOmega","symbol":"𝞨"} -, {"keyword":"sansbfitnabla","symbol":"𝞩"} -, {"keyword":"sansbfitalpha","symbol":"𝞪"} -, {"keyword":"sansbfitbeta","symbol":"𝞫"} -, {"keyword":"sansbfitgamma","symbol":"𝞬"} -, {"keyword":"sansbfitdelta","symbol":"𝞭"} -, {"keyword":"sansbfitvarepsilon","symbol":"𝞮"} -, {"keyword":"sansbfitzeta","symbol":"𝞯"} -, {"keyword":"sansbfiteta","symbol":"𝞰"} -, {"keyword":"sansbfittheta","symbol":"𝞱"} -, {"keyword":"sansbfitiota","symbol":"𝞲"} -, {"keyword":"sansbfitkappa","symbol":"𝞳"} -, {"keyword":"sansbfitlambda","symbol":"𝞴"} -, {"keyword":"sansbfitmu","symbol":"𝞵"} -, {"keyword":"sansbfitnu","symbol":"𝞶"} -, {"keyword":"sansbfitxi","symbol":"𝞷"} -, {"keyword":"sansbfitomicron","symbol":"𝞸"} -, {"keyword":"sansbfitpi","symbol":"𝞹"} -, {"keyword":"sansbfitrho","symbol":"𝞺"} -, {"keyword":"sansbfitvarsigma","symbol":"𝞻"} -, {"keyword":"sansbfitsigma","symbol":"𝞼"} -, {"keyword":"sansbfittau","symbol":"𝞽"} -, {"keyword":"sansbfitupsilon","symbol":"𝞾"} -, {"keyword":"sansbfitvarphi","symbol":"𝞿"} -, {"keyword":"sansbfitchi","symbol":"𝟀"} -, {"keyword":"sansbfitpsi","symbol":"𝟁"} -, {"keyword":"sansbfitomega","symbol":"𝟂"} -, {"keyword":"sansbfitpartial","symbol":"𝟃"} -, {"keyword":"sansbfitepsilon","symbol":"𝟄"} -, {"keyword":"sansbfitvartheta","symbol":"𝟅"} -, {"keyword":"sansbfitvarkappa","symbol":"𝟆"} -, {"keyword":"sansbfitphi","symbol":"𝟇"} -, {"keyword":"sansbfitvarrho","symbol":"𝟈"} -, {"keyword":"sansbfitvarpi","symbol":"𝟉"} -, {"keyword":"bfDigamma","symbol":"𝟊"} -, {"keyword":"bfdigamma","symbol":"𝟋"} -, {"keyword":"bf0","symbol":"𝟎"} -, {"keyword":"bf1","symbol":"𝟏"} -, {"keyword":"bf2","symbol":"𝟐"} -, {"keyword":"bf3","symbol":"𝟑"} -, {"keyword":"bf4","symbol":"𝟒"} -, {"keyword":"bf5","symbol":"𝟓"} -, {"keyword":"bf6","symbol":"𝟔"} -, {"keyword":"bf7","symbol":"𝟕"} -, {"keyword":"bf8","symbol":"𝟖"} -, {"keyword":"bf9","symbol":"𝟗"} -, {"keyword":"bb0","symbol":"𝟘"} -, {"keyword":"bb1","symbol":"𝟙"} -, {"keyword":"bb2","symbol":"𝟚"} -, {"keyword":"bb3","symbol":"𝟛"} -, {"keyword":"bb4","symbol":"𝟜"} -, {"keyword":"bb5","symbol":"𝟝"} -, {"keyword":"bb6","symbol":"𝟞"} -, {"keyword":"bb7","symbol":"𝟟"} -, {"keyword":"bb8","symbol":"𝟠"} -, {"keyword":"bb9","symbol":"𝟡"} -, {"keyword":"sans0","symbol":"𝟢"} -, {"keyword":"sans1","symbol":"𝟣"} -, {"keyword":"sans2","symbol":"𝟤"} -, {"keyword":"sans3","symbol":"𝟥"} -, {"keyword":"sans4","symbol":"𝟦"} -, {"keyword":"sans5","symbol":"𝟧"} -, {"keyword":"sans6","symbol":"𝟨"} -, {"keyword":"sans7","symbol":"𝟩"} -, {"keyword":"sans8","symbol":"𝟪"} -, {"keyword":"sans9","symbol":"𝟫"} -, {"keyword":"sansbf0","symbol":"𝟬"} -, {"keyword":"sansbf1","symbol":"𝟭"} -, {"keyword":"sansbf2","symbol":"𝟮"} -, {"keyword":"sansbf3","symbol":"𝟯"} -, {"keyword":"sansbf4","symbol":"𝟰"} -, {"keyword":"sansbf5","symbol":"𝟱"} -, {"keyword":"sansbf6","symbol":"𝟲"} -, {"keyword":"sansbf7","symbol":"𝟳"} -, {"keyword":"sansbf8","symbol":"𝟴"} -, {"keyword":"sansbf9","symbol":"𝟵"} -, {"keyword":"mono0","symbol":"𝟶"} -, {"keyword":"mono1","symbol":"𝟷"} -, {"keyword":"mono2","symbol":"𝟸"} -, {"keyword":"mono3","symbol":"𝟹"} -, {"keyword":"mono4","symbol":"𝟺"} -, {"keyword":"mono5","symbol":"𝟻"} -, {"keyword":"mono6","symbol":"𝟼"} -, {"keyword":"mono7","symbol":"𝟽"} -, {"keyword":"mono8","symbol":"𝟾"} -, {"keyword":"mono9","symbol":"𝟿"} +[ {"keyword":"}}","symbols":[{"style":[],"symbol":"⦄"}]} +, {"keyword":"|)","symbols":[{"style":[],"symbol":"⦈"}]} +, {"keyword":"|","symbols":[{"style":[],"symbol":"‖"}]} +, {"keyword":"{{","symbols":[{"style":[],"symbol":"⦃"}]} +, {"keyword":"zeta","symbols":[{"style":[],"symbol":"ζ"},{"style":["bf"],"symbol":"𝛇"},{"style":["it"],"symbol":"𝜁"},{"style":["bf","it"],"symbol":"𝜻"},{"style":["sf","bf"],"symbol":"𝝵"},{"style":["sf","bf","it"],"symbol":"𝞯"}]} +, {"keyword":"z","symbols":[{"style":["bf"],"symbol":"𝐳"},{"style":["it"],"symbol":"𝑧"},{"style":["bf","it"],"symbol":"𝒛"},{"style":["scr"],"symbol":"𝓏"},{"style":["cal"],"symbol":"𝔃"},{"style":["frak"],"symbol":"𝔷"},{"style":["bb"],"symbol":"𝕫"},{"style":["bf","frak"],"symbol":"𝖟"},{"style":["sf"],"symbol":"𝗓"},{"style":["sf","bf"],"symbol":"𝘇"},{"style":["sf","it"],"symbol":"𝘻"},{"style":["sf","bf","it"],"symbol":"𝙯"},{"style":["tt"],"symbol":"𝚣"}]} +, {"keyword":"y","symbols":[{"style":["bf"],"symbol":"𝐲"},{"style":["it"],"symbol":"𝑦"},{"style":["bf","it"],"symbol":"𝒚"},{"style":["scr"],"symbol":"𝓎"},{"style":["cal"],"symbol":"𝔂"},{"style":["frak"],"symbol":"𝔶"},{"style":["bb"],"symbol":"𝕪"},{"style":["bf","frak"],"symbol":"𝖞"},{"style":["sf"],"symbol":"𝗒"},{"style":["sf","bf"],"symbol":"𝘆"},{"style":["sf","it"],"symbol":"𝘺"},{"style":["sf","bf","it"],"symbol":"𝙮"},{"style":["tt"],"symbol":"𝚢"}]} +, {"keyword":"xi","symbols":[{"style":[],"symbol":"ξ"},{"style":["bf"],"symbol":"𝛏"},{"style":["it"],"symbol":"𝜉"},{"style":["bf","it"],"symbol":"𝝃"},{"style":["sf","bf"],"symbol":"𝝽"},{"style":["sf","bf","it"],"symbol":"𝞷"}]} +, {"keyword":"x","symbols":[{"style":["bf"],"symbol":"𝐱"},{"style":["it"],"symbol":"𝑥"},{"style":["bf","it"],"symbol":"𝒙"},{"style":["scr"],"symbol":"𝓍"},{"style":["cal"],"symbol":"𝔁"},{"style":["frak"],"symbol":"𝔵"},{"style":["bb"],"symbol":"𝕩"},{"style":["bf","frak"],"symbol":"𝖝"},{"style":["sf"],"symbol":"𝗑"},{"style":["sf","bf"],"symbol":"𝘅"},{"style":["sf","it"],"symbol":"𝘹"},{"style":["sf","bf","it"],"symbol":"𝙭"},{"style":["tt"],"symbol":"𝚡"}]} +, {"keyword":"wp","symbols":[{"style":[],"symbol":"℘"}]} +, {"keyword":"w","symbols":[{"style":["bf"],"symbol":"𝐰"},{"style":["it"],"symbol":"𝑤"},{"style":["bf","it"],"symbol":"𝒘"},{"style":["scr"],"symbol":"𝓌"},{"style":["cal"],"symbol":"𝔀"},{"style":["frak"],"symbol":"𝔴"},{"style":["bb"],"symbol":"𝕨"},{"style":["bf","frak"],"symbol":"𝖜"},{"style":["sf"],"symbol":"𝗐"},{"style":["sf","bf"],"symbol":"𝘄"},{"style":["sf","it"],"symbol":"𝘸"},{"style":["sf","bf","it"],"symbol":"𝙬"},{"style":["tt"],"symbol":"𝚠"}]} +, {"keyword":"vartheta","symbols":[{"style":[],"symbol":"ϑ"},{"style":["bf"],"symbol":"𝛝"},{"style":["it"],"symbol":"𝜗"},{"style":["bf","it"],"symbol":"𝝑"},{"style":["sf","bf"],"symbol":"𝞋"},{"style":["sf","bf","it"],"symbol":"𝟅"}]} +, {"keyword":"varsigma","symbols":[{"style":[],"symbol":"ς"},{"style":["bf"],"symbol":"𝛓"},{"style":["it"],"symbol":"𝜍"},{"style":["bf","it"],"symbol":"𝝇"},{"style":["sf","bf"],"symbol":"𝞁"},{"style":["sf","bf","it"],"symbol":"𝞻"}]} +, {"keyword":"varrho","symbols":[{"style":[],"symbol":"ϱ"},{"style":["bf"],"symbol":"𝛠"},{"style":["it"],"symbol":"𝜚"},{"style":["bf","it"],"symbol":"𝝔"},{"style":["sf","bf"],"symbol":"𝞎"},{"style":["sf","bf","it"],"symbol":"𝟈"}]} +, {"keyword":"varpi","symbols":[{"style":[],"symbol":"ϖ"},{"style":["bf"],"symbol":"𝛡"},{"style":["it"],"symbol":"𝜛"},{"style":["bf","it"],"symbol":"𝝕"},{"style":["sf","bf"],"symbol":"𝞏"},{"style":["sf","bf","it"],"symbol":"𝟉"}]} +, {"keyword":"varphi","symbols":[{"style":[],"symbol":"φ"},{"style":["bf"],"symbol":"𝛗"},{"style":["it"],"symbol":"𝜑"},{"style":["bf","it"],"symbol":"𝝋"},{"style":["sf","bf"],"symbol":"𝞅"},{"style":["sf","bf","it"],"symbol":"𝞿"}]} +, {"keyword":"varkappa","symbols":[{"style":[],"symbol":"ϰ"},{"style":["bf"],"symbol":"𝛞"},{"style":["it"],"symbol":"𝜘"},{"style":["bf","it"],"symbol":"𝝒"},{"style":["sf","bf"],"symbol":"𝞌"},{"style":["sf","bf","it"],"symbol":"𝟆"}]} +, {"keyword":"varepsilon","symbols":[{"style":[],"symbol":"ε"},{"style":["bf"],"symbol":"𝛆"},{"style":["it"],"symbol":"𝜀"},{"style":["bf","it"],"symbol":"𝜺"},{"style":["sf","bf"],"symbol":"𝝴"},{"style":["sf","bf","it"],"symbol":"𝞮"}]} +, {"keyword":"varTheta","symbols":[{"style":[],"symbol":"ϴ"},{"style":["bf"],"symbol":"𝚹"},{"style":["it"],"symbol":"𝛳"},{"style":["bf","it"],"symbol":"𝜭"},{"style":["sf","bf"],"symbol":"𝝧"},{"style":["sf","bf","it"],"symbol":"𝞡"}]} +, {"keyword":"v","symbols":[{"style":["bf"],"symbol":"𝐯"},{"style":["it"],"symbol":"𝑣"},{"style":["bf","it"],"symbol":"𝒗"},{"style":["scr"],"symbol":"𝓋"},{"style":["cal"],"symbol":"𝓿"},{"style":["frak"],"symbol":"𝔳"},{"style":["bb"],"symbol":"𝕧"},{"style":["bf","frak"],"symbol":"𝖛"},{"style":["sf"],"symbol":"𝗏"},{"style":["sf","bf"],"symbol":"𝘃"},{"style":["sf","it"],"symbol":"𝘷"},{"style":["sf","bf","it"],"symbol":"𝙫"},{"style":["tt"],"symbol":"𝚟"}]} +, {"keyword":"upsilon","symbols":[{"style":[],"symbol":"υ"},{"style":["bf"],"symbol":"𝛖"},{"style":["it"],"symbol":"𝜐"},{"style":["bf","it"],"symbol":"𝝊"},{"style":["sf","bf"],"symbol":"𝞄"},{"style":["sf","bf","it"],"symbol":"𝞾"}]} +, {"keyword":"updownarrow","symbols":[{"style":[],"symbol":"↕"}]} +, {"keyword":"uparrow","symbols":[{"style":[],"symbol":"↑"}]} +, {"keyword":"u","symbols":[{"style":["bf"],"symbol":"𝐮"},{"style":["it"],"symbol":"𝑢"},{"style":["bf","it"],"symbol":"𝒖"},{"style":["scr"],"symbol":"𝓊"},{"style":["cal"],"symbol":"𝓾"},{"style":["frak"],"symbol":"𝔲"},{"style":["bb"],"symbol":"𝕦"},{"style":["bf","frak"],"symbol":"𝖚"},{"style":["sf"],"symbol":"𝗎"},{"style":["sf","bf"],"symbol":"𝘂"},{"style":["sf","it"],"symbol":"𝘶"},{"style":["sf","bf","it"],"symbol":"𝙪"},{"style":["tt"],"symbol":"𝚞"}]} +, {"keyword":"to","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"theta","symbols":[{"style":[],"symbol":"θ"},{"style":["bf"],"symbol":"𝛉"},{"style":["it"],"symbol":"𝜃"},{"style":["bf","it"],"symbol":"𝜽"},{"style":["sf","bf"],"symbol":"𝝷"},{"style":["sf","bf","it"],"symbol":"𝞱"}]} +, {"keyword":"tau","symbols":[{"style":[],"symbol":"τ"},{"style":["bf"],"symbol":"𝛕"},{"style":["it"],"symbol":"𝜏"},{"style":["bf","it"],"symbol":"𝝉"},{"style":["sf","bf"],"symbol":"𝞃"},{"style":["sf","bf","it"],"symbol":"𝞽"}]} +, {"keyword":"t","symbols":[{"style":["bf"],"symbol":"𝐭"},{"style":["it"],"symbol":"𝑡"},{"style":["bf","it"],"symbol":"𝒕"},{"style":["scr"],"symbol":"𝓉"},{"style":["cal"],"symbol":"𝓽"},{"style":["frak"],"symbol":"𝔱"},{"style":["bb"],"symbol":"𝕥"},{"style":["bf","frak"],"symbol":"𝖙"},{"style":["sf"],"symbol":"𝗍"},{"style":["sf","bf"],"symbol":"𝘁"},{"style":["sf","it"],"symbol":"𝘵"},{"style":["sf","bf","it"],"symbol":"𝙩"},{"style":["tt"],"symbol":"𝚝"}]} +, {"keyword":"supsetneq","symbols":[{"style":[],"symbol":"⊋"}]} +, {"keyword":"supseteq","symbols":[{"style":[],"symbol":"⊇"}]} +, {"keyword":"supset","symbols":[{"style":[],"symbol":"⊃"}]} +, {"keyword":"succsim","symbols":[{"style":[],"symbol":"≿"}]} +, {"keyword":"succeq","symbols":[{"style":[],"symbol":"⪰"}]} +, {"keyword":"succ","symbols":[{"style":[],"symbol":"≻"}]} +, {"keyword":"subsetneq","symbols":[{"style":[],"symbol":"⊊"}]} +, {"keyword":"subseteq","symbols":[{"style":[],"symbol":"⊆"}]} +, {"keyword":"subset","symbols":[{"style":[],"symbol":"⊂"}]} +, {"keyword":"sqsupseteq","symbols":[{"style":[],"symbol":"⊒"}]} +, {"keyword":"sqsupset","symbols":[{"style":[],"symbol":"⊐"}]} +, {"keyword":"sqsubseteq","symbols":[{"style":[],"symbol":"⊑"}]} +, {"keyword":"sqsubset","symbols":[{"style":[],"symbol":"⊏"}]} +, {"keyword":"simeq","symbols":[{"style":[],"symbol":"≃"}]} +, {"keyword":"sim","symbols":[{"style":[],"symbol":"∼"}]} +, {"keyword":"sigma","symbols":[{"style":[],"symbol":"σ"},{"style":["bf"],"symbol":"𝛔"},{"style":["it"],"symbol":"𝜎"},{"style":["bf","it"],"symbol":"𝝈"},{"style":["sf","bf"],"symbol":"𝞂"},{"style":["sf","bf","it"],"symbol":"𝞼"}]} +, {"keyword":"s","symbols":[{"style":["bf"],"symbol":"𝐬"},{"style":["it"],"symbol":"𝑠"},{"style":["bf","it"],"symbol":"𝒔"},{"style":["scr"],"symbol":"𝓈"},{"style":["cal"],"symbol":"𝓼"},{"style":["frak"],"symbol":"𝔰"},{"style":["bb"],"symbol":"𝕤"},{"style":["bf","frak"],"symbol":"𝖘"},{"style":["sf"],"symbol":"𝗌"},{"style":["sf","bf"],"symbol":"𝘀"},{"style":["sf","it"],"symbol":"𝘴"},{"style":["sf","bf","it"],"symbol":"𝙨"},{"style":["tt"],"symbol":"𝚜"}]} +, {"keyword":"rightarrow","symbols":[{"style":[],"symbol":"→"}]} +, {"keyword":"rho","symbols":[{"style":[],"symbol":"ρ"},{"style":["bf"],"symbol":"𝛒"},{"style":["it"],"symbol":"𝜌"},{"style":["bf","it"],"symbol":"𝝆"},{"style":["sf","bf"],"symbol":"𝞀"},{"style":["sf","bf","it"],"symbol":"𝞺"}]} +, {"keyword":"rfloor","symbols":[{"style":[],"symbol":"⌋"}]} +, {"keyword":"rceil","symbols":[{"style":[],"symbol":"⌉"}]} +, {"keyword":"rbag","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"rangle","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"r","symbols":[{"style":["bf"],"symbol":"𝐫"},{"style":["it"],"symbol":"𝑟"},{"style":["bf","it"],"symbol":"𝒓"},{"style":["scr"],"symbol":"𝓇"},{"style":["cal"],"symbol":"𝓻"},{"style":["frak"],"symbol":"𝔯"},{"style":["bb"],"symbol":"𝕣"},{"style":["bf","frak"],"symbol":"𝖗"},{"style":["sf"],"symbol":"𝗋"},{"style":["sf","bf"],"symbol":"𝗿"},{"style":["sf","it"],"symbol":"𝘳"},{"style":["sf","bf","it"],"symbol":"𝙧"},{"style":["tt"],"symbol":"𝚛"}]} +, {"keyword":"q","symbols":[{"style":["bf"],"symbol":"𝐪"},{"style":["it"],"symbol":"𝑞"},{"style":["bf","it"],"symbol":"𝒒"},{"style":["scr"],"symbol":"𝓆"},{"style":["cal"],"symbol":"𝓺"},{"style":["frak"],"symbol":"𝔮"},{"style":["bb"],"symbol":"𝕢"},{"style":["bf","frak"],"symbol":"𝖖"},{"style":["sf"],"symbol":"𝗊"},{"style":["sf","bf"],"symbol":"𝗾"},{"style":["sf","it"],"symbol":"𝘲"},{"style":["sf","bf","it"],"symbol":"𝙦"},{"style":["tt"],"symbol":"𝚚"}]} +, {"keyword":"psi","symbols":[{"style":[],"symbol":"ψ"},{"style":["bf"],"symbol":"𝛙"},{"style":["it"],"symbol":"𝜓"},{"style":["bf","it"],"symbol":"𝝍"},{"style":["sf","bf"],"symbol":"𝞇"},{"style":["sf","bf","it"],"symbol":"𝟁"}]} +, {"keyword":"propto","symbols":[{"style":[],"symbol":"∝"}]} +, {"keyword":"precsim","symbols":[{"style":[],"symbol":"≾"}]} +, {"keyword":"preceq","symbols":[{"style":[],"symbol":"⪯"}]} +, {"keyword":"prec","symbols":[{"style":[],"symbol":"≺"}]} +, {"keyword":"pi","symbols":[{"style":[],"symbol":"π"},{"style":["bf"],"symbol":"𝛑"},{"style":["it"],"symbol":"𝜋"},{"style":["bf","it"],"symbol":"𝝅"},{"style":["sf","bf"],"symbol":"𝝿"},{"style":["sf","bf","it"],"symbol":"𝞹"}]} +, {"keyword":"phi","symbols":[{"style":[],"symbol":"ϕ"},{"style":["bf"],"symbol":"𝛟"},{"style":["it"],"symbol":"𝜙"},{"style":["bf","it"],"symbol":"𝝓"},{"style":["sf","bf"],"symbol":"𝞍"},{"style":["sf","bf","it"],"symbol":"𝟇"}]} +, {"keyword":"partial","symbols":[{"style":[],"symbol":"∂"},{"style":["bf"],"symbol":"𝛛"},{"style":["it"],"symbol":"𝜕"},{"style":["bf","it"],"symbol":"𝝏"},{"style":["sf","bf"],"symbol":"𝞉"},{"style":["sf","bf","it"],"symbol":"𝟃"}]} +, {"keyword":"p","symbols":[{"style":["bf"],"symbol":"𝐩"},{"style":["it"],"symbol":"𝑝"},{"style":["bf","it"],"symbol":"𝒑"},{"style":["scr"],"symbol":"𝓅"},{"style":["cal"],"symbol":"𝓹"},{"style":["frak"],"symbol":"𝔭"},{"style":["bb"],"symbol":"𝕡"},{"style":["bf","frak"],"symbol":"𝖕"},{"style":["sf"],"symbol":"𝗉"},{"style":["sf","bf"],"symbol":"𝗽"},{"style":["sf","it"],"symbol":"𝘱"},{"style":["sf","bf","it"],"symbol":"𝙥"},{"style":["tt"],"symbol":"𝚙"}]} +, {"keyword":"omicron","symbols":[{"style":[],"symbol":"ο"},{"style":["bf"],"symbol":"𝛐"},{"style":["it"],"symbol":"𝜊"},{"style":["bf","it"],"symbol":"𝝄"},{"style":["sf","bf"],"symbol":"𝝾"},{"style":["sf","bf","it"],"symbol":"𝞸"}]} +, {"keyword":"omega","symbols":[{"style":[],"symbol":"ω"},{"style":["bf"],"symbol":"𝛚"},{"style":["it"],"symbol":"𝜔"},{"style":["bf","it"],"symbol":"𝝎"},{"style":["sf","bf"],"symbol":"𝞈"},{"style":["sf","bf","it"],"symbol":"𝟂"}]} +, {"keyword":"o","symbols":[{"style":["bf"],"symbol":"𝐨"},{"style":["it"],"symbol":"𝑜"},{"style":["bf","it"],"symbol":"𝒐"},{"style":["scr"],"symbol":"ℴ"},{"style":["cal"],"symbol":"𝓸"},{"style":["frak"],"symbol":"𝔬"},{"style":["bb"],"symbol":"𝕠"},{"style":["bf","frak"],"symbol":"𝖔"},{"style":["sf"],"symbol":"𝗈"},{"style":["sf","bf"],"symbol":"𝗼"},{"style":["sf","it"],"symbol":"𝘰"},{"style":["sf","bf","it"],"symbol":"𝙤"},{"style":["tt"],"symbol":"𝚘"}]} +, {"keyword":"nu","symbols":[{"style":[],"symbol":"ν"},{"style":["bf"],"symbol":"𝛎"},{"style":["it"],"symbol":"𝜈"},{"style":["bf","it"],"symbol":"𝝂"},{"style":["sf","bf"],"symbol":"𝝼"},{"style":["sf","bf","it"],"symbol":"𝞶"}]} +, {"keyword":"nsupseteq","symbols":[{"style":[],"symbol":"⊉"}]} +, {"keyword":"nsupset","symbols":[{"style":[],"symbol":"⊅"}]} +, {"keyword":"nsucceq","symbols":[{"style":[],"symbol":"⪰̸"}]} +, {"keyword":"nsucc","symbols":[{"style":[],"symbol":"⊁"}]} +, {"keyword":"nsubseteq","symbols":[{"style":[],"symbol":"⊈"}]} +, {"keyword":"nsubset","symbols":[{"style":[],"symbol":"⊄"}]} +, {"keyword":"nsimeq","symbols":[{"style":[],"symbol":"≄"}]} +, {"keyword":"nsim","symbols":[{"style":[],"symbol":"≁"}]} +, {"keyword":"npreceq","symbols":[{"style":[],"symbol":"⪯̸"}]} +, {"keyword":"nprec","symbols":[{"style":[],"symbol":"⊀"}]} +, {"keyword":"nless","symbols":[{"style":[],"symbol":"≮"}]} +, {"keyword":"nleq","symbols":[{"style":[],"symbol":"≰"}]} +, {"keyword":"ngtr","symbols":[{"style":[],"symbol":"≯"}]} +, {"keyword":"ngeq","symbols":[{"style":[],"symbol":"≱"}]} +, {"keyword":"nequiv","symbols":[{"style":[],"symbol":"≢"}]} +, {"keyword":"neq","symbols":[{"style":[],"symbol":"≠"}]} +, {"keyword":"neg","symbols":[{"style":[],"symbol":"¬"}]} +, {"keyword":"ncong","symbols":[{"style":[],"symbol":"≇"}]} +, {"keyword":"napprox","symbols":[{"style":[],"symbol":"≉"}]} +, {"keyword":"nabla","symbols":[{"style":[],"symbol":"∇"},{"style":["bf"],"symbol":"𝛁"},{"style":["it"],"symbol":"𝛻"},{"style":["bf","it"],"symbol":"𝜵"},{"style":["sf","bf"],"symbol":"𝝯"},{"style":["sf","bf","it"],"symbol":"𝞩"}]} +, {"keyword":"n","symbols":[{"style":["bf"],"symbol":"𝐧"},{"style":["it"],"symbol":"𝑛"},{"style":["bf","it"],"symbol":"𝒏"},{"style":["scr"],"symbol":"𝓃"},{"style":["cal"],"symbol":"𝓷"},{"style":["frak"],"symbol":"𝔫"},{"style":["bb"],"symbol":"𝕟"},{"style":["bf","frak"],"symbol":"𝖓"},{"style":["sf"],"symbol":"𝗇"},{"style":["sf","bf"],"symbol":"𝗻"},{"style":["sf","it"],"symbol":"𝘯"},{"style":["sf","bf","it"],"symbol":"𝙣"},{"style":["tt"],"symbol":"𝚗"}]} +, {"keyword":"mu","symbols":[{"style":[],"symbol":"μ"},{"style":["bf"],"symbol":"𝛍"},{"style":["it"],"symbol":"𝜇"},{"style":["bf","it"],"symbol":"𝝁"},{"style":["sf","bf"],"symbol":"𝝻"},{"style":["sf","bf","it"],"symbol":"𝞵"}]} +, {"keyword":"mapsto","symbols":[{"style":[],"symbol":"↦"}]} +, {"keyword":"m","symbols":[{"style":["bf"],"symbol":"𝐦"},{"style":["it"],"symbol":"𝑚"},{"style":["bf","it"],"symbol":"𝒎"},{"style":["scr"],"symbol":"𝓂"},{"style":["cal"],"symbol":"𝓶"},{"style":["frak"],"symbol":"𝔪"},{"style":["bb"],"symbol":"𝕞"},{"style":["bf","frak"],"symbol":"𝖒"},{"style":["sf"],"symbol":"𝗆"},{"style":["sf","bf"],"symbol":"𝗺"},{"style":["sf","it"],"symbol":"𝘮"},{"style":["sf","bf","it"],"symbol":"𝙢"},{"style":["tt"],"symbol":"𝚖"}]} +, {"keyword":"longrightarrow","symbols":[{"style":[],"symbol":"⟶"}]} +, {"keyword":"longmapsto","symbols":[{"style":[],"symbol":"⟼"}]} +, {"keyword":"longleftarrow","symbols":[{"style":[],"symbol":"⟵"}]} +, {"keyword":"lnsim","symbols":[{"style":[],"symbol":"⋦"}]} +, {"keyword":"lneqq","symbols":[{"style":[],"symbol":"≨"}]} +, {"keyword":"lneq","symbols":[{"style":[],"symbol":"⪇"}]} +, {"keyword":"lnapprox","symbols":[{"style":[],"symbol":"⪉"}]} +, {"keyword":"lll","symbols":[{"style":[],"symbol":"⋘"}]} +, {"keyword":"ll","symbols":[{"style":[],"symbol":"≪"}]} +, {"keyword":"lfloor","symbols":[{"style":[],"symbol":"⌊"}]} +, {"keyword":"lesssim","symbols":[{"style":[],"symbol":"≲"}]} +, {"keyword":"lessgtr","symbols":[{"style":[],"symbol":"≶"}]} +, {"keyword":"lesseqgtr","symbols":[{"style":[],"symbol":"⋚"}]} +, {"keyword":"lessapprox","symbols":[{"style":[],"symbol":"⪅"}]} +, {"keyword":"leqslant","symbols":[{"style":[],"symbol":"⩽"}]} +, {"keyword":"leqq","symbols":[{"style":[],"symbol":"≦"}]} +, {"keyword":"leq","symbols":[{"style":[],"symbol":"≤"}]} +, {"keyword":"leftarrow","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"lceil","symbols":[{"style":[],"symbol":"⌈"}]} +, {"keyword":"lbag","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"langle","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"lambda","symbols":[{"style":[],"symbol":"λ"},{"style":["bf"],"symbol":"𝛌"},{"style":["it"],"symbol":"𝜆"},{"style":["bf","it"],"symbol":"𝝀"},{"style":["sf","bf"],"symbol":"𝝺"},{"style":["sf","bf","it"],"symbol":"𝞴"}]} +, {"keyword":"l","symbols":[{"style":["bf"],"symbol":"𝐥"},{"style":["it"],"symbol":"𝑙"},{"style":["bf","it"],"symbol":"𝒍"},{"style":["scr"],"symbol":"𝓁"},{"style":["cal"],"symbol":"𝓵"},{"style":["frak"],"symbol":"𝔩"},{"style":["bb"],"symbol":"𝕝"},{"style":["bf","frak"],"symbol":"𝖑"},{"style":["sf"],"symbol":"𝗅"},{"style":["sf","bf"],"symbol":"𝗹"},{"style":["sf","it"],"symbol":"𝘭"},{"style":["sf","bf","it"],"symbol":"𝙡"},{"style":["tt"],"symbol":"𝚕"}]} +, {"keyword":"kappa","symbols":[{"style":[],"symbol":"κ"},{"style":["bf"],"symbol":"𝛋"},{"style":["it"],"symbol":"𝜅"},{"style":["bf","it"],"symbol":"𝜿"},{"style":["sf","bf"],"symbol":"𝝹"},{"style":["sf","bf","it"],"symbol":"𝞳"}]} +, {"keyword":"k","symbols":[{"style":["bf"],"symbol":"𝐤"},{"style":["it"],"symbol":"𝑘"},{"style":["bf","it"],"symbol":"𝒌"},{"style":["scr"],"symbol":"𝓀"},{"style":["cal"],"symbol":"𝓴"},{"style":["frak"],"symbol":"𝔨"},{"style":["bb"],"symbol":"𝕜"},{"style":["bf","frak"],"symbol":"𝖐"},{"style":["sf"],"symbol":"𝗄"},{"style":["sf","bf"],"symbol":"𝗸"},{"style":["sf","it"],"symbol":"𝘬"},{"style":["sf","bf","it"],"symbol":"𝙠"},{"style":["tt"],"symbol":"𝚔"}]} +, {"keyword":"jmath","symbols":[{"style":[],"symbol":"ȷ"},{"style":["it"],"symbol":"𝚥"}]} +, {"keyword":"j","symbols":[{"style":["bf"],"symbol":"𝐣"},{"style":["it"],"symbol":"𝑗"},{"style":["bf","it"],"symbol":"𝒋"},{"style":["scr"],"symbol":"𝒿"},{"style":["cal"],"symbol":"𝓳"},{"style":["frak"],"symbol":"𝔧"},{"style":["bb"],"symbol":"𝕛"},{"style":["bf","frak"],"symbol":"𝖏"},{"style":["sf"],"symbol":"𝗃"},{"style":["sf","bf"],"symbol":"𝗷"},{"style":["sf","it"],"symbol":"𝘫"},{"style":["sf","bf","it"],"symbol":"𝙟"},{"style":["tt"],"symbol":"𝚓"}]} +, {"keyword":"iota","symbols":[{"style":[],"symbol":"ι"},{"style":["bf"],"symbol":"𝛊"},{"style":["it"],"symbol":"𝜄"},{"style":["bf","it"],"symbol":"𝜾"},{"style":["sf","bf"],"symbol":"𝝸"},{"style":["sf","bf","it"],"symbol":"𝞲"}]} +, {"keyword":"infty","symbols":[{"style":[],"symbol":"∞"}]} +, {"keyword":"imath","symbols":[{"style":[],"symbol":"ı"},{"style":["it"],"symbol":"𝚤"}]} +, {"keyword":"i","symbols":[{"style":["bf"],"symbol":"𝐢"},{"style":["it"],"symbol":"𝑖"},{"style":["bf","it"],"symbol":"𝒊"},{"style":["scr"],"symbol":"𝒾"},{"style":["cal"],"symbol":"𝓲"},{"style":["frak"],"symbol":"𝔦"},{"style":["bb"],"symbol":"𝕚"},{"style":["bf","frak"],"symbol":"𝖎"},{"style":["sf"],"symbol":"𝗂"},{"style":["sf","bf"],"symbol":"𝗶"},{"style":["sf","it"],"symbol":"𝘪"},{"style":["sf","bf","it"],"symbol":"𝙞"},{"style":["tt"],"symbol":"𝚒"}]} +, {"keyword":"hslash","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"hbar","symbols":[{"style":[],"symbol":"ℏ"}]} +, {"keyword":"h","symbols":[{"style":["bf"],"symbol":"𝐡"},{"style":["bf","it"],"symbol":"𝒉"},{"style":["scr"],"symbol":"𝒽"},{"style":["cal"],"symbol":"𝓱"},{"style":["frak"],"symbol":"𝔥"},{"style":["bb"],"symbol":"𝕙"},{"style":["bf","frak"],"symbol":"𝖍"},{"style":["sf"],"symbol":"𝗁"},{"style":["sf","bf"],"symbol":"𝗵"},{"style":["sf","it"],"symbol":"𝘩"},{"style":["sf","bf","it"],"symbol":"𝙝"},{"style":["tt"],"symbol":"𝚑"}]} +, {"keyword":"gtrsim","symbols":[{"style":[],"symbol":"≳"}]} +, {"keyword":"gtrapprox","symbols":[{"style":[],"symbol":"⪆"}]} +, {"keyword":"gnsim","symbols":[{"style":[],"symbol":"⋧"}]} +, {"keyword":"gneqq","symbols":[{"style":[],"symbol":"≩"}]} +, {"keyword":"gneq","symbols":[{"style":[],"symbol":"⪈"}]} +, {"keyword":"gnapprox","symbols":[{"style":[],"symbol":"⪊"}]} +, {"keyword":"gimel","symbols":[{"style":[],"symbol":"ℷ"}]} +, {"keyword":"ggg","symbols":[{"style":[],"symbol":"⋙"}]} +, {"keyword":"gg","symbols":[{"style":[],"symbol":"≫"}]} +, {"keyword":"gets","symbols":[{"style":[],"symbol":"←"}]} +, {"keyword":"geqslant","symbols":[{"style":[],"symbol":"⩾"}]} +, {"keyword":"geqq","symbols":[{"style":[],"symbol":"≧"}]} +, {"keyword":"geq","symbols":[{"style":[],"symbol":"≥"}]} +, {"keyword":"gamma","symbols":[{"style":[],"symbol":"γ"},{"style":["bf"],"symbol":"𝛄"},{"style":["it"],"symbol":"𝛾"},{"style":["bf","it"],"symbol":"𝜸"},{"style":["sf","bf"],"symbol":"𝝲"},{"style":["sf","bf","it"],"symbol":"𝞬"}]} +, {"keyword":"g","symbols":[{"style":["bf"],"symbol":"𝐠"},{"style":["it"],"symbol":"𝑔"},{"style":["bf","it"],"symbol":"𝒈"},{"style":["scr"],"symbol":"ℊ"},{"style":["cal"],"symbol":"𝓰"},{"style":["frak"],"symbol":"𝔤"},{"style":["bb"],"symbol":"𝕘"},{"style":["bf","frak"],"symbol":"𝖌"},{"style":["sf"],"symbol":"𝗀"},{"style":["sf","bf"],"symbol":"𝗴"},{"style":["sf","it"],"symbol":"𝘨"},{"style":["sf","bf","it"],"symbol":"𝙜"},{"style":["tt"],"symbol":"𝚐"}]} +, {"keyword":"f","symbols":[{"style":["bf"],"symbol":"𝐟"},{"style":["it"],"symbol":"𝑓"},{"style":["bf","it"],"symbol":"𝒇"},{"style":["scr"],"symbol":"𝒻"},{"style":["cal"],"symbol":"𝓯"},{"style":["frak"],"symbol":"𝔣"},{"style":["bb"],"symbol":"𝕗"},{"style":["bf","frak"],"symbol":"𝖋"},{"style":["sf"],"symbol":"𝖿"},{"style":["sf","bf"],"symbol":"𝗳"},{"style":["sf","it"],"symbol":"𝘧"},{"style":["sf","bf","it"],"symbol":"𝙛"},{"style":["tt"],"symbol":"𝚏"}]} +, {"keyword":"eta","symbols":[{"style":[],"symbol":"η"},{"style":["bf"],"symbol":"𝛈"},{"style":["it"],"symbol":"𝜂"},{"style":["bf","it"],"symbol":"𝜼"},{"style":["sf","bf"],"symbol":"𝝶"},{"style":["sf","bf","it"],"symbol":"𝞰"}]} +, {"keyword":"equiv","symbols":[{"style":[],"symbol":"≡"}]} +, {"keyword":"epsilon","symbols":[{"style":[],"symbol":"ϵ"},{"style":["bf"],"symbol":"𝛜"},{"style":["it"],"symbol":"𝜖"},{"style":["bf","it"],"symbol":"𝝐"},{"style":["sf","bf"],"symbol":"𝞊"},{"style":["sf","bf","it"],"symbol":"𝟄"}]} +, {"keyword":"ell","symbols":[{"style":[],"symbol":"ℓ"}]} +, {"keyword":"e","symbols":[{"style":["bf"],"symbol":"𝐞"},{"style":["it"],"symbol":"𝑒"},{"style":["bf","it"],"symbol":"𝒆"},{"style":["scr"],"symbol":"ℯ"},{"style":["cal"],"symbol":"𝓮"},{"style":["frak"],"symbol":"𝔢"},{"style":["bb"],"symbol":"𝕖"},{"style":["bf","frak"],"symbol":"𝖊"},{"style":["sf"],"symbol":"𝖾"},{"style":["sf","bf"],"symbol":"𝗲"},{"style":["sf","it"],"symbol":"𝘦"},{"style":["sf","bf","it"],"symbol":"𝙚"},{"style":["tt"],"symbol":"𝚎"}]} +, {"keyword":"downaroow","symbols":[{"style":[],"symbol":"↓"}]} +, {"keyword":"doteq","symbols":[{"style":[],"symbol":"≐"}]} +, {"keyword":"digamma","symbols":[{"style":[],"symbol":"ϝ"},{"style":["bf"],"symbol":"𝟋"}]} +, {"keyword":"delta","symbols":[{"style":[],"symbol":"δ"},{"style":["bf"],"symbol":"𝛅"},{"style":["it"],"symbol":"𝛿"},{"style":["bf","it"],"symbol":"𝜹"},{"style":["sf","bf"],"symbol":"𝝳"},{"style":["sf","bf","it"],"symbol":"𝞭"}]} +, {"keyword":"d","symbols":[{"style":["bf"],"symbol":"𝐝"},{"style":["it"],"symbol":"𝑑"},{"style":["bf","it"],"symbol":"𝒅"},{"style":["scr"],"symbol":"𝒹"},{"style":["cal"],"symbol":"𝓭"},{"style":["frak"],"symbol":"𝔡"},{"style":["bb"],"symbol":"𝕕"},{"style":["bf","frak"],"symbol":"𝖉"},{"style":["sf"],"symbol":"𝖽"},{"style":["sf","bf"],"symbol":"𝗱"},{"style":["sf","it"],"symbol":"𝘥"},{"style":["sf","bf","it"],"symbol":"𝙙"},{"style":["tt"],"symbol":"𝚍"}]} +, {"keyword":"cong","symbols":[{"style":[],"symbol":"≅"}]} +, {"keyword":"chi","symbols":[{"style":[],"symbol":"χ"},{"style":["bf"],"symbol":"𝛘"},{"style":["it"],"symbol":"𝜒"},{"style":["bf","it"],"symbol":"𝝌"},{"style":["sf","bf"],"symbol":"𝞆"},{"style":["sf","bf","it"],"symbol":"𝟀"}]} +, {"keyword":"c","symbols":[{"style":["bf"],"symbol":"𝐜"},{"style":["it"],"symbol":"𝑐"},{"style":["bf","it"],"symbol":"𝒄"},{"style":["scr"],"symbol":"𝒸"},{"style":["cal"],"symbol":"𝓬"},{"style":["frak"],"symbol":"𝔠"},{"style":["bb"],"symbol":"𝕔"},{"style":["bf","frak"],"symbol":"𝖈"},{"style":["sf"],"symbol":"𝖼"},{"style":["sf","bf"],"symbol":"𝗰"},{"style":["sf","it"],"symbol":"𝘤"},{"style":["sf","bf","it"],"symbol":"𝙘"},{"style":["tt"],"symbol":"𝚌"}]} +, {"keyword":"beth","symbols":[{"style":[],"symbol":"ℶ"}]} +, {"keyword":"beta","symbols":[{"style":[],"symbol":"β"},{"style":["bf"],"symbol":"𝛃"},{"style":["it"],"symbol":"𝛽"},{"style":["bf","it"],"symbol":"𝜷"},{"style":["sf","bf"],"symbol":"𝝱"},{"style":["sf","bf","it"],"symbol":"𝞫"}]} +, {"keyword":"b","symbols":[{"style":["bf"],"symbol":"𝐛"},{"style":["it"],"symbol":"𝑏"},{"style":["bf","it"],"symbol":"𝒃"},{"style":["scr"],"symbol":"𝒷"},{"style":["cal"],"symbol":"𝓫"},{"style":["frak"],"symbol":"𝔟"},{"style":["bb"],"symbol":"𝕓"},{"style":["bf","frak"],"symbol":"𝖇"},{"style":["sf"],"symbol":"𝖻"},{"style":["sf","bf"],"symbol":"𝗯"},{"style":["sf","it"],"symbol":"𝘣"},{"style":["sf","bf","it"],"symbol":"𝙗"},{"style":["tt"],"symbol":"𝚋"}]} +, {"keyword":"approx","symbols":[{"style":[],"symbol":"≈"}]} +, {"keyword":"alpha","symbols":[{"style":[],"symbol":"α"},{"style":["bf"],"symbol":"𝛂"},{"style":["it"],"symbol":"𝛼"},{"style":["bf","it"],"symbol":"𝜶"},{"style":["sf","bf"],"symbol":"𝝰"},{"style":["sf","bf","it"],"symbol":"𝞪"}]} +, {"keyword":"aleph","symbols":[{"style":[],"symbol":"ℵ"}]} +, {"keyword":"a","symbols":[{"style":["bf"],"symbol":"𝐚"},{"style":["it"],"symbol":"𝑎"},{"style":["bf","it"],"symbol":"𝒂"},{"style":["scr"],"symbol":"𝒶"},{"style":["cal"],"symbol":"𝓪"},{"style":["frak"],"symbol":"𝔞"},{"style":["bb"],"symbol":"𝕒"},{"style":["bf","frak"],"symbol":"𝖆"},{"style":["sf"],"symbol":"𝖺"},{"style":["sf","bf"],"symbol":"𝗮"},{"style":["sf","it"],"symbol":"𝘢"},{"style":["sf","bf","it"],"symbol":"𝙖"},{"style":["tt"],"symbol":"𝚊"}]} +, {"keyword":"_x","symbols":[{"style":[],"symbol":"ₓ"}]} +, {"keyword":"_v","symbols":[{"style":[],"symbol":"ᵥ"}]} +, {"keyword":"_u","symbols":[{"style":[],"symbol":"ᵤ"}]} +, {"keyword":"_t","symbols":[{"style":[],"symbol":"ₜ"}]} +, {"keyword":"_schwa","symbols":[{"style":[],"symbol":"ₔ"}]} +, {"keyword":"_s","symbols":[{"style":[],"symbol":"ₛ"}]} +, {"keyword":"_rho","symbols":[{"style":[],"symbol":"ᵨ"}]} +, {"keyword":"_r","symbols":[{"style":[],"symbol":"ᵣ"}]} +, {"keyword":"_q","symbols":[{"style":[],"symbol":" "}]} +, {"keyword":"_phi","symbols":[{"style":[],"symbol":"ᵩ"}]} +, {"keyword":"_p","symbols":[{"style":[],"symbol":"ₚ"}]} +, {"keyword":"_o","symbols":[{"style":[],"symbol":"ₒ"}]} +, {"keyword":"_n","symbols":[{"style":[],"symbol":"ₙ"}]} +, {"keyword":"_m","symbols":[{"style":[],"symbol":"ₘ"}]} +, {"keyword":"_l","symbols":[{"style":[],"symbol":"ₗ"}]} +, {"keyword":"_k","symbols":[{"style":[],"symbol":"ₖ"}]} +, {"keyword":"_j","symbols":[{"style":[],"symbol":"ⱼ"}]} +, {"keyword":"_i","symbols":[{"style":[],"symbol":"ᵢ"}]} +, {"keyword":"_h","symbols":[{"style":[],"symbol":"ₕ"}]} +, {"keyword":"_gamma","symbols":[{"style":[],"symbol":"ᵧ"}]} +, {"keyword":"_e","symbols":[{"style":[],"symbol":"ₑ"}]} +, {"keyword":"_chi","symbols":[{"style":[],"symbol":"ᵪ"}]} +, {"keyword":"_beta","symbols":[{"style":[],"symbol":"ᵦ"}]} +, {"keyword":"_a","symbols":[{"style":[],"symbol":"ₐ"}]} +, {"keyword":"_=","symbols":[{"style":[],"symbol":"₌"}]} +, {"keyword":"_9","symbols":[{"style":[],"symbol":"₉"}]} +, {"keyword":"_8","symbols":[{"style":[],"symbol":"₈"}]} +, {"keyword":"_7","symbols":[{"style":[],"symbol":"₇"}]} +, {"keyword":"_6","symbols":[{"style":[],"symbol":"₆"}]} +, {"keyword":"_5","symbols":[{"style":[],"symbol":"₅"}]} +, {"keyword":"_4","symbols":[{"style":[],"symbol":"₄"}]} +, {"keyword":"_3","symbols":[{"style":[],"symbol":"₃"}]} +, {"keyword":"_2","symbols":[{"style":[],"symbol":"₂"}]} +, {"keyword":"_1","symbols":[{"style":[],"symbol":"₁"}]} +, {"keyword":"_0","symbols":[{"style":[],"symbol":"₀"}]} +, {"keyword":"_-","symbols":[{"style":[],"symbol":"₋"}]} +, {"keyword":"_+","symbols":[{"style":[],"symbol":"₊"}]} +, {"keyword":"_)","symbols":[{"style":[],"symbol":"₎"}]} +, {"keyword":"_(","symbols":[{"style":[],"symbol":"₍"}]} +, {"keyword":"^z","symbols":[{"style":[],"symbol":"ᶻ"}]} +, {"keyword":"^y","symbols":[{"style":[],"symbol":"ʸ"}]} +, {"keyword":"^x","symbols":[{"style":[],"symbol":"ˣ"}]} +, {"keyword":"^w","symbols":[{"style":[],"symbol":"ʷ"}]} +, {"keyword":"^v","symbols":[{"style":[],"symbol":"ᵛ"}]} +, {"keyword":"^upsilon","symbols":[{"style":[],"symbol":"ᶹ"}]} +, {"keyword":"^u","symbols":[{"style":[],"symbol":"ᵘ"}]} +, {"keyword":"^theta","symbols":[{"style":[],"symbol":"ᶿ"}]} +, {"keyword":"^t","symbols":[{"style":[],"symbol":"ᵗ"}]} +, {"keyword":"^s","symbols":[{"style":[],"symbol":"ˢ"}]} +, {"keyword":"^r","symbols":[{"style":[],"symbol":"ʳ"}]} +, {"keyword":"^phi","symbols":[{"style":[],"symbol":"ᵠ"}]} +, {"keyword":"^p","symbols":[{"style":[],"symbol":"ᵖ"}]} +, {"keyword":"^o","symbols":[{"style":[],"symbol":"ᵒ"}]} +, {"keyword":"^n","symbols":[{"style":[],"symbol":"ⁿ"}]} +, {"keyword":"^m","symbols":[{"style":[],"symbol":"ᵐ"}]} +, {"keyword":"^l","symbols":[{"style":[],"symbol":"ˡ"}]} +, {"keyword":"^k","symbols":[{"style":[],"symbol":"ᵏ"}]} +, {"keyword":"^j","symbols":[{"style":[],"symbol":"ʲ"}]} +, {"keyword":"^iota","symbols":[{"style":[],"symbol":"ᶥ"}]} +, {"keyword":"^i","symbols":[{"style":[],"symbol":"ⁱ"}]} +, {"keyword":"^h","symbols":[{"style":[],"symbol":"ʰ"}]} +, {"keyword":"^gamma","symbols":[{"style":[],"symbol":"ᵞ"}]} +, {"keyword":"^g","symbols":[{"style":[],"symbol":"ᵍ"}]} +, {"keyword":"^f","symbols":[{"style":[],"symbol":"ᶠ"}]} +, {"keyword":"^epsilon","symbols":[{"style":[],"symbol":"ᵋ"}]} +, {"keyword":"^e","symbols":[{"style":[],"symbol":"ᵉ"}]} +, {"keyword":"^delta","symbols":[{"style":[],"symbol":"ᵟ"}]} +, {"keyword":"^d","symbols":[{"style":[],"symbol":"ᵈ"}]} +, {"keyword":"^chi","symbols":[{"style":[],"symbol":"ᵡ"}]} +, {"keyword":"^c","symbols":[{"style":[],"symbol":"ᶜ"}]} +, {"keyword":"^beta","symbols":[{"style":[],"symbol":"ᵝ"}]} +, {"keyword":"^b","symbols":[{"style":[],"symbol":"ᵇ"}]} +, {"keyword":"^a","symbols":[{"style":[],"symbol":"ᵃ"}]} +, {"keyword":"^W","symbols":[{"style":[],"symbol":"ᵂ"}]} +, {"keyword":"^V","symbols":[{"style":[],"symbol":"ⱽ"}]} +, {"keyword":"^U","symbols":[{"style":[],"symbol":"ᵁ"}]} +, {"keyword":"^T","symbols":[{"style":[],"symbol":"ᵀ"}]} +, {"keyword":"^R","symbols":[{"style":[],"symbol":"ᴿ"}]} +, {"keyword":"^P","symbols":[{"style":[],"symbol":"ᴾ"}]} +, {"keyword":"^O","symbols":[{"style":[],"symbol":"ᴼ"}]} +, {"keyword":"^N","symbols":[{"style":[],"symbol":"ᴺ"}]} +, {"keyword":"^M","symbols":[{"style":[],"symbol":"ᴹ"}]} +, {"keyword":"^L","symbols":[{"style":[],"symbol":"ᴸ"}]} +, {"keyword":"^K","symbols":[{"style":[],"symbol":"ᴷ"}]} +, {"keyword":"^J","symbols":[{"style":[],"symbol":"ᴶ"}]} +, {"keyword":"^I","symbols":[{"style":[],"symbol":"ᴵ"}]} +, {"keyword":"^H","symbols":[{"style":[],"symbol":"ᴴ"}]} +, {"keyword":"^G","symbols":[{"style":[],"symbol":"ᴳ"}]} +, {"keyword":"^E","symbols":[{"style":[],"symbol":"ᴱ"}]} +, {"keyword":"^D","symbols":[{"style":[],"symbol":"ᴰ"}]} +, {"keyword":"^B","symbols":[{"style":[],"symbol":"ᴮ"}]} +, {"keyword":"^A","symbols":[{"style":[],"symbol":"ᴬ"}]} +, {"keyword":"^=","symbols":[{"style":[],"symbol":"⁼"}]} +, {"keyword":"^9","symbols":[{"style":[],"symbol":"⁹"}]} +, {"keyword":"^8","symbols":[{"style":[],"symbol":"⁸"}]} +, {"keyword":"^7","symbols":[{"style":[],"symbol":"⁷"}]} +, {"keyword":"^6","symbols":[{"style":[],"symbol":"⁶"}]} +, {"keyword":"^5","symbols":[{"style":[],"symbol":"⁵"}]} +, {"keyword":"^4","symbols":[{"style":[],"symbol":"⁴"}]} +, {"keyword":"^3","symbols":[{"style":[],"symbol":"³"}]} +, {"keyword":"^2","symbols":[{"style":[],"symbol":"²"}]} +, {"keyword":"^1","symbols":[{"style":[],"symbol":"¹"}]} +, {"keyword":"^0","symbols":[{"style":[],"symbol":"⁰"}]} +, {"keyword":"^-","symbols":[{"style":[],"symbol":"⁻"}]} +, {"keyword":"^+","symbols":[{"style":[],"symbol":"⁺"}]} +, {"keyword":"^)","symbols":[{"style":[],"symbol":"⁾"}]} +, {"keyword":"^(","symbols":[{"style":[],"symbol":"⁽"}]} +, {"keyword":"]]","symbols":[{"style":[],"symbol":"⟧"}]} +, {"keyword":"[[","symbols":[{"style":[],"symbol":"⟦"}]} +, {"keyword":"Zeta","symbols":[{"style":[],"symbol":"Ζ"},{"style":["bf"],"symbol":"𝚭"},{"style":["it"],"symbol":"𝛧"},{"style":["bf","it"],"symbol":"𝜡"},{"style":["sf","bf"],"symbol":"𝝛"},{"style":["sf","bf","it"],"symbol":"𝞕"}]} +, {"keyword":"Z","symbols":[{"style":["bf"],"symbol":"𝐙"},{"style":["it"],"symbol":"𝑍"},{"style":["bf","it"],"symbol":"𝒁"},{"style":["scr"],"symbol":"𝒵"},{"style":["cal"],"symbol":"𝓩"},{"style":["frak"],"symbol":"ℨ"},{"style":["bb"],"symbol":"ℤ"},{"style":["bf","frak"],"symbol":"𝖅"},{"style":["sf"],"symbol":"𝖹"},{"style":["sf","bf"],"symbol":"𝗭"},{"style":["sf","it"],"symbol":"𝘡"},{"style":["sf","bf","it"],"symbol":"𝙕"},{"style":["tt"],"symbol":"𝚉"}]} +, {"keyword":"Y","symbols":[{"style":["bf"],"symbol":"𝐘"},{"style":["it"],"symbol":"𝑌"},{"style":["bf","it"],"symbol":"𝒀"},{"style":["scr"],"symbol":"𝒴"},{"style":["cal"],"symbol":"𝓨"},{"style":["frak"],"symbol":"𝔜"},{"style":["bb"],"symbol":"𝕐"},{"style":["bf","frak"],"symbol":"𝖄"},{"style":["sf"],"symbol":"𝖸"},{"style":["sf","bf"],"symbol":"𝗬"},{"style":["sf","it"],"symbol":"𝘠"},{"style":["sf","bf","it"],"symbol":"𝙔"},{"style":["tt"],"symbol":"𝚈"}]} +, {"keyword":"Xi","symbols":[{"style":[],"symbol":"Ξ"},{"style":["bf"],"symbol":"𝚵"},{"style":["it"],"symbol":"𝛯"},{"style":["bf","it"],"symbol":"𝜩"},{"style":["sf","bf"],"symbol":"𝝣"},{"style":["sf","bf","it"],"symbol":"𝞝"}]} +, {"keyword":"X","symbols":[{"style":["bf"],"symbol":"𝐗"},{"style":["it"],"symbol":"𝑋"},{"style":["bf","it"],"symbol":"𝑿"},{"style":["scr"],"symbol":"𝒳"},{"style":["cal"],"symbol":"𝓧"},{"style":["frak"],"symbol":"𝔛"},{"style":["bb"],"symbol":"𝕏"},{"style":["bf","frak"],"symbol":"𝖃"},{"style":["sf"],"symbol":"𝖷"},{"style":["sf","bf"],"symbol":"𝗫"},{"style":["sf","it"],"symbol":"𝘟"},{"style":["sf","bf","it"],"symbol":"𝙓"},{"style":["tt"],"symbol":"𝚇"}]} +, {"keyword":"W","symbols":[{"style":["bf"],"symbol":"𝐖"},{"style":["it"],"symbol":"𝑊"},{"style":["bf","it"],"symbol":"𝑾"},{"style":["scr"],"symbol":"𝒲"},{"style":["cal"],"symbol":"𝓦"},{"style":["frak"],"symbol":"𝔚"},{"style":["bb"],"symbol":"𝕎"},{"style":["bf","frak"],"symbol":"𝖂"},{"style":["sf"],"symbol":"𝖶"},{"style":["sf","bf"],"symbol":"𝗪"},{"style":["sf","it"],"symbol":"𝘞"},{"style":["sf","bf","it"],"symbol":"𝙒"},{"style":["tt"],"symbol":"𝚆"}]} +, {"keyword":"V","symbols":[{"style":["bf"],"symbol":"𝐕"},{"style":["it"],"symbol":"𝑉"},{"style":["bf","it"],"symbol":"𝑽"},{"style":["scr"],"symbol":"𝒱"},{"style":["cal"],"symbol":"𝓥"},{"style":["frak"],"symbol":"𝔙"},{"style":["bb"],"symbol":"𝕍"},{"style":["bf","frak"],"symbol":"𝖁"},{"style":["sf"],"symbol":"𝖵"},{"style":["sf","bf"],"symbol":"𝗩"},{"style":["sf","it"],"symbol":"𝘝"},{"style":["sf","bf","it"],"symbol":"𝙑"},{"style":["tt"],"symbol":"𝚅"}]} +, {"keyword":"Upsilon","symbols":[{"style":[],"symbol":"Υ"},{"style":["bf"],"symbol":"𝚼"},{"style":["it"],"symbol":"𝛶"},{"style":["bf","it"],"symbol":"𝜰"},{"style":["sf","bf"],"symbol":"𝝪"},{"style":["sf","bf","it"],"symbol":"𝞤"}]} +, {"keyword":"Updownarrow","symbols":[{"style":[],"symbol":"⇕"}]} +, {"keyword":"Uparrow","symbols":[{"style":[],"symbol":"⇑"}]} +, {"keyword":"U","symbols":[{"style":["bf"],"symbol":"𝐔"},{"style":["it"],"symbol":"𝑈"},{"style":["bf","it"],"symbol":"𝑼"},{"style":["scr"],"symbol":"𝒰"},{"style":["cal"],"symbol":"𝓤"},{"style":["frak"],"symbol":"𝔘"},{"style":["bb"],"symbol":"𝕌"},{"style":["bf","frak"],"symbol":"𝖀"},{"style":["sf"],"symbol":"𝖴"},{"style":["sf","bf"],"symbol":"𝗨"},{"style":["sf","it"],"symbol":"𝘜"},{"style":["sf","bf","it"],"symbol":"𝙐"},{"style":["tt"],"symbol":"𝚄"}]} +, {"keyword":"Theta","symbols":[{"style":[],"symbol":"Θ"},{"style":["bf"],"symbol":"𝚯"},{"style":["it"],"symbol":"𝛩"},{"style":["bf","it"],"symbol":"𝜣"},{"style":["sf","bf"],"symbol":"𝝝"},{"style":["sf","bf","it"],"symbol":"𝞗"}]} +, {"keyword":"Tau","symbols":[{"style":[],"symbol":"Τ"},{"style":["bf"],"symbol":"𝚻"},{"style":["it"],"symbol":"𝛵"},{"style":["bf","it"],"symbol":"𝜯"},{"style":["sf","bf"],"symbol":"𝝩"},{"style":["sf","bf","it"],"symbol":"𝞣"}]} +, {"keyword":"T","symbols":[{"style":["bf"],"symbol":"𝐓"},{"style":["it"],"symbol":"𝑇"},{"style":["bf","it"],"symbol":"𝑻"},{"style":["scr"],"symbol":"𝒯"},{"style":["cal"],"symbol":"𝓣"},{"style":["frak"],"symbol":"𝔗"},{"style":["bb"],"symbol":"𝕋"},{"style":["bf","frak"],"symbol":"𝕿"},{"style":["sf"],"symbol":"𝖳"},{"style":["sf","bf"],"symbol":"𝗧"},{"style":["sf","it"],"symbol":"𝘛"},{"style":["sf","bf","it"],"symbol":"𝙏"},{"style":["tt"],"symbol":"𝚃"}]} +, {"keyword":"Sigma","symbols":[{"style":[],"symbol":"Σ"},{"style":["bf"],"symbol":"𝚺"},{"style":["it"],"symbol":"𝛴"},{"style":["bf","it"],"symbol":"𝜮"},{"style":["sf","bf"],"symbol":"𝝨"},{"style":["sf","bf","it"],"symbol":"𝞢"}]} +, {"keyword":"S","symbols":[{"style":["bf"],"symbol":"𝐒"},{"style":["it"],"symbol":"𝑆"},{"style":["bf","it"],"symbol":"𝑺"},{"style":["scr"],"symbol":"𝒮"},{"style":["cal"],"symbol":"𝓢"},{"style":["frak"],"symbol":"𝔖"},{"style":["bb"],"symbol":"𝕊"},{"style":["bf","frak"],"symbol":"𝕾"},{"style":["sf"],"symbol":"𝖲"},{"style":["sf","bf"],"symbol":"𝗦"},{"style":["sf","it"],"symbol":"𝘚"},{"style":["sf","bf","it"],"symbol":"𝙎"},{"style":["tt"],"symbol":"𝚂"}]} +, {"keyword":"Rightarrow","symbols":[{"style":[],"symbol":"⇒"}]} +, {"keyword":"Rho","symbols":[{"style":[],"symbol":"Ρ"},{"style":["bf"],"symbol":"𝚸"},{"style":["it"],"symbol":"𝛲"},{"style":["bf","it"],"symbol":"𝜬"},{"style":["sf","bf"],"symbol":"𝝦"},{"style":["sf","bf","it"],"symbol":"𝞠"}]} +, {"keyword":"Re","symbols":[{"style":[],"symbol":"ℜ"}]} +, {"keyword":"R","symbols":[{"style":["bf"],"symbol":"𝐑"},{"style":["it"],"symbol":"𝑅"},{"style":["bf","it"],"symbol":"𝑹"},{"style":["scr"],"symbol":"ℛ"},{"style":["cal"],"symbol":"𝓡"},{"style":["frak"],"symbol":"ℜ"},{"style":["bb"],"symbol":"ℝ"},{"style":["bf","frak"],"symbol":"𝕽"},{"style":["sf"],"symbol":"𝖱"},{"style":["sf","bf"],"symbol":"𝗥"},{"style":["sf","it"],"symbol":"𝘙"},{"style":["sf","bf","it"],"symbol":"𝙍"},{"style":["tt"],"symbol":"𝚁"}]} +, {"keyword":"Q","symbols":[{"style":["bf"],"symbol":"𝐐"},{"style":["it"],"symbol":"𝑄"},{"style":["bf","it"],"symbol":"𝑸"},{"style":["scr"],"symbol":"𝒬"},{"style":["cal"],"symbol":"𝓠"},{"style":["frak"],"symbol":"𝔔"},{"style":["bb"],"symbol":"ℚ"},{"style":["bf","frak"],"symbol":"𝕼"},{"style":["sf"],"symbol":"𝖰"},{"style":["sf","bf"],"symbol":"𝗤"},{"style":["sf","it"],"symbol":"𝘘"},{"style":["sf","bf","it"],"symbol":"𝙌"},{"style":["tt"],"symbol":"𝚀"}]} +, {"keyword":"Psi","symbols":[{"style":[],"symbol":"Ψ"},{"style":["bf"],"symbol":"𝚿"},{"style":["it"],"symbol":"𝛹"},{"style":["bf","it"],"symbol":"𝜳"},{"style":["sf","bf"],"symbol":"𝝭"},{"style":["sf","bf","it"],"symbol":"𝞧"}]} +, {"keyword":"Pi","symbols":[{"style":[],"symbol":"Π"},{"style":["bf"],"symbol":"𝚷"},{"style":["it"],"symbol":"𝛱"},{"style":["bf","it"],"symbol":"𝜫"},{"style":["sf","bf"],"symbol":"𝝥"},{"style":["sf","bf","it"],"symbol":"𝞟"}]} +, {"keyword":"Phi","symbols":[{"style":[],"symbol":"Φ"},{"style":["bf"],"symbol":"𝚽"},{"style":["it"],"symbol":"𝛷"},{"style":["bf","it"],"symbol":"𝜱"},{"style":["sf","bf"],"symbol":"𝝫"},{"style":["sf","bf","it"],"symbol":"𝞥"}]} +, {"keyword":"P","symbols":[{"style":["bf"],"symbol":"𝐏"},{"style":["it"],"symbol":"𝑃"},{"style":["bf","it"],"symbol":"𝑷"},{"style":["scr"],"symbol":"𝒫"},{"style":["cal"],"symbol":"𝓟"},{"style":["frak"],"symbol":"𝔓"},{"style":["bb"],"symbol":"ℙ"},{"style":["bf","frak"],"symbol":"𝕻"},{"style":["sf"],"symbol":"𝖯"},{"style":["sf","bf"],"symbol":"𝗣"},{"style":["sf","it"],"symbol":"𝘗"},{"style":["sf","bf","it"],"symbol":"𝙋"},{"style":["tt"],"symbol":"𝙿"}]} +, {"keyword":"Omicron","symbols":[{"style":[],"symbol":"Ο"},{"style":["bf"],"symbol":"𝚶"},{"style":["it"],"symbol":"𝛰"},{"style":["bf","it"],"symbol":"𝜪"},{"style":["sf","bf"],"symbol":"𝝤"},{"style":["sf","bf","it"],"symbol":"𝞞"}]} +, {"keyword":"Omega","symbols":[{"style":[],"symbol":"Ω"},{"style":["bf"],"symbol":"𝛀"},{"style":["it"],"symbol":"𝛺"},{"style":["bf","it"],"symbol":"𝜴"},{"style":["sf","bf"],"symbol":"𝝮"},{"style":["sf","bf","it"],"symbol":"𝞨"}]} +, {"keyword":"O","symbols":[{"style":["bf"],"symbol":"𝐎"},{"style":["it"],"symbol":"𝑂"},{"style":["bf","it"],"symbol":"𝑶"},{"style":["scr"],"symbol":"𝒪"},{"style":["cal"],"symbol":"𝓞"},{"style":["frak"],"symbol":"𝔒"},{"style":["bb"],"symbol":"𝕆"},{"style":["bf","frak"],"symbol":"𝕺"},{"style":["sf"],"symbol":"𝖮"},{"style":["sf","bf"],"symbol":"𝗢"},{"style":["sf","it"],"symbol":"𝘖"},{"style":["sf","bf","it"],"symbol":"𝙊"},{"style":["tt"],"symbol":"𝙾"}]} +, {"keyword":"Nu","symbols":[{"style":[],"symbol":"Ν"},{"style":["bf"],"symbol":"𝚴"},{"style":["it"],"symbol":"𝛮"},{"style":["bf","it"],"symbol":"𝜨"},{"style":["sf","bf"],"symbol":"𝝢"},{"style":["sf","bf","it"],"symbol":"𝞜"}]} +, {"keyword":"N","symbols":[{"style":["bf"],"symbol":"𝐍"},{"style":["it"],"symbol":"𝑁"},{"style":["bf","it"],"symbol":"𝑵"},{"style":["scr"],"symbol":"𝒩"},{"style":["cal"],"symbol":"𝓝"},{"style":["frak"],"symbol":"𝔑"},{"style":["bb"],"symbol":"ℕ"},{"style":["bf","frak"],"symbol":"𝕹"},{"style":["sf"],"symbol":"𝖭"},{"style":["sf","bf"],"symbol":"𝗡"},{"style":["sf","it"],"symbol":"𝘕"},{"style":["sf","bf","it"],"symbol":"𝙉"},{"style":["tt"],"symbol":"𝙽"}]} +, {"keyword":"Mu","symbols":[{"style":[],"symbol":"Μ"},{"style":["bf"],"symbol":"𝚳"},{"style":["it"],"symbol":"𝛭"},{"style":["bf","it"],"symbol":"𝜧"},{"style":["sf","bf"],"symbol":"𝝡"},{"style":["sf","bf","it"],"symbol":"𝞛"}]} +, {"keyword":"M","symbols":[{"style":["bf"],"symbol":"𝐌"},{"style":["it"],"symbol":"𝑀"},{"style":["bf","it"],"symbol":"𝑴"},{"style":["scr"],"symbol":"ℳ"},{"style":["cal"],"symbol":"𝓜"},{"style":["frak"],"symbol":"𝔐"},{"style":["bb"],"symbol":"𝕄"},{"style":["bf","frak"],"symbol":"𝕸"},{"style":["sf"],"symbol":"𝖬"},{"style":["sf","bf"],"symbol":"𝗠"},{"style":["sf","it"],"symbol":"𝘔"},{"style":["sf","bf","it"],"symbol":"𝙈"},{"style":["tt"],"symbol":"𝙼"}]} +, {"keyword":"Leftarrow","symbols":[{"style":[],"symbol":"⇐"}]} +, {"keyword":"Lambda","symbols":[{"style":[],"symbol":"Λ"},{"style":["bf"],"symbol":"𝚲"},{"style":["it"],"symbol":"𝛬"},{"style":["bf","it"],"symbol":"𝜦"},{"style":["sf","bf"],"symbol":"𝝠"},{"style":["sf","bf","it"],"symbol":"𝞚"}]} +, {"keyword":"L","symbols":[{"style":["bf"],"symbol":"𝐋"},{"style":["it"],"symbol":"𝐿"},{"style":["bf","it"],"symbol":"𝑳"},{"style":["scr"],"symbol":"ℒ"},{"style":["cal"],"symbol":"𝓛"},{"style":["frak"],"symbol":"𝔏"},{"style":["bb"],"symbol":"𝕃"},{"style":["bf","frak"],"symbol":"𝕷"},{"style":["sf"],"symbol":"𝖫"},{"style":["sf","bf"],"symbol":"𝗟"},{"style":["sf","it"],"symbol":"𝘓"},{"style":["sf","bf","it"],"symbol":"𝙇"},{"style":["tt"],"symbol":"𝙻"}]} +, {"keyword":"Kappa","symbols":[{"style":[],"symbol":"Κ"},{"style":["bf"],"symbol":"𝚱"},{"style":["it"],"symbol":"𝛫"},{"style":["bf","it"],"symbol":"𝜥"},{"style":["sf","bf"],"symbol":"𝝟"},{"style":["sf","bf","it"],"symbol":"𝞙"}]} +, {"keyword":"K","symbols":[{"style":["bf"],"symbol":"𝐊"},{"style":["it"],"symbol":"𝐾"},{"style":["bf","it"],"symbol":"𝑲"},{"style":["scr"],"symbol":"𝒦"},{"style":["cal"],"symbol":"𝓚"},{"style":["frak"],"symbol":"𝔎"},{"style":["bb"],"symbol":"𝕂"},{"style":["bf","frak"],"symbol":"𝕶"},{"style":["sf"],"symbol":"𝖪"},{"style":["sf","bf"],"symbol":"𝗞"},{"style":["sf","it"],"symbol":"𝘒"},{"style":["sf","bf","it"],"symbol":"𝙆"},{"style":["tt"],"symbol":"𝙺"}]} +, {"keyword":"J","symbols":[{"style":["bf"],"symbol":"𝐉"},{"style":["it"],"symbol":"𝐽"},{"style":["bf","it"],"symbol":"𝑱"},{"style":["scr"],"symbol":"𝒥"},{"style":["cal"],"symbol":"𝓙"},{"style":["frak"],"symbol":"𝔍"},{"style":["bb"],"symbol":"𝕁"},{"style":["bf","frak"],"symbol":"𝕵"},{"style":["sf"],"symbol":"𝖩"},{"style":["sf","bf"],"symbol":"𝗝"},{"style":["sf","it"],"symbol":"𝘑"},{"style":["sf","bf","it"],"symbol":"𝙅"},{"style":["tt"],"symbol":"𝙹"}]} +, {"keyword":"Iota","symbols":[{"style":[],"symbol":"Ι"},{"style":["bf"],"symbol":"𝚰"},{"style":["it"],"symbol":"𝛪"},{"style":["bf","it"],"symbol":"𝜤"},{"style":["sf","bf"],"symbol":"𝝞"},{"style":["sf","bf","it"],"symbol":"𝞘"}]} +, {"keyword":"Im","symbols":[{"style":[],"symbol":"ℑ"}]} +, {"keyword":"I","symbols":[{"style":["bf"],"symbol":"𝐈"},{"style":["it"],"symbol":"𝐼"},{"style":["bf","it"],"symbol":"𝑰"},{"style":["scr"],"symbol":"ℐ"},{"style":["cal"],"symbol":"𝓘"},{"style":["frak"],"symbol":"ℑ"},{"style":["bb"],"symbol":"𝕀"},{"style":["bf","frak"],"symbol":"𝕴"},{"style":["sf"],"symbol":"𝖨"},{"style":["sf","bf"],"symbol":"𝗜"},{"style":["sf","it"],"symbol":"𝘐"},{"style":["sf","bf","it"],"symbol":"𝙄"},{"style":["tt"],"symbol":"𝙸"}]} +, {"keyword":"H","symbols":[{"style":["bf"],"symbol":"𝐇"},{"style":["it"],"symbol":"𝐻"},{"style":["bf","it"],"symbol":"𝑯"},{"style":["scr"],"symbol":"ℋ"},{"style":["cal"],"symbol":"𝓗"},{"style":["frak"],"symbol":"ℌ"},{"style":["bb"],"symbol":"ℍ"},{"style":["bf","frak"],"symbol":"𝕳"},{"style":["sf"],"symbol":"𝖧"},{"style":["sf","bf"],"symbol":"𝗛"},{"style":["sf","it"],"symbol":"𝘏"},{"style":["sf","bf","it"],"symbol":"𝙃"},{"style":["tt"],"symbol":"𝙷"}]} +, {"keyword":"Gammma","symbols":[{"style":[],"symbol":"Γ"},{"style":["bf"],"symbol":"𝚪"},{"style":["it"],"symbol":"𝛤"},{"style":["bf","it"],"symbol":"𝜞"},{"style":["sf","bf"],"symbol":"𝝘"},{"style":["sf","bf","it"],"symbol":"𝞒"}]} +, {"keyword":"G","symbols":[{"style":["bf"],"symbol":"𝐆"},{"style":["it"],"symbol":"𝐺"},{"style":["bf","it"],"symbol":"𝑮"},{"style":["scr"],"symbol":"𝒢"},{"style":["cal"],"symbol":"𝓖"},{"style":["frak"],"symbol":"𝔊"},{"style":["bb"],"symbol":"𝔾"},{"style":["bf","frak"],"symbol":"𝕲"},{"style":["sf"],"symbol":"𝖦"},{"style":["sf","bf"],"symbol":"𝗚"},{"style":["sf","it"],"symbol":"𝘎"},{"style":["sf","bf","it"],"symbol":"𝙂"},{"style":["tt"],"symbol":"𝙶"}]} +, {"keyword":"F","symbols":[{"style":["bf"],"symbol":"𝐅"},{"style":["it"],"symbol":"𝐹"},{"style":["bf","it"],"symbol":"𝑭"},{"style":["scr"],"symbol":"ℱ"},{"style":["cal"],"symbol":"𝓕"},{"style":["frak"],"symbol":"𝔉"},{"style":["bb"],"symbol":"𝔽"},{"style":["bf","frak"],"symbol":"𝕱"},{"style":["sf"],"symbol":"𝖥"},{"style":["sf","bf"],"symbol":"𝗙"},{"style":["sf","it"],"symbol":"𝘍"},{"style":["sf","bf","it"],"symbol":"𝙁"},{"style":["tt"],"symbol":"𝙵"}]} +, {"keyword":"Eta","symbols":[{"style":[],"symbol":"Η"},{"style":["bf"],"symbol":"𝚮"},{"style":["it"],"symbol":"𝛨"},{"style":["bf","it"],"symbol":"𝜢"},{"style":["sf","bf"],"symbol":"𝝜"},{"style":["sf","bf","it"],"symbol":"𝞖"}]} +, {"keyword":"Epsilon","symbols":[{"style":[],"symbol":"Ε"},{"style":["bf"],"symbol":"𝚬"},{"style":["it"],"symbol":"𝛦"},{"style":["bf","it"],"symbol":"𝜠"},{"style":["sf","bf"],"symbol":"𝝚"},{"style":["sf","bf","it"],"symbol":"𝞔"}]} +, {"keyword":"E","symbols":[{"style":["bf"],"symbol":"𝐄"},{"style":["it"],"symbol":"𝐸"},{"style":["bf","it"],"symbol":"𝑬"},{"style":["scr"],"symbol":"ℰ"},{"style":["cal"],"symbol":"𝓔"},{"style":["frak"],"symbol":"𝔈"},{"style":["bb"],"symbol":"𝔼"},{"style":["bf","frak"],"symbol":"𝕰"},{"style":["sf"],"symbol":"𝖤"},{"style":["sf","bf"],"symbol":"𝗘"},{"style":["sf","it"],"symbol":"𝘌"},{"style":["sf","bf","it"],"symbol":"𝙀"},{"style":["tt"],"symbol":"𝙴"}]} +, {"keyword":"Downarrow","symbols":[{"style":[],"symbol":"⇓"}]} +, {"keyword":"Digamma","symbols":[{"style":[],"symbol":"Ϝ"},{"style":["bf"],"symbol":"𝟊"}]} +, {"keyword":"Delta","symbols":[{"style":[],"symbol":"Δ"},{"style":["bf"],"symbol":"𝚫"},{"style":["it"],"symbol":"𝛥"},{"style":["bf","it"],"symbol":"𝜟"},{"style":["sf","bf"],"symbol":"𝝙"},{"style":["sf","bf","it"],"symbol":"𝞓"}]} +, {"keyword":"D","symbols":[{"style":["bf"],"symbol":"𝐃"},{"style":["it"],"symbol":"𝐷"},{"style":["bf","it"],"symbol":"𝑫"},{"style":["scr"],"symbol":"𝒟"},{"style":["cal"],"symbol":"𝓓"},{"style":["frak"],"symbol":"𝔇"},{"style":["bb"],"symbol":"𝔻"},{"style":["bf","frak"],"symbol":"𝕯"},{"style":["sf"],"symbol":"𝖣"},{"style":["sf","bf"],"symbol":"𝗗"},{"style":["sf","it"],"symbol":"𝘋"},{"style":["sf","bf","it"],"symbol":"𝘿"},{"style":["tt"],"symbol":"𝙳"}]} +, {"keyword":"Chi","symbols":[{"style":[],"symbol":"Χ"},{"style":["bf"],"symbol":"𝚾"},{"style":["it"],"symbol":"𝛸"},{"style":["bf","it"],"symbol":"𝜲"},{"style":["sf","bf"],"symbol":"𝝬"},{"style":["sf","bf","it"],"symbol":"𝞦"}]} +, {"keyword":"C","symbols":[{"style":["bf"],"symbol":"𝐂"},{"style":["it"],"symbol":"𝐶"},{"style":["bf","it"],"symbol":"𝑪"},{"style":["scr"],"symbol":"𝒞"},{"style":["cal"],"symbol":"𝓒"},{"style":["frak"],"symbol":"ℭ"},{"style":["bb"],"symbol":"ℂ"},{"style":["bf","frak"],"symbol":"𝕮"},{"style":["sf"],"symbol":"𝖢"},{"style":["sf","bf"],"symbol":"𝗖"},{"style":["sf","it"],"symbol":"𝘊"},{"style":["sf","bf","it"],"symbol":"𝘾"},{"style":["tt"],"symbol":"𝙲"}]} +, {"keyword":"Beta","symbols":[{"style":[],"symbol":"Β"},{"style":["bf"],"symbol":"𝚩"},{"style":["it"],"symbol":"𝛣"},{"style":["bf","it"],"symbol":"𝜝"},{"style":["sf","bf"],"symbol":"𝝗"},{"style":["sf","bf","it"],"symbol":"𝞑"}]} +, {"keyword":"B","symbols":[{"style":["bf"],"symbol":"𝐁"},{"style":["it"],"symbol":"𝐵"},{"style":["bf","it"],"symbol":"𝑩"},{"style":["scr"],"symbol":"ℬ"},{"style":["cal"],"symbol":"𝓑"},{"style":["frak"],"symbol":"𝔅"},{"style":["bb"],"symbol":"𝔹"},{"style":["bf","frak"],"symbol":"𝕭"},{"style":["sf"],"symbol":"𝖡"},{"style":["sf","bf"],"symbol":"𝗕"},{"style":["sf","it"],"symbol":"𝘉"},{"style":["sf","bf","it"],"symbol":"𝘽"},{"style":["tt"],"symbol":"𝙱"}]} +, {"keyword":"Alpha","symbols":[{"style":[],"symbol":"Α"},{"style":["bf"],"symbol":"𝚨"},{"style":["it"],"symbol":"𝛢"},{"style":["bf","it"],"symbol":"𝜜"},{"style":["sf","bf"],"symbol":"𝝖"},{"style":["sf","bf","it"],"symbol":"𝞐"}]} +, {"keyword":"A","symbols":[{"style":["bf"],"symbol":"𝐀"},{"style":["it"],"symbol":"𝐴"},{"style":["bf","it"],"symbol":"𝑨"},{"style":["scr"],"symbol":"𝒜"},{"style":["cal"],"symbol":"𝓐"},{"style":["frak"],"symbol":"𝔄"},{"style":["bb"],"symbol":"𝔸"},{"style":["bf","frak"],"symbol":"𝕬"},{"style":["sf"],"symbol":"𝖠"},{"style":["sf","bf"],"symbol":"𝗔"},{"style":["sf","it"],"symbol":"𝘈"},{"style":["sf","bf","it"],"symbol":"𝘼"},{"style":["tt"],"symbol":"𝙰"}]} +, {"keyword":">>","symbols":[{"style":[],"symbol":"⟫"}]} +, {"keyword":">","symbols":[{"style":[],"symbol":"⟩"}]} +, {"keyword":"<<","symbols":[{"style":[],"symbol":"⟪"}]} +, {"keyword":"<","symbols":[{"style":[],"symbol":"⟨"}]} +, {"keyword":"9","symbols":[{"style":["bf"],"symbol":"𝟗"},{"style":["bb"],"symbol":"𝟡"},{"style":["sf"],"symbol":"𝟫"},{"style":["sf","bf"],"symbol":"𝟵"},{"style":["tt"],"symbol":"𝟿"}]} +, {"keyword":"8","symbols":[{"style":["bf"],"symbol":"𝟖"},{"style":["bb"],"symbol":"𝟠"},{"style":["sf"],"symbol":"𝟪"},{"style":["sf","bf"],"symbol":"𝟴"},{"style":["tt"],"symbol":"𝟾"}]} +, {"keyword":"7","symbols":[{"style":["bf"],"symbol":"𝟕"},{"style":["bb"],"symbol":"𝟟"},{"style":["sf"],"symbol":"𝟩"},{"style":["sf","bf"],"symbol":"𝟳"},{"style":["tt"],"symbol":"𝟽"}]} +, {"keyword":"6","symbols":[{"style":["bf"],"symbol":"𝟔"},{"style":["bb"],"symbol":"𝟞"},{"style":["sf"],"symbol":"𝟨"},{"style":["sf","bf"],"symbol":"𝟲"},{"style":["tt"],"symbol":"𝟼"}]} +, {"keyword":"5","symbols":[{"style":["bf"],"symbol":"𝟓"},{"style":["bb"],"symbol":"𝟝"},{"style":["sf"],"symbol":"𝟧"},{"style":["sf","bf"],"symbol":"𝟱"},{"style":["tt"],"symbol":"𝟻"}]} +, {"keyword":"4","symbols":[{"style":["bf"],"symbol":"𝟒"},{"style":["bb"],"symbol":"𝟜"},{"style":["sf"],"symbol":"𝟦"},{"style":["sf","bf"],"symbol":"𝟰"},{"style":["tt"],"symbol":"𝟺"}]} +, {"keyword":"3","symbols":[{"style":["bf"],"symbol":"𝟑"},{"style":["bb"],"symbol":"𝟛"},{"style":["sf"],"symbol":"𝟥"},{"style":["sf","bf"],"symbol":"𝟯"},{"style":["tt"],"symbol":"𝟹"}]} +, {"keyword":"2","symbols":[{"style":["bf"],"symbol":"𝟐"},{"style":["bb"],"symbol":"𝟚"},{"style":["sf"],"symbol":"𝟤"},{"style":["sf","bf"],"symbol":"𝟮"},{"style":["tt"],"symbol":"𝟸"}]} +, {"keyword":"1","symbols":[{"style":["bf"],"symbol":"𝟏"},{"style":["bb"],"symbol":"𝟙"},{"style":["sf"],"symbol":"𝟣"},{"style":["sf","bf"],"symbol":"𝟭"},{"style":["tt"],"symbol":"𝟷"}]} +, {"keyword":"0","symbols":[{"style":["bf"],"symbol":"𝟎"},{"style":["bb"],"symbol":"𝟘"},{"style":["sf"],"symbol":"𝟢"},{"style":["sf","bf"],"symbol":"𝟬"},{"style":["tt"],"symbol":"𝟶"}]} +, {"keyword":")b","symbols":[{"style":[],"symbol":"⟆"}]} +, {"keyword":"))","symbols":[{"style":[],"symbol":"⦆"}]} +, {"keyword":"(|","symbols":[{"style":[],"symbol":"⦇"}]} +, {"keyword":"(b","symbols":[{"style":[],"symbol":"⟅"}]} +, {"keyword":"((","symbols":[{"style":[],"symbol":"⦅"}]} ] diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index e6939755..c01dfab1 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -1,7 +1,9 @@ +pub mod math_symbol_key; mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } +use math_symbol_key::*; pub use dict::UnicodeAnnotation; #[cfg(test)] @@ -12,8 +14,19 @@ mod tests { } #[test] - fn symbol_alpha() { - assert_eq!(crate::lookup_math_symbol("alpha"), Some("α")); + fn math_symbols() { + use crate::math_symbol_key::*; + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -35,9 +48,10 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { .map(|idx| crate::dict::HANJA_ENTRIES[idx].1) } -pub fn lookup_math_symbol(keyword: &str) -> Option<&'static str> { +pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { + let key = SymbolKey(keyword,style); crate::dict::MATH_SYMBOL_ENTRIES - .binary_search_by_key(&keyword, |(k, _)| *k) + .binary_search_by_key(&key, |(k, _)| *k) .ok() .map(|idx| crate::dict::MATH_SYMBOL_ENTRIES[idx].1) } diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs new file mode 100644 index 00000000..bb2bbad5 --- /dev/null +++ b/src/engine/dict/src/math_symbol_key.rs @@ -0,0 +1,24 @@ +use std::ops::BitOr; + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct Style(pub u8); + +impl BitOr for Style { + type Output = Style; + fn bitor(self, rhs: Style) -> Style { + Style(self.0 | rhs.0) + } +} + +pub const STYLE_NONE: Style = Style(0); +pub const STYLE_SF: Style = Style(1); +pub const STYLE_BF: Style = Style(2); +pub const STYLE_IT: Style = Style(4); +pub const STYLE_TT: Style = Style(8); +pub const STYLE_BB: Style = Style(16); +pub const STYLE_SCR: Style = Style(32); +pub const STYLE_CAL: Style = Style(64); +pub const STYLE_FRAK: Style = Style(128); + +#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +pub struct SymbolKey<'a>(pub &'a str, pub Style); From cd6ea5dee9608d0cc56d281dc7a59a031fcf57c4 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:24:30 +0900 Subject: [PATCH 22/32] implement style parsing --- src/engine/backends/math/src/lib.rs | 86 +++++++++++++++++++++++++- src/engine/dict/src/math_symbol_key.rs | 8 ++- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 91918330..339c8d41 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -6,6 +6,26 @@ use kime_engine_backend::{ use kime_engine_backend_latin::{load_layout, LatinConfig}; use kime_engine_dict::math_symbol_key::*; +#[cfg(test)] +mod tests { + #[test] + fn test_parse_style() { + use kime_engine_dict::math_symbol_key::*; + + assert_eq!(crate::parse_style("sf"), STYLE_SF); + assert_eq!(crate::parse_style("bf"), STYLE_BF); + assert_eq!(crate::parse_style("it"), STYLE_IT); + assert_eq!(crate::parse_style("tt"), STYLE_TT); + assert_eq!(crate::parse_style("bb"), STYLE_BB); + assert_eq!(crate::parse_style("scr"), STYLE_SCR); + assert_eq!(crate::parse_style("cal"), STYLE_CAL); + assert_eq!(crate::parse_style("frak"), STYLE_FRAK); + assert_eq!(crate::parse_style("fruk"), STYLE_NONE); + assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + } +} + #[derive(Clone)] pub struct MathMode { math_mode: bool, @@ -23,6 +43,57 @@ impl MathMode { } } +fn take_str(s:&str, n: usize) -> &str { + if s.len() >= n { + &s[0..n] + } else { + s + } +} + +fn parse_style(style_str: &str) -> Style { + let mut buf: &str = style_str; + let mut style = STYLE_NONE; + + loop { + let style_new = match take_str(buf,2) { + "" => return style, + "sf" => {buf = &buf[2..]; STYLE_SF}, + "bf" => {buf = &buf[2..]; STYLE_BF}, + "it" => {buf = &buf[2..]; STYLE_IT}, + "tt" => {buf = &buf[2..]; STYLE_TT}, + "bb" => {buf = &buf[2..]; STYLE_BB}, + "sc" => { + if let "r" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_SCR + } else { + return STYLE_NONE; + } + }, + "ca" => { + if let "l" = take_str(&buf[2..], 1) { + buf = &buf[3..]; + STYLE_CAL + } else { + return STYLE_NONE; + } + }, + "fr" => { + if let "ak" = take_str(&buf[2..], 2) { + buf = &buf[4..]; + STYLE_FRAK + } else { + return STYLE_NONE; + } + }, + _ => return STYLE_NONE, + }; + + style |= style_new; + } +} + impl InputEngineMode for MathMode { fn press_key(&mut self, key: Key, commit_buf: &mut String) -> InputEngineModeResult { if key == Key::normal(KeyCode::Backslash) { @@ -59,9 +130,20 @@ impl InputEngineMode for MathMode { } fn clear_preedit(&mut self, commit_buf: &mut String) -> InputEngineModeResult<()> { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&self.buf, STYLE_NONE) { - commit_buf.push_str(symbol); + let mut iter = self.buf.split('.'); + if let Some(first) = iter.next() { + if let Some(second) = iter.next() { + let style = parse_style(first); + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&second, style) { + commit_buf.push_str(symbol); + } + } else { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + commit_buf.push_str(symbol); + } + } } + self.buf.clear(); self.math_mode = false; Continue(()) diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index bb2bbad5..42cbfba2 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,4 +1,4 @@ -use std::ops::BitOr; +use std::ops::{BitOr, BitOrAssign}; #[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] pub struct Style(pub u8); @@ -10,6 +10,12 @@ impl BitOr for Style { } } +impl BitOrAssign for Style { + fn bitor_assign(&mut self, rhs: Style) { + *self = *self | rhs; + } +} + pub const STYLE_NONE: Style = Style(0); pub const STYLE_SF: Style = Style(1); pub const STYLE_BF: Style = Style(2); From 32e3446e49d25deae84e834a7ba13f18d09b43da Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:07 +0900 Subject: [PATCH 23/32] fix fmt --- src/engine/backends/math/src/lib.rs | 35 ++++++++++++++++++-------- src/engine/dict/build.rs | 28 +++++++++++---------- src/engine/dict/src/lib.rs | 26 ++++++++++--------- src/engine/dict/src/math_symbol_key.rs | 4 +-- 4 files changed, 56 insertions(+), 37 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index 339c8d41..ebe82d08 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -43,7 +43,7 @@ impl MathMode { } } -fn take_str(s:&str, n: usize) -> &str { +fn take_str(s: &str, n: usize) -> &str { if s.len() >= n { &s[0..n] } else { @@ -56,13 +56,28 @@ fn parse_style(style_str: &str) -> Style { let mut style = STYLE_NONE; loop { - let style_new = match take_str(buf,2) { + let style_new = match take_str(buf, 2) { "" => return style, - "sf" => {buf = &buf[2..]; STYLE_SF}, - "bf" => {buf = &buf[2..]; STYLE_BF}, - "it" => {buf = &buf[2..]; STYLE_IT}, - "tt" => {buf = &buf[2..]; STYLE_TT}, - "bb" => {buf = &buf[2..]; STYLE_BB}, + "sf" => { + buf = &buf[2..]; + STYLE_SF + } + "bf" => { + buf = &buf[2..]; + STYLE_BF + } + "it" => { + buf = &buf[2..]; + STYLE_IT + } + "tt" => { + buf = &buf[2..]; + STYLE_TT + } + "bb" => { + buf = &buf[2..]; + STYLE_BB + } "sc" => { if let "r" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -70,7 +85,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "ca" => { if let "l" = take_str(&buf[2..], 1) { buf = &buf[3..]; @@ -78,7 +93,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } "fr" => { if let "ak" = take_str(&buf[2..], 2) { buf = &buf[4..]; @@ -86,7 +101,7 @@ fn parse_style(style_str: &str) -> Style { } else { return STYLE_NONE; } - }, + } _ => return STYLE_NONE, }; diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 2c726b89..cb25c626 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -52,17 +52,19 @@ impl<'de> Deserialize<'de> for Style { let styles: Vec<&str> = Deserialize::deserialize(deserializer)?; let style = styles .into_iter() - .map(|s| Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, - _ => return Err(Error::custom("no matching style name")), - })) + .map(|s| { + Ok(match s { + "sf" => STYLE_SF, + "bf" => STYLE_BF, + "it" => STYLE_IT, + "tt" => STYLE_TT, + "bb" => STYLE_BB, + "scr" => STYLE_SCR, + "cal" => STYLE_CAL, + "frak" => STYLE_FRAK, + _ => return Err(Error::custom("no matching style name")), + }) + }) .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } @@ -189,13 +191,13 @@ fn main() { let symbol_map_data = include_str!("data/symbol_map.json"); let symbol_map_data: Vec = serde_json::from_str(symbol_map_data).unwrap(); - let mut symbol_map: Vec<(SymbolKey,&str)> = Vec::new(); + let mut symbol_map: Vec<(SymbolKey, &str)> = Vec::new(); for key_sym_pair in &symbol_map_data { let keyword = &key_sym_pair.keyword; for sty_sym_pair in &key_sym_pair.symbols { let style = sty_sym_pair.style; let symbol = sty_sym_pair.symbol; - symbol_map.push((SymbolKey(keyword,style), symbol)); + symbol_map.push((SymbolKey(keyword, style), symbol)); } } symbol_map.sort_unstable_by_key(|pair| pair.0); diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index c01dfab1..fff36634 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -3,8 +3,8 @@ mod dict { include!(concat!(env!("OUT_DIR"), "/dict.rs")); } -use math_symbol_key::*; pub use dict::UnicodeAnnotation; +use math_symbol_key::*; #[cfg(test)] mod tests { @@ -15,18 +15,20 @@ mod tests { #[test] fn math_symbols() { + use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(crate::lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(crate::lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + + assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); } #[test] @@ -49,7 +51,7 @@ pub fn lookup(hangul: char) -> Option<&'static [(char, &'static str)]> { } pub fn lookup_math_symbol(keyword: &str, style: Style) -> Option<&'static str> { - let key = SymbolKey(keyword,style); + let key = SymbolKey(keyword, style); crate::dict::MATH_SYMBOL_ENTRIES .binary_search_by_key(&key, |(k, _)| *k) .ok() diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 42cbfba2..c5e4d01e 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -1,6 +1,6 @@ use std::ops::{BitOr, BitOrAssign}; -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct Style(pub u8); impl BitOr for Style { @@ -26,5 +26,5 @@ pub const STYLE_SCR: Style = Style(32); pub const STYLE_CAL: Style = Style(64); pub const STYLE_FRAK: Style = Style(128); -#[derive(Debug,PartialEq,Eq,PartialOrd,Ord,Clone,Copy)] +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From cbdaf5e1c8f4bf27e741f3e476545a25f052bd9b Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:27 +0900 Subject: [PATCH 24/32] add style test --- src/engine/core/tests/math.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/engine/core/tests/math.rs b/src/engine/core/tests/math.rs index d0ab4cca..43f8fda3 100644 --- a/src/engine/core/tests/math.rs +++ b/src/engine/core/tests/math.rs @@ -64,3 +64,22 @@ fn esc() { (Key::normal(Backslash), "", "\\"), ]); } + +#[test] +fn style() { + test_input(&[ + (MATH, "", ""), + (Key::normal(Backslash), "\\", ""), + (Key::normal(B), "\\b", ""), + (Key::normal(F), "\\bf", ""), + (Key::normal(I), "\\bfi", ""), + (Key::normal(T), "\\bfit", ""), + (Key::normal(Period), "\\bfit.", ""), + (Key::normal(A), "\\bfit.a", ""), + (Key::normal(L), "\\bfit.al", ""), + (Key::normal(P), "\\bfit.alp", ""), + (Key::normal(H), "\\bfit.alph", ""), + (Key::normal(A), "\\bfit.alpha", ""), + (Key::normal(Tab), "", "𝜶"), + ]) +} From 6194defc656b0a9d5b2bd1becffc5ddfa1387bdd Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:00:10 +0900 Subject: [PATCH 25/32] fix fmt --- src/engine/dict/build.rs | 11 ++++++++--- src/engine/dict/src/lib.rs | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index cb25c626..ba21043b 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -1,9 +1,9 @@ #[path = "src/math_symbol_key.rs"] mod math_symbol_key; -use math_symbol_key::*; use itertools::Itertools; -use serde::{Deserialize,Deserializer}; +use math_symbol_key::*; +use serde::{Deserialize, Deserializer}; use std::{ collections::BTreeMap, env, @@ -202,7 +202,12 @@ fn main() { } symbol_map.sort_unstable_by_key(|pair| pair.0); - writeln!(out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map).unwrap(); + writeln!( + out, + "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", + symbol_map + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index fff36634..ff9f7e27 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -23,7 +23,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); - assert_eq!(lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), Some("𝙍")); + assert_eq!( + lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + Some("𝙍") + ); assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); From 60b996cea36f662b79c3a6b656de5e965910c091 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 21:02:59 +0900 Subject: [PATCH 26/32] fix fmt --- src/engine/dict/build.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index ba21043b..007d6ef8 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -206,8 +206,8 @@ fn main() { out, "pub static MATH_SYMBOL_ENTRIES: &[(SymbolKey, &str)] = &{:?};", symbol_map - ) - .unwrap(); + ) + .unwrap(); writeln!(out, "#[derive(Clone, Copy, Debug)] pub struct UnicodeAnnotation {{ pub codepoint: &'static str, pub tts: &'static str, }}").unwrap(); writeln!( From 74a8bca396c3c9d1e9054a0b8a82131a41e19eec Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:47:36 +0900 Subject: [PATCH 27/32] use strip_prefix and impl Style --- src/engine/backends/math/src/lib.rs | 109 ++++++++++--------------- src/engine/dict/build.rs | 18 ++-- src/engine/dict/src/lib.rs | 20 ++--- src/engine/dict/src/math_symbol_key.rs | 20 +++-- 4 files changed, 71 insertions(+), 96 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index ebe82d08..c86e1f62 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -12,17 +12,17 @@ mod tests { fn test_parse_style() { use kime_engine_dict::math_symbol_key::*; - assert_eq!(crate::parse_style("sf"), STYLE_SF); - assert_eq!(crate::parse_style("bf"), STYLE_BF); - assert_eq!(crate::parse_style("it"), STYLE_IT); - assert_eq!(crate::parse_style("tt"), STYLE_TT); - assert_eq!(crate::parse_style("bb"), STYLE_BB); - assert_eq!(crate::parse_style("scr"), STYLE_SCR); - assert_eq!(crate::parse_style("cal"), STYLE_CAL); - assert_eq!(crate::parse_style("frak"), STYLE_FRAK); - assert_eq!(crate::parse_style("fruk"), STYLE_NONE); - assert_eq!(crate::parse_style("bfit"), STYLE_BF | STYLE_IT); - assert_eq!(crate::parse_style("bfsfit"), STYLE_SF | STYLE_BF | STYLE_IT); + assert_eq!(crate::parse_style("sf"), Style::SF); + assert_eq!(crate::parse_style("bf"), Style::BF); + assert_eq!(crate::parse_style("it"), Style::IT); + assert_eq!(crate::parse_style("tt"), Style::TT); + assert_eq!(crate::parse_style("bb"), Style::BB); + assert_eq!(crate::parse_style("scr"), Style::SCR); + assert_eq!(crate::parse_style("cal"), Style::CAL); + assert_eq!(crate::parse_style("frak"), Style::FRAK); + assert_eq!(crate::parse_style("fruk"), Style::NONE); + assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); + assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); } } @@ -43,66 +43,39 @@ impl MathMode { } } -fn take_str(s: &str, n: usize) -> &str { - if s.len() >= n { - &s[0..n] - } else { - s - } -} - fn parse_style(style_str: &str) -> Style { let mut buf: &str = style_str; - let mut style = STYLE_NONE; + let mut style = Style::NONE; loop { - let style_new = match take_str(buf, 2) { - "" => return style, - "sf" => { - buf = &buf[2..]; - STYLE_SF - } - "bf" => { - buf = &buf[2..]; - STYLE_BF - } - "it" => { - buf = &buf[2..]; - STYLE_IT - } - "tt" => { - buf = &buf[2..]; - STYLE_TT - } - "bb" => { - buf = &buf[2..]; - STYLE_BB - } - "sc" => { - if let "r" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_SCR - } else { - return STYLE_NONE; - } - } - "ca" => { - if let "l" = take_str(&buf[2..], 1) { - buf = &buf[3..]; - STYLE_CAL - } else { - return STYLE_NONE; - } - } - "fr" => { - if let "ak" = take_str(&buf[2..], 2) { - buf = &buf[4..]; - STYLE_FRAK - } else { - return STYLE_NONE; - } - } - _ => return STYLE_NONE, + let style_new = if buf == "" { + return style; + } else if let Some(_buf) = buf.strip_prefix("sf") { + buf = _buf; + Style::SF + } else if let Some(_buf) = buf.strip_prefix("bf") { + buf = _buf; + Style::BF + } else if let Some(_buf) = buf.strip_prefix("it") { + buf = _buf; + Style::IT + } else if let Some(_buf) = buf.strip_prefix("tt") { + buf = _buf; + Style::TT + } else if let Some(_buf) = buf.strip_prefix("bb") { + buf = _buf; + Style::BB + } else if let Some(_buf) = buf.strip_prefix("scr") { + buf = _buf; + Style::SCR + } else if let Some(_buf) = buf.strip_prefix("cal") { + buf = _buf; + Style::CAL + } else if let Some(_buf) = buf.strip_prefix("frak") { + buf = _buf; + Style::FRAK + } else { + return Style::NONE; }; style |= style_new; @@ -153,7 +126,7 @@ impl InputEngineMode for MathMode { commit_buf.push_str(symbol); } } else { - if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, STYLE_NONE) { + if let Some(symbol) = kime_engine_dict::lookup_math_symbol(&first, Style::NONE) { commit_buf.push_str(symbol); } } diff --git a/src/engine/dict/build.rs b/src/engine/dict/build.rs index 007d6ef8..9fc09976 100644 --- a/src/engine/dict/build.rs +++ b/src/engine/dict/build.rs @@ -54,18 +54,18 @@ impl<'de> Deserialize<'de> for Style { .into_iter() .map(|s| { Ok(match s { - "sf" => STYLE_SF, - "bf" => STYLE_BF, - "it" => STYLE_IT, - "tt" => STYLE_TT, - "bb" => STYLE_BB, - "scr" => STYLE_SCR, - "cal" => STYLE_CAL, - "frak" => STYLE_FRAK, + "sf" => Style::SF, + "bf" => Style::BF, + "it" => Style::IT, + "tt" => Style::TT, + "bb" => Style::BB, + "scr" => Style::SCR, + "cal" => Style::CAL, + "frak" => Style::FRAK, _ => return Err(Error::custom("no matching style name")), }) }) - .fold(Ok(STYLE_NONE), |sty1, sty2| Ok(sty1? | sty2?)); + .fold(Ok(Style::NONE), |sty1, sty2| Ok(sty1? | sty2?)); style } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index ff9f7e27..614a6f79 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -18,20 +18,20 @@ mod tests { use crate::lookup_math_symbol; use crate::math_symbol_key::*; - assert_eq!(lookup_math_symbol("alpha", STYLE_NONE), Some("α")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF), Some("𝛂")); - assert_eq!(lookup_math_symbol("alpha", STYLE_IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", STYLE_BF | STYLE_IT), Some("𝜶")); + assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); + assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); + assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); + assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); assert_eq!( - lookup_math_symbol("R", STYLE_SF | STYLE_BF | STYLE_IT), + lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), Some("𝙍") ); - assert_eq!(lookup_math_symbol("R", STYLE_TT), Some("𝚁")); - assert_eq!(lookup_math_symbol("R", STYLE_BB), Some("ℝ")); - assert_eq!(lookup_math_symbol("R", STYLE_SCR), Some("ℛ")); - assert_eq!(lookup_math_symbol("R", STYLE_CAL), Some("𝓡")); - assert_eq!(lookup_math_symbol("R", STYLE_FRAK), Some("ℜ")); + assert_eq!(lookup_math_symbol("R", Style::TT), Some("𝚁")); + assert_eq!(lookup_math_symbol("R", Style::BB), Some("ℝ")); + assert_eq!(lookup_math_symbol("R", Style::SCR), Some("ℛ")); + assert_eq!(lookup_math_symbol("R", Style::CAL), Some("𝓡")); + assert_eq!(lookup_math_symbol("R", Style::FRAK), Some("ℜ")); } #[test] diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index c5e4d01e..39bf6546 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -16,15 +16,17 @@ impl BitOrAssign for Style { } } -pub const STYLE_NONE: Style = Style(0); -pub const STYLE_SF: Style = Style(1); -pub const STYLE_BF: Style = Style(2); -pub const STYLE_IT: Style = Style(4); -pub const STYLE_TT: Style = Style(8); -pub const STYLE_BB: Style = Style(16); -pub const STYLE_SCR: Style = Style(32); -pub const STYLE_CAL: Style = Style(64); -pub const STYLE_FRAK: Style = Style(128); +impl Style { + pub const NONE: Style = Style(0); + pub const SF: Style = Style(1<<0); + pub const BF: Style = Style(1<<1); + pub const IT: Style = Style(1<<2); + pub const TT: Style = Style(1<<3); + pub const BB: Style = Style(1<<4); + pub const SCR: Style = Style(1<<5); + pub const CAL: Style = Style(1<<6); + pub const FRAK: Style = Style(1<<7); +} #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub struct SymbolKey<'a>(pub &'a str, pub Style); From 830588c65c82ba7bd32633fb3373e21346307991 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:49:40 +0900 Subject: [PATCH 28/32] fix fmt --- src/engine/backends/math/src/lib.rs | 5 ++++- src/engine/dict/src/lib.rs | 5 ++++- src/engine/dict/src/math_symbol_key.rs | 16 ++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index c86e1f62..b888a1e2 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -22,7 +22,10 @@ mod tests { assert_eq!(crate::parse_style("frak"), Style::FRAK); assert_eq!(crate::parse_style("fruk"), Style::NONE); assert_eq!(crate::parse_style("bfit"), Style::BF | Style::IT); - assert_eq!(crate::parse_style("bfsfit"), Style::SF | Style::BF | Style::IT); + assert_eq!( + crate::parse_style("bfsfit"), + Style::SF | Style::BF | Style::IT + ); } } diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index 614a6f79..ba6e156c 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -21,7 +21,10 @@ mod tests { assert_eq!(lookup_math_symbol("alpha", Style::NONE), Some("α")); assert_eq!(lookup_math_symbol("alpha", Style::BF), Some("𝛂")); assert_eq!(lookup_math_symbol("alpha", Style::IT), Some("𝛼")); - assert_eq!(lookup_math_symbol("alpha", Style::BF | Style::IT), Some("𝜶")); + assert_eq!( + lookup_math_symbol("alpha", Style::BF | Style::IT), + Some("𝜶") + ); assert_eq!( lookup_math_symbol("R", Style::SF | Style::BF | Style::IT), diff --git a/src/engine/dict/src/math_symbol_key.rs b/src/engine/dict/src/math_symbol_key.rs index 39bf6546..51e4560c 100644 --- a/src/engine/dict/src/math_symbol_key.rs +++ b/src/engine/dict/src/math_symbol_key.rs @@ -18,14 +18,14 @@ impl BitOrAssign for Style { impl Style { pub const NONE: Style = Style(0); - pub const SF: Style = Style(1<<0); - pub const BF: Style = Style(1<<1); - pub const IT: Style = Style(1<<2); - pub const TT: Style = Style(1<<3); - pub const BB: Style = Style(1<<4); - pub const SCR: Style = Style(1<<5); - pub const CAL: Style = Style(1<<6); - pub const FRAK: Style = Style(1<<7); + pub const SF: Style = Style(1 << 0); + pub const BF: Style = Style(1 << 1); + pub const IT: Style = Style(1 << 2); + pub const TT: Style = Style(1 << 3); + pub const BB: Style = Style(1 << 4); + pub const SCR: Style = Style(1 << 5); + pub const CAL: Style = Style(1 << 6); + pub const FRAK: Style = Style(1 << 7); } #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] From c9db249896dfe282c5d2b6037c2ee8cf1d8883c9 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 19:02:43 +0900 Subject: [PATCH 29/32] add Style --- src/engine/dict/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index ba6e156c..d330399d 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -5,6 +5,7 @@ mod dict { pub use dict::UnicodeAnnotation; use math_symbol_key::*; +use math_symbol_key::*; #[cfg(test)] mod tests { From 6768e781beb907886eabae231cd085933ff64aaa Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 20:55:07 +0900 Subject: [PATCH 30/32] fix fmt --- src/engine/dict/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/engine/dict/src/lib.rs b/src/engine/dict/src/lib.rs index d330399d..8b47d366 100644 --- a/src/engine/dict/src/lib.rs +++ b/src/engine/dict/src/lib.rs @@ -4,8 +4,6 @@ mod dict { } pub use dict::UnicodeAnnotation; -use math_symbol_key::*; -use math_symbol_key::*; #[cfg(test)] mod tests { From 5b50a95e17935119d813a49e196a2199fa1b4045 Mon Sep 17 00:00:00 2001 From: damhiya Date: Thu, 18 Mar 2021 23:53:45 +0900 Subject: [PATCH 31/32] use is_empty Co-authored-by: Riey --- src/engine/backends/math/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine/backends/math/src/lib.rs b/src/engine/backends/math/src/lib.rs index b888a1e2..2c4027fa 100644 --- a/src/engine/backends/math/src/lib.rs +++ b/src/engine/backends/math/src/lib.rs @@ -51,7 +51,7 @@ fn parse_style(style_str: &str) -> Style { let mut style = Style::NONE; loop { - let style_new = if buf == "" { + let style_new = if buf.is_empty() { return style; } else if let Some(_buf) = buf.strip_prefix("sf") { buf = _buf; From 1873e262694b548353e240ad452ef750d98e29e0 Mon Sep 17 00:00:00 2001 From: damhiya Date: Fri, 19 Mar 2021 00:22:33 +0900 Subject: [PATCH 32/32] update CHANGELOG.md --- docs/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0cc1aeee..2f4518bf 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -7,6 +7,7 @@ ### Improve * Let Esc exit math mode [#379](https://github.com/Riey/kime/issues/379) +* Add font style specifier for math symbols ## 2.0.1