question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Fails to turn into correct MathJSON

See original GitHub issue

I went through some mathematics notes and found the following interesting equations. I tested them on the compute engine demo page https://cortexjs.io/compute-engine/demo/

(Information for myself: Page 1 of ANA_UE_SS_21_Mo_1.pdf , meaning there are a few more testcases)

  • \begin{equation*} N(\varepsilon)\coloneq\lceil\frac{4}{\varepsilon^2}\rceil \end{equation*} image turns into "" syntax-error

  • \begin{equation*} x_{1,2}=1,2 \end{equation*} image turns into ["Equal", ["Subscript", "x", {num: "12"}], {num: "12"}]. Notice how the comma is missing

  • \begin{equation*} \{1,2\} \end{equation*} image turns into ["Multiply", "\\{", {num: "12"}, "\\}"]. I assume this happens because sets haven’t been implemented yet

  • \begin{equation*} [1,2] \end{equation*} image turns into "" syntax-error. I assume this happens because vectors/matrices and the like haven’t been implemented yet.



  • \begin{equation*} \frac{2}{\sqrt{n}}\Leftrightarrow n>\frac{5}{n^2} \end{equation*} image turns into the following, notice how \\Leftrightarrow doesn’t have a special meaning and its precedence is off
[
  "Greater",
  [
    "Multiply",
    ["Divide", 
      {num: "2"}, ["Sqrt", "n"]],
    "\\Leftrightarrow",
    "n"
  ],
  ["Divide", 
    {num: "5"}, ["Power", "n", 2]]
]


  • \begin{equation*} |a_n|\le\frac{2}{\sqrt{n}}\Rightarrow a_n\to0=0 \end{equation*} image turns into the following, notice how \\Rightarrow doesn’t have a special meaning (implies) and its precedence is off.
[
  "LessEqual",
  ["Abs", ["Subscript", "a", "n"]],
  [
    "Equal",
    [
      "To",
      [
        "Multiply",
        ["Divide", 
          {num: "2"}, ["Sqrt", "n"]],
        "\\Rightarrow",
        ["Subscript", "a", "n"]
      ],
      
      {num: "0"}
    ],
    
    {num: "0"}
  ]
]
  • \begin{equation*} 3\equiv5\mod7 \end{equation*} or also \begin{equation*} 3\equiv 5 (\mod 7) \end{equation*} image This is a congruence relation. I assume this is simply something that hasn’t been implemented yet. Hopefully it’s a good test case for round-tripping

  • \begin{equation*} a={\displaystyle \lim_{n\to\infin}a_n} \end{equation*} image turns into

["Equal", "a", "Missing"]
syntax-error
  • \begin{equation*} \forall x\in\C^2:|x|<0 \end{equation*} image turns into the following
[
  "Element",
  ["Multiply", "\\forall", "x"],
  ["Power", "ComplexNumber", 2]
]
syntax-error
  • \begin{equation*} \forall n\colon a_n\le c_n\le b_n\implies\lim_{n\to\infin}c_n=a \end{equation*} image turns into the following, note how a few operators aren’t parsed and how the precedences for other operators are slightly off. I think the correct order of operations in this case would start at the :, then the => and then the normal rules. Another interesting tidbit here are the two <= signs. While a comparison would usually return a boolean value (true/false), here the comparisons are more like a range. The expression is a part of the squeeze theorem.
[
  "LessEqual",
  [
    "Multiply",
    "\\forall",
    "n",
    "\\colon",
    ["Subscript", "a", "n"]
  ],
  [
    "LessEqual",
    ["Subscript", "c", "n"],
    [
      "Equal",
      [
        "Multiply",
        ["Subscript", "b", "n"],
        "\\implies",
        ["Subscript", "\\lim", ["To", "n", "\\infin"]],
        ["Subscript", "c", "n"]
      ],
      "a"
    ]
  ]
]

Issue Analytics

  • State:open
  • Created 2 years ago
  • Comments:5 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
arnogcommented, Jul 1, 2021

Yes, it’s considered a punctuation character and so has a small padding on its right.

Note also that you can configure which character (or rather which LaTeX command sequence) is used with the groupSeparator option.

That said, some people have very strong opinions about this: http://wordpress.mrreid.org/2014/05/27/stop-putting-commas-in-your-numbers/

Maybe I should reconsider the default value for groupSeparator… 😃

0reactions
stefnotchcommented, Aug 10, 2021

I found another case where the compute-engine doesn’t quite work: Logarithms.

For example \begin{equation*} \log_3(7) \end{equation*} gets parsed as

[
  "Multiply",
  ["Subscript", "\\log", 3],
  ["Parentheses", 
    {num: "7"}]
]

@phcreery

Read more comments on GitHub >

github_iconTop Results From Across the Web

MathJSON format - CortexJS
MathJSON is a lightweight data interchange format for mathematical notation.
Read more >
mathlive/CHANGELOG.md at master - GitHub
MathJSON has an extensive API that supports parsing and serializing of custom LaTeX expressions. You can use it to define your own LaTeX...
Read more >
Alan Turing - Wikipedia
Alan Mathison Turing OBE FRS was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist.
Read more >
Cameron Mathison Turned His Battle with Cancer ... - YouTube
Actor Cameron Mathison has starred in more than a dozen Christmas movies and his reign continues with the latest film, “Kind Hearted ...
Read more >
Alan Turing (1912 - 1954) - Biography
His father, Julius Mathison Turing, was a British member of the Indian ... for Turing who later was to become a fine athlete...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found