Module: LatexToUnicode

Defined in:
lib/data.rb,
lib/translate.rb,
lib/latex_grammar.rb,
lib/latex-to-unicode.rb

Defined Under Namespace

Modules: Latex Classes: LatexParser

Constant Summary collapse

ALIASES =
{
  "\\mathfrak" => "\\frak",
  "\\mathcal" => "\\cal",
  "\\mathbf" => "\\bf",
  "\\mathbb" => "\\bb",
  "\\dfrac" => "\\frac"
}
BB =
{
  "z" => "đ•«",
  "y" => "đ•Ș",
  "x" => "đ•©",
  "w" => "𝕹",
  "v" => "𝕧",
  "u" => "𝕩",
  "t" => "đ•„",
  "s" => "đ•€",
  "r" => "𝕣",
  "q" => "𝕱",
  "p" => "𝕡",
  "o" => "𝕠",
  "n" => "𝕟",
  "m" => "𝕞",
  "l" => "𝕝",
  "k" => "𝕜",
  "j" => "𝕛",
  "i" => "𝕚",
  "h" => "𝕙",
  "g" => "𝕘",
  "f" => "𝕗",
  "e" => "𝕖",
  "d" => "𝕕",
  "c" => "𝕔",
  "b" => "𝕓",
  "a" => "𝕒",
  "Z" => "â„€",
  "Y" => "𝕐",
  "X" => "𝕏",
  "W" => "𝕎",
  "V" => "𝕍",
  "U" => "𝕌",
  "T" => "𝕋",
  "S" => "𝕊",
  "R" => "ℝ",
  "Q" => "ℚ",
  "P" => "ℙ",
  "O" => "𝕆",
  "N" => "ℕ",
  "M" => "𝕄",
  "L" => "𝕃",
  "K" => "𝕂",
  "J" => "𝕁",
  "I" => "𝕀",
  "H" => "ℍ",
  "G" => "đ”Ÿ",
  "F" => "đ”œ",
  "E" => "đ”Œ",
  "D" => "đ”»",
  "C" => "ℂ",
  "B" => "đ”č",
  "A" => "𝔾",
  "9" => "𝟡",
  "8" => "𝟠",
  "7" => "𝟟",
  "6" => "𝟞",
  "5" => "𝟝",
  "4" => "𝟜",
  "3" => "𝟛",
  "2" => "𝟚",
  "1" => "𝟙",
  "0" => "𝟘"
}
BF =
{
  "∇" => "𝛁",
  "∂" => "𝛛",
  "Ï”" => "𝛜",
  "ÏŽ" => "đšč",
  "ϱ" => "𝛠",
  "Ï°" => "𝛞",
  "ϖ" => "𝛡",
  "ϕ" => "𝛟",
  "ϑ" => "𝛝",
  "ω" => "𝛚",
  "ψ" => "𝛙",
  "χ" => "𝛘",
  "φ" => "𝛗",
  "υ" => "𝛖",
  "τ" => "𝛕",
  "σ" => "𝛔",
  "ς" => "𝛓",
  "ρ" => "𝛒",
  "π" => "𝛑",
  "ο" => "𝛐",
  "Ο" => "𝛏",
  "Îœ" => "𝛎",
  "ÎŒ" => "𝛍",
  "λ" => "𝛌",
  "Îș" => "𝛋",
  "Îč" => "𝛊",
  "ξ" => "𝛉",
  "η" => "𝛈",
  "ζ" => "𝛇",
  "Δ" => "𝛆",
  "ή" => "𝛅",
  "γ" => "𝛄",
  "ÎČ" => "𝛃",
  "α" => "𝛂",
  "Ω" => "𝛀",
  "ι" => "𝚿",
  "Χ" => "đšŸ",
  "Ί" => "đšœ",
  "΄" => "đšŒ",
  "΀" => "đš»",
  "ÎŁ" => "đšș",
  "Ρ" => "𝚾",
  "Π" => "đš·",
  "Ο" => "đš¶",
  "Ξ" => "đš”",
  "Ν" => "𝚮",
  "Μ" => "𝚳",
  "Λ" => "đšČ",
  "Κ" => "đš±",
  "Ι" => "𝚰",
  "Θ" => "𝚯",
  "Η" => "𝚼",
  "Ζ" => "𝚭",
  "Ε" => "𝚬",
  "Δ" => "đš«",
  "Γ" => "đšȘ",
  "Β" => "đš©",
  "Α" => "𝚹",
  "z" => "𝐳",
  "y" => "đČ",
  "x" => "đ±",
  "w" => "𝐰",
  "v" => "𝐯",
  "u" => "𝐼",
  "t" => "𝐭",
  "s" => "𝐬",
  "r" => "đ«",
  "q" => "đȘ",
  "p" => "đ©",
  "o" => "𝐹",
  "n" => "𝐧",
  "m" => "𝐩",
  "l" => "đ„",
  "k" => "đ€",
  "j" => "𝐣",
  "i" => "𝐱",
  "h" => "𝐡",
  "g" => "𝐠",
  "f" => "𝐟",
  "e" => "𝐞",
  "d" => "𝐝",
  "c" => "𝐜",
  "b" => "𝐛",
  "a" => "𝐚",
  "Z" => "𝐙",
  "Y" => "𝐘",
  "X" => "𝐗",
  "W" => "𝐖",
  "V" => "𝐕",
  "U" => "𝐔",
  "T" => "𝐓",
  "S" => "𝐒",
  "R" => "𝐑",
  "Q" => "𝐐",
  "P" => "𝐏",
  "O" => "𝐎",
  "N" => "𝐍",
  "M" => "𝐌",
  "L" => "𝐋",
  "K" => "𝐊",
  "J" => "𝐉",
  "I" => "𝐈",
  "H" => "𝐇",
  "G" => "𝐆",
  "F" => "𝐅",
  "E" => "𝐄",
  "D" => "𝐃",
  "C" => "𝐂",
  "B" => "𝐁",
  "A" => "𝐀",
  "9" => "𝟗",
  "8" => "𝟖",
  "7" => "𝟕",
  "6" => "𝟔",
  "5" => "𝟓",
  "4" => "𝟒",
  "3" => "𝟑",
  "2" => "𝟐",
  "1" => "𝟏",
  "0" => "𝟎"
}
CAL =
{
  "z" => "𝔃",
  "y" => "𝔂",
  "x" => "𝔁",
  "w" => "𝔀",
  "v" => "𝓿",
  "u" => "đ“Ÿ",
  "t" => "đ“œ",
  "s" => "đ“Œ",
  "r" => "đ“»",
  "q" => "đ“ș",
  "p" => "đ“č",
  "o" => "𝓾",
  "n" => "đ“·",
  "m" => "đ“¶",
  "l" => "đ“”",
  "k" => "𝓮",
  "j" => "𝓳",
  "i" => "đ“Č",
  "h" => "đ“±",
  "g" => "𝓰",
  "f" => "𝓯",
  "e" => "𝓼",
  "d" => "𝓭",
  "c" => "𝓬",
  "b" => "đ“«",
  "a" => "đ“Ș",
  "Z" => "đ“©",
  "Y" => "𝓹",
  "X" => "𝓧",
  "W" => "𝓩",
  "V" => "đ“„",
  "U" => "đ“€",
  "T" => "𝓣",
  "S" => "𝓱",
  "R" => "𝓡",
  "Q" => "𝓠",
  "P" => "𝓟",
  "O" => "𝓞",
  "N" => "𝓝",
  "M" => "𝓜",
  "L" => "𝓛",
  "K" => "𝓚",
  "J" => "𝓙",
  "I" => "𝓘",
  "H" => "𝓗",
  "G" => "𝓖",
  "F" => "𝓕",
  "E" => "𝓔",
  "D" => "𝓓",
  "C" => "𝓒",
  "B" => "𝓑",
  "A" => "𝓐"
}
FRAK =
{
  "z" => "đ”·",
  "y" => "đ”¶",
  "x" => "đ””",
  "w" => "𝔮",
  "v" => "𝔳",
  "u" => "đ”Č",
  "t" => "đ”±",
  "s" => "𝔰",
  "r" => "𝔯",
  "q" => "𝔼",
  "p" => "𝔭",
  "o" => "𝔬",
  "n" => "đ”«",
  "m" => "đ”Ș",
  "l" => "đ”©",
  "k" => "𝔹",
  "j" => "𝔧",
  "i" => "𝔩",
  "h" => "đ”„",
  "g" => "đ”€",
  "f" => "𝔣",
  "e" => "𝔱",
  "d" => "𝔡",
  "c" => "𝔠",
  "b" => "𝔟",
  "a" => "𝔞",
  "Z" => "ℹ",
  "Y" => "𝔜",
  "X" => "𝔛",
  "W" => "𝔚",
  "V" => "𝔙",
  "U" => "𝔘",
  "T" => "𝔗",
  "S" => "𝔖",
  "R" => "ℜ",
  "Q" => "𝔔",
  "P" => "𝔓",
  "O" => "𝔒",
  "N" => "𝔑",
  "M" => "𝔐",
  "L" => "𝔏",
  "K" => "𝔎",
  "J" => "𝔍",
  "I" => "ℑ",
  "H" => "ℌ",
  "G" => "𝔊",
  "F" => "𝔉",
  "E" => "𝔈",
  "D" => "𝔇",
  "C" => "ℭ",
  "B" => "𝔅",
  "A" => "𝔄"
}
IT =
{
  "∇" => "đ›»",
  "∂" => "𝜕",
  "Ï”" => "𝜖",
  "ÏŽ" => "𝛳",
  "ϱ" => "𝜚",
  "Ï°" => "𝜘",
  "ϖ" => "𝜛",
  "ϕ" => "𝜙",
  "ϑ" => "𝜗",
  "ω" => "𝜔",
  "ψ" => "𝜓",
  "χ" => "𝜒",
  "φ" => "𝜑",
  "υ" => "𝜐",
  "τ" => "𝜏",
  "σ" => "𝜎",
  "ς" => "𝜍",
  "ρ" => "𝜌",
  "π" => "𝜋",
  "ο" => "𝜊",
  "Ο" => "𝜉",
  "Îœ" => "𝜈",
  "ÎŒ" => "𝜇",
  "λ" => "𝜆",
  "Îș" => "𝜅",
  "Îč" => "𝜄",
  "ξ" => "𝜃",
  "η" => "𝜂",
  "ζ" => "𝜁",
  "Δ" => "𝜀",
  "ή" => "𝛿",
  "Îł" => "đ›Ÿ",
  "ÎČ" => "đ›œ",
  "α" => "đ›Œ",
  "Ω" => "đ›ș",
  "Κ" => "đ›č",
  "Χ" => "𝛾",
  "Ί" => "đ›·",
  "΄" => "đ›¶",
  "΀" => "đ›”",
  "Σ" => "𝛮",
  "ÎĄ" => "đ›Č",
  "Π" => "đ›±",
  "Ο" => "𝛰",
  "Ξ" => "𝛯",
  "Ν" => "𝛼",
  "Μ" => "𝛭",
  "Λ" => "𝛬",
  "Κ" => "đ›«",
  "Ι" => "đ›Ș",
  "Θ" => "đ›©",
  "Η" => "𝛹",
  "Ζ" => "𝛧",
  "Ε" => "𝛩",
  "Δ" => "đ›„",
  "Γ" => "đ›€",
  "Β" => "𝛣",
  "Α" => "𝛱",
  "z" => "𝑧",
  "y" => "𝑩",
  "x" => "đ‘„",
  "w" => "đ‘€",
  "v" => "𝑣",
  "u" => "𝑱",
  "t" => "𝑡",
  "s" => "𝑠",
  "r" => "𝑟",
  "q" => "𝑞",
  "p" => "𝑝",
  "o" => "𝑜",
  "n" => "𝑛",
  "m" => "𝑚",
  "l" => "𝑙",
  "k" => "𝑘",
  "j" => "𝑗",
  "i" => "𝑖",
  "h" => "ℎ",
  "g" => "𝑔",
  "f" => "𝑓",
  "e" => "𝑒",
  "d" => "𝑑",
  "c" => "𝑐",
  "b" => "𝑏",
  "a" => "𝑎",
  "Z" => "𝑍",
  "Y" => "𝑌",
  "X" => "𝑋",
  "W" => "𝑊",
  "V" => "𝑉",
  "U" => "𝑈",
  "T" => "𝑇",
  "S" => "𝑆",
  "R" => "𝑅",
  "Q" => "𝑄",
  "P" => "𝑃",
  "O" => "𝑂",
  "N" => "𝑁",
  "M" => "𝑀",
  "L" => "𝐿",
  "K" => "đŸ",
  "J" => "đœ",
  "I" => "đŒ",
  "H" => "đ»",
  "G" => "đș",
  "F" => "đč",
  "E" => "𝐾",
  "D" => "đ·",
  "C" => "đ¶",
  "B" => "đ”",
  "A" => "𝐮"
}
MONO =
{
  "z" => "𝚣",
  "y" => "𝚱",
  "x" => "𝚡",
  "w" => "𝚠",
  "v" => "𝚟",
  "u" => "𝚞",
  "t" => "𝚝",
  "s" => "𝚜",
  "r" => "𝚛",
  "q" => "𝚚",
  "p" => "𝚙",
  "o" => "𝚘",
  "n" => "𝚗",
  "m" => "𝚖",
  "l" => "𝚕",
  "k" => "𝚔",
  "j" => "𝚓",
  "i" => "𝚒",
  "h" => "𝚑",
  "g" => "𝚐",
  "f" => "𝚏",
  "e" => "𝚎",
  "d" => "𝚍",
  "c" => "𝚌",
  "b" => "𝚋",
  "a" => "𝚊",
  "Z" => "𝚉",
  "Y" => "𝚈",
  "X" => "𝚇",
  "W" => "𝚆",
  "V" => "𝚅",
  "U" => "𝚄",
  "T" => "𝚃",
  "S" => "𝚂",
  "R" => "𝚁",
  "Q" => "𝚀",
  "P" => "𝙿",
  "O" => "đ™Ÿ",
  "N" => "đ™œ",
  "M" => "đ™Œ",
  "L" => "đ™»",
  "K" => "đ™ș",
  "J" => "đ™č",
  "I" => "𝙾",
  "H" => "đ™·",
  "G" => "đ™¶",
  "F" => "đ™”",
  "E" => "𝙮",
  "D" => "𝙳",
  "C" => "đ™Č",
  "B" => "đ™±",
  "A" => "𝙰",
  "9" => "𝟿",
  "8" => "đŸŸ",
  "7" => "đŸœ",
  "6" => "đŸŒ",
  "5" => "đŸ»",
  "4" => "đŸș",
  "3" => "đŸč",
  "2" => "𝟾",
  "1" => "đŸ·",
  "0" => "đŸ¶"
}
SUBSCRIPTS =
{
  "χ" => "á”Ș",
  "φ" => "ᔩ",
  "ρ" => "ᔚ",
  "γ" => "ᔧ",
  "ÎČ" => "ᔊ",
  "x" => "ₓ",
  "v" => "ᔄ",
  "u" => "ᔀ",
  "r" => "ᔣ",
  "o" => "ₒ",
  "i" => "ᔹ",
  "e" => "ₑ",
  "a" => "ₐ",
  "=" => "₌",
  "9" => "₉",
  "8" => "₈",
  "7" => "₇",
  "6" => "₆",
  "5" => "₅",
  "4" => "₄",
  "3" => "₃",
  "2" => "₂",
  "1" => "₁",
  "0" => "₀",
  "-" => "₋",
  "+" => "₊",
  ")" => "₎",
  "(" => "₍"
}
SUPERSCRIPTS =
{
  "∊" => "ᔋ",
  "χ" => "ᔥ",
  "φ" => "á” ",
  "Îč" => "ᶄ",
  "Ξ" => "ᶿ",
  "ÎŽ" => "ᔟ",
  "Îł" => "ᔞ",
  "ÎČ" => "ᔝ",
  "α" => "á”…",
  "Ί" => "á¶Č",
  "z" => "ᶻ",
  "y" => "Êž",
  "x" => "ËŁ",
  "w" => "Ê·",
  "v" => "á”›",
  "u" => "ᔘ",
  "t" => "á”—",
  "s" => "Ëą",
  "r" => "Êł",
  "p" => "á”–",
  "o" => "á”’",
  "n" => "ⁿ",
  "m" => "ᔐ",
  "l" => "ËĄ",
  "k" => "ᔏ",
  "j" => "ÊČ",
  "i" => "ⁱ",
  "h" => "Ê°",
  "g" => "ᔍ",
  "f" => "ᶠ",
  "e" => "ᔉ",
  "d" => "ᔈ",
  "c" => "ᶜ",
  "b" => "ᔇ",
  "a" => "ᔃ",
  "W" => "ᔂ",
  "V" => "ⱜ",
  "U" => "ᔁ",
  "T" => "ᔀ",
  "R" => "Ꮏ",
  "P" => "᎟",
  "O" => "ᎌ",
  "N" => "áŽș",
  "M" => "áŽč",
  "L" => "᎞",
  "K" => "Ꮇ",
  "J" => "Ꮆ",
  "I" => "᎔",
  "H" => "ᎎ",
  "G" => "Ꮃ",
  "E" => "Ꮁ",
  "D" => "Ꮀ",
  "B" => "᎟",
  "A" => "ᎏ",
  "=" => "⁌",
  "9" => "âč",
  "8" => "⁞",
  "7" => "⁷",
  "6" => "⁶",
  "5" => "⁔",
  "4" => "⁎",
  "3" => "Âł",
  "2" => "ÂČ",
  "1" => "Âč",
  "0" => "⁰",
  "-" => "⁻",
  "+" => "âș",
  ")" => " ",
  "(" => "⁜"
}
SYMBOLS =
{
  "\\zeta" => "ζ",
  "\\xi" => "Ο",
  "\\wr" => "≀",
  "\\wp" => "℘",
  "\\wedge" => "∧",
  "\\veebar" => "⊻",
  "\\vee" => "√",
  "\\vdots" => "⋼",
  "\\vdash" => "⊱",
  "\\vartriangleright" => "⊳",
  "\\vartriangleleft" => "âŠČ",
  "\\vartriangle" => "△",
  "\\vartheta" => "ϑ",
  "\\varsigma" => "ς",
  "\\varrho" => "ϱ",
  "\\varpropto" => "∝",
  "\\varpi" => "ϖ",
  "\\varphi" => "ϕ",
  "\\varnothing" => "∅",
  "\\varkappa" => "Ï°",
  "\\varepsilon" => "Δ",
  "\\vDash" => "⊹",
  "\\upuparrows" => "⇈",
  "\\upsilon" => "υ",
  "\\uplus" => "⊎",
  "\\upharpoonright" => "↟",
  "\\upharpoonleft" => "↿",
  "\\updownarrow" => "↕",
  "\\uparrow" => "↑",
  "\\unrhd" => "⊔",
  "\\unlhd" => "⊮",
  "\\twoheadrightarrow" => "↠",
  "\\twoheadleftarrow" => "↞",
  "\\trianglerighteq" => "⊔",
  "\\triangleright" => "▷",
  "\\triangleq" => "≜",
  "\\trianglelefteq" => "⊮",
  "\\triangleleft" => "◁",
  "\\triangledown" => "▜",
  "\\triangle" => "△",
  "\\top" => "⊀",
  "\\times" => "×",
  "\\thicksim" => "∌",
  "\\thickapprox" => "≈",
  "\\theta" => "Ξ",
  "\\therefore" => "∎",
  "\\tau" => "τ",
  "\\swarrow" => "↙",
  "\\surd" => "√",
  "\\supseteq" => "⊇",
  "\\supset" => "⊃",
  "\\sum" => "∑",
  "\\succsim" => "≿",
  "\\succeq" => "≜",
  "\\succcurlyeq" => "≜",
  "\\succ" => "≻",
  "\\subseteq" => "⊆",
  "\\subset" => "⊂",
  "\\star" => "⋆",
  "\\square" => "□",
  "\\sqsupseteq" => "⊒",
  "\\sqsupset" => "⊐",
  "\\sqsupset" => "⊐",
  "\\sqsubseteq" => "⊑",
  "\\sqsubset" => "⊏",
  "\\sqsubset" => "⊏",
  "\\sqcup" => "⊔",
  "\\sqcap" => "⊓",
  "\\sphericalangle" => "∹",
  "\\spadesuit" => "♠",
  "\\smile" => "⌣",
  "\\smallsmile" => "⌣",
  "\\smallsetminus" => "∖",
  "\\smallfrown" => "⌱",
  "\\simeq" => "≃",
  "\\sim" => "∌",
  "\\sigma" => "σ",
  "\\shortparallel" => "∄",
  "\\sharp" => "♯",
  "\\setminus" => "∖",
  "\\searrow" => "↘",
  "\\rtimes" => "⋈",
  "\\risingdotseq" => "≓",
  "\\rightthreetimes" => "⋌",
  "\\rightsquigarrow" => "⇝",
  "\\rightrightarrows" => "⇉",
  "\\rightleftharpoons" => "⇌",
  "\\rightleftarrows" => "⇄",
  "\\rightharpoonup" => "⇀",
  "\\rightharpoondown" => "⇁",
  "\\rightarrowtail" => "↣",
  "\\rightarrow" => "→",
  "\\rho" => "ρ",
  "\\rhd" => "⊳",
  "\\rfloor" => "⌋",
  "\\rceil" => "⌉",
  "\\rangle" => "âŒȘ",
  "\\psi" => "ψ",
  "\\propto" => "∝",
  "\\prod" => "∏",
  "\\prime" => "â€Č",
  "\\precsim" => "≟",
  "\\preceq" => "≌",
  "\\preccurlyeq" => "≌",
  "\\prec" => "â‰ș",
  "\\pm" => "±",
  "\\pitchfork" => "⋔",
  "\\pi" => "π",
  "\\phi" => "φ",
  "\\perp" => "⊄",
  "\\partial" => "∂",
  "\\parallel" => "∄",
  "\\otimes" => "⊗",
  "\\oslash" => "⊘",
  "\\oplus" => "⊕",
  "\\ominus" => "⊖",
  "\\omega" => "ω",
  "\\oint" => "∟",
  "\\odot" => "⊙",
  "\\nwarrow" => "↖",
  "\\nu" => "Μ",
  "\\notin" => "∉",
  "\\ni" => "∋",
  "\\nexists" => "∄",
  "\\neq" => "≠",
  "\\neg" => "ÂŹ",
  "\\nearrow" => "↗",
  "\\natural" => "♼",
  "\\nabla" => "∇",
  "\\multimap" => "⊾",
  "\\mu" => "Ό",
  "\\mp" => "∓",
  "\\models" => "⊹",
  "\\mid" => "∣",
  "\\mho" => "℧",
  "\\mho" => "℧",
  "\\measuredangle" => "∥",
  "\\mapsto" => "↩",
  "\\ltimes" => "⋉",
  "\\lozenge" => "◊",
  "\\looparrowright" => "↬",
  "\\looparrowleft" => "↫",
  "\\longrightarrow" => "→",
  "\\longmapsto" => "⇖",
  "\\longleftrightarrow" => "↔",
  "\\longleftarrow" => "←",
  "\\lll" => "⋘",
  "\\ll" => "â‰Ș",
  "\\lhd" => "âŠČ",
  "\\lfloor" => "⌊",
  "\\lesssim" => "â‰Č",
  "\\lessgtr" => "≶",
  "\\lesseqgtr" => "⋚",
  "\\lessdot" => "⋖",
  "\\leqslant" => "≀",
  "\\leqq" => "≩",
  "\\leq" => "≀",
  "\\leftthreetimes" => "⋋",
  "\\leftrightsquigarrow" => "↭",
  "\\leftrightharpoons" => "⇋",
  "\\leftrightarrows" => "⇆",
  "\\leftrightarrow" => "↔",
  "\\leftleftarrows" => "⇇",
  "\\leftharpoonup" => "↌",
  "\\leftharpoondown" => "↜",
  "\\leftarrowtail" => "↱",
  "\\leftarrow" => "←",
  "\\leadsto" => "↝",
  "\\le" => "≀",
  "\\lceil" => "⌈",
  "\\langle" => "〈",
  "\\lambda" => "λ",
  "\\kappa" => "Îș",
  "\\iota" => "Îč",
  "\\intercal" => "âŠș",
  "\\int" => "∫",
  "\\infty" => "∞",
  "\\in" => "∈",
  "\\implies" => "⇒",
  "\\hslash" => "ℏ",
  "\\hookrightarrow" => "â†Ș",
  "\\hookleftarrow" => "↩",
  "\\heartsuit" => "♡",
  "\\hbar" => "ℏ",
  "\\hbar" => "ℏ",
  "\\gtrsim" => "≳",
  "\\gtrless" => "≷",
  "\\gtreqless" => "⋛",
  "\\gtrdot" => "⋗",
  "\\gimel" => "Ś’",
  "\\ggg" => "⋙",
  "\\gg" => "≫",
  "\\geqq" => "≧",
  "\\geq" => "≄",
  "\\ge" => "≄",
  "\\gamma" => "Îł",
  "\\frown" => "⌱",
  "\\forall" => "∀",
  "\\flat" => "♭",
  "\\fallingdotseq" => "≒",
  "\\exists" => "∃",
  "\\eth" => "Ă°",
  "\\eta" => "η",
  "\\equiv" => "≡",
  "\\eqcirc" => "≖",
  "\\epsilon" => "∊",
  "\\emptyset" => "∅",
  "\\ell" => "ℓ",
  "\\downharpoonright" => "⇂",
  "\\downharpoonleft" => "⇃",
  "\\downdownarrows" => "⇊",
  "\\downarrow" => "↓",
  "\\dots" => "
",
  "\\dotplus" => "∔",
  "\\doteqdot" => "≑",
  "\\doteq" => "≐",
  "\\divideontimes" => "⋇",
  "\\div" => "Ă·",
  "\\digamma" => "Ϝ",
  "\\diamondsuit" => "♱",
  "\\diamond" => "⋄",
  "\\delta" => "ÎŽ",
  "\\ddots" => "⋱",
  "\\ddagger" => "‡",
  "\\dashv" => "⊣",
  "\\dashrightarrow" => "⇱",
  "\\dashleftarrow" => "⇠",
  "\\daleth" => "Ś“",
  "\\dagger" => "†",
  "\\curvearrowright" => "↷",
  "\\curvearrowleft" => "↶",
  "\\curlywedge" => "⋏",
  "\\curlyvee" => "⋎",
  "\\curlyeqsucc" => "⋟",
  "\\curlyeqprec" => "⋞",
  "\\cup" => "âˆȘ",
  "\\coprod" => "∐",
  "\\cong" => "≅",
  "\\complement" => "∁",
  "\\colon" => ":",
  "\\clubsuit" => "♣",
  "\\circleddash" => "⊝",
  "\\circledcirc" => "⊚",
  "\\circledast" => "⊛",
  "\\circledS" => "Ⓢ",
  "\\circlearrowright" => "↻",
  "\\circlearrowleft" => "â†ș",
  "\\circeq" => "≗",
  "\\circ" => "∘",
  "\\chi" => "χ",
  "\\centerdot" => "⋅",
  "\\cdots" => "⋯",
  "\\cdot" => "⋅",
  "\\cap" => "∩",
  "\\bumpeq" => "≏",
  "\\bullet" => "∙",
  "\\boxtimes" => "⊠",
  "\\boxplus" => "⊞",
  "\\boxminus" => "⊟",
  "\\boxdot" => "⊡",
  "\\bowtie" => "⋈",
  "\\bot" => "⊄",
  "\\blacktriangleright" => "▷",
  "\\blacktriangleleft" => "◀",
  "\\blacktriangledown" => "▌",
  "\\blacktriangle" => "â–Č",
  "\\blacksquare" => "■",
  "\\blacklozenge" => "◆",
  "\\bigwedge" => "⋀",
  "\\bigvee" => "⋁",
  "\\biguplus" => "⊎",
  "\\bigtriangleup" => "△",
  "\\bigtriangledown" => "▜",
  "\\bigstar" => "★",
  "\\bigsqcup" => "⊔",
  "\\bigotimes" => "⊗",
  "\\bigoplus" => "⊕",
  "\\bigodot" => "⊙",
  "\\bigcup" => "⋃",
  "\\bigcirc" => "○",
  "\\bigcap" => "⋂",
  "\\between" => "≬",
  "\\beth" => "Ś‘",
  "\\beta" => "ÎČ",
  "\\because" => "∔",
  "\\barwedge" => "⊌",
  "\\backsim" => "∜",
  "\\backprime" => "—",
  "\\backepsilon" => "∍",
  "\\asymp" => "≍",
  "\\ast" => "∗",
  "\\approxeq" => "≊",
  "\\approx" => "≈",
  "\\angle" => "∠",
  "\\angle" => "∠",
  "\\alpha" => "α",
  "\\aleph" => "Ś",
  "\\Xi" => "Ξ",
  "\\Vvdash" => "âŠȘ",
  "\\Vdash" => "⊩",
  "\\Upsilon" => "΄",
  "\\Updownarrow" => "⇕",
  "\\Uparrow" => "⇑",
  "\\Theta" => "Θ",
  "\\Supset" => "⋑",
  "\\Subset" => "⋐",
  "\\Sigma" => "∑",
  "\\Rsh" => "↱",
  "\\Rrightarrow" => "⇛",
  "\\Rightarrow" => "⇒",
  "\\Re" => "ℜ",
  "\\Psi" => "Κ",
  "\\Pi" => "Π",
  "\\Phi" => "Ί",
  "\\Omega" => "Ω",
  "\\Lsh" => "↰",
  "\\Longrightarrow" => "⇒",
  "\\Longleftrightarrow" => "⇔",
  "\\Longleftarrow" => "⇐",
  "\\Lleftarrow" => "⇚",
  "\\Leftrightarrow" => "⇔",
  "\\Leftarrow" => "⇐",
  "\\Lambda" => "Λ",
  "\\Join" => "⋈",
  "\\Im" => "ℑ",
  "\\Gamma" => "Γ",
  "\\Finv" => "â„Č",
  "\\Downarrow" => "⇓",
  "\\Diamond" => "◇",
  "\\Delta" => "Δ",
  "\\Cup" => "⋓",
  "\\Cap" => "⋒",
  "\\Bumpeq" => "≎",
  "\\Box" => "□"
}
WHITESPACE =
{
  "\\quad" => " ",
  "\\qquad" => " ",
  "\\;" => " ",
  "\\:" => " ",
  "\\," => " "
}

