4

I have problem with this

$ \text{bredden = x \Leftrightarrow längden = 3 \cdot bredden = 3x} $

I get a

Missing $ inserted

error, although I have $.

user30523
  • 1,013

2 Answers2

26

When using \text{} you escape math mode. Your line asks LaTeX to compile several math symbols (such as \Leftrightarrow and \cdot) inside a text environment, which explains the error message.

The proper way of writing your line would, in any math environment, be

\text{bredden} = x \Leftrightarrow \text{längden} = 3 \cdot \text{bredden} = 3x

(with $ ... $ for your inline math case).

Holene
  • 6,920
13

The "computer science answer" is that when parsers encounter an error, a possible error recovery strategy in some situations is to guess that a token is missing in the input stream, and simply put it in and try parsing again.

The error recovery strategy is just a guess, and, as such, it might be wrong. So wording the diagnostic as "missing $ inserted" is misleading. Inserting $ is just what the software did based on the hypothesis that a $ is missing at that point.

So you have to take the diagnostic with a grain of salt. It really means "Syntax error! trying to continue parsing by adding a dollar sign."

In the olden days of computing, it was important for parsers to have clever error recovery schemes. The reason was that the turnaround time to have a program processed through a job submission window was very high, and so programmers benefited from having as many errors in the code diagnosed as possible in a single pass. It would not have been acceptable to stop after a single error, and not diagnose the program further, because then N round trips through the job submission queue would have been required to fix N compilation errors.

The steadfast efforts of a compiler to keep going in the face of errors may result in it becoming confused, and generating reams and reams of inappropriate diagnostics. Creative Computing magazine used to have a contest for users to submit programs which generate the longest reams of diagnostics from some compiler that they use.

Kaz
  • 250
  • 5
    This is a correct insight into the history of this kind of error, though in this case, there really is a $ missing in the sense that \Leftrightarrow is a math mode-specific command. – Ryan Reich May 12 '13 at 17:51