Class Method Summary collapse

Class Method Details

.convert(str) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/latex-to-unicode.rb', line 12

def self.convert(str)
  m = LatexParser.new.parse(preprocess(str))
  if m
    m.value
  else
    raise ArgumentError, "Parsing failed."
  end
end

.preprocess(str) ⇒ Object



6
7
8
9
10
11
# File 'lib/latex-to-unicode.rb', line 6

def self.preprocess(str)
  str = str.gsub(/\s/, '')
  str = translate(str, ALIASES)
  str = translate(str, WHITESPACE)
  str = translate(str, SYMBOLS)
end

.translate(str, set) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/translate.rb', line 4

def self.translate(str, set)
  q = str.dup
  set.each do |k, v|
    q.gsub!(k, v)
  end
  q
end

.translate_combining(text, type) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/translate.rb', line 44

def self.translate_combining(text, type)
  text + 
  case type
  when :hat then '̂'  # this is the unicode "combining circumflex"
  when :breve then '̆'
  when :grave then '̀'
  when :bar then '̄'
  when :check then '̌'
  when :acute then '́'
  when :tilde then '̃'
  when :vec then '⃗'
  when :dot then '̇'
  when :ddot then '̈'
  when :mathring then '̊'
  end
end

.translate_fraction(num, den) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/translate.rb', line 12

def self.translate_fraction(num, den)
  case [num.to_i, den.to_i]
  when [1, 2] then 'œ'
  when [1, 3] then '⅓'
  when [1, 4] then 'Œ'
  when [1, 5] then '⅕'
  when [1, 6] then '⅙'
  when [1, 8] then '⅛'
  when [2, 3] then '⅔'
  when [2, 5] then '⅖'
  when [3, 4] then 'Ÿ'
  when [3, 5] then '⅗'
  when [3, 8] then '⅜'
  when [4, 5] then '⅘'
  when [5, 6] then '⅚'
  when [5, 8] then '⅝'
  when [7, 8] then '⅞'
  else
    "(#{num} / #{den})"
  end
end

.translate_sqrt(radicand, radical) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/translate.rb', line 34

def self.translate_sqrt(radicand, radical)
  case radical.to_i
  when 2 then "√(#{radicand})"
  when 3 then "∛(#{radicand})"
  when 4 then "∜(#{radicand})"
  else
    "#{translate(radical, SUPERSCRIPTS)}√(#{radicand})"
  end
end